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