Fixed some multi-sound card related bugs.
[wine/hacks.git] / configure.ac
blobee10f788e0b8b476ddb64bea823b83b99d8ef71f
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     CPPFLAGS="$ac_save_CPPFLAGS"
330     XFILES='$(XFILES)'
331 else
332     XLIB=""
333     X_CFLAGS=""
334     X_LIBS=""
337 dnl **** Check which curses lib to use ***
338 CURSESLIBS=""
339 if test "x$with_curses" != "xno"
340 then
341     AC_CHECK_HEADERS(ncurses.h,
342         [AC_CHECK_LIB(ncurses,waddch,
343             [AC_DEFINE(HAVE_LIBNCURSES, 1, [Define if you have the ncurses library (-lncurses)])
344              CURSESLIBS="-lncurses"],
345              [AC_CHECK_HEADERS(curses.h,
346                  [AC_CHECK_LIB(curses,waddch,
347                      [AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have the curses library (-lcurses)])
348                       CURSESLIBS="-lcurses"])])])])
349     saved_libs="$LIBS"
350     LIBS="$CURSESLIBS $LIBS"
351     AC_CHECK_FUNCS(getbkgd resizeterm)
352     LIBS="$saved_libs"
354 AC_SUBST(CURSESLIBS)
356 CUPSLIBS=""
357 dnl **** Check for CUPS ****
358 wine_cv_warn_cups_h=no
359 AC_CHECK_LIB(cups,cupsGetPPD,
360         [AC_CHECK_HEADER(cups/cups.h,
361             [AC_DEFINE(HAVE_CUPS, 1, [Define if we have CUPS])
362             CUPSLIBS="-lcups"],
363             wine_cv_warn_cups_h=yes)]
365 AC_SUBST(CUPSLIBS)
367 dnl **** Check for SANE ****
368 AC_CHECK_PROG(sane_devel,sane-config,sane-config,no)
369 if test "$sane_devel" = "no"
370 then
371     SANELIBS=""
372     SANEINCL=""
373 else
374     SANELIBS="`$sane_devel --libs`"
375     SANEINCL="`$sane_devel --cflags`"
376     ac_save_CPPFLAGS="$CPPFLAGS"
377     ac_save_LIBS="$LIBS"
378     CPPFLAGS="$CPPFLAGS $SANEINCL"
379     LIBS="$LIBS $SANELIBS"
380     AC_CHECK_HEADER(sane/sane.h,
381                     [AC_CHECK_LIB(sane,sane_open,
382                                   [AC_DEFINE(HAVE_SANE, 1, [Define if we have SANE development environment])],
383                                   [SANELIBS=""
384                                   SANEINCL=""])],
385                     [SANELIBS=""
386                     SANEINCL=""])
387     LIBS="$ac_save_LIBS"
388     CPPFLAGS="$ac_save_CPPFLAGS"
390 AC_SUBST(SANELIBS)
391 AC_SUBST(SANEINCL)
393 dnl **** Check for FreeType 2 ****
394 AC_CHECK_LIB(freetype,FT_Init_FreeType,ft_lib=yes,ft_lib=no,$X_LIBS)
395 if test "$ft_lib" = "no"
396 then
397     FREETYPEINCL=""
398     wine_cv_msg_freetype=no
399 else
400     AC_CHECK_PROG(ft_devel,freetype-config,freetype-config,no)
401     if test "$ft_devel" = "no"
402     then
403         AC_CHECK_PROG(ft_devel2,freetype2-config,freetype2-config,no)
404         if test "$ft_devel2" = "freetype2-config"
405         then
406                 ft_devel=$ft_devel2
407         fi
408     fi
409     if test "$ft_devel" = "no"
410     then
411         FREETYPEINCL=""
412         wine_cv_msg_freetype=yes
413     else
414         FREETYPEINCL=`$ft_devel --cflags`
415         ac_save_CPPFLAGS="$CPPFLAGS"
416         CPPFLAGS="$FREETYPEINCL $CPPFLAGS"
417         AC_CHECK_HEADERS(freetype/freetype.h \
418                          freetype/ftglyph.h \
419                          freetype/tttables.h \
420                          freetype/ftnames.h \
421                          freetype/ftsnames.h \
422                          freetype/ttnameid.h \
423                          freetype/ftoutln.h \
424                          freetype/internal/sfnt.h)
425         AC_TRY_CPP([#include <ft2build.h>
426                     #include <freetype/fttrigon.h>],
427                     [AC_DEFINE(HAVE_FREETYPE_FTTRIGON_H, 1,
428           [Define if you have the <freetype/fttrigon.h> header file.])
429                     wine_cv_fttrigon=yes],
430                     wine_cv_fttrigon=no)
431         CPPFLAGS="$ac_save_CPPFLAGS"
432         dnl Check that we have at least freetype/freetype.h
433         if test "$ac_cv_header_freetype_freetype_h" = "yes" -a "$wine_cv_fttrigon" = "yes"
434         then
435             AC_DEFINE(HAVE_FREETYPE, 1, [Define if FreeType 2 is installed])
436             wine_cv_msg_freetype=no
437         else
438             FREETYPEINCL=""
439             wine_cv_msg_freetype=yes
440         fi
441     fi
443 AC_SUBST(FREETYPEINCL)
445 dnl **** Check for parport (currently Linux only) ****
446 AC_CACHE_CHECK([for parport header/ppdev.h], ac_cv_c_ppdev,
447  AC_TRY_COMPILE(
448    [#include <linux/ppdev.h>],
449    [ioctl (1,PPCLAIM,0)],
450    [ac_cv_c_ppdev="yes"],
451    [ac_cv_c_ppdev="no"])
453 if test "$ac_cv_c_ppdev" = "yes"
454 then
455     AC_DEFINE(HAVE_PPDEV, 1, [Define if we can use ppdev.h for parallel port access])
458 dnl **** Check for va_copy ****
459 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
460  AC_TRY_LINK(
461    [#include <stdarg.h>],
462    [va_list ap1, ap2;
463     va_copy(ap1,ap2);
464    ],
465    [ac_cv_c_va_copy="yes"],
466    [ac_cv_c_va_copy="no"])
468 if test "$ac_cv_c_va_copy" = "yes"
469 then
470     AC_DEFINE(HAVE_VA_COPY, 1, [Define if we have va_copy])
472 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
473  AC_TRY_LINK(
474    [#include <stdarg.h>],
475    [va_list ap1, ap2;
476     __va_copy(ap1,ap2);
477    ],
478    [ac_cv_c___va_copy="yes"],
479    [ac_cv_c___va_copy="no"])
481 if test "$ac_cv_c___va_copy" = "yes"
482 then
483     AC_DEFINE(HAVE___VA_COPY, 1, [Define if we have __va_copy])
486 dnl **** Check for IPX (currently Linux only) ****
487 AC_CACHE_CHECK([for GNU style IPX support], ac_cv_c_ipx_gnu,
488  AC_TRY_COMPILE(
489    [#include <sys/socket.h>
490     #include <netipx/ipx.h>],
491    [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
492    [ac_cv_c_ipx_gnu="yes"],
493    [ac_cv_c_ipx_gnu="no"])
495 if test "$ac_cv_c_ipx_gnu" = "yes"
496 then
497     AC_DEFINE(HAVE_IPX_GNU, 1, [Define if IPX should use netipx/ipx.h from libc])
500 if test "$ac_cv_c_ipx_gnu" = "no"
501 then
502  AC_CACHE_CHECK([for linux style IPX support], ac_cv_c_ipx_linux,
503   AC_TRY_COMPILE(
504     [#include <sys/socket.h>
505      #include <asm/types.h>
506      #include <linux/ipx.h>],
507     [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
508     [ac_cv_c_ipx_linux="yes"],
509     [ac_cv_c_ipx_linux="no"])
510   )
511   if test "$ac_cv_c_ipx_linux" = "yes"
512   then
513       AC_DEFINE(HAVE_IPX_LINUX, 1, [Define if IPX includes are taken from Linux kernel])
514   fi
517 dnl **** Check for Open Sound System ****
518 AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h soundcard.h, break)
520 AC_CACHE_CHECK([for Open Sound System],
521         ac_cv_c_opensoundsystem,
522         AC_TRY_COMPILE([
523         #if defined(HAVE_SYS_SOUNDCARD_H)
524                 #include <sys/soundcard.h>
525         #elif defined(HAVE_MACHINE_SOUNDCARD_H)
526                 #include <machine/soundcard.h>
527         #elif defined(HAVE_SOUNDCARD_H)
528                 #include <soundcard.h>
529         #endif
530         ],[
532 /* check for one of the Open Sound System specific SNDCTL_ defines */
533 #if !defined(SNDCTL_DSP_STEREO)
534 #error No open sound system
535 #endif
536 ],ac_cv_c_opensoundsystem="yes",ac_cv_c_opensoundsystem="no"))
538 if test "$ac_cv_c_opensoundsystem" = "yes"
539 then
540     AC_DEFINE(HAVE_OSS, 1, [Define if you have the Open Sound system])
543 AC_CACHE_CHECK([for Open Sound System/MIDI interface],
544         ac_cv_c_opensoundsystem_midi,
545         AC_TRY_COMPILE([
546         #if defined(HAVE_SYS_SOUNDCARD_H)
547                 #include <sys/soundcard.h>
548         #elif defined(HAVE_MACHINE_SOUNDCARD_H)
549                 #include <machine/soundcard.h>
550         #elif defined(HAVE_SOUNDCARD_H)
551                 #include <soundcard.h>
552         #endif
553         ],[
555 /* check for one of the Open Sound System specific SNDCTL_SEQ defines */
556 #if !defined(SNDCTL_SEQ_SYNC)
557 #error No open sound system MIDI interface
558 #endif
559 ],ac_cv_c_opensoundsystem_midi="yes",ac_cv_c_opensoundsystem_midi="no"))
561 if test "$ac_cv_c_opensoundsystem_midi" = "yes"
562 then
563     AC_DEFINE(HAVE_OSS_MIDI, 1, [Define if you have the Open Sound system (MIDI interface)])
566 dnl **** Check for aRts Sound Server ****
567 AC_PATH_PROG(ARTSCCONFIG, artsc-config)
568 AC_CACHE_CHECK([for aRts Sound server],
569         ac_cv_c_artsserver,
570         if test x$ARTSCCONFIG = x -o x$ARTSCCONFIG = x'"$ARTSCCONFIG"';
571         then
572             ac_cv_c_artsserver=no
573         else
574             ARTSC_CFLAGS=`$ARTSCCONFIG --cflags`
575             ARTSC_LIBS=`$ARTSCCONFIG --libs`
576             ac_cv_c_artsserver=no
577             save_CFLAGS="$CFLAGS"
578             CFLAGS="$CFLAGS $ARTSC_CFLAGS"
579             AC_TRY_COMPILE([
580              #include <artsc.h>
581             ],[
582              arts_stream_t stream;
583             ],[
584             ac_cv_c_artsserver=yes
585             ])
586             CFLAGS="$save_CFLAGS"
587         fi)
589 if test "$ac_cv_c_artsserver" = "yes"
590 then
591     AC_SUBST(ARTSLIBS, $ARTSC_LIBS)
592     AC_SUBST(ARTSINCL, $ARTSC_CFLAGS)
594     AC_DEFINE(HAVE_ARTS, 1, [Define if you have ARTS sound server])
597 dnl **** Check for ALSA ****
598 AC_SUBST(ALSALIBS,"")
599 AC_CHECK_HEADERS(alsa/asoundlib.h sys/asoundlib.h, break)
600 if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes"
601 then
602     AC_CHECK_LIB(asound,snd_pcm_open,
603         AC_DEFINE(HAVE_ALSA,1,[Define if you have ALSA including devel headers])
604         ALSALIBS="-lasound")
607 dnl **** Check for NAS ****
608 AC_SUBST(NASLIBS,"")
609 AC_CHECK_HEADERS(audio/audiolib.h,
610      [AC_CHECK_HEADERS(audio/soundlib.h,,,[#include <audio/audiolib.h>])
611       AC_CHECK_LIB(audio,AuCreateFlow,
612                    [AC_DEFINE(HAVE_NAS,1,[Define if you have NAS including devel headers])
613                     NASLIBS="-laudio -lXt $X_LIBS -lXext -lX11 $X_EXTRA_LIBS"],,
614                    [-lXt $X_LIBS -lXext -lX11 $X_EXTRA_LIBS])])
616 dnl **** Check for libaudioio (which can be used to get solaris audio support) ****
618 AC_SUBST(AUDIOIOLIBS,"")
619 AC_CHECK_HEADERS(libaudioio.h,
620     [AC_CHECK_LIB(audioio,AudioIOGetVersion,
621                   [AUDIOIOLIBS="-laudioio"
622                    AC_DEFINE(HAVE_LIBAUDIOIO, 1, [Define if you have libaudioIO])])])
624 dnl **** Check for broken glibc mmap64 ****
626 AC_CACHE_CHECK( [whether mmap64 works defined as mmap], ac_cv_mmap64_works,
627         AC_TRY_RUN([
628                 #define _FILE_OFFSET_BITS 64
629                 #include <stdio.h>
630                 #include <unistd.h>
631                 #include <fcntl.h>
632                 #include <sys/mman.h>
633                 #include <errno.h>
635                 int main(int argc,char **argv) {
636                         int fd = open("conftest.map",O_CREAT|O_RDWR,0600);
637                         if (fd == -1) exit(1);
639                         unlink("conftest.map");
641                         write(fd,"test",4);
643                         if ((-1 == mmap(0,4,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0)) &&
644                             (errno == EINVAL)
645                         ) {
646                                 exit(1);
647                         }
648                         close(fd);
649                         fprintf(stderr,"success!\n");
650                         exit(0);
651                 }
653         ],
654     ac_cv_mmap64_works="yes",
655     ac_cv_mmap64_works="no",
656     ac_cv_mmap64_works="no") )
658 if test "$ac_cv_mmap64_works" = "yes"
659 then
660     AC_DEFINE(_FILE_OFFSET_BITS, 64, [Set this to 64 to enable 64-bit file support on Linux])
663 dnl **** Check for gcc strength-reduce bug ****
665 if test "x${GCC}" = "xyes"
666 then
667   CFLAGS="$CFLAGS -Wall"
668   AC_CACHE_CHECK( [for gcc strength-reduce bug], ac_cv_c_gcc_strength_bug,
669                   AC_TRY_RUN([
670 int     L[[4]] = {0,1,2,3};
671 int main(void) {
672   static int Array[[3]];
673   unsigned int B = 3;
674   int i;
675   for(i=0; i<B; i++) Array[[i]] = i - 3;
676   for(i=0; i<4 - 1; i++) L[[i]] = L[[i + 1]];
677   L[[i]] = 4;
679   exit( Array[[1]] != -2 || L[[2]] != 3);
681     ac_cv_c_gcc_strength_bug="no",
682     ac_cv_c_gcc_strength_bug="yes",
683     ac_cv_c_gcc_strength_bug="yes") )
684   if test "$ac_cv_c_gcc_strength_bug" = "yes"
685   then
686     CFLAGS="$CFLAGS -fno-strength-reduce"
687   fi
689   dnl Check for -mpreferred-stack-boundary
690   AC_CACHE_CHECK([for gcc -mpreferred-stack-boundary=2 support], ac_cv_c_gcc_stack_boundary,
691       [WINE_TRY_CFLAGS([-mpreferred-stack-boundary=2],
692                       ac_cv_c_gcc_stack_boundary="yes",ac_cv_c_gcc_stack_boundary="no")])
693   if test "$ac_cv_c_gcc_stack_boundary" = "yes"
694   then
695     CFLAGS="$CFLAGS -mpreferred-stack-boundary=2"
696   fi
699 dnl **** Check how to define a function in assembly code ****
701 AC_CACHE_CHECK([how to define a function in assembly code], ac_cv_asm_func_def,
702   WINE_TRY_ASM_LINK(
703       ["\t.globl _ac_test\n\t.def _ac_test; .scl 2; .type 32; .endef\n_ac_test:\t.long 0"],,,
704       ac_cv_asm_func_def=".def",
705     [WINE_TRY_ASM_LINK(["\t.globl _ac_test\n\t.type _ac_test,@function\n_ac_test:\t.long 0"],,,
706       ac_cv_asm_func_def=".type @function",
707     [WINE_TRY_ASM_LINK(["\t.globl _ac_test\n\t.type _ac_test,2\n_ac_test:\t.long 0"],,,
708       ac_cv_asm_func_def=".type 2",
709       ac_cv_asm_func_def="unknown")])]))
711 AH_TEMPLATE(__ASM_FUNC,[Define to a macro to generate an assembly function directive])
712 case "$ac_cv_asm_func_def" in
713   ".def")
714      AC_DEFINE([__ASM_FUNC(name)], [".def " __ASM_NAME(name) "; .scl 2; .type 32; .endef"]) ;;
715   ".type @function")
716      AC_DEFINE([__ASM_FUNC(name)], [".type " __ASM_NAME(name) ",@function"]) ;;
717   ".type 2")
718      AC_DEFINE([__ASM_FUNC(name)], [".type " __ASM_NAME(name) ",2"]) ;;
719   *)
720      AC_DEFINE([__ASM_FUNC(name)], [""]) ;;
721 esac
723 dnl **** Check for underscore on external symbols ****
725 AC_CACHE_CHECK([whether external symbols need an underscore prefix], ac_cv_c_extern_prefix,
726     WINE_TRY_ASM_LINK([".globl _ac_test\n_ac_test:\t.long 0"],
727                       [extern int ac_test;],
728                       [if (ac_test) return 1],
729                       ac_cv_c_extern_prefix="yes",ac_cv_c_extern_prefix="no"))
731 AH_TEMPLATE(__ASM_NAME,[Define to a macro to generate an assembly name from a C symbol])
732 if test "$ac_cv_c_extern_prefix" = "yes"
733 then
734   AC_DEFINE([__ASM_NAME(name)], ["_" name])
735 else
736   AC_DEFINE([__ASM_NAME(name)], [name])
739 dnl **** Check whether stdcall symbols need to be decorated ****
741 AC_CACHE_CHECK([whether stdcall symbols need to be decorated], ac_cv_c_stdcall_decoration,
742     WINE_TRY_ASM_LINK(["\t.globl _ac_test@0\n_ac_test@0:\n\t.globl ac_test@0\nac_test@0:"],
743                       [extern void __attribute__((__stdcall__)) ac_test(void);],
744                       [ac_test()],
745                       ac_cv_c_stdcall_decoration="yes",ac_cv_c_stdcall_decoration="no"))
746 if test "$ac_cv_c_stdcall_decoration" = "yes"
747 then
748   AC_DEFINE(NEED_STDCALL_DECORATION, 1, [Define if stdcall symbols need to be decorated])
751 dnl **** Check for .string in assembler ****
753 AC_CACHE_CHECK([whether assembler accepts .string], ac_cv_c_asm_string,
754     WINE_TRY_ASM_LINK([".data\n\t.string \"test\"\n\t.text"],,,
755                       ac_cv_c_asm_string="yes",ac_cv_c_asm_string="no"))
756 if test "$ac_cv_c_asm_string" = "yes"
757 then
758   AC_DEFINE(HAVE_ASM_STRING, 1, [Define to use .string instead of .ascii])
761 dnl **** Check for working dll ****
763 AC_SUBST(DLLEXT,"")
764 AC_SUBST(DLLFLAGS,"")
765 AC_SUBST(DLLIBS,"")
766 AC_SUBST(LDDLLFLAGS,"")
767 AC_SUBST(LDSHARED,"")
769 case $host_os in
770   cygwin*|mingw32*)
771     AC_CHECK_TOOL(DLLWRAP,dllwrap,false)
772     if test "$DLLWRAP" = "false"; then
773       LIBEXT="a"
774     else
775       dnl FIXME - check whether dllwrap works correctly...
776       LIBEXT="dll"
777     fi
778     ;;
779   *)
780     AC_CHECK_HEADERS(dlfcn.h,
781         [AC_CHECK_FUNCS(dlopen,,
782             [AC_CHECK_LIB(dl,dlopen,
783                          [AC_DEFINE(HAVE_DLOPEN,1,[Define if you have dlopen])
784                           DLLIBS="-ldl"],
785                          [LIBEXT="a"])])],
786         [LIBEXT="a"])
788     if test "$LIBEXT" = "so"
789     then
790       DLLFLAGS="-fPIC"
791       DLLEXT=".so"
792       AC_CACHE_CHECK([whether we can build a GNU style ELF dll], ac_cv_c_dll_gnuelf,
793           [WINE_TRY_CFLAGS([-fPIC -shared -Wl,-soname,conftest.so.1.0,-Bsymbolic],
794                            ac_cv_c_dll_gnuelf="yes",ac_cv_c_dll_gnuelf="no")])
795       if test "$ac_cv_c_dll_gnuelf" = "yes"
796       then
797         LDSHARED="\$(CC) -shared \$(SONAME:%=-Wl,-soname,%)"
798         LDDLLFLAGS="-Wl,-Bsymbolic"
799       else
800         AC_CACHE_CHECK(whether we can build a UnixWare (Solaris) dll, ac_cv_c_dll_unixware,
801             [WINE_TRY_CFLAGS([-fPIC -Wl,-G,-h,conftest.so.1.0,-B,symbolic],
802                              ac_cv_c_dll_unixware="yes",ac_cv_c_dll_unixware="no")])
803         if test "$ac_cv_c_dll_unixware" = "yes"
804         then
805           LDSHARED="\$(CC) -Wl,-G \$(SONAME:%=-Wl,-h,%)"
806           LDDLLFLAGS="-Wl,-B,symbolic"
807         fi
808       fi
809     fi
811     dnl Check for cross compiler to build test programs
812     AC_SUBST(CROSSTEST,"")
813     if test "$cross_compiling" = "no"
814     then
815       AC_CHECK_PROGS(CROSSCC,i586-mingw32msvc-gcc,false)
816       AC_CHECK_PROGS(DLLTOOL,i586-mingw32msvc-dlltool,false)
817       if test "$CROSSCC" != "false"; then CROSSTEST="\$(CROSSTEST)"; fi
818     fi
819     ;;
820 esac
822 if test "$LIBEXT" = "a"; then
823   AC_MSG_ERROR(
824 [could not find a way to build shared libraries.
825 It is currently not possible to build Wine without shared library
826 (.so) support to allow transparent switch between .so and .dll files.
827 If you are using Linux, you will need a newer binutils.]
831 case $build_os in
832   cygwin*|mingw32*)
833     AC_SUBST(LDPATH,"PATH=\"\$(TOOLSDIR)/library:\$(TOOLSDIR)/unicode:\$\$PATH\"") ;;
834   *)
835     AC_SUBST(LDPATH,"LD_LIBRARY_PATH=\"\$(TOOLSDIR)/library:\$(TOOLSDIR)/unicode:\$\$LD_LIBRARY_PATH\"") ;;
836 esac
838 dnl Mingw needs explicit msvcrt for linking libwine
839 AC_SUBST(CRTLIBS,"")
840 case $host_os in
841   mingw32*)
842     CRTLIBS="-lmsvcrt" ;;
843 esac
845 dnl **** Get the soname for libraries that we load dynamically ****
847 if test "$LIBEXT" = "so"
848 then
849   WINE_GET_SONAME(X11,XCreateWindow,[$X_LIBS $X_EXTRA_LIBS])
850   WINE_GET_SONAME(Xext,XextCreateExtension,[$X_LIBS -lX11 $X_EXTRA_LIBS])
851   WINE_GET_SONAME(Xrender,XRenderQueryExtension,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
852   WINE_GET_SONAME(freetype,FT_Init_FreeType,[$X_LIBS])
856 dnl **** Check for reentrant libc ****
858 wine_cv_libc_reentrant=no
859 dnl Linux style errno location
860 WINE_CHECK_ERRNO([__errno_location], [wine_cv_libc_reentrant=__errno_location],
861   dnl FreeBSD style errno location
862   WINE_CHECK_ERRNO([__error], [wine_cv_libc_reentrant=__error],
863     dnl Solaris style errno location
864     WINE_CHECK_ERRNO([___errno], [wine_cv_libc_reentrant=___errno],
865       dnl UnixWare style errno location
866       WINE_CHECK_ERRNO([__thr_errno], [wine_cv_libc_reentrant=__thr_errno],
867         dnl NetBSD style errno location
868         WINE_CHECK_ERRNO([__errno], [wine_cv_libc_reentrant=__errno])
869 ))))
871 if test "$wine_cv_libc_reentrant" != "no"
872 then
873   AC_DEFINE_UNQUOTED(ERRNO_LOCATION,$wine_cv_libc_reentrant,
874                      [Define to the name of the function returning errno for reentrant libc])
877 dnl **** Check for reentrant X libraries ****
879 dnl This may fail to determine whether X libraries are reentrant if
880 dnl AC_PATH_XTRA does not set x_libraries.
882 if test "$have_x" = "yes"
883 then
884 AC_CACHE_CHECK( [for reentrant X libraries], wine_cv_x_reentrant,
885     [libX11_check=none
886     for dir in "$x_libraries" /usr/lib /usr/local/lib /lib; do
887         if test -r $dir/libX11.so; then
888             libX11_check="-D $dir/libX11.so"
889             break
890         fi
891         if test -r $dir/libX11.a; then
892             libX11_check="$dir/libX11.a"
893             break
894         fi
895     done
896     if test "$libX11_check" != "none"; then
897         if nm $libX11_check | grep $wine_cv_libc_reentrant >/dev/null 2>&1
898         then
899             wine_cv_x_reentrant=yes
900         else
901             wine_cv_x_reentrant=no
902         fi
903     else
904         wine_cv_x_reentrant=unknown
905     fi])
908 dnl **** Check for functions ****
910 AC_FUNC_ALLOCA()
911 AC_CHECK_FUNCS(\
912         __libc_fork \
913         _lwp_create \
914         _pclose \
915         _popen \
916         _snprintf \
917         _stricmp \
918         _strnicmp \
919         chsize \
920         clone \
921         ecvt \
922         finite \
923         fpclass \
924         ftruncate \
925         ftruncate64 \
926         getnetbyaddr \
927         getnetbyname \
928         getpagesize \
929         getprotobyname \
930         getprotobynumber \
931         getpwuid \
932         getservbyport \
933         getsockopt \
934         inet_network \
935         lseek64 \
936         lstat \
937         memmove \
938         mkstemp \
939         mmap \
940         pclose \
941         popen \
942         pread \
943         pwrite \
944         rfork \
945         select \
946         sendmsg \
947         settimeofday \
948         sigaltstack \
949         snprintf \
950         statfs \
951         strcasecmp \
952         strerror \
953         strncasecmp \
954         tcgetattr \
955         timegm \
956         usleep \
957         vfscanf \
958         wait4 \
959         waitpid \
962 dnl **** Check for header files ****
964 AC_CHECK_HEADERS(\
965         arpa/inet.h \
966         arpa/nameser.h \
967         direct.h \
968         elf.h \
969         float.h \
970         ieeefp.h \
971         io.h \
972         libaudioio.h \
973         libio.h \
974         libutil.h \
975         link.h \
976         linux/cdrom.h \
977         linux/hdreg.h \
978         linux/input.h \
979         linux/joystick.h \
980         linux/major.h \
981         linux/param.h \
982         linux/serial.h \
983         linux/ucdrom.h \
984         netdb.h \
985         netinet/in.h \
986         netinet/in_systm.h \
987         netinet/tcp.h \
988         pty.h \
989         pwd.h \
990         sched.h \
991         scsi/sg.h \
992         socket.h \
993         stdint.h \
994         strings.h \
995         sys/cdio.h \
996         sys/errno.h \
997         sys/file.h \
998         sys/filio.h \
999         sys/inttypes.h \
1000         sys/ioctl.h \
1001         sys/ipc.h \
1002         sys/link.h \
1003         sys/lwp.h \
1004         sys/mman.h \
1005         sys/modem.h \
1006         sys/mount.h \
1007         sys/msg.h \
1008         sys/param.h \
1009         sys/poll.h \
1010         sys/ptrace.h \
1011         sys/reg.h \
1012         sys/shm.h \
1013         sys/signal.h \
1014         sys/socket.h \
1015         sys/sockio.h \
1016         sys/statfs.h \
1017         sys/strtio.h \
1018         sys/syscall.h \
1019         sys/sysctl.h \
1020         sys/time.h \
1021         sys/times.h \
1022         sys/user.h \
1023         sys/v86.h \
1024         sys/v86intr.h \
1025         sys/vfs.h \
1026         sys/vm86.h \
1027         sys/wait.h \
1028         syscall.h \
1029         termios.h \
1030         ucontext.h \
1031         unistd.h \
1032         utime.h \
1034 AC_HEADER_STAT()
1036 dnl *** Check for net/if.h
1037 AC_CHECK_HEADERS(net/if.h,,,
1038     [#if HAVE_SYS_TYPES_H
1039      # include <sys/types.h>
1040      #endif
1041      #if HAVE_SYS_SOCKET_H
1042      # include <sys/socket.h>
1043      #endif])
1045 dnl *** Check for netinet/ip.h
1046 AC_CHECK_HEADERS(netinet/ip.h,,,
1047     [#if HAVE_SYS_SOCKET_H
1048      # include <sys/socket.h>
1049      #endif
1050      #if HAVE_NETINET_IN_SYSTM_H
1051      # include <netinet/in_systm.h>
1052      #endif])
1054 dnl *** Check for resolv.h
1055 AC_CHECK_HEADERS(resolv.h,,,
1056     [#if HAVE_SYS_SOCKET_H
1057      # include <sys/socket.h>
1058      #endif])
1060 dnl **** Check for types ****
1062 AC_C_CONST
1063 AC_C_INLINE
1064 AC_CHECK_TYPES([mode_t, off_t, pid_t, size_t, ssize_t])
1065 AC_CHECK_SIZEOF(long long,0)
1067 AC_CACHE_CHECK([whether linux/input.h is for real],
1068         wine_cv_linux_input_h,
1069         AC_TRY_COMPILE([
1070             #include <linux/input.h>
1071         ] , [
1072             int foo = EVIOCGBIT(EV_ABS,42);
1073             int bar = BTN_PINKIE;
1074             int fortytwo = 42;
1075         ],
1076         wine_cv_linux_input_h=yes,
1077         wine_cv_linux_input_h=no,
1078         no
1079         )
1080     )
1081     if test "$wine_cv_linux_input_h" = "yes"
1082     then
1083         AC_DEFINE(HAVE_CORRECT_LINUXINPUT_H, 1,
1084                   [Define if we have linux/input.h AND it contains the INPUT event API])
1085     fi
1088 AC_CACHE_CHECK([whether we can use re-entrant gethostbyname_r Linux style],
1089         wine_cv_linux_gethostbyname_r_6,
1090         AC_TRY_COMPILE([
1091 #include <netdb.h>
1092         ], [
1093     char *name=NULL;
1094     struct hostent he;
1095     struct hostent *result;
1096     char *buf=NULL;
1097     int bufsize=0;
1098     int res,errnr;
1099     char *addr=NULL;
1100     int addrlen=0;
1101     int addrtype=0;
1102     res=gethostbyname_r(name,&he,buf,bufsize,&result,&errnr);
1103     res=gethostbyaddr_r(addr, addrlen, addrtype,&he,buf,bufsize,&result,&errnr);
1104     ],
1105         wine_cv_linux_gethostbyname_r_6=yes,
1106         wine_cv_linux_gethostbyname_r_6=no
1107         )
1108    )
1109    if test "$wine_cv_linux_gethostbyname_r_6" = "yes"
1110    then
1111       AC_DEFINE(HAVE_LINUX_GETHOSTBYNAME_R_6, 1,
1112                 [Define if Linux-style gethostbyname_r and gethostbyaddr_r are available])
1113    fi
1115 if test "$ac_cv_header_linux_joystick_h" = "yes"
1116 then
1117    AC_CACHE_CHECK([whether linux/joystick.h uses the Linux 2.2+ API],
1118         wine_cv_linux_joystick_22_api,
1119         AC_TRY_COMPILE([
1120         #include <sys/ioctl.h>
1121         #include <linux/joystick.h>
1123         struct js_event blub;
1124         #if !defined(JS_EVENT_AXIS) || !defined(JS_EVENT_BUTTON)
1125         #error "no 2.2 header"
1126         #endif
1127         ],/*empty*/,
1128         wine_cv_linux_joystick_22_api=yes,
1129         wine_cv_linux_joystick_22_api=no,
1130         wine_cv_linux_joystick_22_api=no
1131         )
1132    )
1133    if test "$wine_cv_linux_joystick_22_api" = "yes"
1134    then
1135       AC_DEFINE(HAVE_LINUX_22_JOYSTICK_API, 1,
1136                 [Define if <linux/joystick.h> defines the Linux 2.2 joystick API])
1137    fi
1140 dnl **** statfs checks ****
1142 if test "$ac_cv_header_sys_vfs_h" = "yes"
1143 then
1144     AC_CACHE_CHECK( [whether sys/vfs.h defines statfs],
1145                     wine_cv_sys_vfs_has_statfs,
1146         AC_TRY_COMPILE([
1147         #include <sys/types.h>
1148         #ifdef HAVE_SYS_PARAM_H
1149         # include <sys/param.h>
1150         #endif
1151         #include <sys/vfs.h>
1152         ],[
1153                 struct statfs stfs;
1155                 memset(&stfs,0,sizeof(stfs));
1156         ],wine_cv_sys_vfs_has_statfs=yes,wine_cv_sys_vfs_has_statfs=no
1157         )
1158     )
1159     if test "$wine_cv_sys_vfs_has_statfs" = "yes"
1160     then
1161       AC_DEFINE(STATFS_DEFINED_BY_SYS_VFS, 1,
1162                 [Define if the struct statfs is defined by <sys/vfs.h>])
1163     fi
1166 if test "$ac_cv_header_sys_statfs_h" = "yes"
1167 then
1168     AC_CACHE_CHECK( [whether sys/statfs.h defines statfs],
1169                     wine_cv_sys_statfs_has_statfs,
1170         AC_TRY_COMPILE([
1171         #include <sys/types.h>
1172         #ifdef HAVE_SYS_PARAM_H
1173         # include <sys/param.h>
1174         #endif
1175         #include <sys/statfs.h>
1176         ],[
1177                 struct statfs stfs;
1178         ],wine_cv_sys_statfs_has_statfs=yes,wine_cv_sys_statfs_has_statfs=no
1179         )
1180     )
1181     if test "$wine_cv_sys_statfs_has_statfs" = "yes"
1182     then
1183       AC_DEFINE(STATFS_DEFINED_BY_SYS_STATFS, 1,
1184                 [Define if the struct statfs is defined by <sys/statfs.h>])
1185     fi
1188 if test "$ac_cv_header_sys_mount_h" = "yes"
1189 then
1190     AC_CACHE_CHECK( [whether sys/mount.h defines statfs],
1191                     wine_cv_sys_mount_has_statfs,
1192         AC_TRY_COMPILE([
1193         #include <sys/types.h>
1194         #ifdef HAVE_SYS_PARAM_H
1195         # include <sys/param.h>
1196         #endif
1197         #include <sys/mount.h>
1198         ],[
1199                 struct statfs stfs;
1200         ],wine_cv_sys_mount_has_statfs=yes,wine_cv_sys_mount_has_statfs=no
1201         )
1202     )
1203     if test "$wine_cv_sys_mount_has_statfs" = "yes"
1204     then
1205       AC_DEFINE(STATFS_DEFINED_BY_SYS_MOUNT, 1,
1206                 [Define if the struct statfs is defined by <sys/mount.h>])
1207     fi
1210 dnl **** FIXME: what about mixed cases, where we need two of them? ***
1212 WINE_CHECK_STRUCT_MEMBER(statfs,f_bfree,
1213 [#include <sys/types.h>
1214 #ifdef HAVE_SYS_PARAM_H
1215 # include <sys/param.h>
1216 #endif
1217 #ifdef STATFS_DEFINED_BY_SYS_MOUNT
1218 # include <sys/mount.h>
1219 #else
1220 # ifdef STATFS_DEFINED_BY_SYS_VFS
1221 #  include <sys/vfs.h>
1222 # else
1223 #  ifdef STATFS_DEFINED_BY_SYS_STATFS
1224 #   include <sys/statfs.h>
1225 #  endif
1226 # endif
1227 #endif],
1228     [AC_DEFINE(STATFS_HAS_BFREE, 1, [Define if the struct statfs has the member bfree])])
1230 WINE_CHECK_STRUCT_MEMBER(statfs,f_bavail,
1231 [#include <sys/types.h>
1232 #ifdef HAVE_SYS_PARAM_H
1233 # include <sys/param.h>
1234 #endif
1235 #ifdef STATFS_DEFINED_BY_SYS_MOUNT
1236 # include <sys/mount.h>
1237 #else
1238 # ifdef STATFS_DEFINED_BY_SYS_VFS
1239 #  include <sys/vfs.h>
1240 # else
1241 #  ifdef STATFS_DEFINED_BY_SYS_STATFS
1242 #   include <sys/statfs.h>
1243 #  endif
1244 # endif
1245 #endif],
1246     [AC_DEFINE(STATFS_HAS_BAVAIL, 1, [Define if the struct statfs has the member bavail])])
1248 dnl Check for file descriptor passing with msg_accrights
1249 WINE_CHECK_STRUCT_MEMBER(msghdr,msg_accrights,
1250 [#include <sys/types.h>
1251 #include <sys/socket.h>],
1252     [AC_DEFINE(HAVE_MSGHDR_ACCRIGHTS, 1, [Define if struct msghdr contains msg_accrights])])
1254 dnl Check for the sa_len member in struct sockaddr
1255 WINE_CHECK_STRUCT_MEMBER(sockaddr,sa_len,
1256 [#include <sys/types.h>
1257 #include <sys/socket.h>],
1258     [AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if struct sockaddr contains sa_len])])
1260 dnl Check for the sun_len member in struct sockaddr_un
1261 WINE_CHECK_STRUCT_MEMBER(sockaddr_un,sun_len,
1262 [#include <sys/types.h>
1263 #include <sys/socket.h>
1264 #include <sys/un.h>],
1265     [AC_DEFINE(HAVE_SOCKADDR_SUN_LEN, 1, [Define if struct sockaddr_un contains sun_len])])
1267 dnl *** check for the need to define __i386__
1269 case $host_cpu in
1270   *i[3456789]86* )
1271     AC_CACHE_CHECK([whether we need to define __i386__],ac_cv_cpp_def_i386,
1272       AC_EGREP_CPP(yes,[#ifndef __i386__
1274 #endif],
1275  ac_cv_cpp_def_i386="yes", ac_cv_cpp_def_i386="no"))
1276     ;;
1277 esac
1278 if test "$ac_cv_cpp_def_i386" = "yes"
1279 then
1280     CFLAGS="$CFLAGS -D__i386__"
1281     LINTFLAGS="$LINTFLAGS -D__i386__"
1284 dnl *** check for the need to define __sparc__
1286 case $host_cpu in
1287   *sparc* )
1288     AC_CACHE_CHECK([whether we need to define __sparc__],ac_cv_cpp_def_sparc,
1289       AC_EGREP_CPP(yes,[#ifndef __sparc__
1291 #endif],
1292  ac_cv_cpp_def_sparc="yes", ac_cv_cpp_def_sparc="no"))
1293     ;;
1294 esac
1295 if test "$ac_cv_cpp_def_sparc" = "yes"
1296 then
1297     CFLAGS="$CFLAGS -D__sparc__"
1298     LINTFLAGS="$LINTFLAGS -D__sparc__"
1301 dnl *** check for the need to define __sun__
1303 case $host_vendor in
1304   *sun* )
1305     AC_CACHE_CHECK([whether we need to define __sun__],ac_cv_cpp_def_sun,
1306       AC_EGREP_CPP(yes,[#ifndef __sun__
1308 #endif],
1309  ac_cv_cpp_def_sun="yes", ac_cv_cpp_def_sun="no"))
1310     ;;
1311 esac
1312 if test "$ac_cv_cpp_def_sun" = "yes"
1313 then
1314     CFLAGS="$CFLAGS -D__sun__"
1315     LINTFLAGS="$LINTFLAGS -D__sun__"
1318 dnl **** Generate output files ****
1320 AH_TOP([#define __WINE_CONFIG_H])
1322 WINE_CONFIG_EXTRA_DIR(controls)
1323 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/d3ddevice)
1324 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dclipper)
1325 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/ddraw)
1326 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/direct3d)
1327 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dpalette)
1328 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dsurface)
1329 WINE_CONFIG_EXTRA_DIR(dlls/dinput/joystick)
1330 WINE_CONFIG_EXTRA_DIR(dlls/dinput/keyboard)
1331 WINE_CONFIG_EXTRA_DIR(dlls/dinput/mouse)
1332 WINE_CONFIG_EXTRA_DIR(dlls/gdi/enhmfdrv)
1333 WINE_CONFIG_EXTRA_DIR(dlls/gdi/mfdrv)
1334 WINE_CONFIG_EXTRA_DIR(dlls/gdi/win16drv)
1335 WINE_CONFIG_EXTRA_DIR(dlls/kernel/messages)
1336 WINE_CONFIG_EXTRA_DIR(dlls/user/dde)
1337 WINE_CONFIG_EXTRA_DIR(dlls/user/resources)
1338 WINE_CONFIG_EXTRA_DIR(dlls/wineps/data)
1339 WINE_CONFIG_EXTRA_DIR(files)
1340 WINE_CONFIG_EXTRA_DIR(graphics)
1341 WINE_CONFIG_EXTRA_DIR(graphics/x11drv)
1342 WINE_CONFIG_EXTRA_DIR(if1632)
1343 WINE_CONFIG_EXTRA_DIR(include/wine)
1344 WINE_CONFIG_EXTRA_DIR(loader)
1345 WINE_CONFIG_EXTRA_DIR(loader/ne)
1346 WINE_CONFIG_EXTRA_DIR(memory)
1347 WINE_CONFIG_EXTRA_DIR(misc)
1348 WINE_CONFIG_EXTRA_DIR(msdos)
1349 WINE_CONFIG_EXTRA_DIR(objects)
1350 WINE_CONFIG_EXTRA_DIR(programs/regapi/tests)
1351 WINE_CONFIG_EXTRA_DIR(programs/regedit/tests)
1352 WINE_CONFIG_EXTRA_DIR(programs/winetest/tests)
1353 WINE_CONFIG_EXTRA_DIR(relay32)
1354 WINE_CONFIG_EXTRA_DIR(scheduler)
1355 WINE_CONFIG_EXTRA_DIR(win32)
1356 WINE_CONFIG_EXTRA_DIR(windows)
1358 MAKE_RULES=Make.rules
1359 AC_SUBST_FILE(MAKE_RULES)
1361 MAKE_DLL_RULES=dlls/Makedll.rules
1362 AC_SUBST_FILE(MAKE_DLL_RULES)
1364 MAKE_TEST_RULES=dlls/Maketest.rules
1365 AC_SUBST_FILE(MAKE_TEST_RULES)
1367 MAKE_PROG_RULES=programs/Makeprog.rules
1368 AC_SUBST_FILE(MAKE_PROG_RULES)
1370 AC_CONFIG_FILES([
1371 Make.rules
1372 dlls/Makedll.rules
1373 dlls/Maketest.rules
1374 programs/Makeprog.rules
1375 Makefile
1376 dlls/Makefile
1377 dlls/advapi32/Makefile
1378 dlls/advapi32/tests/Makefile
1379 dlls/avicap32/Makefile
1380 dlls/avifil32/Makefile
1381 dlls/comcat/Makefile
1382 dlls/comctl32/Makefile
1383 dlls/commdlg/Makefile
1384 dlls/crtdll/Makefile
1385 dlls/crypt32/Makefile
1386 dlls/d3d8/Makefile
1387 dlls/dciman32/Makefile
1388 dlls/ddraw/Makefile
1389 dlls/devenum/Makefile
1390 dlls/dinput/Makefile
1391 dlls/dinput8/Makefile
1392 dlls/dplay/Makefile
1393 dlls/dplayx/Makefile
1394 dlls/dsound/Makefile
1395 dlls/gdi/Makefile
1396 dlls/gdi/tests/Makefile
1397 dlls/glu32/Makefile
1398 dlls/icmp/Makefile
1399 dlls/imagehlp/Makefile
1400 dlls/imm32/Makefile
1401 dlls/kernel/Makefile
1402 dlls/kernel/tests/Makefile
1403 dlls/lzexpand/Makefile
1404 dlls/mapi32/Makefile
1405 dlls/mpr/Makefile
1406 dlls/msacm/Makefile
1407 dlls/msacm/imaadp32/Makefile
1408 dlls/msacm/msadp32/Makefile
1409 dlls/msacm/msg711/Makefile
1410 dlls/msacm/winemp3/Makefile
1411 dlls/msdmo/Makefile
1412 dlls/msimg32/Makefile
1413 dlls/msisys/Makefile
1414 dlls/msnet32/Makefile
1415 dlls/msvcrt/Makefile
1416 dlls/msvcrt20/Makefile
1417 dlls/msvideo/Makefile
1418 dlls/msvideo/msrle32/Makefile
1419 dlls/netapi32/Makefile
1420 dlls/netapi32/tests/Makefile
1421 dlls/ntdll/Makefile
1422 dlls/ntdll/tests/Makefile
1423 dlls/odbc32/Makefile
1424 dlls/ole32/Makefile
1425 dlls/oleaut32/Makefile
1426 dlls/oleaut32/tests/Makefile
1427 dlls/olecli/Makefile
1428 dlls/oledlg/Makefile
1429 dlls/olepro32/Makefile
1430 dlls/olesvr/Makefile
1431 dlls/opengl32/Makefile
1432 dlls/psapi/Makefile
1433 dlls/qcap/Makefile
1434 dlls/quartz/Makefile
1435 dlls/rasapi32/Makefile
1436 dlls/richedit/Makefile
1437 dlls/rpcrt4/Makefile
1438 dlls/rpcrt4/tests/Makefile
1439 dlls/serialui/Makefile
1440 dlls/setupapi/Makefile
1441 dlls/shdocvw/Makefile
1442 dlls/shell32/Makefile
1443 dlls/shell32/tests/Makefile
1444 dlls/shfolder/Makefile
1445 dlls/shlwapi/Makefile
1446 dlls/shlwapi/tests/Makefile
1447 dlls/snmpapi/Makefile
1448 dlls/sti/Makefile
1449 dlls/tapi32/Makefile
1450 dlls/ttydrv/Makefile
1451 dlls/twain/Makefile
1452 dlls/url/Makefile
1453 dlls/urlmon/Makefile
1454 dlls/user/Makefile
1455 dlls/user/tests/Makefile
1456 dlls/version/Makefile
1457 dlls/win32s/Makefile
1458 dlls/winaspi/Makefile
1459 dlls/winedos/Makefile
1460 dlls/wineps/Makefile
1461 dlls/wininet/Makefile
1462 dlls/wininet/tests/Makefile
1463 dlls/winmm/Makefile
1464 dlls/winmm/joystick/Makefile
1465 dlls/winmm/mcianim/Makefile
1466 dlls/winmm/mciavi/Makefile
1467 dlls/winmm/mcicda/Makefile
1468 dlls/winmm/mciseq/Makefile
1469 dlls/winmm/mciwave/Makefile
1470 dlls/winmm/midimap/Makefile
1471 dlls/winmm/wavemap/Makefile
1472 dlls/winmm/winealsa/Makefile
1473 dlls/winmm/winearts/Makefile
1474 dlls/winmm/wineaudioio/Makefile
1475 dlls/winmm/winenas/Makefile
1476 dlls/winmm/wineoss/Makefile
1477 dlls/winnls/Makefile
1478 dlls/winsock/Makefile
1479 dlls/winsock/tests/Makefile
1480 dlls/winspool/Makefile
1481 dlls/wintrust/Makefile
1482 dlls/wow32/Makefile
1483 dlls/wsock32/Makefile
1484 dlls/x11drv/Makefile
1485 documentation/Makefile
1486 include/Makefile
1487 library/Makefile
1488 miscemu/Makefile
1489 ole/Makefile
1490 programs/Makefile
1491 programs/avitools/Makefile
1492 programs/clock/Makefile
1493 programs/cmdlgtst/Makefile
1494 programs/control/Makefile
1495 programs/expand/Makefile
1496 programs/notepad/Makefile
1497 programs/osversioncheck/Makefile
1498 programs/progman/Makefile
1499 programs/regapi/Makefile
1500 programs/regedit/Makefile
1501 programs/regsvr32/Makefile
1502 programs/regtest/Makefile
1503 programs/uninstaller/Makefile
1504 programs/view/Makefile
1505 programs/wcmd/Makefile
1506 programs/wineconsole/Makefile
1507 programs/winedbg/Makefile
1508 programs/winefile/Makefile
1509 programs/winemine/Makefile
1510 programs/winepath/Makefile
1511 programs/winetest/Makefile
1512 programs/winhelp/Makefile
1513 programs/winver/Makefile
1514 server/Makefile
1515 tools/Makefile
1516 tools/widl/Makefile
1517 tools/winapi/Makefile
1518 tools/winebuild/Makefile
1519 tools/winedump/Makefile
1520 tools/wmc/Makefile
1521 tools/wpp/Makefile
1522 tools/wrc/Makefile
1523 unicode/Makefile])
1525 AC_OUTPUT
1527 if test "$have_x" = "no"
1528 then
1529   echo
1530   echo "*** Warning: X development files not found. Wine will be built without"
1531   echo "*** X support, which currently does not work, and would probably not be"
1532   echo "*** what you want anyway. You will need to install devel packages of"
1533   echo "*** Xlib/Xfree86 at the very least."
1536 if test "$ac_cv_lib_ncurses_resizeterm" = "no" -a "$ac_cv_lib_ncurses_waddch" = "yes"
1537 then
1538   echo
1539   echo "*** Warning: resizeterm not found in ncurses. Wine will be built without"
1540   echo "*** terminal resize support. Consider upgrading ncurses."
1543 if test "$wine_cv_libc_reentrant" = "no"
1544 then
1545   echo
1546   echo "*** Warning: non-reentrant libc detected. Wine will be built without"
1547   echo "*** threading support. Consider upgrading libc to a more recent"
1548   echo "*** reentrant version of libc."
1551 if test "$have_x" = "yes" -a "$wine_cv_x_reentrant" != "yes"
1552 then
1553   echo
1554   echo "*** Warning: non-reentrant X11 library detected. Multi-threaded"
1555   echo "*** applications won't work properly. You should upgrade your X11 library."
1558 if test "$wine_cv_opengl_version_OK" = "no"
1559 then
1560   echo
1561   echo "*** Warning: old Mesa headers detected. Wine will be built without Direct3D"
1562   echo "*** support. Consider upgrading your Mesa libraries (http://www.mesa3d.org/)."
1565 if test "$wine_cv_opengl_version_threadsafe" = "yes" -a "x$enable_opengl" = "x"
1566 then
1567   echo
1568   echo "*** Warning: the OpenGL version you have installed relies on libpthread for"
1569   echo "*** thread-safety. To prevent crashes, OpenGL support has been disabled."
1570   echo "*** A fix for glibc 2.1.3 that seems to work is included in this version of Wine,"
1571   echo "*** start configure with '--enable-opengl' to force OpenGL support."
1574 if test "$wine_cv_opengl_version_threadsafe" = "yes" -a "x$enable_opengl" = "xyes"
1575 then
1576   echo
1577   echo "*** Warning: you explicitly linked in a thread-safe OpenGL version. If you"
1578   echo "*** experience unusual crashes on DirectDraw games, try first to disable OpenGL"
1579   echo "*** support before reporting bugs."
1582 if test "$wine_cv_warn_cups_h" = "yes"
1583 then
1584   echo
1585   echo "*** Note: You have cups runtime libraries, but no development"
1586   echo "*** libraries. Install the cups-devel package or whichever package"
1587   echo "*** contains cups.h to enable CUPS support in Wine."
1590 if test "$wine_cv_msg_freetype" = "yes"
1591 then
1592   echo
1593   echo "*** Note: Your system appears to have the FreeType 2 runtime libraries"
1594   echo "*** installed, but 'freetype-config' is not in your PATH. Install the"
1595   echo "*** freetype-devel package (or its equivalent on your distribution) to"
1596   echo "*** enable Wine to use TrueType fonts."
1599 echo
1600 echo "Configure finished.  Do 'make depend && make' to compile Wine."
1601 echo
1603 dnl Local Variables:
1604 dnl comment-start: "dnl "
1605 dnl comment-end: ""
1606 dnl comment-start-skip: "\\bdnl\\b\\s *"
1607 dnl compile-command: "autoconf"
1608 dnl End: