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