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