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