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