Eliminate flicker when resizing, docs updates.
[wine/multimedia.git] / configure.ac
blob7cfedc76373e69d0e8a192cf96cd068b5e04656b
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/socket.h>
499     #include <netipx/ipx.h>],
500    [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
501    [ac_cv_c_ipx_gnu="yes"],
502    [ac_cv_c_ipx_gnu="no"])
504 if test "$ac_cv_c_ipx_gnu" = "yes"
505 then
506     AC_DEFINE(HAVE_IPX_GNU, 1, [Define if IPX should use netipx/ipx.h from libc])
509 if test "$ac_cv_c_ipx_gnu" = "no"
510 then
511  AC_CACHE_CHECK([for linux style IPX support], ac_cv_c_ipx_linux,
512   AC_TRY_COMPILE(
513     [#include <sys/socket.h>
514      #include <asm/types.h>
515      #include <linux/ipx.h>],
516     [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
517     [ac_cv_c_ipx_linux="yes"],
518     [ac_cv_c_ipx_linux="no"])
519   )
520   if test "$ac_cv_c_ipx_linux" = "yes"
521   then
522       AC_DEFINE(HAVE_IPX_LINUX, 1, [Define if IPX includes are taken from Linux kernel])
523   fi
526 dnl **** Check for Open Sound System ****
527 AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h soundcard.h, break)
529 AC_CACHE_CHECK([for Open Sound System],
530         ac_cv_c_opensoundsystem,
531         AC_TRY_COMPILE([
532         #if defined(HAVE_SYS_SOUNDCARD_H)
533                 #include <sys/soundcard.h>
534         #elif defined(HAVE_MACHINE_SOUNDCARD_H)
535                 #include <machine/soundcard.h>
536         #elif defined(HAVE_SOUNDCARD_H)
537                 #include <soundcard.h>
538         #endif
539         ],[
541 /* check for one of the Open Sound System specific SNDCTL_ defines */
542 #if !defined(SNDCTL_DSP_STEREO)
543 #error No open sound system
544 #endif
545 ],ac_cv_c_opensoundsystem="yes",ac_cv_c_opensoundsystem="no"))
547 if test "$ac_cv_c_opensoundsystem" = "yes"
548 then
549     AC_DEFINE(HAVE_OSS, 1, [Define if you have the Open Sound system])
552 AC_CACHE_CHECK([for Open Sound System/MIDI interface],
553         ac_cv_c_opensoundsystem_midi,
554         AC_TRY_COMPILE([
555         #if defined(HAVE_SYS_SOUNDCARD_H)
556                 #include <sys/soundcard.h>
557         #elif defined(HAVE_MACHINE_SOUNDCARD_H)
558                 #include <machine/soundcard.h>
559         #elif defined(HAVE_SOUNDCARD_H)
560                 #include <soundcard.h>
561         #endif
562         ],[
564 /* check for one of the Open Sound System specific SNDCTL_SEQ defines */
565 #if !defined(SNDCTL_SEQ_SYNC)
566 #error No open sound system MIDI interface
567 #endif
568 ],ac_cv_c_opensoundsystem_midi="yes",ac_cv_c_opensoundsystem_midi="no"))
570 if test "$ac_cv_c_opensoundsystem_midi" = "yes"
571 then
572     AC_DEFINE(HAVE_OSS_MIDI, 1, [Define if you have the Open Sound system (MIDI interface)])
575 dnl **** Check for aRts Sound Server ****
576 AC_PATH_PROG(ARTSCCONFIG, artsc-config)
577 AC_CACHE_CHECK([for aRts Sound server],
578         ac_cv_c_artsserver,
579         if test x$ARTSCCONFIG = x -o x$ARTSCCONFIG = x'"$ARTSCCONFIG"';
580         then
581             ac_cv_c_artsserver=no
582         else
583             ARTSC_CFLAGS=`$ARTSCCONFIG --cflags`
584             ARTSC_LIBS=`$ARTSCCONFIG --libs`
585             ac_cv_c_artsserver=no
586             save_CFLAGS="$CFLAGS"
587             CFLAGS="$CFLAGS $ARTSC_CFLAGS"
588             AC_TRY_COMPILE([
589              #include <artsc.h>
590             ],[
591              arts_stream_t stream;
592             ],[
593             ac_cv_c_artsserver=yes
594             ])
595             CFLAGS="$save_CFLAGS"
596         fi)
598 if test "$ac_cv_c_artsserver" = "yes"
599 then
600     AC_SUBST(ARTSLIBS, $ARTSC_LIBS)
601     AC_SUBST(ARTSINCL, $ARTSC_CFLAGS)
603     AC_DEFINE(HAVE_ARTS, 1, [Define if you have ARTS sound server])
606 dnl **** Check for ALSA ****
607 AC_SUBST(ALSALIBS,"")
608 AC_CHECK_HEADERS(alsa/asoundlib.h sys/asoundlib.h, break)
609 if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes"
610 then
611     AC_CHECK_LIB(asound,snd_pcm_open,
612         AC_DEFINE(HAVE_ALSA,1,[Define if you have ALSA including devel headers])
613         ALSALIBS="-lasound")
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         _lwp_create \
913         _pclose \
914         _popen \
915         _snprintf \
916         _stricmp \
917         _strnicmp \
918         chsize \
919         clone \
920         ecvt \
921         finite \
922         fpclass \
923         ftruncate \
924         ftruncate64 \
925         getnetbyaddr \
926         getnetbyname \
927         getpagesize \
928         getprotobyname \
929         getprotobynumber \
930         getpwuid \
931         getservbyport \
932         getsockopt \
933         inet_network \
934         lseek64 \
935         lstat \
936         memmove \
937         mkstemp \
938         mmap \
939         pclose \
940         popen \
941         pread \
942         pwrite \
943         rfork \
944         select \
945         sendmsg \
946         settimeofday \
947         sigaltstack \
948         snprintf \
949         statfs \
950         strcasecmp \
951         strerror \
952         strncasecmp \
953         tcgetattr \
954         timegm \
955         usleep \
956         vfscanf \
957         wait4 \
958         waitpid \
961 dnl **** Check for header files ****
963 AC_CHECK_HEADERS(\
964         arpa/inet.h \
965         arpa/nameser.h \
966         direct.h \
967         elf.h \
968         float.h \
969         ieeefp.h \
970         io.h \
971         libio.h \
972         libutil.h \
973         link.h \
974         linux/cdrom.h \
975         linux/hdreg.h \
976         linux/input.h \
977         linux/joystick.h \
978         linux/major.h \
979         linux/param.h \
980         linux/serial.h \
981         linux/ucdrom.h \
982         netdb.h \
983         netinet/in.h \
984         netinet/in_systm.h \
985         netinet/tcp.h \
986         pty.h \
987         pwd.h \
988         sched.h \
989         scsi/sg.h \
990         socket.h \
991         stdint.h \
992         strings.h \
993         sys/cdio.h \
994         sys/errno.h \
995         sys/file.h \
996         sys/filio.h \
997         sys/inttypes.h \
998         sys/ioctl.h \
999         sys/ipc.h \
1000         sys/link.h \
1001         sys/lwp.h \
1002         sys/mman.h \
1003         sys/modem.h \
1004         sys/mount.h \
1005         sys/msg.h \
1006         sys/param.h \
1007         sys/poll.h \
1008         sys/ptrace.h \
1009         sys/reg.h \
1010         sys/shm.h \
1011         sys/signal.h \
1012         sys/socket.h \
1013         sys/sockio.h \
1014         sys/statfs.h \
1015         sys/strtio.h \
1016         sys/syscall.h \
1017         sys/sysctl.h \
1018         sys/time.h \
1019         sys/times.h \
1020         sys/user.h \
1021         sys/v86.h \
1022         sys/v86intr.h \
1023         sys/vfs.h \
1024         sys/vm86.h \
1025         sys/wait.h \
1026         syscall.h \
1027         termios.h \
1028         ucontext.h \
1029         unistd.h \
1030         utime.h \
1032 AC_HEADER_STAT()
1034 dnl *** Check for net/if.h
1035 AC_CHECK_HEADERS(net/if.h,,,
1036     [#if HAVE_SYS_TYPES_H
1037      # include <sys/types.h>
1038      #endif
1039      #if HAVE_SYS_SOCKET_H
1040      # include <sys/socket.h>
1041      #endif])
1043 dnl *** Check for netinet/ip.h
1044 AC_CHECK_HEADERS(netinet/ip.h,,,
1045     [#if HAVE_SYS_SOCKET_H
1046      # include <sys/socket.h>
1047      #endif
1048      #if HAVE_NETINET_IN_SYSTM_H
1049      # include <netinet/in_systm.h>
1050      #endif])
1052 dnl *** Check for resolv.h
1053 AC_CHECK_HEADERS(resolv.h,,,
1054     [#if HAVE_SYS_SOCKET_H
1055      # include <sys/socket.h>
1056      #endif])
1058 dnl **** Check for types ****
1060 AC_C_CONST
1061 AC_C_INLINE
1062 AC_CHECK_TYPES([mode_t, off_t, pid_t, size_t, ssize_t])
1063 AC_CHECK_SIZEOF(long long,0)
1065 AC_CACHE_CHECK([whether linux/input.h is for real],
1066         wine_cv_linux_input_h,
1067         AC_TRY_COMPILE([
1068             #include <linux/input.h>
1069         ] , [
1070             int foo = EVIOCGBIT(EV_ABS,42);
1071             int bar = BTN_PINKIE;
1072             int fortytwo = 42;
1073         ],
1074         wine_cv_linux_input_h=yes,
1075         wine_cv_linux_input_h=no,
1076         no
1077         )
1078     )
1079     if test "$wine_cv_linux_input_h" = "yes"
1080     then
1081         AC_DEFINE(HAVE_CORRECT_LINUXINPUT_H, 1,
1082                   [Define if we have linux/input.h AND it contains the INPUT event API])
1083     fi
1086 AC_CACHE_CHECK([whether we can use re-entrant gethostbyname_r Linux style],
1087         wine_cv_linux_gethostbyname_r_6,
1088         AC_TRY_COMPILE([
1089 #include <netdb.h>
1090         ], [
1091     char *name=NULL;
1092     struct hostent he;
1093     struct hostent *result;
1094     char *buf=NULL;
1095     int bufsize=0;
1096     int res,errnr;
1097     char *addr=NULL;
1098     int addrlen=0;
1099     int addrtype=0;
1100     res=gethostbyname_r(name,&he,buf,bufsize,&result,&errnr);
1101     res=gethostbyaddr_r(addr, addrlen, addrtype,&he,buf,bufsize,&result,&errnr);
1102     ],
1103         wine_cv_linux_gethostbyname_r_6=yes,
1104         wine_cv_linux_gethostbyname_r_6=no
1105         )
1106    )
1107    if test "$wine_cv_linux_gethostbyname_r_6" = "yes"
1108    then
1109       AC_DEFINE(HAVE_LINUX_GETHOSTBYNAME_R_6, 1,
1110                 [Define if Linux-style gethostbyname_r and gethostbyaddr_r are available])
1111    fi
1113 if test "$ac_cv_header_linux_joystick_h" = "yes"
1114 then
1115    AC_CACHE_CHECK([whether linux/joystick.h uses the Linux 2.2+ API],
1116         wine_cv_linux_joystick_22_api,
1117         AC_TRY_COMPILE([
1118         #include <sys/ioctl.h>
1119         #include <linux/joystick.h>
1121         struct js_event blub;
1122         #if !defined(JS_EVENT_AXIS) || !defined(JS_EVENT_BUTTON)
1123         #error "no 2.2 header"
1124         #endif
1125         ],/*empty*/,
1126         wine_cv_linux_joystick_22_api=yes,
1127         wine_cv_linux_joystick_22_api=no,
1128         wine_cv_linux_joystick_22_api=no
1129         )
1130    )
1131    if test "$wine_cv_linux_joystick_22_api" = "yes"
1132    then
1133       AC_DEFINE(HAVE_LINUX_22_JOYSTICK_API, 1,
1134                 [Define if <linux/joystick.h> defines the Linux 2.2 joystick API])
1135    fi
1138 dnl **** statfs checks ****
1140 if test "$ac_cv_header_sys_vfs_h" = "yes"
1141 then
1142     AC_CACHE_CHECK( [whether sys/vfs.h defines statfs],
1143                     wine_cv_sys_vfs_has_statfs,
1144         AC_TRY_COMPILE([
1145         #include <sys/types.h>
1146         #ifdef HAVE_SYS_PARAM_H
1147         # include <sys/param.h>
1148         #endif
1149         #include <sys/vfs.h>
1150         ],[
1151                 struct statfs stfs;
1153                 memset(&stfs,0,sizeof(stfs));
1154         ],wine_cv_sys_vfs_has_statfs=yes,wine_cv_sys_vfs_has_statfs=no
1155         )
1156     )
1157     if test "$wine_cv_sys_vfs_has_statfs" = "yes"
1158     then
1159       AC_DEFINE(STATFS_DEFINED_BY_SYS_VFS, 1,
1160                 [Define if the struct statfs is defined by <sys/vfs.h>])
1161     fi
1164 if test "$ac_cv_header_sys_statfs_h" = "yes"
1165 then
1166     AC_CACHE_CHECK( [whether sys/statfs.h defines statfs],
1167                     wine_cv_sys_statfs_has_statfs,
1168         AC_TRY_COMPILE([
1169         #include <sys/types.h>
1170         #ifdef HAVE_SYS_PARAM_H
1171         # include <sys/param.h>
1172         #endif
1173         #include <sys/statfs.h>
1174         ],[
1175                 struct statfs stfs;
1176         ],wine_cv_sys_statfs_has_statfs=yes,wine_cv_sys_statfs_has_statfs=no
1177         )
1178     )
1179     if test "$wine_cv_sys_statfs_has_statfs" = "yes"
1180     then
1181       AC_DEFINE(STATFS_DEFINED_BY_SYS_STATFS, 1,
1182                 [Define if the struct statfs is defined by <sys/statfs.h>])
1183     fi
1186 if test "$ac_cv_header_sys_mount_h" = "yes"
1187 then
1188     AC_CACHE_CHECK( [whether sys/mount.h defines statfs],
1189                     wine_cv_sys_mount_has_statfs,
1190         AC_TRY_COMPILE([
1191         #include <sys/types.h>
1192         #ifdef HAVE_SYS_PARAM_H
1193         # include <sys/param.h>
1194         #endif
1195         #include <sys/mount.h>
1196         ],[
1197                 struct statfs stfs;
1198         ],wine_cv_sys_mount_has_statfs=yes,wine_cv_sys_mount_has_statfs=no
1199         )
1200     )
1201     if test "$wine_cv_sys_mount_has_statfs" = "yes"
1202     then
1203       AC_DEFINE(STATFS_DEFINED_BY_SYS_MOUNT, 1,
1204                 [Define if the struct statfs is defined by <sys/mount.h>])
1205     fi
1208 dnl **** FIXME: what about mixed cases, where we need two of them? ***
1210 WINE_CHECK_STRUCT_MEMBER(statfs,f_bfree,
1211 [#include <sys/types.h>
1212 #ifdef HAVE_SYS_PARAM_H
1213 # include <sys/param.h>
1214 #endif
1215 #ifdef STATFS_DEFINED_BY_SYS_MOUNT
1216 # include <sys/mount.h>
1217 #else
1218 # ifdef STATFS_DEFINED_BY_SYS_VFS
1219 #  include <sys/vfs.h>
1220 # else
1221 #  ifdef STATFS_DEFINED_BY_SYS_STATFS
1222 #   include <sys/statfs.h>
1223 #  endif
1224 # endif
1225 #endif],
1226     [AC_DEFINE(STATFS_HAS_BFREE, 1, [Define if the struct statfs has the member bfree])])
1228 WINE_CHECK_STRUCT_MEMBER(statfs,f_bavail,
1229 [#include <sys/types.h>
1230 #ifdef HAVE_SYS_PARAM_H
1231 # include <sys/param.h>
1232 #endif
1233 #ifdef STATFS_DEFINED_BY_SYS_MOUNT
1234 # include <sys/mount.h>
1235 #else
1236 # ifdef STATFS_DEFINED_BY_SYS_VFS
1237 #  include <sys/vfs.h>
1238 # else
1239 #  ifdef STATFS_DEFINED_BY_SYS_STATFS
1240 #   include <sys/statfs.h>
1241 #  endif
1242 # endif
1243 #endif],
1244     [AC_DEFINE(STATFS_HAS_BAVAIL, 1, [Define if the struct statfs has the member bavail])])
1246 dnl Check for file descriptor passing with msg_accrights
1247 WINE_CHECK_STRUCT_MEMBER(msghdr,msg_accrights,
1248 [#include <sys/types.h>
1249 #include <sys/socket.h>],
1250     [AC_DEFINE(HAVE_MSGHDR_ACCRIGHTS, 1, [Define if struct msghdr contains msg_accrights])])
1252 dnl Check for the sa_len member in struct sockaddr
1253 WINE_CHECK_STRUCT_MEMBER(sockaddr,sa_len,
1254 [#include <sys/types.h>
1255 #include <sys/socket.h>],
1256     [AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if struct sockaddr contains sa_len])])
1258 dnl Check for the sun_len member in struct sockaddr_un
1259 WINE_CHECK_STRUCT_MEMBER(sockaddr_un,sun_len,
1260 [#include <sys/types.h>
1261 #include <sys/socket.h>
1262 #include <sys/un.h>],
1263     [AC_DEFINE(HAVE_SOCKADDR_SUN_LEN, 1, [Define if struct sockaddr_un contains sun_len])])
1265 dnl *** check for the need to define __i386__
1267 case $host_cpu in
1268   *i[3456789]86* )
1269     AC_CACHE_CHECK([whether we need to define __i386__],ac_cv_cpp_def_i386,
1270       AC_EGREP_CPP(yes,[#ifndef __i386__
1272 #endif],
1273  ac_cv_cpp_def_i386="yes", ac_cv_cpp_def_i386="no"))
1274     ;;
1275 esac
1276 if test "$ac_cv_cpp_def_i386" = "yes"
1277 then
1278     CFLAGS="$CFLAGS -D__i386__"
1279     LINTFLAGS="$LINTFLAGS -D__i386__"
1282 dnl *** check for the need to define __sparc__
1284 case $host_cpu in
1285   *sparc* )
1286     AC_CACHE_CHECK([whether we need to define __sparc__],ac_cv_cpp_def_sparc,
1287       AC_EGREP_CPP(yes,[#ifndef __sparc__
1289 #endif],
1290  ac_cv_cpp_def_sparc="yes", ac_cv_cpp_def_sparc="no"))
1291     ;;
1292 esac
1293 if test "$ac_cv_cpp_def_sparc" = "yes"
1294 then
1295     CFLAGS="$CFLAGS -D__sparc__"
1296     LINTFLAGS="$LINTFLAGS -D__sparc__"
1299 dnl *** check for the need to define __sun__
1301 case $host_vendor in
1302   *sun* )
1303     AC_CACHE_CHECK([whether we need to define __sun__],ac_cv_cpp_def_sun,
1304       AC_EGREP_CPP(yes,[#ifndef __sun__
1306 #endif],
1307  ac_cv_cpp_def_sun="yes", ac_cv_cpp_def_sun="no"))
1308     ;;
1309 esac
1310 if test "$ac_cv_cpp_def_sun" = "yes"
1311 then
1312     CFLAGS="$CFLAGS -D__sun__"
1313     LINTFLAGS="$LINTFLAGS -D__sun__"
1316 dnl **** Generate output files ****
1318 AH_TOP([#define __WINE_CONFIG_H])
1320 WINE_CONFIG_EXTRA_DIR(controls)
1321 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/d3ddevice)
1322 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dclipper)
1323 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/ddraw)
1324 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/direct3d)
1325 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dpalette)
1326 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dsurface)
1327 WINE_CONFIG_EXTRA_DIR(dlls/dinput/joystick)
1328 WINE_CONFIG_EXTRA_DIR(dlls/dinput/keyboard)
1329 WINE_CONFIG_EXTRA_DIR(dlls/dinput/mouse)
1330 WINE_CONFIG_EXTRA_DIR(dlls/gdi/enhmfdrv)
1331 WINE_CONFIG_EXTRA_DIR(dlls/gdi/mfdrv)
1332 WINE_CONFIG_EXTRA_DIR(dlls/gdi/win16drv)
1333 WINE_CONFIG_EXTRA_DIR(dlls/kernel/messages)
1334 WINE_CONFIG_EXTRA_DIR(dlls/user/dde)
1335 WINE_CONFIG_EXTRA_DIR(dlls/user/resources)
1336 WINE_CONFIG_EXTRA_DIR(dlls/wineps/data)
1337 WINE_CONFIG_EXTRA_DIR(files)
1338 WINE_CONFIG_EXTRA_DIR(graphics)
1339 WINE_CONFIG_EXTRA_DIR(graphics/x11drv)
1340 WINE_CONFIG_EXTRA_DIR(if1632)
1341 WINE_CONFIG_EXTRA_DIR(include/wine)
1342 WINE_CONFIG_EXTRA_DIR(loader)
1343 WINE_CONFIG_EXTRA_DIR(loader/ne)
1344 WINE_CONFIG_EXTRA_DIR(memory)
1345 WINE_CONFIG_EXTRA_DIR(misc)
1346 WINE_CONFIG_EXTRA_DIR(msdos)
1347 WINE_CONFIG_EXTRA_DIR(objects)
1348 WINE_CONFIG_EXTRA_DIR(programs/regapi/tests)
1349 WINE_CONFIG_EXTRA_DIR(programs/regedit/tests)
1350 WINE_CONFIG_EXTRA_DIR(programs/winetest/tests)
1351 WINE_CONFIG_EXTRA_DIR(relay32)
1352 WINE_CONFIG_EXTRA_DIR(scheduler)
1353 WINE_CONFIG_EXTRA_DIR(win32)
1354 WINE_CONFIG_EXTRA_DIR(windows)
1356 MAKE_RULES=Make.rules
1357 AC_SUBST_FILE(MAKE_RULES)
1359 MAKE_DLL_RULES=dlls/Makedll.rules
1360 AC_SUBST_FILE(MAKE_DLL_RULES)
1362 MAKE_TEST_RULES=dlls/Maketest.rules
1363 AC_SUBST_FILE(MAKE_TEST_RULES)
1365 MAKE_PROG_RULES=programs/Makeprog.rules
1366 AC_SUBST_FILE(MAKE_PROG_RULES)
1368 AC_CONFIG_FILES([
1369 Make.rules
1370 dlls/Makedll.rules
1371 dlls/Maketest.rules
1372 programs/Makeprog.rules
1373 Makefile
1374 dlls/Makefile
1375 dlls/advapi32/Makefile
1376 dlls/advapi32/tests/Makefile
1377 dlls/avicap32/Makefile
1378 dlls/avifil32/Makefile
1379 dlls/comcat/Makefile
1380 dlls/comctl32/Makefile
1381 dlls/commdlg/Makefile
1382 dlls/crtdll/Makefile
1383 dlls/crypt32/Makefile
1384 dlls/d3d8/Makefile
1385 dlls/dciman32/Makefile
1386 dlls/ddraw/Makefile
1387 dlls/devenum/Makefile
1388 dlls/dinput/Makefile
1389 dlls/dinput8/Makefile
1390 dlls/dplay/Makefile
1391 dlls/dplayx/Makefile
1392 dlls/dsound/Makefile
1393 dlls/gdi/Makefile
1394 dlls/gdi/tests/Makefile
1395 dlls/glu32/Makefile
1396 dlls/icmp/Makefile
1397 dlls/imagehlp/Makefile
1398 dlls/imm32/Makefile
1399 dlls/kernel/Makefile
1400 dlls/kernel/tests/Makefile
1401 dlls/lzexpand/Makefile
1402 dlls/mapi32/Makefile
1403 dlls/mpr/Makefile
1404 dlls/msacm/Makefile
1405 dlls/msacm/imaadp32/Makefile
1406 dlls/msacm/msadp32/Makefile
1407 dlls/msacm/msg711/Makefile
1408 dlls/msacm/winemp3/Makefile
1409 dlls/msdmo/Makefile
1410 dlls/msimg32/Makefile
1411 dlls/msisys/Makefile
1412 dlls/msnet32/Makefile
1413 dlls/msvcrt/Makefile
1414 dlls/msvcrt20/Makefile
1415 dlls/msvideo/Makefile
1416 dlls/msvideo/msrle32/Makefile
1417 dlls/netapi32/Makefile
1418 dlls/netapi32/tests/Makefile
1419 dlls/ntdll/Makefile
1420 dlls/ntdll/tests/Makefile
1421 dlls/odbc32/Makefile
1422 dlls/ole32/Makefile
1423 dlls/oleaut32/Makefile
1424 dlls/oleaut32/tests/Makefile
1425 dlls/olecli/Makefile
1426 dlls/oledlg/Makefile
1427 dlls/olepro32/Makefile
1428 dlls/olesvr/Makefile
1429 dlls/opengl32/Makefile
1430 dlls/psapi/Makefile
1431 dlls/qcap/Makefile
1432 dlls/quartz/Makefile
1433 dlls/rasapi32/Makefile
1434 dlls/richedit/Makefile
1435 dlls/rpcrt4/Makefile
1436 dlls/rpcrt4/tests/Makefile
1437 dlls/serialui/Makefile
1438 dlls/setupapi/Makefile
1439 dlls/shdocvw/Makefile
1440 dlls/shell32/Makefile
1441 dlls/shell32/tests/Makefile
1442 dlls/shfolder/Makefile
1443 dlls/shlwapi/Makefile
1444 dlls/shlwapi/tests/Makefile
1445 dlls/snmpapi/Makefile
1446 dlls/sti/Makefile
1447 dlls/tapi32/Makefile
1448 dlls/ttydrv/Makefile
1449 dlls/twain/Makefile
1450 dlls/url/Makefile
1451 dlls/urlmon/Makefile
1452 dlls/user/Makefile
1453 dlls/user/tests/Makefile
1454 dlls/version/Makefile
1455 dlls/win32s/Makefile
1456 dlls/winaspi/Makefile
1457 dlls/winedos/Makefile
1458 dlls/wineps/Makefile
1459 dlls/wininet/Makefile
1460 dlls/wininet/tests/Makefile
1461 dlls/winmm/Makefile
1462 dlls/winmm/joystick/Makefile
1463 dlls/winmm/mcianim/Makefile
1464 dlls/winmm/mciavi/Makefile
1465 dlls/winmm/mcicda/Makefile
1466 dlls/winmm/mciseq/Makefile
1467 dlls/winmm/mciwave/Makefile
1468 dlls/winmm/midimap/Makefile
1469 dlls/winmm/wavemap/Makefile
1470 dlls/winmm/winealsa/Makefile
1471 dlls/winmm/winearts/Makefile
1472 dlls/winmm/wineaudioio/Makefile
1473 dlls/winmm/winenas/Makefile
1474 dlls/winmm/wineoss/Makefile
1475 dlls/winnls/Makefile
1476 dlls/winsock/Makefile
1477 dlls/winsock/tests/Makefile
1478 dlls/winspool/Makefile
1479 dlls/wintrust/Makefile
1480 dlls/wow32/Makefile
1481 dlls/wsock32/Makefile
1482 dlls/x11drv/Makefile
1483 documentation/Makefile
1484 include/Makefile
1485 library/Makefile
1486 miscemu/Makefile
1487 ole/Makefile
1488 programs/Makefile
1489 programs/avitools/Makefile
1490 programs/clock/Makefile
1491 programs/cmdlgtst/Makefile
1492 programs/control/Makefile
1493 programs/expand/Makefile
1494 programs/notepad/Makefile
1495 programs/osversioncheck/Makefile
1496 programs/progman/Makefile
1497 programs/regapi/Makefile
1498 programs/regedit/Makefile
1499 programs/regsvr32/Makefile
1500 programs/regtest/Makefile
1501 programs/uninstaller/Makefile
1502 programs/view/Makefile
1503 programs/wcmd/Makefile
1504 programs/wineconsole/Makefile
1505 programs/winedbg/Makefile
1506 programs/winefile/Makefile
1507 programs/winemine/Makefile
1508 programs/winepath/Makefile
1509 programs/winetest/Makefile
1510 programs/winhelp/Makefile
1511 programs/winver/Makefile
1512 server/Makefile
1513 tools/Makefile
1514 tools/widl/Makefile
1515 tools/winapi/Makefile
1516 tools/winebuild/Makefile
1517 tools/winedump/Makefile
1518 tools/wmc/Makefile
1519 tools/wpp/Makefile
1520 tools/wrc/Makefile
1521 unicode/Makefile])
1523 AC_OUTPUT
1525 if test "$have_x" = "no"
1526 then
1527   echo
1528   echo "*** Warning: X development files not found. Wine will be built without"
1529   echo "*** X support, which currently does not work, and would probably not be"
1530   echo "*** what you want anyway. You will need to install devel packages of"
1531   echo "*** Xlib/Xfree86 at the very least."
1534 if test "$ac_cv_lib_ncurses_resizeterm" = "no" -a "$ac_cv_lib_ncurses_waddch" = "yes"
1535 then
1536   echo
1537   echo "*** Warning: resizeterm not found in ncurses. Wine will be built without"
1538   echo "*** terminal resize support. Consider upgrading ncurses."
1541 if test "$wine_cv_libc_reentrant" = "no"
1542 then
1543   echo
1544   echo "*** Warning: non-reentrant libc detected. Wine will be built without"
1545   echo "*** threading support. Consider upgrading libc to a more recent"
1546   echo "*** reentrant version of libc."
1549 if test "$have_x" = "yes" -a "$wine_cv_x_reentrant" != "yes"
1550 then
1551   echo
1552   echo "*** Warning: non-reentrant X11 library detected. Multi-threaded"
1553   echo "*** applications won't work properly. You should upgrade your X11 library."
1556 if test "$wine_cv_opengl_version_OK" = "no"
1557 then
1558   echo
1559   echo "*** Warning: old Mesa headers detected. Wine will be built without Direct3D"
1560   echo "*** support. Consider upgrading your Mesa libraries (http://www.mesa3d.org/)."
1563 if test "$wine_cv_opengl_version_threadsafe" = "yes" -a "x$enable_opengl" = "x"
1564 then
1565   echo
1566   echo "*** Warning: the OpenGL version you have installed relies on libpthread for"
1567   echo "*** thread-safety. To prevent crashes, OpenGL support has been disabled."
1568   echo "*** A fix for glibc 2.1.3 that seems to work is included in this version of Wine,"
1569   echo "*** start configure with '--enable-opengl' to force OpenGL support."
1572 if test "$wine_cv_opengl_version_threadsafe" = "yes" -a "x$enable_opengl" = "xyes"
1573 then
1574   echo
1575   echo "*** Warning: you explicitly linked in a thread-safe OpenGL version. If you"
1576   echo "*** experience unusual crashes on DirectDraw games, try first to disable OpenGL"
1577   echo "*** support before reporting bugs."
1580 if test "$wine_cv_warn_cups_h" = "yes"
1581 then
1582   echo
1583   echo "*** Note: You have cups runtime libraries, but no development"
1584   echo "*** libraries. Install the cups-devel package or whichever package"
1585   echo "*** contains cups.h to enable CUPS support in Wine."
1588 if test "$wine_cv_msg_freetype" = "yes"
1589 then
1590   echo
1591   echo "*** Note: Your system appears to have the FreeType 2 runtime libraries"
1592   echo "*** installed, but 'freetype-config' is not in your PATH. Install the"
1593   echo "*** freetype-devel package (or its equivalent on your distribution) to"
1594   echo "*** enable Wine to use TrueType fonts."
1597 echo
1598 echo "Configure finished.  Do 'make depend && make' to compile Wine."
1599 echo
1601 dnl Local Variables:
1602 dnl comment-start: "dnl "
1603 dnl comment-end: ""
1604 dnl comment-start-skip: "\\bdnl\\b\\s *"
1605 dnl compile-command: "autoconf"
1606 dnl End: