Implemented strtolW/strtoulW in libwine_unicode and used it to replace
[wine.git] / configure.ac
blob250e5458537d6901b60d67b7de7f43a7f2fd5e57
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 Default values
16 LIBEXT=so       # library type .so or .a
18 AC_ARG_ENABLE(debug, AC_HELP_STRING([--disable-debug],[compile out all debugging messages]))
19 AC_ARG_ENABLE(trace, AC_HELP_STRING([--disable-trace],[compile out TRACE messages]))
20 AC_ARG_ENABLE(opengl,AC_HELP_STRING([--enable-opengl],[force usage of OpenGL even if the latter is thread-safe via pthread]))
21 AC_ARG_WITH(curses,    AC_HELP_STRING([--without-curses],[do not use curses]))
22 AC_ARG_WITH(wine-tools,AC_HELP_STRING([--with-wine-tools=<dir>],[use Wine tools from directory <dir>]))
24 AC_SUBST(OPTIONS)
25 if test "x$enable_debug" = "xno"
26 then
27     AC_DEFINE(NO_DEBUG_MSGS,1,[Define to disable all debug messages.])
29 if test "x$enable_trace" = "xno" -o "x$enable_debug" = "xno"
30 then
31     AC_DEFINE(NO_TRACE_MSGS,1,[Define to disable trace messages.])
34 dnl **** Check for some programs ****
36 AC_CANONICAL_HOST
37 AC_PROG_MAKE_SET
38 AC_PROG_CC
39 AC_PROG_CPP
41 AC_CACHE_CHECK([for the directory containing the Wine tools], wine_cv_toolsdir,
42   [if test -z "$with_wine_tools"; then
43      if test "$cross_compiling" = "yes"; then
44        AC_MSG_ERROR([you must use the --with-wine-tools option when cross-compiling.])
45      else
46        wine_cv_toolsdir="\$(TOPOBJDIR)"
47      fi
48    elif test -d "$with_wine_tools/tools/winebuild"; then
49      case $with_wine_tools in
50        /*) wine_cv_toolsdir="$with_wine_tools" ;;
51        *)  wine_cv_toolsdir="\$(TOPOBJDIR)/$with_wine_tools" ;;
52      esac
53    else
54      AC_MSG_ERROR([could not find Wine tools in $with_wine_tools.])
55    fi])
56 AC_SUBST(TOOLSDIR,$wine_cv_toolsdir)
58 AC_PATH_XTRA
59 AC_PROG_YACC
60 AC_PROG_LEX
62 dnl **** Just additional warning checks, since AC_PROG just sets 'yacc' even
63 dnl **** without one present.
64 AC_CHECK_PROGS(XYACC,$YACC bison yacc,none)
65 if test "$XYACC" = "none"
66 then
67   AC_MSG_ERROR([no suitable bison/yacc found. Please install the 'bison' package.])
69 AC_CHECK_PROGS(XLEX,$LEX flex lex,none)
70 if test "$XLEX" = "none"
71 then
72   AC_MSG_ERROR([no suitable lex found. Please install the 'flex' package.])
75 AC_CHECK_TOOL(AR,ar,ar)
76 AC_PROG_RANLIB
77 AC_CHECK_TOOL(STRIP,strip,strip)
78 AC_CHECK_TOOL(WINDRES,windres,false)
79 AC_PROG_INSTALL
80 AC_PROG_LN_S
81 AC_CHECK_PROG(C2MAN,c2man,c2man,\$(TOPSRCDIR)/tools/c2man.pl)
82 AC_PATH_PROG(LDCONFIG, ldconfig, true, [/sbin /usr/sbin $PATH])
84 case $host_os in
85    cygwin*|mingw32*)
86       AC_CHECK_TOOL(LDCOMBINE,[ld -r --enable-stdcall-fixup],[ld -r --enable-stdcall-fixup]) ;;
87    *)
88       AC_CHECK_TOOL(LDCOMBINE,[ld -r],[ld -r]) ;;
89 esac
91 dnl Check for lint
92 AC_CHECK_PROGS(LINT, lclint lint)
93 if test "$LINT" = "lint"
94 then
95   LINTFLAGS="$LINTFLAGS -errchk=%all,no%longptr64 -errhdr=%user -Ncheck=macro -Nlevel=4"
96   dnl LINTFLAGS='-D_SIZE_T "-Dsize_t=unsigned long" -errchk=longptr64'
98 AC_SUBST(LINT)
99 AC_SUBST(LINTFLAGS)
101 dnl **** Check for some libraries ****
103 dnl Check for -lm
104 AC_CHECK_LIB(m,sqrt)
105 dnl Check for -li386 for NetBSD and OpenBSD
106 AC_CHECK_LIB(i386,i386_set_ldt)
107 dnl Check for -lossaudio for NetBSD
108 AC_CHECK_LIB(ossaudio,_oss_ioctl)
109 dnl Check for -lw for Solaris
110 AC_CHECK_FUNCS(iswalnum,,AC_CHECK_LIB(w,iswalnum))
111 dnl Check for -lnsl for Solaris
112 AC_CHECK_FUNCS(gethostbyname,,AC_CHECK_LIB(nsl,gethostbyname))
113 dnl Check for -lsocket for Solaris
114 AC_CHECK_FUNCS(connect,,AC_CHECK_LIB(socket,connect))
115 dnl Check for -lresolv for Solaris
116 AC_CHECK_FUNCS(inet_aton,,AC_CHECK_LIB(resolv,inet_aton))
117 dnl Check for -lxpg4 for FreeBSD
118 AC_CHECK_LIB(xpg4,_xpg4_setrunelocale)
119 dnl Check for -lmmap for OS/2
120 AC_CHECK_LIB(mmap,mmap)
122 JPEGLIB=""
123 AC_SUBST(JPEGLIB)
124 AC_CHECK_HEADERS(jpeglib.h,
125     AC_CHECK_LIB(jpeg,jpeg_start_decompress,
126         AC_DEFINE(HAVE_LIBJPEG,1,[Define if you have libjpeg including devel headers])
127         JPEGLIB="-ljpeg"
128     )
132 AC_SUBST(XLIB)
133 AC_SUBST(XFILES)
134 XFILES=""
135 AC_SUBST(OPENGLFILES)
136 OPENGLFILES=""
137 AC_SUBST(GLU32FILES)
138 GLU32FILES=""
139 if test "$have_x" = "yes"
140 then
141     XLIB="-lXext -lX11"
142     ac_save_CPPFLAGS="$CPPFLAGS"
143     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
145     dnl *** All of the following tests require X11/Xlib.h
146     AC_CHECK_HEADERS(X11/Xlib.h,
147       [
148         dnl *** Check for X keyboard extension
149         AC_CHECK_HEADERS(X11/XKBlib.h,
150             [ dnl *** If X11/XKBlib.h exists...
151               AC_CHECK_LIB(X11, XkbQueryExtension,
152               AC_DEFINE(HAVE_XKB, 1, [Define if you have the XKB extension]),,
153               $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
154             ],
155             AC_MSG_WARN([[Xkb extension not found, Wine will be built without it]])
156         )
158         dnl *** Check for X Shm extension
159         AC_CHECK_HEADERS(X11/extensions/XShm.h,
160             [ dnl *** If X11/extensions/XShm.h exists...
161               AC_CHECK_LIB(Xext, XShmQueryExtension,
162               AC_DEFINE(HAVE_LIBXXSHM, 1, [Define if you have the X Shm extension]),,
163               $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
164             ],
165             AC_MSG_WARN([[XShm extension not found, Wine will be built without it]]),
166             [#include <X11/Xlib.h>])
168         dnl *** Check for X shape extension
169         AC_CHECK_HEADERS(X11/extensions/shape.h,
170             [ dnl *** If X11/extensions/shape.h exists...
171               AC_CHECK_LIB(Xext,XShapeQueryExtension,
172               AC_DEFINE(HAVE_LIBXSHAPE, 1, [Define if you have the X Shape extension]),,
173               $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
174             ],
175             AC_MSG_WARN([[XShape extension not found, Wine will be built without it]]),
176             [#include <X11/Xlib.h>])
177         
178         dnl *** Check for XFree86 DGA / DGA 2.0 extension
179         AC_CHECK_HEADERS(X11/extensions/xf86dga.h,
180             [ dnl *** If X11/extensions/xf86dga.h exists, check 
181               dnl *** for XDGAQueryExtension()...
182               AC_CHECK_LIB(Xxf86dga, XDGAQueryExtension,
183                 [ dnl *** If found...
184                   AC_DEFINE(HAVE_LIBXXF86DGA2, 1,
185                             [Define if you have the Xxf86dga library version 2])
186                   X_PRE_LIBS="$X_PRE_LIBS -lXxf86dga"
187                ],
188                 [ dnl *** If not found, look for XF86DGAQueryExtension()
189                   dnl *** instead (DGA 2.0 not found)...
190                   AC_CHECK_LIB(Xxf86dga, XF86DGAQueryExtension,
191                     [ AC_DEFINE(HAVE_LIBXXF86DGA, 1,
192                                 [Define if you have the Xxf86dga library version 1])
193                       X_PRE_LIBS="$X_PRE_LIBS -lXxf86dga"
194                     ],,
195                     $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
196                   )
197                 ],
198                 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
199               )
200             ],
201             AC_MSG_WARN([[DGA extension not found, Wine will be built without it]]),
202             [#include <X11/Xlib.h>])
204         dnl *** Check for XFree86 VMODE extension
205         AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,
206             [ dnl *** If X11/extensions/xf86vmode.h exists...
207                 AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryExtension,
208                   [ AC_DEFINE(HAVE_LIBXXF86VM, 1, [Define if you have the Xxf86vm library])
209                      X_PRE_LIBS="$X_PRE_LIBS -lXxf86vm"
210                   ],,
211                   $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
212                 )
213             ],
214             AC_MSG_WARN([[XFree86 VMODE extension not found, Wine will be built without it]]),
215             [#include <X11/Xlib.h>])
217         dnl *** Check for XVideo extension supporting XvImages
218         AC_CHECK_HEADERS(X11/extensions/Xvlib.h,
219             [ dnl *** If X11/extensions/Xvlib.h exists...
220                 AC_CHECK_LIB(Xv, XvShmCreateImage,
221                   [ AC_DEFINE(HAVE_XVIDEO, 1, [Define if the X libraries support XVideo])
222                      X_PRE_LIBS="$X_PRE_LIBS -lXv"
223                   ],,
224                   $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
225                 )
226             ],
227             AC_MSG_WARN([[XVideo extension not found, Wine will be built without it]]),
228             [#include <X11/Xlib.h>])
230         dnl *** Check for XRender include file
231         AC_CHECK_HEADERS(X11/extensions/Xrender.h,,,[#include <X11/Xlib.h>])
232       ]
233     ) dnl *** End of X11/Xlib.h check
235     dnl Check for the presence of OpenGL
236     if test "x$enable_opengl" != "xno"
237     then
238         if test -f /usr/X11R6/lib/libGL.a -a ! -f /usr/X11R6/lib/libGL.so
239         then
240             AC_MSG_ERROR([/usr/X11R6/lib/libGL.a is present on your system.
241 This prevents linking to OpenGL. Delete the file and restart configure.])
242         fi
244         AC_CHECK_HEADERS(GL/gl.h GL/glx.h)
245         if test "$ac_cv_header_GL_gl_h" = "yes" -a "$ac_cv_header_GL_glx_h" = "yes"
246         then
247             AC_CHECK_HEADERS(GL/glext.h,,,[#include <GL/glx.h>])
248             dnl Check for some problems due to old Mesa versions
249             AC_CACHE_CHECK([for up-to-date OpenGL version], wine_cv_opengl_version_OK,
250               AC_TRY_COMPILE(
251                 [#include <GL/gl.h>],
252                 [GLenum test = GL_UNSIGNED_SHORT_5_6_5;],
253                 [wine_cv_opengl_version_OK="yes"],
254                 [wine_cv_opengl_version_OK="no"]
255               )
256             )
258             dnl Check for the thread-safety of the OpenGL library
259             AC_CACHE_CHECK([for thread-safe OpenGL version], 
260                            wine_cv_opengl_version_threadsafe,
261               [saved_libs=$LIBS
262                LIBS="$X_LIBS -lGL"
263                AC_TRY_LINK([],[pthread_getspecific();],
264                               [wine_cv_opengl_version_threadsafe="yes"],
265                               [wine_cv_opengl_version_threadsafe="no"])
266                LIBS=$saved_libs]
267             )
269             if test "$wine_cv_opengl_version_OK" = "yes" -a \( "$wine_cv_opengl_version_threadsafe" = "no" -o "x$enable_opengl" = "xyes" \)
270             then
271                 dnl Check for the presence of the library
272                 AC_CHECK_LIB(GL,glXCreateContext,
273                              X_PRE_LIBS="$X_PRE_LIBS -lGL"
274                              ,,
275                              $X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS)
277                 if test "$ac_cv_lib_GL_glXCreateContext" = "yes"
278                 then
279                         OPENGLFILES='$(OPENGLFILES)'
280                         AC_DEFINE(HAVE_OPENGL, 1, [Define if OpenGL is present on the system])
282                         AC_CHECK_LIB(GL,glXGetProcAddressARB,
283                                      AC_DEFINE(HAVE_GLX_GETPROCADDRESS, 1,
284                                                [Define if the OpenGL library supports the glXGetProcAddressARB call]),,
285                                      $X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS)
287                         if test "$ac_cv_lib_GL_glXGetProcAddressARB" = "yes"
288                         then
289                                AC_CACHE_CHECK([for OpenGL extension functions prototypes], wine_cv_extension_prototypes,
290                                   [AC_TRY_COMPILE([#include <GL/gl.h>
291                                                   #ifdef HAVE_GL_GLEXT_H
292                                                   # include <GL/glext.h>
293                                                   #endif
294                                                   ],
295                                                  [PFNGLCOLORTABLEEXTPROC test_proc;],
296                                                  [wine_cv_extension_prototypes="yes"],
297                                                  [wine_cv_extension_prototypes="no"]
298                                   )]
299                                 )
300                                 if test "$wine_cv_extension_prototypes" = "yes"
301                                 then
302                                     AC_DEFINE(HAVE_GLEXT_PROTOTYPES, 1,
303                                               [Define if the OpenGL headers define extension typedefs])
304                                 fi
305                         fi
307                 fi
308                 dnl Check for GLU32 library.
309                 AC_CHECK_LIB(GLU,gluLookAt,
310                              [X_PRE_LIBS="$X_PRE_LIBS -lGLU"
311                              GLU32FILES='$(GLU32FILES)']
312                              ,,
313                              $X_LIBS $X_PRE_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS
314                 )
315              fi
316          fi
317     fi
319     CPPFLAGS="$ac_save_CPPFLAGS"
320     XFILES='$(XFILES)'
321 else
322     XLIB=""
323     X_CFLAGS=""
324     X_LIBS=""
327 dnl **** Check which curses lib to use ***
328 CURSESLIBS=""
329 if test "x$with_curses" != "xno"
330 then
331     AC_CHECK_HEADERS(ncurses.h,
332         [AC_CHECK_LIB(ncurses,waddch,
333             [AC_DEFINE(HAVE_LIBNCURSES, 1, [Define if you have the ncurses library (-lncurses)])
334              CURSESLIBS="-lncurses"],
335              [AC_CHECK_HEADERS(curses.h,
336                  [AC_CHECK_LIB(curses,waddch,
337                      [AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have the curses library (-lcurses)])
338                       CURSESLIBS="-lcurses"])])])])
339     saved_libs="$LIBS"
340     LIBS="$CURSESLIBS $LIBS"
341     AC_CHECK_FUNCS(getbkgd resizeterm)
342     LIBS="$saved_libs"
344 AC_SUBST(CURSESLIBS)
346 CUPSLIBS=""
347 dnl **** Check for CUPS ****
348 wine_cv_warn_cups_h=no
349 AC_CHECK_LIB(cups,cupsGetPPD,
350         [AC_CHECK_HEADER(cups/cups.h,
351             [AC_DEFINE(HAVE_CUPS, 1, [Define if we have CUPS])
352             CUPSLIBS="-lcups"],
353             wine_cv_warn_cups_h=yes)]
355 AC_SUBST(CUPSLIBS)
357 dnl **** Check for SANE ****
358 AC_CHECK_PROG(sane_devel,sane-config,sane-config,no)
359 if test "$sane_devel" = "no"
360 then
361     SANELIBS=""
362     SANEINCL=""
363 else
364     SANELIBS="`$sane_devel --libs`"
365     SANEINCL="`$sane_devel --cflags`"
366     ac_save_CPPFLAGS="$CPPFLAGS"
367     ac_save_LIBS="$LIBS"
368     CPPFLAGS="$CPPFLAGS $SANEINCL"
369     LIBS="$LIBS $SANELIBS"
370     AC_CHECK_HEADER(sane/sane.h,
371                     [AC_CHECK_LIB(sane,sane_open,
372                                   [AC_DEFINE(HAVE_SANE, 1, [Define if we have SANE development environment])],
373                                   [SANELIBS=""
374                                   SANEINCL=""])],
375                     [SANELIBS=""
376                     SANEINCL=""])
377     LIBS="$ac_save_LIBS"
378     CPPFLAGS="$ac_save_CPPFLAGS"
380 AC_SUBST(SANELIBS)
381 AC_SUBST(SANEINCL)
383 dnl **** Check for FreeType 2 ****
384 AC_CHECK_LIB(freetype,FT_Init_FreeType,ft_lib=yes,ft_lib=no,$X_LIBS)
385 if test "$ft_lib" = "no"
386 then
387     FREETYPEINCL=""
388     wine_cv_msg_freetype=no
389 else
390     AC_CHECK_PROG(ft_devel,freetype-config,freetype-config,no)
391     if test "$ft_devel" = "no"
392     then
393         AC_CHECK_PROG(ft_devel2,freetype2-config,freetype2-config,no)
394         if test "$ft_devel2" = "freetype2-config"
395         then
396                 ft_devel=$ft_devel2
397         fi
398     fi
399     if test "$ft_devel" = "no"
400     then
401         FREETYPEINCL=""
402         wine_cv_msg_freetype=yes
403     else
404         FREETYPEINCL=`$ft_devel --cflags`
405         ac_save_CPPFLAGS="$CPPFLAGS"
406         CPPFLAGS="$FREETYPEINCL $CPPFLAGS"
407         AC_CHECK_HEADERS(freetype/freetype.h \
408                          freetype/ftglyph.h \
409                          freetype/tttables.h \
410                          freetype/ftnames.h \
411                          freetype/ftsnames.h \
412                          freetype/ttnameid.h \
413                          freetype/ftoutln.h \
414                          freetype/internal/sfnt.h)
415         AC_TRY_CPP([#include <ft2build.h>
416                     #include <freetype/fttrigon.h>],
417                     [AC_DEFINE(HAVE_FREETYPE_FTTRIGON_H, 1,
418           [Define if you have the <freetype/fttrigon.h> header file.])
419                     wine_cv_fttrigon=yes],
420                     wine_cv_fttrigon=no)
421         CPPFLAGS="$ac_save_CPPFLAGS"
422         dnl Check that we have at least freetype/freetype.h
423         if test "$ac_cv_header_freetype_freetype_h" = "yes" -a "$wine_cv_fttrigon" = "yes"
424         then
425             AC_DEFINE(HAVE_FREETYPE, 1, [Define if FreeType 2 is installed])
426             wine_cv_msg_freetype=no
427         else
428             FREETYPEINCL=""
429             wine_cv_msg_freetype=yes
430         fi
431     fi
433 AC_SUBST(FREETYPEINCL)
435 dnl **** Check for parport (currently Linux only) ****
436 AC_CACHE_CHECK([for parport header/ppdev.h], ac_cv_c_ppdev,
437  AC_TRY_COMPILE(
438    [#include <linux/ppdev.h>],
439    [ioctl (1,PPCLAIM,0)],
440    [ac_cv_c_ppdev="yes"],
441    [ac_cv_c_ppdev="no"])
443 if test "$ac_cv_c_ppdev" = "yes"
444 then
445     AC_DEFINE(HAVE_PPDEV, 1, [Define if we can use ppdev.h for parallel port access])
448 dnl **** Check for IPX (currently Linux only) ****
449 AC_CACHE_CHECK([for GNU style IPX support], ac_cv_c_ipx_gnu,
450  AC_TRY_COMPILE(
451    [#include <sys/socket.h>
452     #include <netipx/ipx.h>],
453    [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
454    [ac_cv_c_ipx_gnu="yes"],
455    [ac_cv_c_ipx_gnu="no"])
457 if test "$ac_cv_c_ipx_gnu" = "yes"
458 then
459     AC_DEFINE(HAVE_IPX_GNU, 1, [Define if IPX should use netipx/ipx.h from libc])
462 if test "$ac_cv_c_ipx_gnu" = "no"
463 then
464  AC_CACHE_CHECK([for linux style IPX support], ac_cv_c_ipx_linux,
465   AC_TRY_COMPILE(
466     [#include <sys/socket.h>
467      #include <asm/types.h>
468      #include <linux/ipx.h>],
469     [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
470     [ac_cv_c_ipx_linux="yes"],
471     [ac_cv_c_ipx_linux="no"])
472   )
473   if test "$ac_cv_c_ipx_linux" = "yes"
474   then
475       AC_DEFINE(HAVE_IPX_LINUX, 1, [Define if IPX includes are taken from Linux kernel])
476   fi
479 dnl **** Check for Open Sound System ****
480 AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h soundcard.h, break)
482 AC_CACHE_CHECK([for Open Sound System],
483         ac_cv_c_opensoundsystem,
484         AC_TRY_COMPILE([
485         #if defined(HAVE_SYS_SOUNDCARD_H)
486                 #include <sys/soundcard.h>
487         #elif defined(HAVE_MACHINE_SOUNDCARD_H)
488                 #include <machine/soundcard.h>
489         #elif defined(HAVE_SOUNDCARD_H)
490                 #include <soundcard.h>
491         #endif
492         ],[
494 /* check for one of the Open Sound System specific SNDCTL_ defines */
495 #if !defined(SNDCTL_DSP_STEREO)
496 #error No open sound system
497 #endif
498 ],ac_cv_c_opensoundsystem="yes",ac_cv_c_opensoundsystem="no"))
500 if test "$ac_cv_c_opensoundsystem" = "yes"
501 then
502     AC_DEFINE(HAVE_OSS, 1, [Define if you have the Open Sound system])
505 AC_CACHE_CHECK([for Open Sound System/MIDI interface],
506         ac_cv_c_opensoundsystem_midi,
507         AC_TRY_COMPILE([
508         #if defined(HAVE_SYS_SOUNDCARD_H)
509                 #include <sys/soundcard.h>
510         #elif defined(HAVE_MACHINE_SOUNDCARD_H)
511                 #include <machine/soundcard.h>
512         #elif defined(HAVE_SOUNDCARD_H)
513                 #include <soundcard.h>
514         #endif
515         ],[
517 /* check for one of the Open Sound System specific SNDCTL_SEQ defines */
518 #if !defined(SNDCTL_SEQ_SYNC)
519 #error No open sound system MIDI interface
520 #endif
521 ],ac_cv_c_opensoundsystem_midi="yes",ac_cv_c_opensoundsystem_midi="no"))
523 if test "$ac_cv_c_opensoundsystem_midi" = "yes"
524 then
525     AC_DEFINE(HAVE_OSS_MIDI, 1, [Define if you have the Open Sound system (MIDI interface)])
528 dnl **** Check for aRts Sound Server ****
529 AC_PATH_PROG(ARTSCCONFIG, artsc-config)
530 AC_CACHE_CHECK([for aRts Sound server],
531         ac_cv_c_artsserver,
532         if test x$ARTSCCONFIG = x -o x$ARTSCCONFIG = x'"$ARTSCCONFIG"';
533         then
534             ac_cv_c_artsserver=no
535         else
536             ARTSC_CFLAGS=`$ARTSCCONFIG --cflags`
537             ARTSC_LIBS=`$ARTSCCONFIG --libs`
538             ac_cv_c_artsserver=no
539             save_CFLAGS="$CFLAGS"
540             CFLAGS="$CFLAGS $ARTSC_CFLAGS"
541             AC_TRY_COMPILE([
542              #include <artsc.h>
543             ],[
544              arts_stream_t stream;
545             ],[
546             ac_cv_c_artsserver=yes
547             ])
548             CFLAGS="$save_CFLAGS"
549         fi)
551 if test "$ac_cv_c_artsserver" = "yes"
552 then
553     AC_SUBST(ARTSLIBS, $ARTSC_LIBS)
554     AC_SUBST(ARTSINCL, $ARTSC_CFLAGS)
556     AC_DEFINE(HAVE_ARTS, 1, [Define if you have ARTS sound server])
559 dnl **** Check for broken glibc mmap64 ****
561 AC_CACHE_CHECK( [whether mmap64 works defined as mmap], ac_cv_mmap64_works,
562         AC_TRY_RUN([
563                 #define _FILE_OFFSET_BITS 64
564                 #include <stdio.h>
565                 #include <unistd.h>
566                 #include <fcntl.h>
567                 #include <sys/mman.h>
568                 #include <errno.h>
570                 int main(int argc,char **argv) {
571                         int fd = open("conftest.map",O_CREAT|O_RDWR,0600);
572                         if (fd == -1) exit(1);
574                         unlink("conftest.map");
576                         write(fd,"test",4);
578                         if ((-1 == mmap(0,4,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0)) &&
579                             (errno == EINVAL)
580                         ) {
581                                 exit(1);
582                         }
583                         close(fd);
584                         fprintf(stderr,"success!\n");
585                         exit(0);
586                 }
588         ],
589     ac_cv_mmap64_works="yes",
590     ac_cv_mmap64_works="no",
591     ac_cv_mmap64_works="no") )
593 if test "$ac_cv_mmap64_works" = "yes"
594 then
595     AC_DEFINE(_FILE_OFFSET_BITS, 64, [Set this to 64 to enable 64-bit file support on Linux])
598 dnl **** Check for gcc strength-reduce bug ****
600 if test "x${GCC}" = "xyes"
601 then
602   CFLAGS="$CFLAGS -Wall"
603   AC_CACHE_CHECK( [for gcc strength-reduce bug], ac_cv_c_gcc_strength_bug,
604                   AC_TRY_RUN([
605 int     L[[4]] = {0,1,2,3};
606 int main(void) {
607   static int Array[[3]];
608   unsigned int B = 3;
609   int i;
610   for(i=0; i<B; i++) Array[[i]] = i - 3;
611   for(i=0; i<4 - 1; i++) L[[i]] = L[[i + 1]];
612   L[[i]] = 4;
613   
614   exit( Array[[1]] != -2 || L[[2]] != 3);
616     ac_cv_c_gcc_strength_bug="no",
617     ac_cv_c_gcc_strength_bug="yes",
618     ac_cv_c_gcc_strength_bug="yes") )
619   if test "$ac_cv_c_gcc_strength_bug" = "yes"
620   then
621     CFLAGS="$CFLAGS -fno-strength-reduce"
622   fi
624   dnl Check for -mpreferred-stack-boundary
625   AC_CACHE_CHECK([for gcc -mpreferred-stack-boundary=2 support],
626                  ac_cv_c_gcc_stack_boundary,
627   [saved_cflags=$CFLAGS
628   CFLAGS="$CFLAGS -mpreferred-stack-boundary=2"
629   AC_TRY_COMPILE(,[return 0],ac_cv_c_gcc_stack_boundary="yes",ac_cv_c_gcc_stack_boundary="no")
630   CFLAGS=$saved_cflags
631   ])
632   if test "$ac_cv_c_gcc_stack_boundary" = "yes"
633   then
634     CFLAGS="$CFLAGS -mpreferred-stack-boundary=2"
635   fi
638 dnl **** Check if we need to place .type inside a .def directive ****
640 AC_CACHE_CHECK([whether .type must sit inside a .def directive],
641                ac_cv_c_type_in_def,
642 [saved_libs=$LIBS
643 LIBS="conftest_asm.s $LIBS"
644 cat > conftest_asm.s <<EOF
645         .globl _ac_test
646         .def _ac_test; .scl 2; .type 32; .endef
647 _ac_test:
648         .long 0
650 AC_TRY_LINK(,,ac_cv_c_type_in_def="yes",ac_cv_c_type_in_def="no")
651 LIBS=$saved_libs])
652 if test "$ac_cv_c_type_in_def" = "yes"
653 then
654   AC_DEFINE(NEED_TYPE_IN_DEF, 1, [Define if .type asm directive must be inside a .def directive])
657 dnl **** Check for underscore on external symbols ****
659 AC_CACHE_CHECK([whether external symbols need an underscore prefix],
660                ac_cv_c_extern_prefix,
661 [saved_libs=$LIBS
662 LIBS="conftest_asm.s $LIBS"
663 cat > conftest_asm.s <<EOF
664         .globl _ac_test
665 _ac_test:
666         .long 0
668 AC_TRY_LINK([extern int ac_test;],[if (ac_test) return 1],
669             ac_cv_c_extern_prefix="yes",ac_cv_c_extern_prefix="no")
670 LIBS=$saved_libs])
671 if test "$ac_cv_c_extern_prefix" = "yes"
672 then
673   AC_DEFINE(NEED_UNDERSCORE_PREFIX, 1,
674             [Define if symbols declared in assembly code need an underscore prefix])
677 dnl **** Check whether stdcall symbols need to be decorated ****
679 AC_CACHE_CHECK([whether stdcall symbols need to be decorated],
680                ac_cv_c_stdcall_decoration,
681 [saved_libs=$LIBS
682 LIBS="conftest_asm.s $LIBS"
683 if test "$ac_cv_c_extern_prefix" = "yes"
684 then
685 cat > conftest_asm.s <<EOF
686         .globl _ac_test@0
687 _ac_test@0:
689 else
690 cat > conftest_asm.s <<EOF
691         .globl ac_test@0
692 ac_test@0:
695 AC_TRY_LINK([extern void __attribute__((__stdcall__)) ac_test(void);],
696             [ac_test(); return 0],
697             ac_cv_c_stdcall_decoration="yes",ac_cv_c_stdcall_decoration="no")
698 LIBS=$saved_libs])
699 if test "$ac_cv_c_stdcall_decoration" = "yes"
700 then
701   AC_DEFINE(NEED_STDCALL_DECORATION, 1,
702             [Define if stdcall symbols need to be decorated])
705 dnl **** Check for .string in assembler ****
707 AC_CACHE_CHECK([whether assembler accepts .string],
708                ac_cv_c_asm_string,
709 [saved_libs=$LIBS
710 LIBS="conftest_asm.s $LIBS"
711 cat > conftest_asm.s <<EOF
712         .string "test"
714 AC_TRY_LINK(,,ac_cv_c_asm_string="yes",ac_cv_c_asm_string="no")
715 LIBS=$saved_libs])
716 if test "$ac_cv_c_asm_string" = "yes"
717 then
718   AC_DEFINE(HAVE_ASM_STRING, 1, [Define to use .string instead of .ascii])
721 dnl **** Check for working dll ****
723 LDSHARED=""
724 LDDLLFLAGS=""
725 DLLIBS=""
727 case $host_os in
728   cygwin*|mingw32*)
729     AC_CHECK_TOOL(DLLWRAP,dllwrap,false)
730     if test "$DLLWRAP" = "false"; then
731       LIBEXT="a"
732     else
733       dnl FIXME - check whether dllwrap works correctly...
734       LIBEXT="dll"
735     fi
736     ;;
737   *)
738     AC_CHECK_HEADERS(dlfcn.h,
739         [AC_CHECK_FUNCS(dlopen,,
740             [AC_CHECK_LIB(dl,dlopen,
741                          [AC_DEFINE(HAVE_DLOPEN,1,[Define if you have dlopen])
742                           DLLIBS="-ldl"],
743                          [LIBEXT="a"])])],
744         [LIBEXT="a"])
746     if test "$LIBEXT" = "so"
747     then
748       AC_CACHE_CHECK([whether we can build a GNU style ELF dll],ac_cv_c_dll_gnuelf,
749       [saved_cflags=$CFLAGS
750       CFLAGS="$CFLAGS -fPIC -shared -Wl,-soname,conftest.so.1.0,-Bsymbolic"
751       AC_TRY_LINK(,[return 1],ac_cv_c_dll_gnuelf="yes",ac_cv_c_dll_gnuelf="no")
752       CFLAGS=$saved_cflags
753       ])
754       if test "$ac_cv_c_dll_gnuelf" = "yes"
755       then
756         LDSHARED="\$(CC) -shared \$(SONAME:%=-Wl,-soname,%)"
757         LDDLLFLAGS="-Wl,-Bsymbolic"
758       else
759         AC_CACHE_CHECK(whether we can build a UnixWare (Solaris) dll,
760                      ac_cv_c_dll_unixware,
761         [saved_cflags=$CFLAGS
762         CFLAGS="$CFLAGS -fPIC -Wl,-G,-h,conftest.so.1.0,-B,symbolic"
763         AC_TRY_LINK(,[return 1],ac_cv_c_dll_unixware="yes",ac_cv_c_dll_unixware="no")
764         CFLAGS=$saved_cflags
765         ])
766         if test "$ac_cv_c_dll_unixware" = "yes"
767         then
768           LDSHARED="\$(CC) -Wl,-G \$(SONAME:%=-Wl,-h,%)"
769           LDDLLFLAGS="-Wl,-B,symbolic"
770         fi
771       fi
772     fi
773     ;;
774 esac
776 if test "$LIBEXT" = "a"; then
777   AC_MSG_ERROR(
778 [could not find a way to build shared libraries.
779 It is currently not possible to build Wine without shared library
780 (.so) support to allow transparent switch between .so and .dll files.
781 If you are using Linux, you will need a newer binutils.]
785 DLLFLAGS=""
787 if test "$LIBEXT" = "so"; then
788     DLLFLAGS="-fPIC"
789     DLLEXT=".so"
790 elif test "$LIBEXT" = "dll"; then
791     #DLLFLAGS="-fPIC" # -fPIC doesn't work(at least in cygwin-b20) - FIXME
792     DLLEXT=""
795 case $build_os in
796   cygwin*|mingw32*)
797     LDPATH="PATH=\"\$(TOOLSDIR)/library:\$(TOOLSDIR)/unicode:\$\$PATH\"" ;;
798   *)
799     LDPATH="LD_LIBRARY_PATH=\"\$(TOOLSDIR)/library:\$(TOOLSDIR)/unicode:\$\$LD_LIBRARY_PATH\"" ;;
800 esac
802 AC_SUBST(DLLIBS)
803 AC_SUBST(DLLFLAGS)
804 AC_SUBST(DLLEXT)
805 AC_SUBST(LDSHARED)
806 AC_SUBST(LDDLLFLAGS)
807 AC_SUBST(LIBEXT)
808 AC_SUBST(LDPATH)
810 dnl **** Check for reentrant libc ****
812 dnl For cross-compiling we blindly assume that libc is reentrant. This is
813 dnl ok since non-reentrant libc is quite rare (mostly old libc5 versions).
815 AC_DEFUN([WINE_CHECK_ERRNO],
817   AC_CACHE_CHECK(for reentrant libc: $1, wine_cv_libc_r_$1,
818   [AC_TRY_RUN([int myerrno = 0;
819 char buf[256];
820 int *$1(){return &myerrno;}
821 main(){connect(0,buf,255); exit(!myerrno);}],
822   wine_cv_libc_r_$1=yes, wine_cv_libc_r_$1=no,
823   wine_cv_libc_r_$1=yes )
825 if test "$wine_cv_libc_r_$1" = "yes"
826 then
827     wine_cv_libc_reentrant=$1 
831 wine_cv_libc_reentrant=no 
832 dnl Linux style errno location
833 WINE_CHECK_ERRNO(__errno_location)
834 dnl FreeBSD style errno location
835 WINE_CHECK_ERRNO(__error)
836 dnl Solaris style errno location
837 WINE_CHECK_ERRNO(___errno)
838 dnl UnixWare style errno location
839 WINE_CHECK_ERRNO(__thr_errno)
840 dnl NetBSD style errno location
841 WINE_CHECK_ERRNO(__errno)
843 if test "$wine_cv_libc_reentrant" != "no" 
844 then
845   AC_DEFINE_UNQUOTED(ERRNO_LOCATION,$wine_cv_libc_reentrant,
846                      [Define to the name of the function returning errno for reentrant libc])
849 dnl **** Check for reentrant X libraries ****
851 dnl This may fail to determine whether X libraries are reentrant if
852 dnl AC_PATH_XTRA does not set x_libraries.
854 if test "$have_x" = "yes"
855 then
856 AC_CACHE_CHECK( [for reentrant X libraries], wine_cv_x_reentrant,
857     [libX11_check=none
858     for dir in "$x_libraries" /usr/lib /usr/local/lib /lib; do
859         if test -r $dir/libX11.so; then
860             libX11_check="-D $dir/libX11.so"
861             break
862         fi
863         if test -r $dir/libX11.a; then
864             libX11_check="$dir/libX11.a"
865             break
866         fi
867     done
868     if test "$libX11_check" != "none"; then
869         if nm $libX11_check | grep $wine_cv_libc_reentrant >/dev/null 2>&1
870         then
871             wine_cv_x_reentrant=yes
872         else
873             wine_cv_x_reentrant=no
874         fi
875     else
876         wine_cv_x_reentrant=unknown
877     fi])
880 dnl **** Check for functions ****
882 AC_FUNC_ALLOCA()
883 AC_CHECK_FUNCS(\
884         __libc_fork \
885         _lwp_create \
886         _pclose \
887         _popen \
888         _snprintf \
889         _stricmp \
890         _strnicmp \
891         chsize \
892         clone \
893         ecvt \
894         finite \
895         fpclass \
896         ftruncate \
897         ftruncate64 \
898         getnetbyaddr \
899         getnetbyname \
900         getpagesize \
901         getprotobyname \
902         getprotobynumber \
903         getservbyport \
904         getsockopt \
905         inet_network \
906         lseek64 \
907         lstat \
908         memmove \
909         mmap \
910         pclose \
911         popen \
912         pread \
913         pwrite \
914         rfork \
915         select \
916         sendmsg \
917         settimeofday \
918         sigaltstack \
919         snprintf \
920         statfs \
921         strcasecmp \
922         strerror \
923         strncasecmp \
924         tcgetattr \
925         timegm \
926         usleep \
927         vfscanf \
928         wait4 \
929         waitpid \
932 dnl **** Check for header files ****
934 AC_CHECK_HEADERS(\
935         arpa/inet.h \
936         arpa/nameser.h \
937         direct.h \
938         elf.h \
939         float.h \
940         ieeefp.h \
941         io.h \
942         libio.h \
943         libutil.h \
944         link.h \
945         linux/cdrom.h \
946         linux/hdreg.h \
947         linux/input.h \
948         linux/joystick.h \
949         linux/major.h \
950         linux/param.h \
951         linux/serial.h \
952         linux/ucdrom.h \
953         net/if.h \
954         netdb.h \
955         netinet/in.h \
956         netinet/in_systm.h \
957         netinet/ip.h \
958         netinet/tcp.h \
959         pty.h \
960         resolv.h \
961         sched.h \
962         scsi/sg.h \
963         socket.h \
964         stdint.h \
965         strings.h \
966         sys/cdio.h \
967         sys/errno.h \
968         sys/file.h \
969         sys/filio.h \
970         sys/inttypes.h \
971         sys/ioctl.h \
972         sys/ipc.h \
973         sys/link.h \
974         sys/lwp.h \
975         sys/mman.h \
976         sys/modem.h \
977         sys/mount.h \
978         sys/msg.h \
979         sys/param.h \
980         sys/ptrace.h \
981         sys/reg.h \
982         sys/shm.h \
983         sys/signal.h \
984         sys/socket.h \
985         sys/sockio.h \
986         sys/statfs.h \
987         sys/strtio.h \
988         sys/syscall.h \
989         sys/sysctl.h \
990         sys/time.h \
991         sys/user.h \
992         sys/v86.h \
993         sys/v86intr.h \
994         sys/vfs.h \
995         sys/vm86.h \
996         sys/wait.h \
997         syscall.h \
998         termios.h \
999         ucontext.h \
1000         unistd.h \
1002 AC_HEADER_STAT()
1004 dnl **** Check for types ****
1006 AC_C_CONST
1007 AC_C_INLINE
1008 AC_CHECK_TYPES([mode_t, off_t, pid_t, size_t, ssize_t])
1009 AC_CHECK_SIZEOF(long long,0)
1011 AC_CACHE_CHECK([whether linux/input.h is for real],
1012         wine_cv_linux_input_h,
1013         AC_TRY_COMPILE([
1014             #include <linux/input.h>
1015         ] , [
1016             int foo = EVIOCGBIT(EV_ABS,42);
1017             int bar = BTN_PINKIE;
1018             int fortytwo = 42;
1019         ],
1020         wine_cv_linux_input_h=yes,
1021         wine_cv_linux_input_h=no,
1022         no
1023         )
1024     )
1025     if test "$wine_cv_linux_input_h" = "yes"
1026     then
1027         AC_DEFINE(HAVE_CORRECT_LINUXINPUT_H, 1,
1028                   [Define if we have linux/input.h AND it contains the INPUT event API])
1029     fi
1031    
1032 AC_CACHE_CHECK([whether we can use re-entrant gethostbyname_r Linux style],
1033         wine_cv_linux_gethostbyname_r_6,
1034         AC_TRY_COMPILE([
1035 #include <netdb.h>
1036         ], [
1037     char *name=NULL;
1038     struct hostent he;
1039     struct hostent *result;
1040     char *buf=NULL;
1041     int bufsize=0;
1042     int res,errnr;
1043     char *addr=NULL;
1044     int addrlen=0;
1045     int addrtype=0;
1046     res=gethostbyname_r(name,&he,buf,bufsize,&result,&errnr);
1047     res=gethostbyaddr_r(addr, addrlen, addrtype,&he,buf,bufsize,&result,&errnr);
1048     ],
1049         wine_cv_linux_gethostbyname_r_6=yes,
1050         wine_cv_linux_gethostbyname_r_6=no
1051         )
1052    )
1053    if test "$wine_cv_linux_gethostbyname_r_6" = "yes"
1054    then
1055       AC_DEFINE(HAVE_LINUX_GETHOSTBYNAME_R_6, 1,
1056                 [Define if Linux-style gethostbyname_r and gethostbyaddr_r are available])
1057    fi
1059 if test "$ac_cv_header_linux_joystick_h" = "yes"
1060 then
1061    AC_CACHE_CHECK([whether linux/joystick.h uses the Linux 2.2+ API],
1062         wine_cv_linux_joystick_22_api,
1063         AC_TRY_COMPILE([
1064         #include <sys/ioctl.h>
1065         #include <linux/joystick.h>
1067         struct js_event blub;
1068         #if !defined(JS_EVENT_AXIS) || !defined(JS_EVENT_BUTTON)
1069         #error "no 2.2 header"
1070         #endif
1071         ],/*empty*/,
1072         wine_cv_linux_joystick_22_api=yes,
1073         wine_cv_linux_joystick_22_api=no,
1074         wine_cv_linux_joystick_22_api=no
1075         )
1076    )
1077    if test "$wine_cv_linux_joystick_22_api" = "yes"
1078    then
1079       AC_DEFINE(HAVE_LINUX_22_JOYSTICK_API, 1,
1080                 [Define if <linux/joystick.h> defines the Linux 2.2 joystick API])
1081    fi
1084 dnl **** statfs checks ****
1086 if test "$ac_cv_header_sys_vfs_h" = "yes"
1087 then
1088     AC_CACHE_CHECK( [whether sys/vfs.h defines statfs],
1089                     wine_cv_sys_vfs_has_statfs,
1090         AC_TRY_COMPILE([
1091         #include <sys/types.h>
1092         #ifdef HAVE_SYS_PARAM_H
1093         # include <sys/param.h>
1094         #endif
1095         #include <sys/vfs.h>
1096         ],[
1097                 struct statfs stfs;
1099                 memset(&stfs,0,sizeof(stfs));
1100         ],wine_cv_sys_vfs_has_statfs=yes,wine_cv_sys_vfs_has_statfs=no
1101         )
1102     )
1103     if test "$wine_cv_sys_vfs_has_statfs" = "yes"
1104     then
1105       AC_DEFINE(STATFS_DEFINED_BY_SYS_VFS, 1,
1106                 [Define if the struct statfs is defined by <sys/vfs.h>])
1107     fi
1110 if test "$ac_cv_header_sys_statfs_h" = "yes"
1111 then
1112     AC_CACHE_CHECK( [whether sys/statfs.h defines statfs],
1113                     wine_cv_sys_statfs_has_statfs,
1114         AC_TRY_COMPILE([
1115         #include <sys/types.h>
1116         #ifdef HAVE_SYS_PARAM_H
1117         # include <sys/param.h>
1118         #endif
1119         #include <sys/statfs.h>
1120         ],[
1121                 struct statfs stfs;
1122         ],wine_cv_sys_statfs_has_statfs=yes,wine_cv_sys_statfs_has_statfs=no
1123         )
1124     )
1125     if test "$wine_cv_sys_statfs_has_statfs" = "yes"
1126     then
1127       AC_DEFINE(STATFS_DEFINED_BY_SYS_STATFS, 1,
1128                 [Define if the struct statfs is defined by <sys/statfs.h>])
1129     fi
1132 if test "$ac_cv_header_sys_mount_h" = "yes"
1133 then
1134     AC_CACHE_CHECK( [whether sys/mount.h defines statfs],
1135                     wine_cv_sys_mount_has_statfs,
1136         AC_TRY_COMPILE([
1137         #include <sys/types.h>
1138         #ifdef HAVE_SYS_PARAM_H
1139         # include <sys/param.h>
1140         #endif
1141         #include <sys/mount.h>
1142         ],[
1143                 struct statfs stfs;
1144         ],wine_cv_sys_mount_has_statfs=yes,wine_cv_sys_mount_has_statfs=no
1145         )
1146     )
1147     if test "$wine_cv_sys_mount_has_statfs" = "yes"
1148     then
1149       AC_DEFINE(STATFS_DEFINED_BY_SYS_MOUNT, 1,
1150                 [Define if the struct statfs is defined by <sys/mount.h>])
1151     fi
1154 dnl *** Check for some structure members
1156 dnl Macro to check if a structure contains a specified member
1157 dnl Usage: WINE_CHECK_STRUCT_MEMBER(struct,member,[includes,[action-if-found,[action-if-not-found]]])
1159 AC_DEFUN([WINE_CHECK_STRUCT_MEMBER],
1160 [AC_CACHE_CHECK([for $2 in struct $1], ac_cv_c_$1_$2,
1161  AC_TRY_COMPILE([$3],[struct $1 s; s.$2 = 0],ac_cv_c_$1_$2="yes",ac_cv_c_$1_$2="no"))
1162 AS_IF([ test "x$ac_cv_c_$1_$2" = "xyes"],[$4],[$5])
1165 dnl **** FIXME: what about mixed cases, where we need two of them? ***
1167 WINE_CHECK_STRUCT_MEMBER(statfs,f_bfree,
1168 [#include <sys/types.h>
1169 #ifdef HAVE_SYS_PARAM_H
1170 # include <sys/param.h>
1171 #endif
1172 #ifdef STATFS_DEFINED_BY_SYS_MOUNT
1173 # include <sys/mount.h>
1174 #else
1175 # ifdef STATFS_DEFINED_BY_SYS_VFS
1176 #  include <sys/vfs.h>
1177 # else
1178 #  ifdef STATFS_DEFINED_BY_SYS_STATFS
1179 #   include <sys/statfs.h>
1180 #  endif
1181 # endif
1182 #endif],
1183     [AC_DEFINE(STATFS_HAS_BFREE, 1, [Define if the struct statfs has the member bfree])])
1185 WINE_CHECK_STRUCT_MEMBER(statfs,f_bavail,
1186 [#include <sys/types.h>
1187 #ifdef HAVE_SYS_PARAM_H
1188 # include <sys/param.h>
1189 #endif
1190 #ifdef STATFS_DEFINED_BY_SYS_MOUNT
1191 # include <sys/mount.h>
1192 #else
1193 # ifdef STATFS_DEFINED_BY_SYS_VFS
1194 #  include <sys/vfs.h>
1195 # else
1196 #  ifdef STATFS_DEFINED_BY_SYS_STATFS
1197 #   include <sys/statfs.h>
1198 #  endif
1199 # endif
1200 #endif],
1201     [AC_DEFINE(STATFS_HAS_BAVAIL, 1, [Define if the struct statfs has the member bavail])])
1203 dnl Check for file descriptor passing with msg_accrights
1204 WINE_CHECK_STRUCT_MEMBER(msghdr,msg_accrights,
1205 [#include <sys/types.h>
1206 #include <sys/socket.h>],
1207     [AC_DEFINE(HAVE_MSGHDR_ACCRIGHTS, 1, [Define if struct msghdr contains msg_accrights])])
1209 dnl Check for the sa_len member in struct sockaddr
1210 WINE_CHECK_STRUCT_MEMBER(sockaddr,sa_len,
1211 [#include <sys/types.h>
1212 #include <sys/socket.h>],
1213     [AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if struct sockaddr contains sa_len])])
1215 dnl Check for the sun_len member in struct sockaddr_un
1216 WINE_CHECK_STRUCT_MEMBER(sockaddr_un,sun_len,
1217 [#include <sys/types.h>
1218 #include <sys/socket.h>
1219 #include <sys/un.h>],
1220     [AC_DEFINE(HAVE_SOCKADDR_SUN_LEN, 1, [Define if struct sockaddr_un contains sun_len])])
1222 dnl *** check for the need to define __i386__
1224 case $host_cpu in
1225   *i[3456789]86* )
1226     AC_CACHE_CHECK([whether we need to define __i386__],ac_cv_cpp_def_i386,
1227       AC_EGREP_CPP(yes,[#ifndef __i386__
1229 #endif],
1230  ac_cv_cpp_def_i386="yes", ac_cv_cpp_def_i386="no"))
1231     ;;
1232 esac
1233 if test "$ac_cv_cpp_def_i386" = "yes"
1234 then
1235     CFLAGS="$CFLAGS -D__i386__"
1236     LINTFLAGS="$LINTFLAGS -D__i386__"
1239 dnl **** Generate output files ****
1241 dnl Macro to create non-existent directories from config.status
1242 dnl Usage: WINE_CONFIG_EXTRA_DIR(dirname)
1243 AC_DEFUN([WINE_CONFIG_EXTRA_DIR],
1244 [AC_CONFIG_COMMANDS([$1],[test -d "$1" || (AC_MSG_NOTICE([creating $1]) && mkdir "$1")])])
1246 AH_TOP([#define __WINE_CONFIG_H])
1248 WINE_CONFIG_EXTRA_DIR(controls)
1249 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/d3ddevice)
1250 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dclipper)
1251 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/ddraw)
1252 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/direct3d)
1253 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dpalette)
1254 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dsurface)
1255 WINE_CONFIG_EXTRA_DIR(dlls/dinput/joystick)
1256 WINE_CONFIG_EXTRA_DIR(dlls/dinput/keyboard)
1257 WINE_CONFIG_EXTRA_DIR(dlls/dinput/mouse)
1258 WINE_CONFIG_EXTRA_DIR(dlls/gdi/enhmfdrv)
1259 WINE_CONFIG_EXTRA_DIR(dlls/gdi/mfdrv)
1260 WINE_CONFIG_EXTRA_DIR(dlls/gdi/win16drv)
1261 WINE_CONFIG_EXTRA_DIR(dlls/kernel/messages)
1262 WINE_CONFIG_EXTRA_DIR(dlls/kernel/tests)
1263 WINE_CONFIG_EXTRA_DIR(dlls/oleaut32/tests)
1264 WINE_CONFIG_EXTRA_DIR(dlls/shlwapi/tests)
1265 WINE_CONFIG_EXTRA_DIR(dlls/user/dde)
1266 WINE_CONFIG_EXTRA_DIR(dlls/user/resources)
1267 WINE_CONFIG_EXTRA_DIR(dlls/user/tests)
1268 WINE_CONFIG_EXTRA_DIR(dlls/wineps/data)
1269 WINE_CONFIG_EXTRA_DIR(dlls/winsock/tests)
1270 WINE_CONFIG_EXTRA_DIR(files)
1271 WINE_CONFIG_EXTRA_DIR(graphics)
1272 WINE_CONFIG_EXTRA_DIR(graphics/x11drv)
1273 WINE_CONFIG_EXTRA_DIR(if1632)
1274 WINE_CONFIG_EXTRA_DIR(include/wine)
1275 WINE_CONFIG_EXTRA_DIR(loader)
1276 WINE_CONFIG_EXTRA_DIR(loader/ne)
1277 WINE_CONFIG_EXTRA_DIR(memory)
1278 WINE_CONFIG_EXTRA_DIR(misc)
1279 WINE_CONFIG_EXTRA_DIR(msdos)
1280 WINE_CONFIG_EXTRA_DIR(objects)
1281 WINE_CONFIG_EXTRA_DIR(programs/regapi/tests)
1282 WINE_CONFIG_EXTRA_DIR(programs/winetest/tests)
1283 WINE_CONFIG_EXTRA_DIR(relay32)
1284 WINE_CONFIG_EXTRA_DIR(scheduler)
1285 WINE_CONFIG_EXTRA_DIR(win32)
1286 WINE_CONFIG_EXTRA_DIR(windows)
1288 MAKE_RULES=Make.rules
1289 AC_SUBST_FILE(MAKE_RULES)
1291 MAKE_DLL_RULES=dlls/Makedll.rules
1292 AC_SUBST_FILE(MAKE_DLL_RULES)
1294 MAKE_PROG_RULES=programs/Makeprog.rules
1295 AC_SUBST_FILE(MAKE_PROG_RULES)
1297 AC_CONFIG_FILES([
1298 Make.rules
1299 dlls/Makedll.rules
1300 programs/Makeprog.rules
1301 Makefile
1302 debugger/Makefile
1303 dlls/Makefile
1304 dlls/advapi32/Makefile
1305 dlls/avicap32/Makefile
1306 dlls/avifil32/Makefile
1307 dlls/comcat/Makefile
1308 dlls/comctl32/Makefile
1309 dlls/commdlg/Makefile
1310 dlls/crtdll/Makefile
1311 dlls/crypt32/Makefile
1312 dlls/dciman32/Makefile
1313 dlls/ddraw/Makefile
1314 dlls/devenum/Makefile
1315 dlls/dinput/Makefile
1316 dlls/dplay/Makefile
1317 dlls/dplayx/Makefile
1318 dlls/dsound/Makefile
1319 dlls/gdi/Makefile
1320 dlls/glu32/Makefile
1321 dlls/icmp/Makefile
1322 dlls/imagehlp/Makefile
1323 dlls/imm32/Makefile
1324 dlls/kernel/Makefile
1325 dlls/lzexpand/Makefile
1326 dlls/mapi32/Makefile
1327 dlls/mpr/Makefile
1328 dlls/msacm/Makefile
1329 dlls/msacm/imaadp32/Makefile
1330 dlls/msacm/msg711/Makefile
1331 dlls/msdmo/Makefile
1332 dlls/msimg32/Makefile
1333 dlls/msisys/Makefile
1334 dlls/msnet32/Makefile
1335 dlls/msrle32/Makefile
1336 dlls/msvcrt/Makefile
1337 dlls/msvcrt20/Makefile
1338 dlls/msvideo/Makefile
1339 dlls/netapi32/Makefile
1340 dlls/ntdll/Makefile
1341 dlls/odbc32/Makefile
1342 dlls/ole32/Makefile
1343 dlls/oleaut32/Makefile
1344 dlls/olecli/Makefile
1345 dlls/oledlg/Makefile
1346 dlls/olepro32/Makefile
1347 dlls/olesvr/Makefile
1348 dlls/opengl32/Makefile
1349 dlls/psapi/Makefile
1350 dlls/qcap/Makefile
1351 dlls/quartz/Makefile
1352 dlls/rasapi32/Makefile
1353 dlls/richedit/Makefile
1354 dlls/rpcrt4/Makefile
1355 dlls/serialui/Makefile
1356 dlls/setupapi/Makefile
1357 dlls/shdocvw/Makefile
1358 dlls/shell32/Makefile
1359 dlls/shfolder/Makefile
1360 dlls/shlwapi/Makefile
1361 dlls/snmpapi/Makefile
1362 dlls/sti/Makefile
1363 dlls/tapi32/Makefile
1364 dlls/ttydrv/Makefile
1365 dlls/twain/Makefile
1366 dlls/url/Makefile
1367 dlls/urlmon/Makefile
1368 dlls/user/Makefile
1369 dlls/version/Makefile
1370 dlls/win32s/Makefile
1371 dlls/winaspi/Makefile
1372 dlls/winedos/Makefile
1373 dlls/wineps/Makefile
1374 dlls/wininet/Makefile
1375 dlls/winmm/Makefile
1376 dlls/winmm/joystick/Makefile
1377 dlls/winmm/mcianim/Makefile
1378 dlls/winmm/mciavi/Makefile
1379 dlls/winmm/mcicda/Makefile
1380 dlls/winmm/mciseq/Makefile
1381 dlls/winmm/mciwave/Makefile
1382 dlls/winmm/midimap/Makefile
1383 dlls/winmm/wavemap/Makefile
1384 dlls/winmm/winearts/Makefile
1385 dlls/winmm/wineoss/Makefile
1386 dlls/winnls/Makefile
1387 dlls/winsock/Makefile
1388 dlls/winspool/Makefile
1389 dlls/wintrust/Makefile
1390 dlls/wow32/Makefile
1391 dlls/wsock32/Makefile
1392 dlls/x11drv/Makefile
1393 documentation/Makefile
1394 include/Makefile
1395 library/Makefile
1396 libtest/Makefile
1397 miscemu/Makefile
1398 ole/Makefile
1399 programs/Makefile
1400 programs/avitools/Makefile
1401 programs/clock/Makefile
1402 programs/cmdlgtst/Makefile
1403 programs/control/Makefile
1404 programs/notepad/Makefile
1405 programs/osversioncheck/Makefile
1406 programs/progman/Makefile
1407 programs/regapi/Makefile
1408 programs/regedit/Makefile
1409 programs/regsvr32/Makefile
1410 programs/regtest/Makefile
1411 programs/uninstaller/Makefile
1412 programs/view/Makefile
1413 programs/wcmd/Makefile
1414 programs/wineconsole/Makefile
1415 programs/winemine/Makefile
1416 programs/winepath/Makefile
1417 programs/winetest/Makefile
1418 programs/winhelp/Makefile
1419 programs/winver/Makefile
1420 server/Makefile
1421 tools/Makefile
1422 tools/winapi/Makefile
1423 tools/winebuild/Makefile
1424 tools/winedump/Makefile
1425 tools/wmc/Makefile
1426 tools/wrc/Makefile
1427 tsx11/Makefile
1428 unicode/Makefile])
1430 AC_OUTPUT
1432 if test "$have_x" = "no"
1433 then
1434   echo
1435   echo "*** Warning: X development files not found. Wine will be built without"
1436   echo "*** X support, which currently does not work, and would probably not be"
1437   echo "*** what you want anyway. You will need to install devel packages of"
1438   echo "*** Xlib/Xfree86 at the very least."
1441 if test "$ac_cv_lib_ncurses_resizeterm" = "no" -a "$ac_cv_lib_ncurses_waddch" = "yes"
1442 then
1443   echo
1444   echo "*** Warning: resizeterm not found in ncurses. Wine will be built without"
1445   echo "*** terminal resize support. Consider upgrading ncurses."
1448 if test "$wine_cv_libc_reentrant" = "no" 
1449 then
1450   echo
1451   echo "*** Warning: non-reentrant libc detected. Wine will be built without"
1452   echo "*** threading support. Consider upgrading libc to a more recent"
1453   echo "*** reentrant version of libc."
1456 if test "$have_x" = "yes" -a "$wine_cv_x_reentrant" != "yes"
1457 then
1458   echo
1459   echo "*** Warning: non-reentrant X11 library detected. Multi-threaded"
1460   echo "*** applications won't work properly. You should upgrade your X11 library."
1463 if test "$wine_cv_opengl_version_OK" = "no"
1464 then
1465   echo
1466   echo "*** Warning: old Mesa headers detected. Wine will be built without Direct3D"
1467   echo "*** support. Consider upgrading your Mesa libraries (http://www.mesa3d.org/)."
1470 if test "$wine_cv_opengl_version_threadsafe" = "yes" -a "x$enable_opengl" = "x"
1471 then
1472   echo
1473   echo "*** Warning: the OpenGL version you have installed relies on libpthread for"
1474   echo "*** thread-safety. To prevent crashes, OpenGL support has been removed."
1475   echo "*** A fix for glibc 2.1.3 that seems to work is included in this version of Wine,"
1476   echo "*** start configure with '--enable-opengl' to force OpenGL support."
1479 if test "$wine_cv_opengl_version_threadsafe" = "yes" -a "x$enable_opengl" = "xyes"
1480 then
1481   echo
1482   echo "*** Warning: you explicitly linked in a thread-safe OpenGL version. If you"
1483   echo "*** experience unusual crashes on DirectDraw games, try first to disable OpenGL"
1484   echo "*** support before reporting bugs."
1487 if test "$wine_cv_warn_cups_h" = "yes"
1488 then
1489   echo
1490   echo "*** Note: You have cups runtime libraries, but no development"
1491   echo "*** libraries. Install the cups-devel package or whichever package"
1492   echo "*** contains cups.h to enable CUPS support in Wine."
1495 if test "$wine_cv_msg_freetype" = "yes"
1496 then
1497   echo
1498   echo "*** Note: Your system appears to have the FreeType 2 runtime libraries"
1499   echo "*** installed, but 'freetype-config' is not in your PATH. Install the"
1500   echo "*** freetype-devel package (or its equivalent on your distribution) to"
1501   echo "*** enable Wine to use TrueType fonts."
1504 echo
1505 echo "Configure finished.  Do 'make depend && make' to compile Wine."
1506 echo
1508 dnl Local Variables:
1509 dnl comment-start: "dnl "
1510 dnl comment-end: ""
1511 dnl comment-start-skip: "\\bdnl\\b\\s *"
1512 dnl compile-command: "autoconf"
1513 dnl End: