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