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