Minor bug fixes.
[wine.git] / configure.ac
blobad4cbde80a320a4100c542919b708806c3af063e
1 dnl Process this file with autoconf to produce a configure script.
2 dnl Original author: Michael Patra
3 dnl See ChangeLog file for detailed change history.
5 m4_define(WINE_VERSION,regexp(m4_include(VERSION),[version \([-.0-9A-Za-z]+\)],[\1]))
7 AC_PREREQ(2.53)
8 AC_INIT([Wine],WINE_VERSION)
9 AC_CONFIG_SRCDIR(server/atom.c)
10 AC_CONFIG_HEADERS(include/config.h)
11 AC_CONFIG_AUX_DIR(tools)
13 dnl **** Command-line arguments ****
15 dnl Library type .so or .a
16 AC_SUBST(LIBEXT,"so")
18 AC_ARG_ENABLE(win16, AC_HELP_STRING([--disable-win16],[do not include Win16 support]))
19 AC_ARG_ENABLE(debug, AC_HELP_STRING([--disable-debug],[compile out all debugging messages]))
20 AC_ARG_ENABLE(trace, AC_HELP_STRING([--disable-trace],[compile out TRACE messages]))
21 AC_ARG_ENABLE(opengl,AC_HELP_STRING([--enable-opengl],[force usage of OpenGL even if the latter is thread-safe via pthread]))
22 AC_ARG_WITH(curses,    AC_HELP_STRING([--without-curses],[do not use curses]))
23 AC_ARG_WITH(wine-tools,AC_HELP_STRING([--with-wine-tools=<dir>],[use Wine tools from directory <dir>]))
25 AC_SUBST(OPTIONS)
26 AC_SUBST(WIN16_FILES,"\$(WIN16_FILES)")
27 AC_SUBST(WIN16_INSTALL,"\$(WIN16_INSTALL)")
28 if test "x$enable_win16" = "xno"
29 then
30   WIN16_FILES=""
31   WIN16_INSTALL=""
33 if test "x$enable_debug" = "xno"
34 then
35     AC_DEFINE(NO_DEBUG_MSGS,1,[Define to disable all debug messages.])
37 if test "x$enable_trace" = "xno" -o "x$enable_debug" = "xno"
38 then
39     AC_DEFINE(NO_TRACE_MSGS,1,[Define to disable trace messages.])
42 dnl **** Check for some programs ****
44 AC_CANONICAL_HOST
45 AC_PROG_MAKE_SET
46 AC_PROG_CC
47 AC_PROG_CPP
49 AC_CACHE_CHECK([for the directory containing the Wine tools], wine_cv_toolsdir,
50   [if test -z "$with_wine_tools"; then
51      if test "$cross_compiling" = "yes"; then
52        AC_MSG_ERROR([you must use the --with-wine-tools option when cross-compiling.])
53      else
54        wine_cv_toolsdir="\$(TOPOBJDIR)"
55      fi
56    elif test -d "$with_wine_tools/tools/winebuild"; then
57      case $with_wine_tools in
58        /*) wine_cv_toolsdir="$with_wine_tools" ;;
59        *)  wine_cv_toolsdir="\$(TOPOBJDIR)/$with_wine_tools" ;;
60      esac
61    else
62      AC_MSG_ERROR([could not find Wine tools in $with_wine_tools.])
63    fi])
64 AC_SUBST(TOOLSDIR,$wine_cv_toolsdir)
66 AC_PATH_XTRA
67 AC_PROG_YACC
68 AC_PROG_LEX
70 dnl **** Just additional warning checks, since AC_PROG just sets 'yacc' even
71 dnl **** without one present.
72 AC_CHECK_PROGS(XYACC,$YACC bison yacc,none)
73 if test "$XYACC" = "none"
74 then
75   AC_MSG_ERROR([no suitable bison/yacc found. Please install the 'bison' package.])
77 AC_CHECK_PROGS(XLEX,$LEX flex lex,none)
78 if test "$XLEX" = "none"
79 then
80   AC_MSG_ERROR([no suitable lex found. Please install the 'flex' package.])
83 AC_CHECK_TOOL(LD,ld,ld)
84 AC_CHECK_TOOL(AR,ar,ar)
85 AC_PROG_RANLIB
86 AC_CHECK_TOOL(STRIP,strip,strip)
87 AC_CHECK_TOOL(WINDRES,windres,false)
88 AC_PROG_INSTALL
89 AC_PROG_LN_S
90 WINE_PROG_LN
91 AC_CHECK_PROG(C2MAN,c2man,c2man,\$(TOPSRCDIR)/tools/c2man.pl)
92 AC_PATH_PROG(LDCONFIG, ldconfig, true, [/sbin /usr/sbin $PATH])
94 dnl Check for lint
95 AC_CHECK_PROGS(LINT, lclint lint)
96 if test "$LINT" = "lint"
97 then
98   LINTFLAGS="$LINTFLAGS -errchk=%all,no%longptr64 -errhdr=%user -Ncheck=macro -Nlevel=4"
99   dnl LINTFLAGS='-D_SIZE_T "-Dsize_t=unsigned long" -errchk=longptr64'
101 AC_SUBST(LINT)
102 AC_SUBST(LINTFLAGS)
104 dnl **** Check for some libraries ****
106 dnl Check for -lm
107 AC_CHECK_LIB(m,sqrt)
108 dnl Check for -li386 for NetBSD and OpenBSD
109 AC_CHECK_LIB(i386,i386_set_ldt)
110 dnl Check for -lossaudio for NetBSD
111 AC_CHECK_LIB(ossaudio,_oss_ioctl)
112 dnl Check for -lw for Solaris
113 AC_CHECK_FUNCS(iswalnum,,AC_CHECK_LIB(w,iswalnum))
114 dnl Check for -lnsl for Solaris
115 AC_CHECK_FUNCS(gethostbyname,,AC_CHECK_LIB(nsl,gethostbyname))
116 dnl Check for -lsocket for Solaris
117 AC_CHECK_FUNCS(connect,,AC_CHECK_LIB(socket,connect))
118 dnl Check for -lresolv for Solaris
119 AC_CHECK_FUNCS(inet_aton,,AC_CHECK_LIB(resolv,inet_aton))
120 dnl Check for -lxpg4 for FreeBSD
121 AC_CHECK_LIB(xpg4,_xpg4_setrunelocale)
122 dnl Check for -lmmap for OS/2
123 AC_CHECK_LIB(mmap,mmap)
125 JPEGLIB=""
126 AC_SUBST(JPEGLIB)
127 AC_CHECK_HEADERS(jpeglib.h,
128     AC_CHECK_LIB(jpeg,jpeg_start_decompress,
129         AC_DEFINE(HAVE_LIBJPEG,1,[Define if you have libjpeg including devel headers])
130         JPEGLIB="-ljpeg"
131     )
135 AC_SUBST(XLIB)
136 AC_SUBST(XFILES)
137 XFILES=""
138 AC_SUBST(OPENGLFILES)
139 OPENGLFILES=""
140 AC_SUBST(GLU32FILES)
141 GLU32FILES=""
142 if test "$have_x" = "yes"
143 then
144     XLIB="-lXext -lX11"
145     ac_save_CPPFLAGS="$CPPFLAGS"
146     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
148     dnl *** All of the following tests require X11/Xlib.h
149     AC_CHECK_HEADERS(X11/Xlib.h,
150       [
151         dnl *** Check for X keyboard extension
152         AC_CHECK_HEADERS(X11/XKBlib.h,
153             [ dnl *** If X11/XKBlib.h exists...
154               AC_CHECK_LIB(X11, XkbQueryExtension,
155               AC_DEFINE(HAVE_XKB, 1, [Define if you have the XKB extension]),,
156               $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
157             ],
158             AC_MSG_WARN([[Xkb extension not found, Wine will be built without it]]),
159             [#include <X11/Xlib.h>])
161         dnl *** Check for X Shm extension
162         AC_CHECK_HEADERS(X11/extensions/XShm.h,
163             [ dnl *** If X11/extensions/XShm.h exists...
164               AC_CHECK_LIB(Xext, XShmQueryExtension,
165               AC_DEFINE(HAVE_LIBXXSHM, 1, [Define if you have the X Shm extension]),,
166               $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
167             ],
168             AC_MSG_WARN([[XShm extension not found, Wine will be built without it]]),
169             [#include <X11/Xlib.h>])
171         dnl *** Check for Xutil
172         AC_CHECK_HEADERS(X11/Xutil.h,,,
173             [#include <X11/Xlib.h>])
175         dnl *** Check for X shape extension
176         AC_CHECK_HEADERS(X11/extensions/shape.h,
177             [ dnl *** If X11/extensions/shape.h exists...
178               AC_CHECK_LIB(Xext,XShapeQueryExtension,
179               AC_DEFINE(HAVE_LIBXSHAPE, 1, [Define if you have the X Shape extension]),,
180               $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
181             ],
182             AC_MSG_WARN([[XShape extension not found, Wine will be built without it]]),
183             [#include <X11/Xlib.h>
184              #ifdef HAVE_X11_XUTIL_H
185              # include <X11/Xutil.h>
186              #endif])
188         dnl *** Check for XFree86 DGA / DGA 2.0 extension
189         AC_CHECK_HEADERS(X11/extensions/xf86dga.h,
190             [ dnl *** If X11/extensions/xf86dga.h exists, check
191               dnl *** for XDGAQueryExtension()...
192               AC_CHECK_LIB(Xxf86dga, XDGAQueryExtension,
193                 [ dnl *** If found...
194                   AC_DEFINE(HAVE_LIBXXF86DGA2, 1,
195                             [Define if you have the Xxf86dga library version 2])
196                   X_PRE_LIBS="$X_PRE_LIBS -lXxf86dga"
197                ],
198                 [ dnl *** If not found, look for XF86DGAQueryExtension()
199                   dnl *** instead (DGA 2.0 not found)...
200                   AC_CHECK_LIB(Xxf86dga, XF86DGAQueryExtension,
201                     [ AC_DEFINE(HAVE_LIBXXF86DGA, 1,
202                                 [Define if you have the Xxf86dga library version 1])
203                       X_PRE_LIBS="$X_PRE_LIBS -lXxf86dga"
204                     ],,
205                     $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
206                   )
207                 ],
208                 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
209               )
210             ],
211             AC_MSG_WARN([[DGA extension not found, Wine will be built without it]]),
212             [#include <X11/Xlib.h>])
214         dnl *** Check for XFree86 VMODE extension
215         AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,
216             [ dnl *** If X11/extensions/xf86vmode.h exists...
217                 AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryExtension,
218                   [ AC_DEFINE(HAVE_LIBXXF86VM, 1, [Define if you have the Xxf86vm library])
219                      X_PRE_LIBS="$X_PRE_LIBS -lXxf86vm"
220                   ],,
221                   $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
222                 )
223             ],
224             AC_MSG_WARN([[XFree86 VMODE extension not found, Wine will be built without it]]),
225             [#include <X11/Xlib.h>])
227         dnl *** Check for XVideo extension supporting XvImages
228         AC_CHECK_HEADERS(X11/extensions/Xvlib.h,
229             [ dnl *** If X11/extensions/Xvlib.h exists...
230                 AC_CHECK_LIB(Xv, XvShmCreateImage,
231                   [ AC_DEFINE(HAVE_XVIDEO, 1, [Define if the X libraries support XVideo])
232                      X_PRE_LIBS="$X_PRE_LIBS -lXv"
233                   ],,
234                   $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
235                 )
236             ],
237             AC_MSG_WARN([[XVideo extension not found, Wine will be built without it]]),
238             [#include <X11/Xlib.h>])
240         dnl *** Check for XRender include file
241         AC_CHECK_HEADERS(X11/extensions/Xrender.h,,,[#include <X11/Xlib.h>])
242       ]
243     ) dnl *** End of X11/Xlib.h check
245     dnl Check for the presence of OpenGL
246     if test "x$enable_opengl" != "xno"
247     then
248         if test -f /usr/X11R6/lib/libGL.a -a ! -f /usr/X11R6/lib/libGL.so
249         then
250             AC_MSG_ERROR([/usr/X11R6/lib/libGL.a is present on your system.
251 This prevents linking to OpenGL. Delete the file and restart configure.])
252         fi
254         AC_CHECK_HEADERS(GL/gl.h GL/glx.h)
255         if test "$ac_cv_header_GL_gl_h" = "yes" -a "$ac_cv_header_GL_glx_h" = "yes"
256         then
257             AC_CHECK_HEADERS(GL/glext.h,,,[#include <GL/glx.h>])
258             dnl Check for some problems due to old Mesa versions
259             AC_CACHE_CHECK([for up-to-date OpenGL version], wine_cv_opengl_version_OK,
260               AC_TRY_COMPILE(
261                 [#include <GL/gl.h>],
262                 [GLenum test = GL_UNSIGNED_SHORT_5_6_5;],
263                 [wine_cv_opengl_version_OK="yes"],
264                 [wine_cv_opengl_version_OK="no"]
265               )
266             )
268             dnl Check for the thread-safety of the OpenGL library
269             AC_CACHE_CHECK([for thread-safe OpenGL version],
270                            wine_cv_opengl_version_threadsafe,
271               [saved_libs=$LIBS
272                LIBS="$X_LIBS -lGL"
273                AC_TRY_LINK([],[pthread_getspecific();],
274                               [wine_cv_opengl_version_threadsafe="yes"],
275                               [wine_cv_opengl_version_threadsafe="no"])
276                LIBS=$saved_libs]
277             )
279             if test "$wine_cv_opengl_version_OK" = "yes" -a \( "$wine_cv_opengl_version_threadsafe" = "no" -o "x$enable_opengl" = "xyes" \)
280             then
281                 dnl Check for the presence of the library
282                 AC_CHECK_LIB(GL,glXCreateContext,
283                              X_PRE_LIBS="$X_PRE_LIBS -lGL"
284                              ,,
285                              $X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS)
287                 if test "$ac_cv_lib_GL_glXCreateContext" = "yes"
288                 then
289                         OPENGLFILES='$(OPENGLFILES)'
290                         AC_DEFINE(HAVE_OPENGL, 1, [Define if OpenGL is present on the system])
292                         AC_CHECK_LIB(GL,glXGetProcAddressARB,
293                                      AC_DEFINE(HAVE_GLX_GETPROCADDRESS, 1,
294                                                [Define if the OpenGL library supports the glXGetProcAddressARB call]),,
295                                      $X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS)
297                         if test "$ac_cv_lib_GL_glXGetProcAddressARB" = "yes"
298                         then
299                                AC_CACHE_CHECK([for OpenGL extension functions prototypes], wine_cv_extension_prototypes,
300                                   [AC_TRY_COMPILE([#include <GL/gl.h>
301                                                   #ifdef HAVE_GL_GLEXT_H
302                                                   # include <GL/glext.h>
303                                                   #endif
304                                                   ],
305                                                  [PFNGLCOLORTABLEEXTPROC test_proc;],
306                                                  [wine_cv_extension_prototypes="yes"],
307                                                  [wine_cv_extension_prototypes="no"]
308                                   )]
309                                 )
310                                 if test "$wine_cv_extension_prototypes" = "yes"
311                                 then
312                                     AC_DEFINE(HAVE_GLEXT_PROTOTYPES, 1,
313                                               [Define if the OpenGL headers define extension typedefs])
314                                 fi
315                         fi
317                 fi
318                 dnl Check for GLU32 library.
319                 AC_CHECK_LIB(GLU,gluLookAt,
320                              [X_PRE_LIBS="$X_PRE_LIBS -lGLU"
321                              GLU32FILES='$(GLU32FILES)']
322                              ,,
323                              $X_LIBS $X_PRE_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS
324                 )
325              fi
326          fi
327     fi
329     dnl **** Check for NAS ****
330     AC_SUBST(NASLIBS,"")
331     AC_CHECK_HEADERS(audio/audiolib.h,
332          [AC_CHECK_HEADERS(audio/soundlib.h,,,[#include <audio/audiolib.h>])
333           AC_CHECK_LIB(audio,AuCreateFlow,
334                        [AC_DEFINE(HAVE_NAS,1,[Define if you have NAS including devel headers])
335                         NASLIBS="-laudio -lXt $X_LIBS -lXext -lX11 $X_EXTRA_LIBS"],,
336                        [-lXt $X_LIBS -lXext -lX11 $X_EXTRA_LIBS])])
338     CPPFLAGS="$ac_save_CPPFLAGS"
339     XFILES='$(XFILES)'
340 else
341     XLIB=""
342     X_CFLAGS=""
343     X_LIBS=""
346 dnl **** Check which curses lib to use ***
347 CURSESLIBS=""
348 if test "x$with_curses" != "xno"
349 then
350     AC_CHECK_HEADERS(ncurses.h,
351         [AC_CHECK_LIB(ncurses,waddch,
352             [AC_DEFINE(HAVE_LIBNCURSES, 1, [Define if you have the ncurses library (-lncurses)])
353              CURSESLIBS="-lncurses"],
354              [AC_CHECK_HEADERS(curses.h,
355                  [AC_CHECK_LIB(curses,waddch,
356                      [AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have the curses library (-lcurses)])
357                       CURSESLIBS="-lcurses"])])])])
358     saved_libs="$LIBS"
359     LIBS="$CURSESLIBS $LIBS"
360     AC_CHECK_FUNCS(getbkgd resizeterm)
361     LIBS="$saved_libs"
363 AC_SUBST(CURSESLIBS)
365 dnl **** Check for SANE ****
366 AC_CHECK_PROG(sane_devel,sane-config,sane-config,no)
367 if test "$sane_devel" = "no"
368 then
369     SANELIBS=""
370     SANEINCL=""
371 else
372     SANELIBS="`$sane_devel --libs`"
373     SANEINCL="`$sane_devel --cflags`"
374     ac_save_CPPFLAGS="$CPPFLAGS"
375     ac_save_LIBS="$LIBS"
376     CPPFLAGS="$CPPFLAGS $SANEINCL"
377     LIBS="$LIBS $SANELIBS"
378     AC_CHECK_HEADER(sane/sane.h,
379                     [AC_CHECK_LIB(sane,sane_open,
380                                   [AC_DEFINE(HAVE_SANE, 1, [Define if we have SANE development environment])],
381                                   [SANELIBS=""
382                                   SANEINCL=""])],
383                     [SANELIBS=""
384                     SANEINCL=""])
385     LIBS="$ac_save_LIBS"
386     CPPFLAGS="$ac_save_CPPFLAGS"
388 AC_SUBST(SANELIBS)
389 AC_SUBST(SANEINCL)
391 dnl **** Check for FreeType 2 ****
392 AC_CHECK_LIB(freetype,FT_Init_FreeType,ft_lib=yes,ft_lib=no,$X_LIBS)
393 if test "$ft_lib" = "no"
394 then
395     FREETYPEINCL=""
396     wine_cv_msg_freetype=no
397 else
398     AC_CHECK_PROG(ft_devel,freetype-config,freetype-config,no)
399     if test "$ft_devel" = "no"
400     then
401         AC_CHECK_PROG(ft_devel2,freetype2-config,freetype2-config,no)
402         if test "$ft_devel2" = "freetype2-config"
403         then
404                 ft_devel=$ft_devel2
405         fi
406     fi
407     if test "$ft_devel" = "no"
408     then
409         FREETYPEINCL=""
410         wine_cv_msg_freetype=yes
411     else
412         FREETYPEINCL=`$ft_devel --cflags`
413         ac_save_CPPFLAGS="$CPPFLAGS"
414         CPPFLAGS="$FREETYPEINCL $CPPFLAGS"
415         AC_CHECK_HEADERS(freetype/freetype.h \
416                          freetype/ftglyph.h \
417                          freetype/tttables.h \
418                          freetype/ftnames.h \
419                          freetype/ftsnames.h \
420                          freetype/ttnameid.h \
421                          freetype/ftoutln.h \
422                          freetype/internal/sfnt.h)
423         AC_TRY_CPP([#include <ft2build.h>
424                     #include <freetype/fttrigon.h>],
425                     [AC_DEFINE(HAVE_FREETYPE_FTTRIGON_H, 1,
426           [Define if you have the <freetype/fttrigon.h> header file.])
427                     wine_cv_fttrigon=yes],
428                     wine_cv_fttrigon=no)
429         CPPFLAGS="$ac_save_CPPFLAGS"
430         dnl Check that we have at least freetype/freetype.h
431         if test "$ac_cv_header_freetype_freetype_h" = "yes" -a "$wine_cv_fttrigon" = "yes"
432         then
433             AC_DEFINE(HAVE_FREETYPE, 1, [Define if FreeType 2 is installed])
434             wine_cv_msg_freetype=no
435         else
436             FREETYPEINCL=""
437             wine_cv_msg_freetype=yes
438         fi
439     fi
441 AC_SUBST(FREETYPEINCL)
443 dnl **** Check for parport (currently Linux only) ****
444 AC_CACHE_CHECK([for parport header/ppdev.h], ac_cv_c_ppdev,
445  AC_TRY_COMPILE(
446    [#include <linux/ppdev.h>],
447    [ioctl (1,PPCLAIM,0)],
448    [ac_cv_c_ppdev="yes"],
449    [ac_cv_c_ppdev="no"])
451 if test "$ac_cv_c_ppdev" = "yes"
452 then
453     AC_DEFINE(HAVE_PPDEV, 1, [Define if we can use ppdev.h for parallel port access])
456 dnl **** Check for va_copy ****
457 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
458  AC_TRY_LINK(
459    [#include <stdarg.h>],
460    [va_list ap1, ap2;
461     va_copy(ap1,ap2);
462    ],
463    [ac_cv_c_va_copy="yes"],
464    [ac_cv_c_va_copy="no"])
466 if test "$ac_cv_c_va_copy" = "yes"
467 then
468     AC_DEFINE(HAVE_VA_COPY, 1, [Define if we have va_copy])
470 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
471  AC_TRY_LINK(
472    [#include <stdarg.h>],
473    [va_list ap1, ap2;
474     __va_copy(ap1,ap2);
475    ],
476    [ac_cv_c___va_copy="yes"],
477    [ac_cv_c___va_copy="no"])
479 if test "$ac_cv_c___va_copy" = "yes"
480 then
481     AC_DEFINE(HAVE___VA_COPY, 1, [Define if we have __va_copy])
484 dnl **** Check for IPX (currently Linux only) ****
485 AC_CACHE_CHECK([for GNU style IPX support], ac_cv_c_ipx_gnu,
486  AC_TRY_COMPILE(
487    [#include <sys/types.h>
488     #ifdef HAVE_SYS_SOCKET_H
489     # include <sys/socket.h>
490     #endif
491     #include <netipx/ipx.h>],
492    [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
493    [ac_cv_c_ipx_gnu="yes"],
494    [ac_cv_c_ipx_gnu="no"])
496 if test "$ac_cv_c_ipx_gnu" = "yes"
497 then
498     AC_DEFINE(HAVE_IPX_GNU, 1, [Define if IPX should use netipx/ipx.h from libc])
501 if test "$ac_cv_c_ipx_gnu" = "no"
502 then
503  AC_CACHE_CHECK([for linux style IPX support], ac_cv_c_ipx_linux,
504   AC_TRY_COMPILE(
505     [#include <sys/types.h>
506      #ifdef HAVE_SYS_SOCKET_H
507      # include <sys/socket.h>
508      #endif
509      #include <asm/types.h>
510      #include <linux/ipx.h>],
511     [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
512     [ac_cv_c_ipx_linux="yes"],
513     [ac_cv_c_ipx_linux="no"])
514   )
515   if test "$ac_cv_c_ipx_linux" = "yes"
516   then
517       AC_DEFINE(HAVE_IPX_LINUX, 1, [Define if IPX includes are taken from Linux kernel])
518   fi
521 dnl **** Check for Open Sound System ****
522 AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h soundcard.h, break)
524 AC_CACHE_CHECK([for Open Sound System],
525         ac_cv_c_opensoundsystem,
526         AC_TRY_COMPILE([
527         #if defined(HAVE_SYS_SOUNDCARD_H)
528                 #include <sys/soundcard.h>
529         #elif defined(HAVE_MACHINE_SOUNDCARD_H)
530                 #include <machine/soundcard.h>
531         #elif defined(HAVE_SOUNDCARD_H)
532                 #include <soundcard.h>
533         #endif
534         ],[
536 /* check for one of the Open Sound System specific SNDCTL_ defines */
537 #if !defined(SNDCTL_DSP_STEREO)
538 #error No open sound system
539 #endif
540 ],ac_cv_c_opensoundsystem="yes",ac_cv_c_opensoundsystem="no"))
542 if test "$ac_cv_c_opensoundsystem" = "yes"
543 then
544     AC_DEFINE(HAVE_OSS, 1, [Define if you have the Open Sound system])
547 AC_CACHE_CHECK([for Open Sound System/MIDI interface],
548         ac_cv_c_opensoundsystem_midi,
549         AC_TRY_COMPILE([
550         #if defined(HAVE_SYS_SOUNDCARD_H)
551                 #include <sys/soundcard.h>
552         #elif defined(HAVE_MACHINE_SOUNDCARD_H)
553                 #include <machine/soundcard.h>
554         #elif defined(HAVE_SOUNDCARD_H)
555                 #include <soundcard.h>
556         #endif
557         ],[
559 /* check for one of the Open Sound System specific SNDCTL_SEQ defines */
560 #if !defined(SNDCTL_SEQ_SYNC)
561 #error No open sound system MIDI interface
562 #endif
563 ],ac_cv_c_opensoundsystem_midi="yes",ac_cv_c_opensoundsystem_midi="no"))
565 if test "$ac_cv_c_opensoundsystem_midi" = "yes"
566 then
567     AC_DEFINE(HAVE_OSS_MIDI, 1, [Define if you have the Open Sound system (MIDI interface)])
570 dnl **** Check for aRts Sound Server ****
571 AC_PATH_PROG(ARTSCCONFIG, artsc-config)
572 AC_CACHE_CHECK([for aRts Sound server],
573         ac_cv_c_artsserver,
574         if test x$ARTSCCONFIG = x -o x$ARTSCCONFIG = x'"$ARTSCCONFIG"';
575         then
576             ac_cv_c_artsserver=no
577         else
578             ARTSC_CFLAGS=`$ARTSCCONFIG --cflags`
579             ARTSC_LIBS=`$ARTSCCONFIG --libs`
580             ac_cv_c_artsserver=no
581             save_CFLAGS="$CFLAGS"
582             CFLAGS="$CFLAGS $ARTSC_CFLAGS"
583             AC_TRY_COMPILE([
584              #include <artsc.h>
585             ],[
586              arts_stream_t stream;
587             ],[
588             ac_cv_c_artsserver=yes
589             ])
590             CFLAGS="$save_CFLAGS"
591         fi)
593 if test "$ac_cv_c_artsserver" = "yes"
594 then
595     AC_SUBST(ARTSLIBS, $ARTSC_LIBS)
596     AC_SUBST(ARTSINCL, $ARTSC_CFLAGS)
598     AC_DEFINE(HAVE_ARTS, 1, [Define if you have ARTS sound server])
601 dnl **** Check for ALSA ****
602 AC_SUBST(ALSALIBS,"")
603 AC_CHECK_HEADERS(alsa/asoundlib.h sys/asoundlib.h, break)
604 if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes"
605 then
606     AC_CHECK_LIB(asound,snd_pcm_open,
607         AC_DEFINE(HAVE_ALSA,1,[Define if you have ALSA including devel headers])
608         ALSALIBS="-lasound")
611 dnl **** Check for libaudioio (which can be used to get solaris audio support) ****
613 AC_SUBST(AUDIOIOLIBS,"")
614 AC_CHECK_HEADERS(libaudioio.h,
615     [AC_CHECK_LIB(audioio,AudioIOGetVersion,
616                   [AUDIOIOLIBS="-laudioio"
617                    AC_DEFINE(HAVE_LIBAUDIOIO, 1, [Define if you have libaudioIO])])])
619 dnl **** Check for broken glibc mmap64 ****
621 AC_CACHE_CHECK( [whether mmap64 works defined as mmap], ac_cv_mmap64_works,
622         AC_TRY_RUN([
623                 #define _FILE_OFFSET_BITS 64
624                 #include <stdio.h>
625                 #include <unistd.h>
626                 #include <fcntl.h>
627                 #include <sys/mman.h>
628                 #include <errno.h>
630                 int main(int argc,char **argv) {
631                         int fd = open("conftest.map",O_CREAT|O_RDWR,0600);
632                         if (fd == -1) exit(1);
634                         unlink("conftest.map");
636                         write(fd,"test",4);
638                         if ((-1 == mmap(0,4,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0)) &&
639                             (errno == EINVAL)
640                         ) {
641                                 exit(1);
642                         }
643                         close(fd);
644                         fprintf(stderr,"success!\n");
645                         exit(0);
646                 }
648         ],
649     ac_cv_mmap64_works="yes",
650     ac_cv_mmap64_works="no",
651     ac_cv_mmap64_works="no") )
653 if test "$ac_cv_mmap64_works" = "yes"
654 then
655     AC_DEFINE(_FILE_OFFSET_BITS, 64, [Set this to 64 to enable 64-bit file support on Linux])
658 dnl **** Check for gcc strength-reduce bug ****
660 if test "x${GCC}" = "xyes"
661 then
662   CFLAGS="$CFLAGS -Wall"
663   AC_CACHE_CHECK( [for gcc strength-reduce bug], ac_cv_c_gcc_strength_bug,
664                   AC_TRY_RUN([
665 int     L[[4]] = {0,1,2,3};
666 int main(void) {
667   static int Array[[3]];
668   unsigned int B = 3;
669   int i;
670   for(i=0; i<B; i++) Array[[i]] = i - 3;
671   for(i=0; i<4 - 1; i++) L[[i]] = L[[i + 1]];
672   L[[i]] = 4;
674   exit( Array[[1]] != -2 || L[[2]] != 3);
676     ac_cv_c_gcc_strength_bug="no",
677     ac_cv_c_gcc_strength_bug="yes",
678     ac_cv_c_gcc_strength_bug="yes") )
679   if test "$ac_cv_c_gcc_strength_bug" = "yes"
680   then
681     CFLAGS="$CFLAGS -fno-strength-reduce"
682   fi
684   dnl Check for -mpreferred-stack-boundary
685   AC_CACHE_CHECK([for gcc -mpreferred-stack-boundary=2 support], ac_cv_c_gcc_stack_boundary,
686       [WINE_TRY_CFLAGS([-mpreferred-stack-boundary=2],
687                       ac_cv_c_gcc_stack_boundary="yes",ac_cv_c_gcc_stack_boundary="no")])
688   if test "$ac_cv_c_gcc_stack_boundary" = "yes"
689   then
690     CFLAGS="$CFLAGS -mpreferred-stack-boundary=2"
691   fi
694 dnl **** Check how to define a function in assembly code ****
696 AC_CACHE_CHECK([how to define a function in assembly code], ac_cv_asm_func_def,
697   WINE_TRY_ASM_LINK(
698       ["\t.globl _ac_test\n\t.def _ac_test; .scl 2; .type 32; .endef\n_ac_test:\t.long 0"],,,
699       ac_cv_asm_func_def=".def",
700     [WINE_TRY_ASM_LINK(["\t.globl _ac_test\n\t.type _ac_test,@function\n_ac_test:\t.long 0"],,,
701       ac_cv_asm_func_def=".type @function",
702     [WINE_TRY_ASM_LINK(["\t.globl _ac_test\n\t.type _ac_test,2\n_ac_test:\t.long 0"],,,
703       ac_cv_asm_func_def=".type 2",
704       ac_cv_asm_func_def="unknown")])]))
706 AH_TEMPLATE(__ASM_FUNC,[Define to a macro to generate an assembly function directive])
707 case "$ac_cv_asm_func_def" in
708   ".def")
709      AC_DEFINE([__ASM_FUNC(name)], [".def " __ASM_NAME(name) "; .scl 2; .type 32; .endef"]) ;;
710   ".type @function")
711      AC_DEFINE([__ASM_FUNC(name)], [".type " __ASM_NAME(name) ",@function"]) ;;
712   ".type 2")
713      AC_DEFINE([__ASM_FUNC(name)], [".type " __ASM_NAME(name) ",2"]) ;;
714   *)
715      AC_DEFINE([__ASM_FUNC(name)], [""]) ;;
716 esac
718 dnl **** Check for underscore on external symbols ****
720 AC_CACHE_CHECK([whether external symbols need an underscore prefix], ac_cv_c_extern_prefix,
721     WINE_TRY_ASM_LINK([".globl _ac_test\n_ac_test:\t.long 0"],
722                       [extern int ac_test;],
723                       [if (ac_test) return 1],
724                       ac_cv_c_extern_prefix="yes",ac_cv_c_extern_prefix="no"))
726 AH_TEMPLATE(__ASM_NAME,[Define to a macro to generate an assembly name from a C symbol])
727 if test "$ac_cv_c_extern_prefix" = "yes"
728 then
729   AC_DEFINE([__ASM_NAME(name)], ["_" name])
730 else
731   AC_DEFINE([__ASM_NAME(name)], [name])
734 dnl **** Check whether stdcall symbols need to be decorated ****
736 AC_CACHE_CHECK([whether stdcall symbols need to be decorated], ac_cv_c_stdcall_decoration,
737     WINE_TRY_ASM_LINK(["\t.globl _ac_test@0\n_ac_test@0:\n\t.globl ac_test@0\nac_test@0:"],
738                       [extern void __attribute__((__stdcall__)) ac_test(void);],
739                       [ac_test()],
740                       ac_cv_c_stdcall_decoration="yes",ac_cv_c_stdcall_decoration="no"))
741 if test "$ac_cv_c_stdcall_decoration" = "yes"
742 then
743   AC_DEFINE(NEED_STDCALL_DECORATION, 1, [Define if stdcall symbols need to be decorated])
746 dnl **** Check for .string in assembler ****
748 AC_CACHE_CHECK([whether assembler accepts .string], ac_cv_c_asm_string,
749     WINE_TRY_ASM_LINK([".data\n\t.string \"test\"\n\t.text"],,,
750                       ac_cv_c_asm_string="yes",ac_cv_c_asm_string="no"))
751 if test "$ac_cv_c_asm_string" = "yes"
752 then
753   AC_DEFINE(HAVE_ASM_STRING, 1, [Define to use .string instead of .ascii])
756 dnl **** Check for working dll ****
758 AC_SUBST(DLLEXT,"")
759 AC_SUBST(DLLFLAGS,"")
760 AC_SUBST(DLLIBS,"")
761 AC_SUBST(LDDLLFLAGS,"")
762 AC_SUBST(LDSHARED,"")
764 case $host_os in
765   cygwin*|mingw32*)
766     AC_CHECK_TOOL(DLLWRAP,dllwrap,false)
767     if test "$DLLWRAP" = "false"; then
768       LIBEXT="a"
769     else
770       dnl FIXME - check whether dllwrap works correctly...
771       LIBEXT="dll"
772     fi
773     ;;
774   *)
775     AC_CHECK_HEADERS(dlfcn.h,
776         [AC_CHECK_FUNCS(dlopen,,
777             [AC_CHECK_LIB(dl,dlopen,
778                          [AC_DEFINE(HAVE_DLOPEN,1,[Define if you have dlopen])
779                           DLLIBS="-ldl"],
780                          [LIBEXT="a"])])],
781         [LIBEXT="a"])
783     if test "$LIBEXT" = "so"
784     then
785       DLLFLAGS="-fPIC"
786       DLLEXT=".so"
787       AC_CACHE_CHECK([whether we can build a GNU style ELF dll], ac_cv_c_dll_gnuelf,
788           [WINE_TRY_CFLAGS([-fPIC -shared -Wl,-soname,conftest.so.1.0,-Bsymbolic],
789                            ac_cv_c_dll_gnuelf="yes",ac_cv_c_dll_gnuelf="no")])
790       if test "$ac_cv_c_dll_gnuelf" = "yes"
791       then
792         LDSHARED="\$(CC) -shared \$(SONAME:%=-Wl,-soname,%)"
793         LDDLLFLAGS="-Wl,-Bsymbolic"
794       else
795         AC_CACHE_CHECK(whether we can build a UnixWare (Solaris) dll, ac_cv_c_dll_unixware,
796             [WINE_TRY_CFLAGS([-fPIC -Wl,-G,-h,conftest.so.1.0,-B,symbolic],
797                              ac_cv_c_dll_unixware="yes",ac_cv_c_dll_unixware="no")])
798         if test "$ac_cv_c_dll_unixware" = "yes"
799         then
800           LDSHARED="\$(CC) -Wl,-G \$(SONAME:%=-Wl,-h,%)"
801           LDDLLFLAGS="-Wl,-B,symbolic"
802         fi
803       fi
804     fi
806     dnl Check for cross compiler to build test programs
807     AC_SUBST(CROSSTEST,"")
808     if test "$cross_compiling" = "no"
809     then
810       AC_CHECK_PROGS(CROSSCC,i586-mingw32msvc-gcc,false)
811       AC_CHECK_PROGS(DLLTOOL,i586-mingw32msvc-dlltool,false)
812       if test "$CROSSCC" != "false"; then CROSSTEST="\$(CROSSTEST)"; fi
813     fi
814     ;;
815 esac
817 if test "$LIBEXT" = "a"; then
818   AC_MSG_ERROR(
819 [could not find a way to build shared libraries.
820 It is currently not possible to build Wine without shared library
821 (.so) support to allow transparent switch between .so and .dll files.
822 If you are using Linux, you will need a newer binutils.]
826 case $build_os in
827   cygwin*|mingw32*)
828     AC_SUBST(LDPATH,"PATH=\"\$(TOOLSDIR)/library:\$(TOOLSDIR)/unicode:\$\$PATH\"") ;;
829   *)
830     AC_SUBST(LDPATH,"LD_LIBRARY_PATH=\"\$(TOOLSDIR)/library:\$(TOOLSDIR)/unicode:\$\$LD_LIBRARY_PATH\"") ;;
831 esac
833 dnl Mingw needs explicit msvcrt for linking libwine
834 AC_SUBST(CRTLIBS,"")
835 case $host_os in
836   mingw32*)
837     CRTLIBS="-lmsvcrt" ;;
838 esac
840 dnl **** Get the soname for libraries that we load dynamically ****
842 if test "$LIBEXT" = "so"
843 then
844   WINE_GET_SONAME(X11,XCreateWindow,[$X_LIBS $X_EXTRA_LIBS])
845   WINE_GET_SONAME(Xext,XextCreateExtension,[$X_LIBS -lX11 $X_EXTRA_LIBS])
846   WINE_GET_SONAME(Xrender,XRenderQueryExtension,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
847   WINE_GET_SONAME(freetype,FT_Init_FreeType,[$X_LIBS])
848   WINE_GET_SONAME(cups,cupsGetDefault)
852 dnl **** Check for reentrant libc ****
854 wine_cv_libc_reentrant=no
855 dnl Linux style errno location
856 WINE_CHECK_ERRNO([__errno_location], [wine_cv_libc_reentrant=__errno_location],
857   dnl FreeBSD style errno location
858   WINE_CHECK_ERRNO([__error], [wine_cv_libc_reentrant=__error],
859     dnl Solaris style errno location
860     WINE_CHECK_ERRNO([___errno], [wine_cv_libc_reentrant=___errno],
861       dnl UnixWare style errno location
862       WINE_CHECK_ERRNO([__thr_errno], [wine_cv_libc_reentrant=__thr_errno],
863         dnl NetBSD style errno location
864         WINE_CHECK_ERRNO([__errno], [wine_cv_libc_reentrant=__errno])
865 ))))
867 if test "$wine_cv_libc_reentrant" != "no"
868 then
869   AC_DEFINE_UNQUOTED(ERRNO_LOCATION,$wine_cv_libc_reentrant,
870                      [Define to the name of the function returning errno for reentrant libc])
873 dnl **** Check for reentrant X libraries ****
875 dnl This may fail to determine whether X libraries are reentrant if
876 dnl AC_PATH_XTRA does not set x_libraries.
878 if test "$have_x" = "yes"
879 then
880 AC_CACHE_CHECK( [for reentrant X libraries], wine_cv_x_reentrant,
881     [libX11_check=none
882     for dir in "$x_libraries" /usr/lib /usr/local/lib /lib; do
883         if test -r $dir/libX11.so; then
884             libX11_check="-D $dir/libX11.so"
885             break
886         fi
887         if test -r $dir/libX11.a; then
888             libX11_check="$dir/libX11.a"
889             break
890         fi
891     done
892     if test "$libX11_check" != "none"; then
893         if nm $libX11_check | grep $wine_cv_libc_reentrant >/dev/null 2>&1
894         then
895             wine_cv_x_reentrant=yes
896         else
897             wine_cv_x_reentrant=no
898         fi
899     else
900         wine_cv_x_reentrant=unknown
901     fi])
904 dnl **** Check for functions ****
906 AC_FUNC_ALLOCA()
907 AC_CHECK_FUNCS(\
908         _lwp_create \
909         _pclose \
910         _popen \
911         _snprintf \
912         _stricmp \
913         _strnicmp \
914         chsize \
915         clone \
916         ecvt \
917         finite \
918         fpclass \
919         ftruncate \
920         ftruncate64 \
921         getnetbyaddr \
922         getnetbyname \
923         getpagesize \
924         getprotobyname \
925         getprotobynumber \
926         getpwuid \
927         getservbyport \
928         getsockopt \
929         inet_network \
930         lseek64 \
931         lstat \
932         memmove \
933         mkstemp \
934         mmap \
935         pclose \
936         popen \
937         pread \
938         pwrite \
939         rfork \
940         select \
941         sendmsg \
942         settimeofday \
943         sigaltstack \
944         snprintf \
945         statfs \
946         strcasecmp \
947         strerror \
948         strncasecmp \
949         tcgetattr \
950         timegm \
951         usleep \
952         vfscanf \
953         wait4 \
954         waitpid \
957 dnl **** Check for header files ****
959 AC_CHECK_HEADERS(\
960         arpa/inet.h \
961         arpa/nameser.h \
962         cups/cups.h \
963         direct.h \
964         elf.h \
965         float.h \
966         ieeefp.h \
967         io.h \
968         libio.h \
969         libutil.h \
970         link.h \
971         linux/cdrom.h \
972         linux/hdreg.h \
973         linux/input.h \
974         linux/joystick.h \
975         linux/major.h \
976         linux/param.h \
977         linux/serial.h \
978         linux/ucdrom.h \
979         netdb.h \
980         netinet/in.h \
981         netinet/in_systm.h \
982         netinet/tcp.h \
983         pty.h \
984         pwd.h \
985         sched.h \
986         scsi/sg.h \
987         socket.h \
988         stdint.h \
989         strings.h \
990         sys/cdio.h \
991         sys/errno.h \
992         sys/file.h \
993         sys/filio.h \
994         sys/inttypes.h \
995         sys/ioctl.h \
996         sys/ipc.h \
997         sys/link.h \
998         sys/lwp.h \
999         sys/mman.h \
1000         sys/modem.h \
1001         sys/msg.h \
1002         sys/param.h \
1003         sys/poll.h \
1004         sys/ptrace.h \
1005         sys/reg.h \
1006         sys/shm.h \
1007         sys/signal.h \
1008         sys/socket.h \
1009         sys/sockio.h \
1010         sys/statfs.h \
1011         sys/strtio.h \
1012         sys/syscall.h \
1013         sys/sysctl.h \
1014         sys/time.h \
1015         sys/times.h \
1016         sys/uio.h \
1017         sys/un.h \
1018         sys/v86.h \
1019         sys/v86intr.h \
1020         sys/vfs.h \
1021         sys/vm86.h \
1022         sys/wait.h \
1023         syscall.h \
1024         termios.h \
1025         unistd.h \
1026         utime.h \
1028 AC_HEADER_STAT()
1030 dnl **** Checks for headers that depend on other ones ****
1032 AC_CHECK_HEADERS(sys/mount.h sys/user.h,,,
1033     [#include <sys/types.h>
1034      #if HAVE_SYS_PARAM_H
1035      # include <sys/param.h>
1036      #endif])
1038 AC_CHECK_HEADERS(net/if.h,,,
1039     [#include <sys/types.h>
1040      #if HAVE_SYS_SOCKET_H
1041      # include <sys/socket.h>
1042      #endif])
1044 AC_CHECK_HEADERS(netinet/ip.h,,,
1045     [#include <sys/types.h>
1046      #if HAVE_SYS_SOCKET_H
1047      # include <sys/socket.h>
1048      #endif
1049      #if HAVE_NETINET_IN_SYSTM_H
1050      # include <netinet/in_systm.h>
1051      #endif])
1053 AC_CHECK_HEADERS(resolv.h,,,
1054     [#include <sys/types.h>
1055      #if HAVE_SYS_SOCKET_H
1056      # include <sys/socket.h>
1057      #endif])
1059 AC_CHECK_HEADERS(ucontext.h,,,[#include <signal.h>])
1061 dnl **** Check for types ****
1063 AC_C_CONST
1064 AC_C_INLINE
1065 AC_CHECK_TYPES([mode_t, off_t, pid_t, size_t, ssize_t])
1066 AC_CHECK_SIZEOF(long long,0)
1068 AC_CACHE_CHECK([whether linux/input.h is for real],
1069         wine_cv_linux_input_h,
1070         AC_TRY_COMPILE([
1071             #include <linux/input.h>
1072         ] , [
1073             int foo = EVIOCGBIT(EV_ABS,42);
1074             int bar = BTN_PINKIE;
1075             int fortytwo = 42;
1076         ],
1077         wine_cv_linux_input_h=yes,
1078         wine_cv_linux_input_h=no,
1079         no
1080         )
1081     )
1082     if test "$wine_cv_linux_input_h" = "yes"
1083     then
1084         AC_DEFINE(HAVE_CORRECT_LINUXINPUT_H, 1,
1085                   [Define if we have linux/input.h AND it contains the INPUT event API])
1086     fi
1089 AC_CACHE_CHECK([whether we can use re-entrant gethostbyname_r Linux style],
1090         wine_cv_linux_gethostbyname_r_6,
1091         AC_TRY_COMPILE([
1092 #include <netdb.h>
1093         ], [
1094     char *name=NULL;
1095     struct hostent he;
1096     struct hostent *result;
1097     char *buf=NULL;
1098     int bufsize=0;
1099     int res,errnr;
1100     char *addr=NULL;
1101     int addrlen=0;
1102     int addrtype=0;
1103     res=gethostbyname_r(name,&he,buf,bufsize,&result,&errnr);
1104     res=gethostbyaddr_r(addr, addrlen, addrtype,&he,buf,bufsize,&result,&errnr);
1105     ],
1106         wine_cv_linux_gethostbyname_r_6=yes,
1107         wine_cv_linux_gethostbyname_r_6=no
1108         )
1109    )
1110    if test "$wine_cv_linux_gethostbyname_r_6" = "yes"
1111    then
1112       AC_DEFINE(HAVE_LINUX_GETHOSTBYNAME_R_6, 1,
1113                 [Define if Linux-style gethostbyname_r and gethostbyaddr_r are available])
1114    fi
1116 if test "$ac_cv_header_linux_joystick_h" = "yes"
1117 then
1118    AC_CACHE_CHECK([whether linux/joystick.h uses the Linux 2.2+ API],
1119         wine_cv_linux_joystick_22_api,
1120         AC_TRY_COMPILE([
1121         #include <sys/ioctl.h>
1122         #include <linux/joystick.h>
1124         struct js_event blub;
1125         #if !defined(JS_EVENT_AXIS) || !defined(JS_EVENT_BUTTON)
1126         #error "no 2.2 header"
1127         #endif
1128         ],/*empty*/,
1129         wine_cv_linux_joystick_22_api=yes,
1130         wine_cv_linux_joystick_22_api=no,
1131         wine_cv_linux_joystick_22_api=no
1132         )
1133    )
1134    if test "$wine_cv_linux_joystick_22_api" = "yes"
1135    then
1136       AC_DEFINE(HAVE_LINUX_22_JOYSTICK_API, 1,
1137                 [Define if <linux/joystick.h> defines the Linux 2.2 joystick API])
1138    fi
1141 dnl **** statfs checks ****
1143 if test "$ac_cv_header_sys_vfs_h" = "yes"
1144 then
1145     AC_CACHE_CHECK( [whether sys/vfs.h defines statfs],
1146                     wine_cv_sys_vfs_has_statfs,
1147         AC_TRY_COMPILE([
1148         #include <sys/types.h>
1149         #ifdef HAVE_SYS_PARAM_H
1150         # include <sys/param.h>
1151         #endif
1152         #include <sys/vfs.h>
1153         ],[
1154                 struct statfs stfs;
1156                 memset(&stfs,0,sizeof(stfs));
1157         ],wine_cv_sys_vfs_has_statfs=yes,wine_cv_sys_vfs_has_statfs=no
1158         )
1159     )
1160     if test "$wine_cv_sys_vfs_has_statfs" = "yes"
1161     then
1162       AC_DEFINE(STATFS_DEFINED_BY_SYS_VFS, 1,
1163                 [Define if the struct statfs is defined by <sys/vfs.h>])
1164     fi
1167 if test "$ac_cv_header_sys_statfs_h" = "yes"
1168 then
1169     AC_CACHE_CHECK( [whether sys/statfs.h defines statfs],
1170                     wine_cv_sys_statfs_has_statfs,
1171         AC_TRY_COMPILE([
1172         #include <sys/types.h>
1173         #ifdef HAVE_SYS_PARAM_H
1174         # include <sys/param.h>
1175         #endif
1176         #include <sys/statfs.h>
1177         ],[
1178                 struct statfs stfs;
1179         ],wine_cv_sys_statfs_has_statfs=yes,wine_cv_sys_statfs_has_statfs=no
1180         )
1181     )
1182     if test "$wine_cv_sys_statfs_has_statfs" = "yes"
1183     then
1184       AC_DEFINE(STATFS_DEFINED_BY_SYS_STATFS, 1,
1185                 [Define if the struct statfs is defined by <sys/statfs.h>])
1186     fi
1189 if test "$ac_cv_header_sys_mount_h" = "yes"
1190 then
1191     AC_CACHE_CHECK( [whether sys/mount.h defines statfs],
1192                     wine_cv_sys_mount_has_statfs,
1193         AC_TRY_COMPILE([
1194         #include <sys/types.h>
1195         #ifdef HAVE_SYS_PARAM_H
1196         # include <sys/param.h>
1197         #endif
1198         #include <sys/mount.h>
1199         ],[
1200                 struct statfs stfs;
1201         ],wine_cv_sys_mount_has_statfs=yes,wine_cv_sys_mount_has_statfs=no
1202         )
1203     )
1204     if test "$wine_cv_sys_mount_has_statfs" = "yes"
1205     then
1206       AC_DEFINE(STATFS_DEFINED_BY_SYS_MOUNT, 1,
1207                 [Define if the struct statfs is defined by <sys/mount.h>])
1208     fi
1211 dnl **** FIXME: what about mixed cases, where we need two of them? ***
1213 WINE_CHECK_STRUCT_MEMBER(statfs,f_bfree,
1214 [#include <sys/types.h>
1215 #ifdef HAVE_SYS_PARAM_H
1216 # include <sys/param.h>
1217 #endif
1218 #ifdef STATFS_DEFINED_BY_SYS_MOUNT
1219 # include <sys/mount.h>
1220 #else
1221 # ifdef STATFS_DEFINED_BY_SYS_VFS
1222 #  include <sys/vfs.h>
1223 # else
1224 #  ifdef STATFS_DEFINED_BY_SYS_STATFS
1225 #   include <sys/statfs.h>
1226 #  endif
1227 # endif
1228 #endif],
1229     [AC_DEFINE(STATFS_HAS_BFREE, 1, [Define if the struct statfs has the member bfree])])
1231 WINE_CHECK_STRUCT_MEMBER(statfs,f_bavail,
1232 [#include <sys/types.h>
1233 #ifdef HAVE_SYS_PARAM_H
1234 # include <sys/param.h>
1235 #endif
1236 #ifdef STATFS_DEFINED_BY_SYS_MOUNT
1237 # include <sys/mount.h>
1238 #else
1239 # ifdef STATFS_DEFINED_BY_SYS_VFS
1240 #  include <sys/vfs.h>
1241 # else
1242 #  ifdef STATFS_DEFINED_BY_SYS_STATFS
1243 #   include <sys/statfs.h>
1244 #  endif
1245 # endif
1246 #endif],
1247     [AC_DEFINE(STATFS_HAS_BAVAIL, 1, [Define if the struct statfs has the member bavail])])
1249 dnl Check for file descriptor passing with msg_accrights
1250 WINE_CHECK_STRUCT_MEMBER(msghdr,msg_accrights,
1251 [#include <sys/types.h>
1252 #ifdef HAVE_SYS_SOCKET_H
1253 # include <sys/socket.h>
1254 #endif],
1255     [AC_DEFINE(HAVE_MSGHDR_ACCRIGHTS, 1, [Define if struct msghdr contains msg_accrights])])
1257 dnl Check for the sa_len member in struct sockaddr
1258 WINE_CHECK_STRUCT_MEMBER(sockaddr,sa_len,
1259 [#include <sys/types.h>
1260 #ifdef HAVE_SYS_SOCKET_H
1261 # include <sys/socket.h>
1262 #endif],
1263     [AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if struct sockaddr contains sa_len])])
1265 dnl Check for the sun_len member in struct sockaddr_un
1266 WINE_CHECK_STRUCT_MEMBER(sockaddr_un,sun_len,
1267 [#include <sys/types.h>
1268 #ifdef HAVE_SYS_SOCKET_H
1269 # include <sys/socket.h>
1270 #endif
1271 #ifdef HAVE_SYS_UN_H
1272 # include <sys/un.h>
1273 #endif],
1274     [AC_DEFINE(HAVE_SOCKADDR_SUN_LEN, 1, [Define if struct sockaddr_un contains sun_len])])
1276 dnl *** check for the need to define __i386__
1278 case $host_cpu in
1279   *i[3456789]86* )
1280     AC_CACHE_CHECK([whether we need to define __i386__],ac_cv_cpp_def_i386,
1281       AC_EGREP_CPP(yes,[#ifndef __i386__
1283 #endif],
1284  ac_cv_cpp_def_i386="yes", ac_cv_cpp_def_i386="no"))
1285     ;;
1286 esac
1287 if test "$ac_cv_cpp_def_i386" = "yes"
1288 then
1289     CFLAGS="$CFLAGS -D__i386__"
1290     LINTFLAGS="$LINTFLAGS -D__i386__"
1293 dnl *** check for the need to define __sparc__
1295 case $host_cpu in
1296   *sparc* )
1297     AC_CACHE_CHECK([whether we need to define __sparc__],ac_cv_cpp_def_sparc,
1298       AC_EGREP_CPP(yes,[#ifndef __sparc__
1300 #endif],
1301  ac_cv_cpp_def_sparc="yes", ac_cv_cpp_def_sparc="no"))
1302     ;;
1303 esac
1304 if test "$ac_cv_cpp_def_sparc" = "yes"
1305 then
1306     CFLAGS="$CFLAGS -D__sparc__"
1307     LINTFLAGS="$LINTFLAGS -D__sparc__"
1310 dnl *** check for the need to define __sun__
1312 case $host_vendor in
1313   *sun* )
1314     AC_CACHE_CHECK([whether we need to define __sun__],ac_cv_cpp_def_sun,
1315       AC_EGREP_CPP(yes,[#ifndef __sun__
1317 #endif],
1318  ac_cv_cpp_def_sun="yes", ac_cv_cpp_def_sun="no"))
1319     ;;
1320 esac
1321 if test "$ac_cv_cpp_def_sun" = "yes"
1322 then
1323     CFLAGS="$CFLAGS -D__sun__"
1324     LINTFLAGS="$LINTFLAGS -D__sun__"
1327 dnl **** Generate output files ****
1329 AH_TOP([#define __WINE_CONFIG_H])
1331 WINE_CONFIG_EXTRA_DIR(controls)
1332 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/d3ddevice)
1333 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dclipper)
1334 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/ddraw)
1335 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/direct3d)
1336 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dpalette)
1337 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dsurface)
1338 WINE_CONFIG_EXTRA_DIR(dlls/dinput/joystick)
1339 WINE_CONFIG_EXTRA_DIR(dlls/dinput/keyboard)
1340 WINE_CONFIG_EXTRA_DIR(dlls/dinput/mouse)
1341 WINE_CONFIG_EXTRA_DIR(dlls/gdi/enhmfdrv)
1342 WINE_CONFIG_EXTRA_DIR(dlls/gdi/mfdrv)
1343 WINE_CONFIG_EXTRA_DIR(dlls/gdi/win16drv)
1344 WINE_CONFIG_EXTRA_DIR(dlls/kernel/messages)
1345 WINE_CONFIG_EXTRA_DIR(dlls/user/dde)
1346 WINE_CONFIG_EXTRA_DIR(dlls/user/resources)
1347 WINE_CONFIG_EXTRA_DIR(dlls/wineps/data)
1348 WINE_CONFIG_EXTRA_DIR(files)
1349 WINE_CONFIG_EXTRA_DIR(graphics)
1350 WINE_CONFIG_EXTRA_DIR(graphics/x11drv)
1351 WINE_CONFIG_EXTRA_DIR(if1632)
1352 WINE_CONFIG_EXTRA_DIR(include/wine)
1353 WINE_CONFIG_EXTRA_DIR(loader)
1354 WINE_CONFIG_EXTRA_DIR(loader/ne)
1355 WINE_CONFIG_EXTRA_DIR(memory)
1356 WINE_CONFIG_EXTRA_DIR(misc)
1357 WINE_CONFIG_EXTRA_DIR(msdos)
1358 WINE_CONFIG_EXTRA_DIR(objects)
1359 WINE_CONFIG_EXTRA_DIR(programs/regapi/tests)
1360 WINE_CONFIG_EXTRA_DIR(programs/regedit/tests)
1361 WINE_CONFIG_EXTRA_DIR(relay32)
1362 WINE_CONFIG_EXTRA_DIR(scheduler)
1363 WINE_CONFIG_EXTRA_DIR(win32)
1364 WINE_CONFIG_EXTRA_DIR(windows)
1366 MAKE_RULES=Make.rules
1367 AC_SUBST_FILE(MAKE_RULES)
1369 MAKE_DLL_RULES=dlls/Makedll.rules
1370 AC_SUBST_FILE(MAKE_DLL_RULES)
1372 MAKE_TEST_RULES=dlls/Maketest.rules
1373 AC_SUBST_FILE(MAKE_TEST_RULES)
1375 MAKE_PROG_RULES=programs/Makeprog.rules
1376 AC_SUBST_FILE(MAKE_PROG_RULES)
1378 AC_CONFIG_FILES([
1379 Make.rules
1380 dlls/Makedll.rules
1381 dlls/Maketest.rules
1382 programs/Makeprog.rules
1383 Makefile
1384 dlls/Makefile
1385 dlls/advapi32/Makefile
1386 dlls/advapi32/tests/Makefile
1387 dlls/avicap32/Makefile
1388 dlls/avifil32/Makefile
1389 dlls/comcat/Makefile
1390 dlls/comctl32/Makefile
1391 dlls/commdlg/Makefile
1392 dlls/crtdll/Makefile
1393 dlls/crypt32/Makefile
1394 dlls/d3d8/Makefile
1395 dlls/dciman32/Makefile
1396 dlls/ddraw/Makefile
1397 dlls/devenum/Makefile
1398 dlls/dinput/Makefile
1399 dlls/dinput8/Makefile
1400 dlls/dplay/Makefile
1401 dlls/dplayx/Makefile
1402 dlls/dsound/Makefile
1403 dlls/gdi/Makefile
1404 dlls/gdi/tests/Makefile
1405 dlls/glu32/Makefile
1406 dlls/icmp/Makefile
1407 dlls/imagehlp/Makefile
1408 dlls/imm32/Makefile
1409 dlls/kernel/Makefile
1410 dlls/kernel/tests/Makefile
1411 dlls/lzexpand/Makefile
1412 dlls/mapi32/Makefile
1413 dlls/mpr/Makefile
1414 dlls/msacm/Makefile
1415 dlls/msacm/imaadp32/Makefile
1416 dlls/msacm/msadp32/Makefile
1417 dlls/msacm/msg711/Makefile
1418 dlls/msacm/winemp3/Makefile
1419 dlls/msdmo/Makefile
1420 dlls/msimg32/Makefile
1421 dlls/msisys/Makefile
1422 dlls/msnet32/Makefile
1423 dlls/msvcrt/Makefile
1424 dlls/msvcrt/tests/Makefile
1425 dlls/msvcrt20/Makefile
1426 dlls/msvideo/Makefile
1427 dlls/msvideo/msrle32/Makefile
1428 dlls/netapi32/Makefile
1429 dlls/netapi32/tests/Makefile
1430 dlls/ntdll/Makefile
1431 dlls/ntdll/tests/Makefile
1432 dlls/odbc32/Makefile
1433 dlls/ole32/Makefile
1434 dlls/oleaut32/Makefile
1435 dlls/oleaut32/tests/Makefile
1436 dlls/olecli/Makefile
1437 dlls/oledlg/Makefile
1438 dlls/olepro32/Makefile
1439 dlls/olesvr/Makefile
1440 dlls/opengl32/Makefile
1441 dlls/psapi/Makefile
1442 dlls/qcap/Makefile
1443 dlls/quartz/Makefile
1444 dlls/rasapi32/Makefile
1445 dlls/richedit/Makefile
1446 dlls/rpcrt4/Makefile
1447 dlls/rpcrt4/tests/Makefile
1448 dlls/serialui/Makefile
1449 dlls/setupapi/Makefile
1450 dlls/shdocvw/Makefile
1451 dlls/shell32/Makefile
1452 dlls/shell32/tests/Makefile
1453 dlls/shfolder/Makefile
1454 dlls/shlwapi/Makefile
1455 dlls/shlwapi/tests/Makefile
1456 dlls/snmpapi/Makefile
1457 dlls/sti/Makefile
1458 dlls/tapi32/Makefile
1459 dlls/ttydrv/Makefile
1460 dlls/twain/Makefile
1461 dlls/url/Makefile
1462 dlls/urlmon/Makefile
1463 dlls/urlmon/tests/Makefile
1464 dlls/user/Makefile
1465 dlls/user/tests/Makefile
1466 dlls/version/Makefile
1467 dlls/win32s/Makefile
1468 dlls/winaspi/Makefile
1469 dlls/winedos/Makefile
1470 dlls/wineps/Makefile
1471 dlls/wininet/Makefile
1472 dlls/wininet/tests/Makefile
1473 dlls/winmm/Makefile
1474 dlls/winmm/joystick/Makefile
1475 dlls/winmm/mcianim/Makefile
1476 dlls/winmm/mciavi/Makefile
1477 dlls/winmm/mcicda/Makefile
1478 dlls/winmm/mciseq/Makefile
1479 dlls/winmm/mciwave/Makefile
1480 dlls/winmm/midimap/Makefile
1481 dlls/winmm/tests/Makefile
1482 dlls/winmm/wavemap/Makefile
1483 dlls/winmm/winealsa/Makefile
1484 dlls/winmm/winearts/Makefile
1485 dlls/winmm/wineaudioio/Makefile
1486 dlls/winmm/winenas/Makefile
1487 dlls/winmm/wineoss/Makefile
1488 dlls/winnls/Makefile
1489 dlls/winsock/Makefile
1490 dlls/winsock/tests/Makefile
1491 dlls/winspool/Makefile
1492 dlls/wintrust/Makefile
1493 dlls/wow32/Makefile
1494 dlls/wsock32/Makefile
1495 dlls/x11drv/Makefile
1496 documentation/Makefile
1497 include/Makefile
1498 library/Makefile
1499 miscemu/Makefile
1500 ole/Makefile
1501 programs/Makefile
1502 programs/avitools/Makefile
1503 programs/clock/Makefile
1504 programs/cmdlgtst/Makefile
1505 programs/control/Makefile
1506 programs/expand/Makefile
1507 programs/notepad/Makefile
1508 programs/osversioncheck/Makefile
1509 programs/progman/Makefile
1510 programs/regapi/Makefile
1511 programs/regedit/Makefile
1512 programs/regsvr32/Makefile
1513 programs/regtest/Makefile
1514 programs/rundll32/Makefile
1515 programs/uninstaller/Makefile
1516 programs/view/Makefile
1517 programs/wcmd/Makefile
1518 programs/wineconsole/Makefile
1519 programs/winedbg/Makefile
1520 programs/winefile/Makefile
1521 programs/winemine/Makefile
1522 programs/winepath/Makefile
1523 programs/winhelp/Makefile
1524 programs/winver/Makefile
1525 server/Makefile
1526 tools/Makefile
1527 tools/widl/Makefile
1528 tools/winapi/Makefile
1529 tools/winebuild/Makefile
1530 tools/winedump/Makefile
1531 tools/wmc/Makefile
1532 tools/wpp/Makefile
1533 tools/wrc/Makefile
1534 unicode/Makefile])
1536 AC_OUTPUT
1538 if test "$have_x" = "no"
1539 then
1540   echo
1541   echo "*** Warning: X development files not found. Wine will be built without"
1542   echo "*** X support, which currently does not work, and would probably not be"
1543   echo "*** what you want anyway. You will need to install devel packages of"
1544   echo "*** Xlib/Xfree86 at the very least."
1547 if test "$ac_cv_lib_ncurses_resizeterm" = "no" -a "$ac_cv_lib_ncurses_waddch" = "yes"
1548 then
1549   echo
1550   echo "*** Warning: resizeterm not found in ncurses. Wine will be built without"
1551   echo "*** terminal resize support. Consider upgrading ncurses."
1554 if test "$wine_cv_libc_reentrant" = "no"
1555 then
1556   echo
1557   echo "*** Warning: non-reentrant libc detected. Wine will be built without"
1558   echo "*** threading support. Consider upgrading libc to a more recent"
1559   echo "*** reentrant version of libc."
1562 if test "$have_x" = "yes" -a "$wine_cv_x_reentrant" != "yes"
1563 then
1564   echo
1565   echo "*** Warning: non-reentrant X11 library detected. Multi-threaded"
1566   echo "*** applications won't work properly. You should upgrade your X11 library."
1569 if test "$wine_cv_opengl_version_OK" = "no"
1570 then
1571   echo
1572   echo "*** Warning: old Mesa headers detected. Wine will be built without Direct3D"
1573   echo "*** support. Consider upgrading your Mesa libraries (http://www.mesa3d.org/)."
1576 if test "$wine_cv_opengl_version_threadsafe" = "yes" -a "x$enable_opengl" = "x"
1577 then
1578   echo
1579   echo "*** Warning: the OpenGL version you have installed relies on libpthread for"
1580   echo "*** thread-safety. To prevent crashes, OpenGL support has been disabled."
1581   echo "*** A fix for glibc 2.1.3 that seems to work is included in this version of Wine,"
1582   echo "*** start configure with '--enable-opengl' to force OpenGL support."
1585 if test "$wine_cv_opengl_version_threadsafe" = "yes" -a "x$enable_opengl" = "xyes"
1586 then
1587   echo
1588   echo "*** Warning: you explicitly linked in a thread-safe OpenGL version. If you"
1589   echo "*** experience unusual crashes on DirectDraw games, try first to disable OpenGL"
1590   echo "*** support before reporting bugs."
1593 if test "$wine_cv_msg_freetype" = "yes"
1594 then
1595   echo
1596   echo "*** Note: Your system appears to have the FreeType 2 runtime libraries"
1597   echo "*** installed, but 'freetype-config' is not in your PATH. Install the"
1598   echo "*** freetype-devel package (or its equivalent on your distribution) to"
1599   echo "*** enable Wine to use TrueType fonts."
1602 echo
1603 echo "Configure finished.  Do 'make depend && make' to compile Wine."
1604 echo
1606 dnl Local Variables:
1607 dnl comment-start: "dnl "
1608 dnl comment-end: ""
1609 dnl comment-start-skip: "\\bdnl\\b\\s *"
1610 dnl compile-command: "autoconf"
1611 dnl End: