Desktop mode should only disable mode switching, not gamma ramp
[wine/multimedia.git] / configure.ac
blob369205a6ce5ede8f41607a7deb7ef0334383f709
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 AC_ARG_ENABLE(win16, AC_HELP_STRING([--disable-win16],[do not include Win16 support]))
16 AC_ARG_ENABLE(debug, AC_HELP_STRING([--disable-debug],[compile out all debugging messages]))
17 AC_ARG_ENABLE(trace, AC_HELP_STRING([--disable-trace],[compile out TRACE messages]))
19 AC_ARG_WITH(opengl,    AC_HELP_STRING([--without-opengl],[do not use OpenGL]))
20 AC_ARG_WITH(curses,    AC_HELP_STRING([--without-curses],[do not use curses]))
21 AC_ARG_WITH(nptl,      AC_HELP_STRING([--with-nptl],[use glibc NPTL threading support]))
22 AC_ARG_WITH(wine-tools,AC_HELP_STRING([--with-wine-tools=<dir>],[use Wine tools from directory <dir>]))
24 AC_SUBST(WIN16_FILES,"\$(WIN16_FILES)")
25 AC_SUBST(WIN16_INSTALL,"\$(WIN16_INSTALL)")
26 if test "x$enable_win16" = "xno"
27 then
28   WIN16_FILES=""
29   WIN16_INSTALL=""
31 if test "x$enable_debug" = "xno"
32 then
33     AC_DEFINE(NO_DEBUG_MSGS,1,[Define to disable all debug messages.])
35 if test "x$enable_trace" = "xno" -o "x$enable_debug" = "xno"
36 then
37     AC_DEFINE(NO_TRACE_MSGS,1,[Define to disable trace messages.])
39 if test "x$with_nptl" = "xyes"
40 then
41     AC_DEFINE(HAVE_NPTL,1,[Define to use glibc NPTL threading support.])
42     AC_SUBST(LIBPTHREAD,"-lpthread")
45 dnl **** Check for some programs ****
47 AC_CANONICAL_HOST
48 AC_PROG_MAKE_SET
49 AC_PROG_CC
50 AC_PROG_CPP
52 AC_CACHE_CHECK([for the directory containing the Wine tools], wine_cv_toolsdir,
53   [if test -z "$with_wine_tools"; then
54      if test "$cross_compiling" = "yes"; then
55        AC_MSG_ERROR([you must use the --with-wine-tools option when cross-compiling.])
56      else
57        wine_cv_toolsdir="\$(TOPOBJDIR)"
58      fi
59    elif test -d "$with_wine_tools/tools/winebuild"; then
60      case $with_wine_tools in
61        /*) wine_cv_toolsdir="$with_wine_tools" ;;
62        *)  wine_cv_toolsdir="\$(TOPOBJDIR)/$with_wine_tools" ;;
63      esac
64    else
65      AC_MSG_ERROR([could not find Wine tools in $with_wine_tools.])
66    fi])
67 AC_SUBST(TOOLSDIR,$wine_cv_toolsdir)
69 AC_PATH_XTRA
70 AC_PROG_YACC
71 AC_PROG_LEX
73 dnl **** Just additional warning checks, since AC_PROG just sets 'yacc' even
74 dnl **** without one present.
75 AC_CHECK_PROGS(XYACC,$YACC bison yacc,none)
76 if test "$XYACC" = "none"
77 then
78   AC_MSG_ERROR([no suitable bison/yacc found. Please install the 'bison' package.])
80 AC_CHECK_PROGS(XLEX,$LEX flex lex,none)
81 if test "$XLEX" = "none"
82 then
83   AC_MSG_ERROR([no suitable lex found. Please install the 'flex' package.])
86 AC_CHECK_TOOLS(AS,[gas as],as)
87 AC_CHECK_TOOL(LD,ld,ld)
88 AC_CHECK_TOOL(AR,ar,ar)
89 AC_PROG_RANLIB
90 AC_CHECK_TOOL(STRIP,strip,strip)
91 AC_CHECK_TOOL(WINDRES,windres,false)
92 AC_PROG_LN_S
93 WINE_PROG_LN
94 AC_CHECK_PROG(C2MAN,c2man,c2man,\$(TOPSRCDIR)/tools/c2man.pl)
95 AC_PATH_PROG(LDCONFIG, ldconfig, true, [/sbin /usr/sbin $PATH])
96 AC_PROG_INSTALL
97 dnl Prepend src dir to install path dir if it's a relative path
98 case "$INSTALL" in
99   [[\\/$]]* | ?:[[\\/]]* ) ;;
100   *)  INSTALL="\\\$(TOPSRCDIR)/$INSTALL" ;;
101 esac
103 dnl Check for lint
104 AC_CHECK_PROGS(LINT, lclint lint)
105 if test "$LINT" = "lint"
106 then
107   LINTFLAGS="$LINTFLAGS -errchk=%all,no%longptr64 -errhdr=%user -Ncheck=macro -Nlevel=4"
108   dnl LINTFLAGS='-D_SIZE_T "-Dsize_t=unsigned long" -errchk=longptr64'
110 AC_SUBST(LINT)
111 AC_SUBST(LINTFLAGS)
113 dnl Check for db2html
114 AC_CHECK_PROGS(DB2HTML, docbook2html db2html, false)
115 AC_SUBST(DB2HTML)
117 dnl Check for db2pdf
118 AC_CHECK_PROGS(DB2PDF, docbook2pdf db2pdf, false)
119 AC_SUBST(DB2PDF)
121 dnl Check for db2ps
122 AC_CHECK_PROGS(DB2PS, docbook2ps db2ps, false)
123 AC_SUBST(DB2PS)
125 dnl **** Check for some libraries ****
127 dnl Check for -lm
128 AC_CHECK_LIB(m,sqrt)
129 dnl Check for -li386 for NetBSD and OpenBSD
130 AC_CHECK_LIB(i386,i386_set_ldt)
131 dnl Check for -lossaudio for NetBSD
132 AC_CHECK_LIB(ossaudio,_oss_ioctl)
133 dnl Check for -lw for Solaris
134 AC_CHECK_FUNCS(iswalnum,,AC_CHECK_LIB(w,iswalnum))
135 dnl Check for -lnsl for Solaris
136 AC_CHECK_FUNCS(gethostbyname,,AC_CHECK_LIB(nsl,gethostbyname))
137 dnl Check for -lsocket for Solaris
138 AC_CHECK_FUNCS(connect,,AC_CHECK_LIB(socket,connect))
139 dnl Check for -lresolv for Solaris
140 AC_CHECK_FUNCS(inet_aton,,AC_CHECK_LIB(resolv,inet_aton))
141 dnl Check for -lxpg4 for FreeBSD
142 AC_CHECK_LIB(xpg4,_xpg4_setrunelocale)
143 dnl Check for -lmmap for OS/2
144 AC_CHECK_LIB(mmap,mmap)
146 JPEGLIB=""
147 AC_SUBST(JPEGLIB)
148 AC_CHECK_HEADERS(jpeglib.h,
149     AC_CHECK_LIB(jpeg,jpeg_start_decompress,
150         AC_DEFINE(HAVE_LIBJPEG,1,[Define if you have libjpeg including devel headers])
151         JPEGLIB="-ljpeg"
152     )
155 AC_SUBST(GIFLIB,"")
156 AC_CHECK_HEADERS(gif_lib.h,
157     AC_CHECK_LIB(ungif,DGifOpen,
158         [AC_DEFINE(HAVE_LIBGIF,1,[Define if you have libgif/libungif including devel headers])
159          GIFLIB="-lungif"],
160         [AC_CHECK_LIB(gif,DGifOpen,
161                       [AC_DEFINE(HAVE_LIBGIF,1)
162                        GIFLIB="-lgif"])]))
164 AC_SUBST(XLIB)
165 AC_SUBST(XFILES)
166 XFILES=""
167 AC_SUBST(OPENGLFILES)
168 OPENGLFILES=""
169 AC_SUBST(GLU32FILES)
170 GLU32FILES=""
171 AC_SUBST(OPENGL_LIBS)
172 OPENGL_LIBS=""
173 if test "$have_x" = "yes"
174 then
175     XLIB="-lXext -lX11"
176     ac_save_CPPFLAGS="$CPPFLAGS"
177     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
179     dnl *** All of the following tests require X11/Xlib.h
180     AC_CHECK_HEADERS(X11/Xlib.h,
181       [
182         dnl *** Check for X keyboard extension
183         AC_CHECK_HEADERS(X11/XKBlib.h,
184             [ dnl *** If X11/XKBlib.h exists...
185               AC_CHECK_LIB(X11, XkbQueryExtension,
186               AC_DEFINE(HAVE_XKB, 1, [Define if you have the XKB extension]),,
187               $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
188             ],
189             AC_MSG_WARN([[Xkb extension not found, Wine will be built without it]]),
190             [#include <X11/Xlib.h>])
192         dnl *** Check for X Shm extension
193         AC_CHECK_HEADERS(X11/extensions/XShm.h,
194             [ dnl *** If X11/extensions/XShm.h exists...
195               AC_CHECK_LIB(Xext, XShmQueryExtension,
196               AC_DEFINE(HAVE_LIBXXSHM, 1, [Define if you have the X Shm extension]),,
197               $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
198             ],
199             AC_MSG_WARN([[XShm extension not found, Wine will be built without it]]),
200             [#include <X11/Xlib.h>])
202         dnl *** Check for Xutil
203         AC_CHECK_HEADERS(X11/Xutil.h,,,
204             [#include <X11/Xlib.h>])
206         dnl *** Check for X shape extension
207         AC_CHECK_HEADERS(X11/extensions/shape.h,
208             [ dnl *** If X11/extensions/shape.h exists...
209               AC_CHECK_LIB(Xext,XShapeQueryExtension,
210               AC_DEFINE(HAVE_LIBXSHAPE, 1, [Define if you have the X Shape extension]),,
211               $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
212             ],
213             AC_MSG_WARN([[XShape extension not found, Wine will be built without it]]),
214             [#include <X11/Xlib.h>
215              #ifdef HAVE_X11_XUTIL_H
216              # include <X11/Xutil.h>
217              #endif])
219         dnl *** Check for XFree86 DGA / DGA 2.0 extension
220         AC_CHECK_HEADERS(X11/extensions/xf86dga.h,
221             [ dnl *** If X11/extensions/xf86dga.h exists, check
222               dnl *** for XDGAQueryExtension()...
223               AC_CHECK_LIB(Xxf86dga, XDGAQueryExtension,
224                 [ dnl *** If found...
225                   AC_DEFINE(HAVE_LIBXXF86DGA2, 1,
226                             [Define if you have the Xxf86dga library version 2])
227                   X_PRE_LIBS="$X_PRE_LIBS -lXxf86dga"
228                ],
229                 [ dnl *** If not found, look for XF86DGAQueryExtension()
230                   dnl *** instead (DGA 2.0 not found)...
231                   AC_CHECK_LIB(Xxf86dga, XF86DGAQueryExtension,
232                     [ AC_DEFINE(HAVE_LIBXXF86DGA, 1,
233                                 [Define if you have the Xxf86dga library version 1])
234                       X_PRE_LIBS="$X_PRE_LIBS -lXxf86dga"
235                     ],,
236                     $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
237                   )
238                 ],
239                 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
240               )
241             ],
242             AC_MSG_WARN([[DGA extension not found, Wine will be built without it]]),
243             [#include <X11/Xlib.h>])
245         dnl *** Check for XFree86 VMODE extension
246         AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,
247             [ dnl *** If X11/extensions/xf86vmode.h exists...
248                 AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryExtension,
249                   [ AC_DEFINE(HAVE_LIBXXF86VM, 1, [Define if you have the Xxf86vm library])
250                      X_PRE_LIBS="$X_PRE_LIBS -lXxf86vm"
251                   ],,
252                   $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
253                 )
254             ],
255             AC_MSG_WARN([[XFree86 VMODE extension not found, Wine will be built without it]]),
256             [#include <X11/Xlib.h>])
258         dnl *** Check for XVideo extension supporting XvImages
259         AC_CHECK_HEADERS(X11/extensions/Xvlib.h,
260             [ dnl *** If X11/extensions/Xvlib.h exists...
261                 AC_CHECK_LIB(Xv, XvShmCreateImage,
262                   [ AC_DEFINE(HAVE_XVIDEO, 1, [Define if the X libraries support XVideo])
263                      X_PRE_LIBS="$X_PRE_LIBS -lXv"
264                   ],,
265                   $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
266                 )
267             ],
268             AC_MSG_WARN([[XVideo extension not found, Wine will be built without it]]),
269             [#include <X11/Xlib.h>])
271         dnl *** Check for XRender include file
272         AC_CHECK_HEADERS(X11/extensions/Xrender.h,,,[#include <X11/Xlib.h>])
273       ]
274     ) dnl *** End of X11/Xlib.h check
276     dnl Check for the presence of OpenGL
277     if test "x$with_opengl" != "xno"
278     then
279         if test -f /usr/X11R6/lib/libGL.a -a ! -f /usr/X11R6/lib/libGL.so
280         then
281             AC_MSG_ERROR([/usr/X11R6/lib/libGL.a is present on your system.
282 This prevents linking to OpenGL. Delete the file and restart configure.])
283         fi
285         AC_CHECK_HEADERS(GL/gl.h GL/glx.h)
286         if test "$ac_cv_header_GL_gl_h" = "yes" -a "$ac_cv_header_GL_glx_h" = "yes"
287         then
288             AC_CHECK_HEADERS(GL/glext.h,,,[#include <GL/glx.h>])
289             dnl Check for some problems due to old Mesa versions
290             AC_CACHE_CHECK([for up-to-date OpenGL version], wine_cv_opengl_version_OK,
291               AC_TRY_COMPILE(
292                 [#include <GL/gl.h>],
293                 [GLenum test = GL_UNSIGNED_SHORT_5_6_5;],
294                 [wine_cv_opengl_version_OK="yes"],
295                 [wine_cv_opengl_version_OK="no"]
296               )
297             )
299             if test "$wine_cv_opengl_version_OK" = "yes"
300             then
301                 dnl Check for the presence of the library
302                 AC_CHECK_LIB(GL,glXCreateContext,
303                              OPENGL_LIBS="-lGL"
304                              ,,
305                              $X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS)
307                 if test "$ac_cv_lib_GL_glXCreateContext" = "yes"
308                 then
309                         OPENGLFILES='$(OPENGLFILES)'
310                         AC_DEFINE(HAVE_OPENGL, 1, [Define if OpenGL is present on the system])
312                         AC_CHECK_LIB(GL,glXGetProcAddressARB,
313                                      AC_DEFINE(HAVE_GLX_GETPROCADDRESS, 1,
314                                                [Define if the OpenGL library supports the glXGetProcAddressARB call]),,
315                                      $X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS)
317                         if test "$ac_cv_lib_GL_glXGetProcAddressARB" = "yes"
318                         then
319                                AC_CACHE_CHECK([for OpenGL extension functions prototypes], wine_cv_extension_prototypes,
320                                   [AC_TRY_COMPILE([#include <GL/gl.h>
321                                                   #ifdef HAVE_GL_GLEXT_H
322                                                   # include <GL/glext.h>
323                                                   #endif
324                                                   ],
325                                                  [PFNGLCOLORTABLEEXTPROC test_proc;],
326                                                  [wine_cv_extension_prototypes="yes"],
327                                                  [wine_cv_extension_prototypes="no"]
328                                   )]
329                                 )
330                                 if test "$wine_cv_extension_prototypes" = "yes"
331                                 then
332                                     AC_DEFINE(HAVE_GLEXT_PROTOTYPES, 1,
333                                               [Define if the OpenGL headers define extension typedefs])
334                                 fi
335                         fi
337                 fi
338                 dnl Check for GLU32 library.
339                 AC_CHECK_LIB(GLU,gluLookAt,
340                              [OPENGL_LIBS="$OPENGL_LIBS -lGLU"
341                              GLU32FILES='$(GLU32FILES)']
342                              ,,
343                              $OPENGL_LIBS $X_LIBS $X_PRE_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS
344                 )
345              fi
346          fi
347     fi
349     dnl **** Check for NAS ****
350     AC_SUBST(NASLIBS,"")
351     AC_CHECK_HEADERS(audio/audiolib.h,
352          [AC_CHECK_HEADERS(audio/soundlib.h,,,[#include <audio/audiolib.h>])
353           AC_CHECK_LIB(audio,AuCreateFlow,
354                        [AC_DEFINE(HAVE_NAS,1,[Define if you have NAS including devel headers])
355                         NASLIBS="-laudio -lXt $X_LIBS -lXext -lX11 $X_EXTRA_LIBS"],,
356                        [-lXt $X_LIBS -lXext -lX11 $X_EXTRA_LIBS])])
358     CPPFLAGS="$ac_save_CPPFLAGS"
359     XFILES='$(XFILES)'
360 else
361     XLIB=""
362     X_CFLAGS=""
363     X_LIBS=""
366 dnl **** Check which curses lib to use ***
367 CURSESLIBS=""
368 if test "x$with_curses" != "xno"
369 then
370     AC_CHECK_HEADERS(ncurses.h,
371         [AC_CHECK_LIB(ncurses,waddch,
372             [AC_DEFINE(HAVE_LIBNCURSES, 1, [Define if you have the ncurses library (-lncurses)])
373              CURSESLIBS="-lncurses"],
374              [AC_CHECK_HEADERS(curses.h,
375                  [AC_CHECK_LIB(curses,waddch,
376                      [AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have the curses library (-lcurses)])
377                       CURSESLIBS="-lcurses"])])])])
378     saved_libs="$LIBS"
379     LIBS="$CURSESLIBS $LIBS"
380     AC_CHECK_FUNCS(getbkgd resizeterm)
381     LIBS="$saved_libs"
383 AC_SUBST(CURSESLIBS)
385 dnl **** Check for SANE ****
386 AC_CHECK_PROG(sane_devel,sane-config,sane-config,no)
387 if test "$sane_devel" = "no"
388 then
389     SANELIBS=""
390     SANEINCL=""
391 else
392     SANELIBS="`$sane_devel --libs`"
393     SANEINCL="`$sane_devel --cflags`"
394     ac_save_CPPFLAGS="$CPPFLAGS"
395     ac_save_LIBS="$LIBS"
396     CPPFLAGS="$CPPFLAGS $SANEINCL"
397     LIBS="$LIBS $SANELIBS"
398     AC_CHECK_HEADER(sane/sane.h,
399                     [AC_CHECK_LIB(sane,sane_open,
400                                   [AC_DEFINE(HAVE_SANE, 1, [Define if we have SANE development environment])],
401                                   [SANELIBS=""
402                                   SANEINCL=""])],
403                     [SANELIBS=""
404                     SANEINCL=""])
405     LIBS="$ac_save_LIBS"
406     CPPFLAGS="$ac_save_CPPFLAGS"
408 AC_SUBST(SANELIBS)
409 AC_SUBST(SANEINCL)
411 dnl **** Check for the ICU library ****
412 AC_CHECK_HEADERS(unicode/ubidi.h)
413 if test "$ac_cv_header_unicode_ubidi_h" = "yes"
414 then
415     AC_CACHE_CHECK([whether we can statically link the ICU libraries], ac_cv_lib_icu,
416         [saved_libs="$LIBS"
417          ICU_LIB_DIR="${ICU_LIB_DIR-/usr/lib}"
418          ICUUC_LIB="${ICUUC_LIB-$ICU_LIB_DIR/libicuuc.a}"
419          ICUDATA_LIB="${ICUDATA_LIB-$ICU_LIB_DIR/libicudata.a}"
420          LIBS="$LIBS $ICUUC_LIB $ICUDATA_LIB -lstdc++ -lgcc_s"
421          AC_TRY_LINK([#include <unicode/ubidi.h>],[ubidi_open()],
422                      [ac_cv_lib_icu="yes"],[ac_cv_lib_icu="no"])
423         LIBS="$saved_libs"])
424     if test "$ac_cv_lib_icu" = "yes"
425     then
426         AC_DEFINE(HAVE_ICU,1,[Define to 1 if the ICU libraries are installed])
427         AC_SUBST(ICULIBS,"$ICUUC_LIB $ICUDATA_LIB -lstdc++ -lgcc_s")
428     fi
431 dnl **** Check for FreeType 2 ****
432 AC_CHECK_LIB(freetype,FT_Init_FreeType,ft_lib=yes,ft_lib=no,$X_LIBS)
433 if test "$ft_lib" = "no"
434 then
435     FREETYPEINCL=""
436     wine_cv_msg_freetype=no
437 else
438     AC_CHECK_PROG(ft_devel,freetype-config,freetype-config,no)
439     if test "$ft_devel" = "no"
440     then
441         AC_CHECK_PROG(ft_devel2,freetype2-config,freetype2-config,no)
442         if test "$ft_devel2" = "freetype2-config"
443         then
444                 ft_devel=$ft_devel2
445         fi
446     fi
447     if test "$ft_devel" = "no"
448     then
449         FREETYPEINCL=""
450         wine_cv_msg_freetype=yes
451     else
452         FREETYPEINCL=`$ft_devel --cflags`
453         ac_save_CPPFLAGS="$CPPFLAGS"
454         CPPFLAGS="$FREETYPEINCL $CPPFLAGS"
455         AC_CHECK_HEADERS(freetype/freetype.h \
456                          freetype/ftglyph.h \
457                          freetype/tttables.h \
458                          freetype/ftnames.h \
459                          freetype/ftsnames.h \
460                          freetype/ttnameid.h \
461                          freetype/ftoutln.h \
462                          freetype/internal/sfnt.h)
463         AC_TRY_CPP([#include <ft2build.h>
464                     #include <freetype/fttrigon.h>],
465                     [AC_DEFINE(HAVE_FREETYPE_FTTRIGON_H, 1,
466           [Define if you have the <freetype/fttrigon.h> header file.])
467                     wine_cv_fttrigon=yes],
468                     wine_cv_fttrigon=no)
469         CPPFLAGS="$ac_save_CPPFLAGS"
470         dnl Check that we have at least freetype/freetype.h
471         if test "$ac_cv_header_freetype_freetype_h" = "yes" -a "$wine_cv_fttrigon" = "yes"
472         then
473             AC_DEFINE(HAVE_FREETYPE, 1, [Define if FreeType 2 is installed])
474             wine_cv_msg_freetype=no
475         else
476             FREETYPEINCL=""
477             wine_cv_msg_freetype=yes
478         fi
479     fi
481 AC_SUBST(FREETYPEINCL)
483 dnl **** Check for parport (currently Linux only) ****
484 AC_CACHE_CHECK([for parport header/ppdev.h], ac_cv_c_ppdev,
485  AC_TRY_COMPILE(
486    [#include <linux/ppdev.h>],
487    [ioctl (1,PPCLAIM,0)],
488    [ac_cv_c_ppdev="yes"],
489    [ac_cv_c_ppdev="no"])
491 if test "$ac_cv_c_ppdev" = "yes"
492 then
493     AC_DEFINE(HAVE_PPDEV, 1, [Define if we can use ppdev.h for parallel port access])
496 dnl **** Check for va_copy ****
497 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
498  AC_TRY_LINK(
499    [#include <stdarg.h>],
500    [va_list ap1, ap2;
501     va_copy(ap1,ap2);
502    ],
503    [ac_cv_c_va_copy="yes"],
504    [ac_cv_c_va_copy="no"])
506 if test "$ac_cv_c_va_copy" = "yes"
507 then
508     AC_DEFINE(HAVE_VA_COPY, 1, [Define if we have va_copy])
510 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
511  AC_TRY_LINK(
512    [#include <stdarg.h>],
513    [va_list ap1, ap2;
514     __va_copy(ap1,ap2);
515    ],
516    [ac_cv_c___va_copy="yes"],
517    [ac_cv_c___va_copy="no"])
519 if test "$ac_cv_c___va_copy" = "yes"
520 then
521     AC_DEFINE(HAVE___VA_COPY, 1, [Define if we have __va_copy])
524 dnl **** Check for Open Sound System ****
525 AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h soundcard.h, break)
527 AC_CACHE_CHECK([for Open Sound System],
528         ac_cv_c_opensoundsystem,
529         AC_TRY_COMPILE([
530         #if defined(HAVE_SYS_SOUNDCARD_H)
531                 #include <sys/soundcard.h>
532         #elif defined(HAVE_MACHINE_SOUNDCARD_H)
533                 #include <machine/soundcard.h>
534         #elif defined(HAVE_SOUNDCARD_H)
535                 #include <soundcard.h>
536         #endif
537         ],[
539 /* check for one of the Open Sound System specific SNDCTL_ defines */
540 #if !defined(SNDCTL_DSP_STEREO)
541 #error No open sound system
542 #endif
543 ],ac_cv_c_opensoundsystem="yes",ac_cv_c_opensoundsystem="no"))
545 if test "$ac_cv_c_opensoundsystem" = "yes"
546 then
547     AC_DEFINE(HAVE_OSS, 1, [Define if you have the Open Sound system])
550 AC_CACHE_CHECK([for Open Sound System/MIDI interface],
551         ac_cv_c_opensoundsystem_midi,
552         AC_TRY_COMPILE([
553         #if defined(HAVE_SYS_SOUNDCARD_H)
554                 #include <sys/soundcard.h>
555         #elif defined(HAVE_MACHINE_SOUNDCARD_H)
556                 #include <machine/soundcard.h>
557         #elif defined(HAVE_SOUNDCARD_H)
558                 #include <soundcard.h>
559         #endif
560         ],[
562 /* check for one of the Open Sound System specific SNDCTL_SEQ defines */
563 #if !defined(SNDCTL_SEQ_SYNC)
564 #error No open sound system MIDI interface
565 #endif
566 ],ac_cv_c_opensoundsystem_midi="yes",ac_cv_c_opensoundsystem_midi="no"))
568 if test "$ac_cv_c_opensoundsystem_midi" = "yes"
569 then
570     AC_DEFINE(HAVE_OSS_MIDI, 1, [Define if you have the Open Sound system (MIDI interface)])
573 dnl **** Check for aRts Sound Server ****
574 AC_PATH_PROG(ARTSCCONFIG, artsc-config)
575 AC_CACHE_CHECK([for aRts Sound server],
576         ac_cv_c_artsserver,
577         if test x$ARTSCCONFIG = x -o x$ARTSCCONFIG = x'"$ARTSCCONFIG"';
578         then
579             ac_cv_c_artsserver=no
580         else
581             ARTSC_CFLAGS=`$ARTSCCONFIG --cflags`
582             ARTSC_LIBS=`$ARTSCCONFIG --libs`
583             ac_cv_c_artsserver=no
584             save_CFLAGS="$CFLAGS"
585             CFLAGS="$CFLAGS $ARTSC_CFLAGS"
586             AC_TRY_COMPILE([
587              #include <artsc.h>
588             ],[
589              arts_stream_t stream;
590             ],[
591             ac_cv_c_artsserver=yes
592             ])
593             CFLAGS="$save_CFLAGS"
594         fi)
596 if test "$ac_cv_c_artsserver" = "yes"
597 then
598     AC_SUBST(ARTSLIBS, $ARTSC_LIBS)
599     AC_SUBST(ARTSINCL, $ARTSC_CFLAGS)
601     AC_DEFINE(HAVE_ARTS, 1, [Define if you have ARTS sound server])
604 dnl **** Check for ALSA ****
605 AC_SUBST(ALSALIBS,"")
606 AC_CHECK_HEADERS(alsa/asoundlib.h sys/asoundlib.h, break)
607 if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes"
608 then
609     AC_CHECK_LIB(asound,snd_pcm_open,
610         AC_DEFINE(HAVE_ALSA,1,[Define if you have ALSA including devel headers])
611         ALSALIBS="-lasound")
614 dnl **** Check for libaudioio (which can be used to get solaris audio support) ****
616 AC_SUBST(AUDIOIOLIBS,"")
617 AC_CHECK_HEADERS(libaudioio.h,
618     [AC_CHECK_LIB(audioio,AudioIOGetVersion,
619                   [AUDIOIOLIBS="-laudioio"
620                    AC_DEFINE(HAVE_LIBAUDIOIO, 1, [Define if you have libaudioIO])])])
622 dnl **** Check for broken glibc mmap64 ****
624 AC_CACHE_CHECK( [whether mmap64 works defined as mmap], ac_cv_mmap64_works,
625         AC_TRY_RUN([
626                 #define _FILE_OFFSET_BITS 64
627                 #include <stdio.h>
628                 #include <unistd.h>
629                 #include <fcntl.h>
630                 #include <sys/mman.h>
631                 #include <errno.h>
633                 int main(int argc,char **argv) {
634                         int fd = open("conftest.map",O_CREAT|O_RDWR,0600);
635                         if (fd == -1) exit(1);
637                         unlink("conftest.map");
639                         write(fd,"test",4);
641                         if ((-1 == mmap(0,4,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0)) &&
642                             (errno == EINVAL)
643                         ) {
644                                 exit(1);
645                         }
646                         close(fd);
647                         fprintf(stderr,"success!\n");
648                         exit(0);
649                 }
651         ],
652     ac_cv_mmap64_works="yes",
653     ac_cv_mmap64_works="no",
654     ac_cv_mmap64_works="no") )
656 if test "$ac_cv_mmap64_works" = "yes"
657 then
658     AC_DEFINE(_FILE_OFFSET_BITS, 64, [Set this to 64 to enable 64-bit file support on Linux])
661 dnl **** Check for gcc specific options ****
663 AC_SUBST(EXTRACFLAGS,"")
664 if test "x${GCC}" = "xyes"
665 then
666   EXTRACFLAGS=-Wall
668   dnl Check for strength-reduce bug
669   AC_CACHE_CHECK( [for gcc strength-reduce bug], ac_cv_c_gcc_strength_bug,
670                   AC_TRY_RUN([
671 int     L[[4]] = {0,1,2,3};
672 int main(void) {
673   static int Array[[3]];
674   unsigned int B = 3;
675   int i;
676   for(i=0; i<B; i++) Array[[i]] = i - 3;
677   for(i=0; i<4 - 1; i++) L[[i]] = L[[i + 1]];
678   L[[i]] = 4;
680   exit( Array[[1]] != -2 || L[[2]] != 3);
682     ac_cv_c_gcc_strength_bug="no",
683     ac_cv_c_gcc_strength_bug="yes",
684     ac_cv_c_gcc_strength_bug="yes") )
685   if test "$ac_cv_c_gcc_strength_bug" = "yes"
686   then
687     EXTRACFLAGS="$EXTRACFLAGS -fno-strength-reduce"
688   fi
690   dnl Check for -mpreferred-stack-boundary
691   AC_CACHE_CHECK([for gcc -mpreferred-stack-boundary=2 support], ac_cv_c_gcc_stack_boundary,
692       [WINE_TRY_CFLAGS([-mpreferred-stack-boundary=2],
693                       ac_cv_c_gcc_stack_boundary="yes",ac_cv_c_gcc_stack_boundary="no")])
694   if test "$ac_cv_c_gcc_stack_boundary" = "yes"
695   then
696     EXTRACFLAGS="$EXTRACFLAGS -mpreferred-stack-boundary=2"
697   fi
699   dnl Check for -gstabs+ option
700   AC_CACHE_CHECK([for gcc -gstabs+ support], ac_cv_c_gcc_gstabs,
701       [WINE_TRY_CFLAGS([-gstabs+],ac_cv_c_gcc_gstabs="yes", ac_cv_c_gcc_gstabs="no")])
702   if test "$ac_cv_c_gcc_gstabs" = "yes"
703   then
704     EXTRACFLAGS="$EXTRACFLAGS -gstabs+"
705   fi
707   dnl Check for noisy string.h
708   saved_CFLAGS="$CFLAGS"
709   CFLAGS="$CFLAGS -Wpointer-arith -Werror"
710   AC_CACHE_CHECK([for broken string.h that generates warnings], ac_cv_c_string_h_warnings,
711       AC_TRY_COMPILE([#include <string.h>],[],
712                      [ac_cv_c_string_h_warnings=no],[ac_cv_c_string_h_warnings=yes]))
713   CFLAGS="$saved_CFLAGS"
714   if test "$ac_cv_c_string_h_warnings" = "no"
715   then
716     EXTRACFLAGS="$EXTRACFLAGS -Wpointer-arith"
717   fi
720 dnl **** Check how to define a function in assembly code ****
722 AC_CACHE_CHECK([how to define a function in assembly code], ac_cv_asm_func_def,
723   WINE_TRY_ASM_LINK(
724       ["\t.globl _ac_test\n\t.def _ac_test; .scl 2; .type 32; .endef\n_ac_test:\t.long 0"],,,
725       ac_cv_asm_func_def=".def",
726     [WINE_TRY_ASM_LINK(["\t.globl _ac_test\n\t.type _ac_test,@function\n_ac_test:\t.long 0"],,,
727       ac_cv_asm_func_def=".type @function",
728     [WINE_TRY_ASM_LINK(["\t.globl _ac_test\n\t.type _ac_test,2\n_ac_test:\t.long 0"],,,
729       ac_cv_asm_func_def=".type 2",
730       ac_cv_asm_func_def="unknown")])]))
732 AH_TEMPLATE(__ASM_FUNC,[Define to a macro to generate an assembly function directive])
733 case "$ac_cv_asm_func_def" in
734   ".def")
735      AC_DEFINE([__ASM_FUNC(name)], [".def " __ASM_NAME(name) "; .scl 2; .type 32; .endef"]) ;;
736   ".type @function")
737      AC_DEFINE([__ASM_FUNC(name)], [".type " __ASM_NAME(name) ",@function"]) ;;
738   ".type 2")
739      AC_DEFINE([__ASM_FUNC(name)], [".type " __ASM_NAME(name) ",2"]) ;;
740   *)
741      AC_DEFINE([__ASM_FUNC(name)], [""]) ;;
742 esac
744 dnl **** Check for underscore on external symbols ****
746 AC_CACHE_CHECK([whether external symbols need an underscore prefix], ac_cv_c_extern_prefix,
747     WINE_TRY_ASM_LINK([".globl _ac_test\n_ac_test:\t.long 0"],
748                       [extern int ac_test;],
749                       [if (ac_test) return 1],
750                       ac_cv_c_extern_prefix="yes",ac_cv_c_extern_prefix="no"))
752 AH_TEMPLATE(__ASM_NAME,[Define to a macro to generate an assembly name from a C symbol])
753 if test "$ac_cv_c_extern_prefix" = "yes"
754 then
755   AC_DEFINE([__ASM_NAME(name)], ["_" name])
756 else
757   AC_DEFINE([__ASM_NAME(name)], [name])
760 dnl **** Check how to do strings in assembler ****
762 AC_CACHE_CHECK([whether assembler accepts .string], ac_cv_c_asm_string,
763     WINE_TRY_ASM_LINK([".data\n\t.string \"test\"\n\t.text"],,,
764                       ac_cv_c_asm_string="yes",ac_cv_c_asm_string="no"))
765 if test "$ac_cv_c_asm_string" = "yes"
766 then
767   AC_DEFINE(__ASM_STRING, [".string"], [Define to the assembler keyword used to specify an ASCII string])
768 else
769     AC_CACHE_CHECK([whether assembler accepts .asciz], ac_cv_c_asm_asciz,
770         WINE_TRY_ASM_LINK([".data\n\t.asciz \"test\"\n\t.text"],,,
771                       ac_cv_c_asm_asciz="yes",ac_cv_c_asm_asciz="no"))
772     if test "$ac_cv_c_asm_asciz" = "yes"
773     then
774       AC_DEFINE(__ASM_STRING, [".asciz"])
775     else
776       AC_DEFINE(__ASM_STRING, [".ascii"])
777     fi                                  
780 dnl **** Check for .short in assembler ****
782 AC_CACHE_CHECK([whether assembler accepts .short], ac_cv_c_asm_short,
783     WINE_TRY_ASM_LINK([".data\n\t.short 1\n\t.text"],,,
784                       ac_cv_c_asm_short="yes",ac_cv_c_asm_short="no"))
785 if test "$ac_cv_c_asm_short" = "yes"
786 then
787   AC_DEFINE(__ASM_SHORT, [".short"], [Define to the assembler keyword used to specify a word value])
788 else
789   AC_DEFINE(__ASM_SHORT, [".half"])
792 dnl **** Check for working dll ****
794 AC_SUBST(DLLEXT,"")
795 AC_SUBST(DLLFLAGS,"-D_REENTRANT")
796 AC_SUBST(DLLIBS,"")
797 AC_SUBST(LDDLLFLAGS,"")
798 AC_SUBST(LDSHARED,"")
799 AC_SUBST(LIBEXT,"so")
800 AC_SUBST(IMPLIBEXT,"def")
802 case $host_os in
803   cygwin*|mingw32*)
804     AC_CHECK_TOOL(DLLTOOL,dlltool,false)
805     AC_CHECK_TOOL(DLLWRAP,dllwrap,false)
806     if test "$DLLWRAP" = "false"; then
807       LIBEXT="a"
808     else
809       dnl FIXME - check whether dllwrap works correctly...
810       LIBEXT="dll"
811     fi
812     IMPLIBEXT="a"
813     ;;
814   *)
815     AC_CHECK_HEADERS(dlfcn.h,
816         [AC_CHECK_FUNCS(dlopen,,
817             [AC_CHECK_LIB(dl,dlopen,
818                          [AC_DEFINE(HAVE_DLOPEN,1,[Define if you have dlopen])
819                           DLLIBS="-ldl"],
820                          [LIBEXT="a"])])],
821         [LIBEXT="a"])
823     if test "$LIBEXT" = "so"
824     then
825       DLLFLAGS="$DLLFLAGS -fPIC"
826       DLLEXT=".so"
827       AC_CACHE_CHECK([whether we can build a GNU style ELF dll], ac_cv_c_dll_gnuelf,
828           [WINE_TRY_CFLAGS([-fPIC -shared -Wl,-soname,conftest.so.1.0,-Bsymbolic],
829                            ac_cv_c_dll_gnuelf="yes",ac_cv_c_dll_gnuelf="no")])
830       if test "$ac_cv_c_dll_gnuelf" = "yes"
831       then
832         LDSHARED="\$(CC) -shared \$(SONAME:%=-Wl,-soname,%)"
833         LDDLLFLAGS="-Wl,-Bsymbolic"
834         AC_CACHE_CHECK([whether the linker accepts -z defs], ac_cv_c_dll_zdefs,
835           [WINE_TRY_CFLAGS([-fPIC -shared -Wl,-Bsymbolic,-z,defs],
836                            ac_cv_c_dll_zdefs="yes",ac_cv_c_dll_zdefs="no")])
837         if test "$ac_cv_c_dll_zdefs" = "yes"
838         then
839           LDDLLFLAGS="$LDDLLFLAGS,-z,defs"
840         fi
841         AC_CACHE_CHECK([whether we can relocate the executable to 0x3c000000], ac_cv_ld_reloc_exec,
842           [saved_CFLAGS="$CFLAGS"
843            CFLAGS="$CFLAGS -Wl,--section-start,.interp=0x3c000100"
844            AC_TRY_RUN([#include <unistd.h>
845                        int main() { return (sbrk(32*1024*1024) == (void *)-1); }],
846                       ac_cv_ld_reloc_exec="yes",
847                       ac_cv_ld_reloc_exec="no",
848                       ac_cv_ld_reloc_exec="no")
849            CFLAGS="$saved_CFLAGS"])
850         if test "$ac_cv_ld_reloc_exec" = "yes"
851         then
852           AC_SUBST(LDEXECFLAGS,["-Wl,--section-start,.interp=0x3c000100"])
853         fi
854       else
855         AC_CACHE_CHECK(whether we can build a UnixWare (Solaris) dll, ac_cv_c_dll_unixware,
856             [WINE_TRY_CFLAGS([-fPIC -Wl,-G,-h,conftest.so.1.0,-B,symbolic],
857                              ac_cv_c_dll_unixware="yes",ac_cv_c_dll_unixware="no")])
858         if test "$ac_cv_c_dll_unixware" = "yes"
859         then
860           LDSHARED="\$(CC) -Wl,-G \$(SONAME:%=-Wl,-h,%)"
861           LDDLLFLAGS="-Wl,-B,symbolic"
862         fi
863       fi
864     fi
866     dnl Check for cross compiler to build test programs
867     AC_SUBST(CROSSTEST,"")
868     if test "$cross_compiling" = "no"
869     then
870       AC_CHECK_PROGS(CROSSCC,i586-mingw32msvc-gcc i386-mingw32-gcc,false)
871       AC_CHECK_PROGS(DLLTOOL,i586-mingw32msvc-dlltool i386-mingw32-dlltool,false)
872       AC_CHECK_PROGS(CROSSWINDRES,i586-mingw32msvc-windres i386-mingw32-windres,false)
873       if test "$CROSSCC" != "false"; then CROSSTEST="\$(CROSSTEST)"; fi
874     fi
875     ;;
876 esac
878 if test "$LIBEXT" = "a"; then
879   AC_MSG_ERROR(
880 [could not find a way to build shared libraries.
881 It is currently not possible to build Wine without shared library
882 (.so) support to allow transparent switch between .so and .dll files.
883 If you are using Linux, you will need a newer binutils.]
887 case $build_os in
888   cygwin*|mingw32*)
889     AC_SUBST(LDPATH,"PATH=\"\$(TOOLSDIR)/libs/unicode:\$\$PATH\"") ;;
890   *)
891     AC_SUBST(LDPATH,"LD_LIBRARY_PATH=\"\$(TOOLSDIR)/libs/unicode:\$\$LD_LIBRARY_PATH\"") ;;
892 esac
894 dnl Mingw needs explicit msvcrt for linking libwine
895 AC_SUBST(CRTLIBS,"")
896 case $host_os in
897   mingw32*)
898     CRTLIBS="-lmsvcrt" ;;
899 esac
901 dnl **** Get the soname for libraries that we load dynamically ****
903 if test "$LIBEXT" = "so"
904 then
905   WINE_GET_SONAME(X11,XCreateWindow,[$X_LIBS $X_EXTRA_LIBS])
906   WINE_GET_SONAME(Xext,XextCreateExtension,[$X_LIBS -lX11 $X_EXTRA_LIBS])
907   WINE_GET_SONAME(Xrender,XRenderQueryExtension,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
908   WINE_GET_SONAME(freetype,FT_Init_FreeType,[$X_LIBS])
909   WINE_GET_SONAME(GL,glXQueryExtension,[$X_LIBS $X_EXTRA_LIBS])
910   WINE_GET_SONAME(cups,cupsGetDefault)
911   WINE_GET_SONAME(jack,jack_client_new)
912   WINE_GET_SONAME(ssl,SSL_library_init)
913   WINE_GET_SONAME(crypto,BIO_new_socket)
917 dnl **** Check for functions ****
919 AC_FUNC_ALLOCA()
920 AC_CHECK_FUNCS(\
921         _lwp_create \
922         _lwp_self \
923         _pclose \
924         _popen \
925         _snprintf \
926         _spawnvp \
927         _stricmp \
928         _strnicmp \
929         _vsnprintf \
930         chsize \
931         clone \
932         finite \
933         fpclass \
934         ftruncate \
935         ftruncate64 \
936         getnetbyaddr \
937         getnetbyname \
938         getopt_long \
939         getpagesize \
940         getprotobyname \
941         getprotobynumber \
942         getpwuid \
943         getservbyport \
944         gettimeofday \
945         inet_network \
946         lseek64 \
947         lstat \
948         memmove \
949         mmap \
950         pclose \
951         popen \
952         pread \
953         pthread_getspecific \
954         pthread_key_create \
955         pthread_mutex_lock \
956         pthread_mutex_unlock \
957         pthread_setspecific \
958         pwrite \
959         rfork \
960         select \
961         sendmsg \
962         settimeofday \
963         sigaltstack \
964         snprintf \
965         statfs \
966         strcasecmp \
967         strerror \
968         strncasecmp \
969         tcgetattr \
970         timegm \
971         usleep \
972         vfscanf \
973         vsnprintf \
974         wait4 \
975         waitpid \
978 dnl **** Check for header files ****
980 AC_CHECK_HEADERS(\
981         arpa/inet.h \
982         arpa/nameser.h \
983         cups/cups.h \
984         direct.h \
985         elf.h \
986         float.h \
987         getopt.h \
988         ieeefp.h \
989         io.h \
990         jack/jack.h \
991         libio.h \
992         libutil.h \
993         link.h \
994         linux/cdrom.h \
995         linux/hdreg.h \
996         linux/input.h \
997         linux/joystick.h \
998         linux/major.h \
999         linux/param.h \
1000         linux/serial.h \
1001         linux/ucdrom.h \
1002         machine/cpu.h \
1003         netdb.h \
1004         netinet/in.h \
1005         netinet/in_systm.h \
1006         netinet/tcp.h \
1007         netinet/tcp_fsm.h \
1008         openssl/ssl.h \
1009         pty.h \
1010         pwd.h \
1011         regex.h \
1012         sched.h \
1013         scsi/sg.h \
1014         socket.h \
1015         stdint.h \
1016         strings.h \
1017         sys/cdio.h \
1018         sys/errno.h \
1019         sys/file.h \
1020         sys/filio.h \
1021         sys/inttypes.h \
1022         sys/ioctl.h \
1023         sys/ipc.h \
1024         sys/link.h \
1025         sys/lwp.h \
1026         sys/mman.h \
1027         sys/modem.h \
1028         sys/msg.h \
1029         sys/param.h \
1030         sys/poll.h \
1031         sys/ptrace.h \
1032         sys/reg.h \
1033         sys/scsiio.h \
1034         sys/shm.h \
1035         sys/signal.h \
1036         sys/socket.h \
1037         sys/sockio.h \
1038         sys/statfs.h \
1039         sys/strtio.h \
1040         sys/syscall.h \
1041         sys/sysctl.h \
1042         sys/time.h \
1043         sys/times.h \
1044         sys/uio.h \
1045         sys/un.h \
1046         sys/v86.h \
1047         sys/v86intr.h \
1048         sys/vfs.h \
1049         sys/vm86.h \
1050         sys/wait.h \
1051         syscall.h \
1052         termios.h \
1053         unistd.h \
1054         utime.h \
1055         valgrind/memcheck.h
1057 AC_HEADER_STAT()
1059 dnl **** Checks for headers that depend on other ones ****
1061 AC_CHECK_HEADERS(sys/mount.h sys/user.h,,,
1062     [#include <sys/types.h>
1063      #if HAVE_SYS_PARAM_H
1064      # include <sys/param.h>
1065      #endif])
1067 AC_CHECK_HEADERS([net/if.h net/if_arp.h net/if_dl.h net/if_types.h net/route.h resolv.h],,,
1068     [#include <sys/types.h>
1069      #if HAVE_SYS_SOCKET_H
1070      # include <sys/socket.h>
1071      #endif])
1073 AC_CHECK_HEADERS(netinet/ip.h,,,
1074     [#include <sys/types.h>
1075      #if HAVE_SYS_SOCKET_H
1076      # include <sys/socket.h>
1077      #endif
1078      #if HAVE_NETINET_IN_SYSTM_H
1079      # include <netinet/in_systm.h>
1080      #endif])
1082 AC_CHECK_HEADERS(ucontext.h,,,[#include <signal.h>])
1084 dnl **** Check for IPX headers (currently Linux only) ****
1086 AC_CACHE_CHECK([for GNU style IPX support], ac_cv_c_ipx_gnu,
1087  AC_TRY_COMPILE(
1088    [#include <sys/types.h>
1089     #ifdef HAVE_SYS_SOCKET_H
1090     # include <sys/socket.h>
1091     #endif
1092     #include <netipx/ipx.h>],
1093    [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
1094    [ac_cv_c_ipx_gnu="yes"],
1095    [ac_cv_c_ipx_gnu="no"])
1097 if test "$ac_cv_c_ipx_gnu" = "yes"
1098 then
1099     AC_DEFINE(HAVE_IPX_GNU, 1, [Define if IPX should use netipx/ipx.h from libc])
1102 if test "$ac_cv_c_ipx_gnu" = "no"
1103 then
1104  AC_CACHE_CHECK([for linux style IPX support], ac_cv_c_ipx_linux,
1105   AC_TRY_COMPILE(
1106     [#include <sys/types.h>
1107      #ifdef HAVE_SYS_SOCKET_H
1108      # include <sys/socket.h>
1109      #endif
1110      #include <asm/types.h>
1111      #include <linux/ipx.h>],
1112     [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
1113     [ac_cv_c_ipx_linux="yes"],
1114     [ac_cv_c_ipx_linux="no"])
1115   )
1116   if test "$ac_cv_c_ipx_linux" = "yes"
1117   then
1118       AC_DEFINE(HAVE_IPX_LINUX, 1, [Define if IPX includes are taken from Linux kernel])
1119   fi
1122 dnl **** Check for types ****
1124 AC_C_CONST
1125 AC_C_INLINE
1126 AC_CHECK_TYPES([mode_t, off_t, pid_t, size_t, ssize_t])
1127 AC_CHECK_SIZEOF(long long,0)
1129 AC_CACHE_CHECK([whether linux/input.h is for real],
1130         wine_cv_linux_input_h,
1131         AC_TRY_COMPILE([
1132             #include <linux/input.h>
1133         ] , [
1134             int foo = EVIOCGBIT(EV_ABS,42);
1135             int bar = BTN_PINKIE;
1136             int fortytwo = 42;
1137         ],
1138         wine_cv_linux_input_h=yes,
1139         wine_cv_linux_input_h=no,
1140         no
1141         )
1142     )
1143     if test "$wine_cv_linux_input_h" = "yes"
1144     then
1145         AC_DEFINE(HAVE_CORRECT_LINUXINPUT_H, 1,
1146                   [Define if we have linux/input.h AND it contains the INPUT event API])
1147     fi
1150 AC_CACHE_CHECK([whether we can use re-entrant gethostbyname_r Linux style],
1151         wine_cv_linux_gethostbyname_r_6,
1152         AC_TRY_COMPILE([
1153 #include <netdb.h>
1154         ], [
1155     char *name=NULL;
1156     struct hostent he;
1157     struct hostent *result;
1158     char *buf=NULL;
1159     int bufsize=0;
1160     int res,errnr;
1161     char *addr=NULL;
1162     int addrlen=0;
1163     int addrtype=0;
1164     res=gethostbyname_r(name,&he,buf,bufsize,&result,&errnr);
1165     res=gethostbyaddr_r(addr, addrlen, addrtype,&he,buf,bufsize,&result,&errnr);
1166     ],
1167         wine_cv_linux_gethostbyname_r_6=yes,
1168         wine_cv_linux_gethostbyname_r_6=no
1169         )
1170    )
1171    if test "$wine_cv_linux_gethostbyname_r_6" = "yes"
1172    then
1173       AC_DEFINE(HAVE_LINUX_GETHOSTBYNAME_R_6, 1,
1174                 [Define if Linux-style gethostbyname_r and gethostbyaddr_r are available])
1175    fi
1177 if test "$ac_cv_header_linux_joystick_h" = "yes"
1178 then
1179    AC_CACHE_CHECK([whether linux/joystick.h uses the Linux 2.2+ API],
1180         wine_cv_linux_joystick_22_api,
1181         AC_TRY_COMPILE([
1182         #include <sys/ioctl.h>
1183         #include <linux/joystick.h>
1185         struct js_event blub;
1186         #if !defined(JS_EVENT_AXIS) || !defined(JS_EVENT_BUTTON)
1187         #error "no 2.2 header"
1188         #endif
1189         ],/*empty*/,
1190         wine_cv_linux_joystick_22_api=yes,
1191         wine_cv_linux_joystick_22_api=no,
1192         wine_cv_linux_joystick_22_api=no
1193         )
1194    )
1195    if test "$wine_cv_linux_joystick_22_api" = "yes"
1196    then
1197       AC_DEFINE(HAVE_LINUX_22_JOYSTICK_API, 1,
1198                 [Define if <linux/joystick.h> defines the Linux 2.2 joystick API])
1199    fi
1202 dnl **** statfs checks ****
1204 if test "$ac_cv_header_sys_vfs_h" = "yes"
1205 then
1206     AC_CACHE_CHECK( [whether sys/vfs.h defines statfs],
1207                     wine_cv_sys_vfs_has_statfs,
1208         AC_TRY_COMPILE([
1209         #include <sys/types.h>
1210         #ifdef HAVE_SYS_PARAM_H
1211         # include <sys/param.h>
1212         #endif
1213         #include <sys/vfs.h>
1214         ],[
1215                 struct statfs stfs;
1217                 memset(&stfs,0,sizeof(stfs));
1218         ],wine_cv_sys_vfs_has_statfs=yes,wine_cv_sys_vfs_has_statfs=no
1219         )
1220     )
1221     if test "$wine_cv_sys_vfs_has_statfs" = "yes"
1222     then
1223       AC_DEFINE(STATFS_DEFINED_BY_SYS_VFS, 1,
1224                 [Define if the struct statfs is defined by <sys/vfs.h>])
1225     fi
1228 if test "$ac_cv_header_sys_statfs_h" = "yes"
1229 then
1230     AC_CACHE_CHECK( [whether sys/statfs.h defines statfs],
1231                     wine_cv_sys_statfs_has_statfs,
1232         AC_TRY_COMPILE([
1233         #include <sys/types.h>
1234         #ifdef HAVE_SYS_PARAM_H
1235         # include <sys/param.h>
1236         #endif
1237         #include <sys/statfs.h>
1238         ],[
1239                 struct statfs stfs;
1240         ],wine_cv_sys_statfs_has_statfs=yes,wine_cv_sys_statfs_has_statfs=no
1241         )
1242     )
1243     if test "$wine_cv_sys_statfs_has_statfs" = "yes"
1244     then
1245       AC_DEFINE(STATFS_DEFINED_BY_SYS_STATFS, 1,
1246                 [Define if the struct statfs is defined by <sys/statfs.h>])
1247     fi
1250 if test "$ac_cv_header_sys_mount_h" = "yes"
1251 then
1252     AC_CACHE_CHECK( [whether sys/mount.h defines statfs],
1253                     wine_cv_sys_mount_has_statfs,
1254         AC_TRY_COMPILE([
1255         #include <sys/types.h>
1256         #ifdef HAVE_SYS_PARAM_H
1257         # include <sys/param.h>
1258         #endif
1259         #include <sys/mount.h>
1260         ],[
1261                 struct statfs stfs;
1262         ],wine_cv_sys_mount_has_statfs=yes,wine_cv_sys_mount_has_statfs=no
1263         )
1264     )
1265     if test "$wine_cv_sys_mount_has_statfs" = "yes"
1266     then
1267       AC_DEFINE(STATFS_DEFINED_BY_SYS_MOUNT, 1,
1268                 [Define if the struct statfs is defined by <sys/mount.h>])
1269     fi
1272 dnl **** FIXME: what about mixed cases, where we need two of them? ***
1274 dnl Check for statfs members
1275 AC_CHECK_MEMBERS([struct statfs.f_bfree, struct statfs.f_bavail],,,
1276 [#include <sys/types.h>
1277 #ifdef HAVE_SYS_PARAM_H
1278 # include <sys/param.h>
1279 #endif
1280 #ifdef STATFS_DEFINED_BY_SYS_MOUNT
1281 # include <sys/mount.h>
1282 #else
1283 # ifdef STATFS_DEFINED_BY_SYS_VFS
1284 #  include <sys/vfs.h>
1285 # else
1286 #  ifdef STATFS_DEFINED_BY_SYS_STATFS
1287 #   include <sys/statfs.h>
1288 #  endif
1289 # endif
1290 #endif])
1292 dnl Check for socket structure members
1293 AC_CHECK_MEMBERS([struct msghdr.msg_accrights, struct sockaddr.sa_len, struct sockaddr_un.sun_len],,,
1294 [#include <sys/types.h>
1295 #ifdef HAVE_SYS_SOCKET_H
1296 # include <sys/socket.h>
1297 #endif
1298 #ifdef HAVE_SYS_UN_H
1299 # include <sys/un.h>
1300 #endif])
1302 dnl Check for siginfo_t members
1303 AC_CHECK_MEMBERS([siginfo_t.si_fd],,,[#include <signal.h>])
1305 dnl Check for struct option
1306 AC_CHECK_MEMBERS([struct option.name],,,
1307 [#ifdef HAVE_GETOPT_H
1308 #include <getopt.h>
1309 #endif])
1311 dnl *** check for the need to define platform-specific symbols
1313 case $host_cpu in
1314   *i[[3456789]]86*) WINE_CHECK_DEFINE([__i386__]) ;;
1315   *alpha*)          WINE_CHECK_DEFINE([__ALPHA__]) ;;
1316   *sparc*)          WINE_CHECK_DEFINE([__sparc__]) ;;
1317 esac
1319 case $host_vendor in
1320   *sun*) WINE_CHECK_DEFINE([__sun__]) ;;
1321 esac
1323 dnl **** Generate output files ****
1325 AH_TOP([#define __WINE_CONFIG_H])
1327 WINE_CONFIG_EXTRA_DIR(controls)
1328 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/d3ddevice)
1329 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dclipper)
1330 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/ddraw)
1331 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/direct3d)
1332 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dpalette)
1333 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dsurface)
1334 WINE_CONFIG_EXTRA_DIR(dlls/dinput/joystick)
1335 WINE_CONFIG_EXTRA_DIR(dlls/dinput/keyboard)
1336 WINE_CONFIG_EXTRA_DIR(dlls/dinput/mouse)
1337 WINE_CONFIG_EXTRA_DIR(dlls/gdi/enhmfdrv)
1338 WINE_CONFIG_EXTRA_DIR(dlls/gdi/mfdrv)
1339 WINE_CONFIG_EXTRA_DIR(dlls/kernel/messages)
1340 WINE_CONFIG_EXTRA_DIR(dlls/user/dde)
1341 WINE_CONFIG_EXTRA_DIR(dlls/user/resources)
1342 WINE_CONFIG_EXTRA_DIR(dlls/wineps/data)
1343 WINE_CONFIG_EXTRA_DIR(files)
1344 WINE_CONFIG_EXTRA_DIR(graphics)
1345 WINE_CONFIG_EXTRA_DIR(graphics/x11drv)
1346 WINE_CONFIG_EXTRA_DIR(if1632)
1347 WINE_CONFIG_EXTRA_DIR(include/wine)
1348 WINE_CONFIG_EXTRA_DIR(loader)
1349 WINE_CONFIG_EXTRA_DIR(loader/ne)
1350 WINE_CONFIG_EXTRA_DIR(memory)
1351 WINE_CONFIG_EXTRA_DIR(misc)
1352 WINE_CONFIG_EXTRA_DIR(msdos)
1353 WINE_CONFIG_EXTRA_DIR(objects)
1354 WINE_CONFIG_EXTRA_DIR(programs/regapi/tests)
1355 WINE_CONFIG_EXTRA_DIR(programs/regedit/tests)
1356 WINE_CONFIG_EXTRA_DIR(relay32)
1357 WINE_CONFIG_EXTRA_DIR(scheduler)
1358 WINE_CONFIG_EXTRA_DIR(win32)
1359 WINE_CONFIG_EXTRA_DIR(windows)
1361 MAKE_RULES=Make.rules
1362 AC_SUBST_FILE(MAKE_RULES)
1364 MAKE_DLL_RULES=dlls/Makedll.rules
1365 AC_SUBST_FILE(MAKE_DLL_RULES)
1367 MAKE_TEST_RULES=dlls/Maketest.rules
1368 AC_SUBST_FILE(MAKE_TEST_RULES)
1370 MAKE_LIB_RULES=libs/Makelib.rules
1371 AC_SUBST_FILE(MAKE_LIB_RULES)
1373 MAKE_PROG_RULES=programs/Makeprog.rules
1374 AC_SUBST_FILE(MAKE_PROG_RULES)
1376 AC_CONFIG_FILES([
1377 Make.rules
1378 dlls/Makedll.rules
1379 dlls/Maketest.rules
1380 libs/Makelib.rules
1381 programs/Makeprog.rules
1382 Makefile
1383 dlls/Makefile
1384 dlls/advapi32/Makefile
1385 dlls/advapi32/tests/Makefile
1386 dlls/avicap32/Makefile
1387 dlls/avifil32/Makefile
1388 dlls/cabinet/Makefile
1389 dlls/comcat/Makefile
1390 dlls/comctl32/Makefile
1391 dlls/comctl32/tests/Makefile
1392 dlls/commdlg/Makefile
1393 dlls/crtdll/Makefile
1394 dlls/crypt32/Makefile
1395 dlls/ctl3d/Makefile
1396 dlls/d3d8/Makefile
1397 dlls/d3d9/Makefile
1398 dlls/d3dim/Makefile
1399 dlls/d3dx8/Makefile
1400 dlls/dciman32/Makefile
1401 dlls/ddraw/Makefile
1402 dlls/devenum/Makefile
1403 dlls/dinput/Makefile
1404 dlls/dinput8/Makefile
1405 dlls/dmband/Makefile
1406 dlls/dmcompos/Makefile
1407 dlls/dmime/Makefile
1408 dlls/dmloader/Makefile
1409 dlls/dmscript/Makefile
1410 dlls/dmstyle/Makefile
1411 dlls/dmsynth/Makefile
1412 dlls/dmusic/Makefile
1413 dlls/dmusic32/Makefile
1414 dlls/dplay/Makefile
1415 dlls/dplayx/Makefile
1416 dlls/dpnhpast/Makefile
1417 dlls/dsound/Makefile
1418 dlls/dsound/tests/Makefile
1419 dlls/gdi/Makefile
1420 dlls/gdi/tests/Makefile
1421 dlls/glu32/Makefile
1422 dlls/icmp/Makefile
1423 dlls/imagehlp/Makefile
1424 dlls/imm32/Makefile
1425 dlls/iphlpapi/Makefile
1426 dlls/kernel/Makefile
1427 dlls/kernel/tests/Makefile
1428 dlls/lzexpand/Makefile
1429 dlls/mapi32/Makefile
1430 dlls/mpr/Makefile
1431 dlls/msacm/Makefile
1432 dlls/msacm/imaadp32/Makefile
1433 dlls/msacm/msadp32/Makefile
1434 dlls/msacm/msg711/Makefile
1435 dlls/msacm/winemp3/Makefile
1436 dlls/msdmo/Makefile
1437 dlls/msimg32/Makefile
1438 dlls/msisys/Makefile
1439 dlls/msnet32/Makefile
1440 dlls/msvcrt/Makefile
1441 dlls/msvcrt/tests/Makefile
1442 dlls/msvcrt20/Makefile
1443 dlls/msvcrtd/Makefile
1444 dlls/msvideo/Makefile
1445 dlls/msvideo/msrle32/Makefile
1446 dlls/netapi32/Makefile
1447 dlls/netapi32/tests/Makefile
1448 dlls/ntdll/Makefile
1449 dlls/ntdll/tests/Makefile
1450 dlls/odbc32/Makefile
1451 dlls/ole32/Makefile
1452 dlls/oleacc/Makefile
1453 dlls/oleaut32/Makefile
1454 dlls/oleaut32/tests/Makefile
1455 dlls/olecli/Makefile
1456 dlls/oledlg/Makefile
1457 dlls/olepro32/Makefile
1458 dlls/olesvr/Makefile
1459 dlls/opengl32/Makefile
1460 dlls/psapi/Makefile
1461 dlls/qcap/Makefile
1462 dlls/quartz/Makefile
1463 dlls/rasapi32/Makefile
1464 dlls/richedit/Makefile
1465 dlls/rpcrt4/Makefile
1466 dlls/rpcrt4/tests/Makefile
1467 dlls/serialui/Makefile
1468 dlls/setupapi/Makefile
1469 dlls/shdocvw/Makefile
1470 dlls/shell32/Makefile
1471 dlls/shell32/tests/Makefile
1472 dlls/shfolder/Makefile
1473 dlls/shlwapi/Makefile
1474 dlls/shlwapi/tests/Makefile
1475 dlls/snmpapi/Makefile
1476 dlls/sti/Makefile
1477 dlls/tapi32/Makefile
1478 dlls/ttydrv/Makefile
1479 dlls/twain/Makefile
1480 dlls/url/Makefile
1481 dlls/urlmon/Makefile
1482 dlls/urlmon/tests/Makefile
1483 dlls/user/Makefile
1484 dlls/user/tests/Makefile
1485 dlls/version/Makefile
1486 dlls/win32s/Makefile
1487 dlls/winaspi/Makefile
1488 dlls/winedos/Makefile
1489 dlls/wineps/Makefile
1490 dlls/wininet/Makefile
1491 dlls/wininet/tests/Makefile
1492 dlls/winmm/Makefile
1493 dlls/winmm/joystick/Makefile
1494 dlls/winmm/mcianim/Makefile
1495 dlls/winmm/mciavi/Makefile
1496 dlls/winmm/mcicda/Makefile
1497 dlls/winmm/mciseq/Makefile
1498 dlls/winmm/mciwave/Makefile
1499 dlls/winmm/midimap/Makefile
1500 dlls/winmm/tests/Makefile
1501 dlls/winmm/wavemap/Makefile
1502 dlls/winmm/winealsa/Makefile
1503 dlls/winmm/winearts/Makefile
1504 dlls/winmm/wineaudioio/Makefile
1505 dlls/winmm/winenas/Makefile
1506 dlls/winmm/winejack/Makefile
1507 dlls/winmm/wineoss/Makefile
1508 dlls/winnls/Makefile
1509 dlls/winsock/Makefile
1510 dlls/winsock/tests/Makefile
1511 dlls/winspool/Makefile
1512 dlls/winspool/tests/Makefile
1513 dlls/wintab32/Makefile
1514 dlls/wintrust/Makefile
1515 dlls/wow32/Makefile
1516 dlls/wsock32/Makefile
1517 dlls/x11drv/Makefile
1518 documentation/Makefile
1519 include/Makefile
1520 libs/Makefile
1521 libs/port/Makefile
1522 libs/unicode/Makefile
1523 libs/uuid/Makefile
1524 libs/wine/Makefile
1525 libs/wpp/Makefile
1526 miscemu/Makefile
1527 programs/Makefile
1528 programs/avitools/Makefile
1529 programs/clock/Makefile
1530 programs/cmdlgtst/Makefile
1531 programs/control/Makefile
1532 programs/expand/Makefile
1533 programs/notepad/Makefile
1534 programs/osversioncheck/Makefile
1535 programs/progman/Makefile
1536 programs/regapi/Makefile
1537 programs/regedit/Makefile
1538 programs/regsvr32/Makefile
1539 programs/regtest/Makefile
1540 programs/rpcss/Makefile
1541 programs/rundll32/Makefile
1542 programs/start/Makefile
1543 programs/uninstaller/Makefile
1544 programs/view/Makefile
1545 programs/wcmd/Makefile
1546 programs/wineboot/Makefile
1547 programs/winecfg/Makefile
1548 programs/wineconsole/Makefile
1549 programs/winedbg/Makefile
1550 programs/winefile/Makefile
1551 programs/winemenubuilder/Makefile
1552 programs/winemine/Makefile
1553 programs/winepath/Makefile
1554 programs/winevdm/Makefile
1555 programs/winhelp/Makefile
1556 programs/winver/Makefile
1557 server/Makefile
1558 tools/Makefile
1559 tools/widl/Makefile
1560 tools/winapi/Makefile
1561 tools/winebuild/Makefile
1562 tools/winedump/Makefile
1563 tools/wmc/Makefile
1564 tools/wrc/Makefile])
1566 AC_OUTPUT
1568 if test "$have_x" = "no"
1569 then
1570   echo
1571   echo "*** Warning: X development files not found. Wine will be built without"
1572   echo "*** X support, which currently does not work, and would probably not be"
1573   echo "*** what you want anyway. You will need to install devel packages of"
1574   echo "*** Xlib/Xfree86 at the very least."
1577 if test "$wine_cv_opengl_version_OK" = "no"
1578 then
1579   echo
1580   echo "*** Warning: old Mesa headers detected. Wine will be built without Direct3D"
1581   echo "*** support. Consider upgrading your Mesa libraries (http://www.mesa3d.org/)."
1584 if test "$wine_cv_msg_freetype" = "yes"
1585 then
1586   echo
1587   echo "*** Note: Your system appears to have the FreeType 2 runtime libraries"
1588   echo "*** installed, but 'freetype-config' is not in your PATH. Install the"
1589   echo "*** freetype-devel package (or its equivalent on your distribution) to"
1590   echo "*** enable Wine to use TrueType fonts."
1593 echo
1594 echo "Configure finished.  Do 'make depend && make' to compile Wine."
1595 echo
1597 dnl Local Variables:
1598 dnl comment-start: "dnl "
1599 dnl comment-end: ""
1600 dnl comment-start-skip: "\\bdnl\\b\\s *"
1601 dnl compile-command: "autoconf"
1602 dnl End: