Fixed font enumeration.
[wine.git] / configure.ac
blob612a1ee5d62b17c36d1dde5e92358ab140c25931
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_FUNCS(inet_aton,,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     FREETYPEINCL=""
396     wine_cv_msg_freetype=no
397 else
398     AC_CHECK_PROG(ft_devel,freetype-config,freetype-config,no)
399     if test "$ft_devel" = "no"
400     then
401         AC_CHECK_PROG(ft_devel2,freetype2-config,freetype2-config,no)
402         if test "$ft_devel2" = "freetype2-config"
403         then
404                 ft_devel=$ft_devel2
405         fi
406     fi
407     if test "$ft_devel" = "no"
408     then
409         FREETYPEINCL=""
410         wine_cv_msg_freetype=yes
411     else
412         FREETYPEINCL=`$ft_devel --cflags`
413         ac_save_CPPFLAGS="$CPPFLAGS"
414         CPPFLAGS="$FREETYPEINCL $CPPFLAGS"
415         AC_CHECK_HEADERS(freetype/freetype.h \
416                          freetype/ftglyph.h \
417                          freetype/tttables.h \
418                          freetype/ftnames.h \
419                          freetype/ftsnames.h \
420                          freetype/ttnameid.h \
421                          freetype/ftoutln.h \
422                          freetype/internal/sfnt.h)
423         AC_TRY_CPP([#include <ft2build.h>
424                     #include <freetype/fttrigon.h>],
425                     [AC_DEFINE(HAVE_FREETYPE_FTTRIGON_H, 1,
426           [Define if you have the <freetype/fttrigon.h> header file.])
427                     wine_cv_fttrigon=yes],
428                     wine_cv_fttrigon=no)
429         CPPFLAGS="$ac_save_CPPFLAGS"
430         dnl Check that we have at least freetype/freetype.h
431         if test "$ac_cv_header_freetype_freetype_h" = "yes" -a "$wine_cv_fttrigon" = "yes"
432         then
433             AC_DEFINE(HAVE_FREETYPE, 1, [Define if FreeType 2 is installed])
434             wine_cv_msg_freetype=no
435         else
436             FREETYPEINCL=""
437             wine_cv_msg_freetype=yes
438         fi
439     fi
441 AC_SUBST(FREETYPEINCL)
443 dnl **** Check for parport (currently Linux only) ****
444 AC_CACHE_CHECK([for parport header/ppdev.h], ac_cv_c_ppdev,
445  AC_TRY_COMPILE(
446    [#include <linux/ppdev.h>],
447    [ioctl (1,PPCLAIM,0)],
448    [ac_cv_c_ppdev="yes"],
449    [ac_cv_c_ppdev="no"])
451 if test "$ac_cv_c_ppdev" = "yes"
452 then
453     AC_DEFINE(HAVE_PPDEV, 1, [Define if we can use ppdev.h for parallel port access])
456 dnl **** Check for IPX (currently Linux only) ****
457 AC_CACHE_CHECK([for GNU style IPX support], ac_cv_c_ipx_gnu,
458  AC_TRY_COMPILE(
459    [#include <sys/socket.h>
460     #include <netipx/ipx.h>],
461    [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
462    [ac_cv_c_ipx_gnu="yes"],
463    [ac_cv_c_ipx_gnu="no"])
465 if test "$ac_cv_c_ipx_gnu" = "yes"
466 then
467     AC_DEFINE(HAVE_IPX_GNU, 1, [Define if IPX should use netipx/ipx.h from libc])
470 if test "$ac_cv_c_ipx_gnu" = "no"
471 then
472  AC_CACHE_CHECK([for linux style IPX support], ac_cv_c_ipx_linux,
473   AC_TRY_COMPILE(
474     [#include <sys/socket.h>
475      #include <asm/types.h>
476      #include <linux/ipx.h>],
477     [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
478     [ac_cv_c_ipx_linux="yes"],
479     [ac_cv_c_ipx_linux="no"])
480   )
481   if test "$ac_cv_c_ipx_linux" = "yes"
482   then
483       AC_DEFINE(HAVE_IPX_LINUX, 1, [Define if IPX includes are taken from Linux kernel])
484   fi
487 dnl **** Check for Open Sound System ****
488 AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h soundcard.h, break)
490 AC_CACHE_CHECK([for Open Sound System],
491         ac_cv_c_opensoundsystem,
492         AC_TRY_COMPILE([
493         #if defined(HAVE_SYS_SOUNDCARD_H)
494                 #include <sys/soundcard.h>
495         #elif defined(HAVE_MACHINE_SOUNDCARD_H)
496                 #include <machine/soundcard.h>
497         #elif defined(HAVE_SOUNDCARD_H)
498                 #include <soundcard.h>
499         #endif
500         ],[
502 /* check for one of the Open Sound System specific SNDCTL_ defines */
503 #if !defined(SNDCTL_DSP_STEREO)
504 #error No open sound system
505 #endif
506 ],ac_cv_c_opensoundsystem="yes",ac_cv_c_opensoundsystem="no"))
508 if test "$ac_cv_c_opensoundsystem" = "yes"
509 then
510     AC_DEFINE(HAVE_OSS, 1, [Define if you have the Open Sound system])
513 AC_CACHE_CHECK([for Open Sound System/MIDI interface],
514         ac_cv_c_opensoundsystem_midi,
515         AC_TRY_COMPILE([
516         #if defined(HAVE_SYS_SOUNDCARD_H)
517                 #include <sys/soundcard.h>
518         #elif defined(HAVE_MACHINE_SOUNDCARD_H)
519                 #include <machine/soundcard.h>
520         #elif defined(HAVE_SOUNDCARD_H)
521                 #include <soundcard.h>
522         #endif
523         ],[
525 /* check for one of the Open Sound System specific SNDCTL_SEQ defines */
526 #if !defined(SNDCTL_SEQ_SYNC)
527 #error No open sound system MIDI interface
528 #endif
529 ],ac_cv_c_opensoundsystem_midi="yes",ac_cv_c_opensoundsystem_midi="no"))
531 if test "$ac_cv_c_opensoundsystem_midi" = "yes"
532 then
533     AC_DEFINE(HAVE_OSS_MIDI, 1, [Define if you have the Open Sound system (MIDI interface)])
536 dnl **** Check for aRts Sound Server ****
537 AC_PATH_PROG(ARTSCCONFIG, artsc-config)
538 AC_CACHE_CHECK([for aRts Sound server],
539         ac_cv_c_artsserver,
540         if test x$ARTSCCONFIG = x -o x$ARTSCCONFIG = x'"$ARTSCCONFIG"';
541         then
542             ac_cv_c_artsserver=no
543         else
544             ARTSC_CFLAGS=`$ARTSCCONFIG --cflags`
545             ARTSC_LIBS=`$ARTSCCONFIG --libs`
546             ac_cv_c_artsserver=no
547             save_CFLAGS="$CFLAGS"
548             CFLAGS="$CFLAGS $ARTSC_CFLAGS"
549             AC_TRY_COMPILE([
550              #include <artsc.h>
551             ],[
552              arts_stream_t stream;
553             ],[
554             ac_cv_c_artsserver=yes
555             ])
556             CFLAGS="$save_CFLAGS"
557         fi)
559 if test "$ac_cv_c_artsserver" = "yes"
560 then
561     AC_SUBST(ARTSLIBS, $ARTSC_LIBS)
562     AC_SUBST(ARTSINCL, $ARTSC_CFLAGS)
564     AC_DEFINE(HAVE_ARTS, 1, [Define if you have ARTS sound server])
567 dnl **** Check for broken glibc mmap64 ****
569 AC_CACHE_CHECK( [whether mmap64 works defined as mmap], ac_cv_mmap64_works,
570         AC_TRY_RUN([
571                 #define _FILE_OFFSET_BITS 64
572                 #include <stdio.h>
573                 #include <unistd.h>
574                 #include <fcntl.h>
575                 #include <sys/mman.h>
576                 #include <errno.h>
578                 int main(int argc,char **argv) {
579                         int fd = open("conftest.map",O_CREAT|O_RDWR,0600);
580                         if (fd == -1) exit(1);
582                         unlink("conftest.map");
584                         write(fd,"test",4);
586                         if ((-1 == mmap(0,4,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0)) &&
587                             (errno == EINVAL)
588                         ) {
589                                 exit(1);
590                         }
591                         close(fd);
592                         fprintf(stderr,"success!\n");
593                         exit(0);
594                 }
596         ],
597     ac_cv_mmap64_works="yes",
598     ac_cv_mmap64_works="no",
599     ac_cv_mmap64_works="no") )
601 if test "$ac_cv_mmap64_works" = "yes"
602 then
603     AC_DEFINE(_FILE_OFFSET_BITS, 64, [Set this to 64 to enable 64-bit file support on Linux])
606 dnl **** Check for gcc strength-reduce bug ****
608 if test "x${GCC}" = "xyes"
609 then
610   CFLAGS="$CFLAGS -Wall"
611   AC_CACHE_CHECK( [for gcc strength-reduce bug], ac_cv_c_gcc_strength_bug,
612                   AC_TRY_RUN([
613 int     L[[4]] = {0,1,2,3};
614 int main(void) {
615   static int Array[[3]];
616   unsigned int B = 3;
617   int i;
618   for(i=0; i<B; i++) Array[[i]] = i - 3;
619   for(i=0; i<4 - 1; i++) L[[i]] = L[[i + 1]];
620   L[[i]] = 4;
621   
622   exit( Array[[1]] != -2 || L[[2]] != 3);
624     ac_cv_c_gcc_strength_bug="no",
625     ac_cv_c_gcc_strength_bug="yes",
626     ac_cv_c_gcc_strength_bug="yes") )
627   if test "$ac_cv_c_gcc_strength_bug" = "yes"
628   then
629     CFLAGS="$CFLAGS -fno-strength-reduce"
630   fi
632   dnl Check for -mpreferred-stack-boundary
633   AC_CACHE_CHECK([for gcc -mpreferred-stack-boundary=2 support],
634                  ac_cv_c_gcc_stack_boundary,
635   [saved_cflags=$CFLAGS
636   CFLAGS="$CFLAGS -mpreferred-stack-boundary=2"
637   AC_TRY_COMPILE(,[return 0],ac_cv_c_gcc_stack_boundary="yes",ac_cv_c_gcc_stack_boundary="no")
638   CFLAGS=$saved_cflags
639   ])
640   if test "$ac_cv_c_gcc_stack_boundary" = "yes"
641   then
642     CFLAGS="$CFLAGS -mpreferred-stack-boundary=2"
643   fi
646 dnl **** Check if we need to place .type inside a .def directive ****
648 AC_CACHE_CHECK([whether .type must sit inside a .def directive],
649                ac_cv_c_type_in_def,
650 [saved_libs=$LIBS
651 LIBS="conftest_asm.s $LIBS"
652 cat > conftest_asm.s <<EOF
653         .globl _ac_test
654         .def _ac_test; .scl 2; .type 32; .endef
655 _ac_test:
656         .long 0
658 AC_TRY_LINK(,,ac_cv_c_type_in_def="yes",ac_cv_c_type_in_def="no")
659 LIBS=$saved_libs])
660 if test "$ac_cv_c_type_in_def" = "yes"
661 then
662   AC_DEFINE(NEED_TYPE_IN_DEF, 1, [Define if .type asm directive must be inside a .def directive])
665 dnl **** Check for underscore on external symbols ****
667 AC_CACHE_CHECK([whether external symbols need an underscore prefix],
668                ac_cv_c_extern_prefix,
669 [saved_libs=$LIBS
670 LIBS="conftest_asm.s $LIBS"
671 cat > conftest_asm.s <<EOF
672         .globl _ac_test
673 _ac_test:
674         .long 0
676 AC_TRY_LINK([extern int ac_test;],[if (ac_test) return 1],
677             ac_cv_c_extern_prefix="yes",ac_cv_c_extern_prefix="no")
678 LIBS=$saved_libs])
679 if test "$ac_cv_c_extern_prefix" = "yes"
680 then
681   AC_DEFINE(NEED_UNDERSCORE_PREFIX, 1,
682             [Define if symbols declared in assembly code need an underscore prefix])
685 dnl **** Check whether stdcall symbols need to be decorated ****
687 AC_CACHE_CHECK([whether stdcall symbols need to be decorated],
688                ac_cv_c_stdcall_decoration,
689 [saved_libs=$LIBS
690 LIBS="conftest_asm.s $LIBS"
691 if test "$ac_cv_c_extern_prefix" = "yes"
692 then
693 cat > conftest_asm.s <<EOF
694         .globl _ac_test@0
695 _ac_test@0:
697 else
698 cat > conftest_asm.s <<EOF
699         .globl ac_test@0
700 ac_test@0:
703 AC_TRY_LINK([extern void __attribute__((__stdcall__)) ac_test(void);],
704             [ac_test(); return 0],
705             ac_cv_c_stdcall_decoration="yes",ac_cv_c_stdcall_decoration="no")
706 LIBS=$saved_libs])
707 if test "$ac_cv_c_stdcall_decoration" = "yes"
708 then
709   AC_DEFINE(NEED_STDCALL_DECORATION, 1,
710             [Define if stdcall symbols need to be decorated])
713 dnl **** Check for .string in assembler ****
715 AC_CACHE_CHECK([whether assembler accepts .string],
716                ac_cv_c_asm_string,
717 [saved_libs=$LIBS
718 LIBS="conftest_asm.s $LIBS"
719 cat > conftest_asm.s <<EOF
720         .string "test"
722 AC_TRY_LINK(,,ac_cv_c_asm_string="yes",ac_cv_c_asm_string="no")
723 LIBS=$saved_libs])
724 if test "$ac_cv_c_asm_string" = "yes"
725 then
726   AC_DEFINE(HAVE_ASM_STRING, 1, [Define to use .string instead of .ascii])
729 dnl **** Check for working dll ****
731 LDSHARED=""
732 LDDLLFLAGS=""
733 if test "$LIBEXT" = "so"
734 then
735   AC_CACHE_CHECK([whether we can build a GNU style ELF dll],
736                  ac_cv_c_dll_gnuelf,
737   [saved_cflags=$CFLAGS
738   CFLAGS="$CFLAGS -fPIC -shared -Wl,-soname,conftest.so.1.0,-Bsymbolic"
739   AC_TRY_LINK(,[return 1],ac_cv_c_dll_gnuelf="yes",ac_cv_c_dll_gnuelf="no")
740   CFLAGS=$saved_cflags
741   ])
742   if test "$ac_cv_c_dll_gnuelf" = "yes"
743   then
744     LDSHARED="\$(CC) -shared \$(SONAME:%=-Wl,-soname,%)"
745     LDDLLFLAGS="-Wl,-Bsymbolic"
746   else
747     AC_CACHE_CHECK(whether we can build a UnixWare (Solaris) dll,
748                  ac_cv_c_dll_unixware,
749     [saved_cflags=$CFLAGS
750     CFLAGS="$CFLAGS -fPIC -Wl,-G,-h,conftest.so.1.0,-B,symbolic"
751     AC_TRY_LINK(,[return 1],ac_cv_c_dll_unixware="yes",ac_cv_c_dll_unixware="no")
752     CFLAGS=$saved_cflags
753     ])
754     if test "$ac_cv_c_dll_unixware" = "yes"
755     then
756       LDSHARED="\$(CC) -Wl,-G \$(SONAME:%=-Wl,-h,%)"
757       LDDLLFLAGS="-Wl,-B,symbolic"
758     fi
759   fi
760   if test "$ac_cv_c_dll_gnuelf" = "no" -a "$ac_cv_c_dll_unixware" = "no"
761   then
762     LIBEXT="a"
763     AC_CHECK_PROG(DLLWRAP,dllwrap,dllwrap,false)
764     if test "$DLLWRAP" = "dllwrap"; then
765       dnl FIXME - check whether dllwrap works correctly...
766       case $host_os in
767         *cygwin*)
768             LIBEXT="dll"
769             ;;
770       esac
771     fi
772   fi
775 if test "$LIBEXT" = "a"; then
776   AC_MSG_ERROR(
777 [could not find a way to build shared libraries.
778 It is currently not possible to build Wine without shared library
779 (.so) support to allow transparent switch between .so and .dll files.
780 If you are using Linux, you will need a newer binutils.]
784 DLLFLAGS=""
785 LDPATH=""
787 if test "$LIBEXT" = "so"; then
788     DLLFLAGS="-fPIC"
789     DLLEXT=".so"
790     LDPATH="LD_LIBRARY_PATH=\"\$(TOPOBJDIR)/unicode:\$\$LD_LIBRARY_PATH\""
791 elif test "$LIBEXT" = "dll"; then
792     #DLLFLAGS="-fPIC" # -fPIC doesn't work(at least in cygwin-b20) - FIXME
793     DLLEXT=""
794     LDPATH="PATH=\"\$(TOPOBJDIR)/unicode:\$\$PATH\""
797 AC_SUBST(DLLFLAGS)
798 AC_SUBST(DLLEXT)
799 AC_SUBST(LDSHARED)
800 AC_SUBST(LDDLLFLAGS)
801 AC_SUBST(LIBEXT)
802 AC_SUBST(LDPATH)
804 dnl **** Check for reentrant libc ****
806 dnl For cross-compiling we blindly assume that libc is reentrant. This is
807 dnl ok since non-reentrant libc is quite rare (mostly old libc5 versions).
809 AC_DEFUN([WINE_CHECK_ERRNO],
811   AC_CACHE_CHECK(for reentrant libc: $1, wine_cv_libc_r_$1,
812   [AC_TRY_RUN([int myerrno = 0;
813 char buf[256];
814 int *$1(){return &myerrno;}
815 main(){connect(0,buf,255); exit(!myerrno);}],
816   wine_cv_libc_r_$1=yes, wine_cv_libc_r_$1=no,
817   wine_cv_libc_r_$1=yes )
819 if test "$wine_cv_libc_r_$1" = "yes"
820 then
821     wine_cv_libc_reentrant=$1 
825 wine_cv_libc_reentrant=no 
826 dnl Linux style errno location
827 WINE_CHECK_ERRNO(__errno_location)
828 dnl FreeBSD style errno location
829 WINE_CHECK_ERRNO(__error)
830 dnl Solaris style errno location
831 WINE_CHECK_ERRNO(___errno)
832 dnl UnixWare style errno location
833 WINE_CHECK_ERRNO(__thr_errno)
834 dnl NetBSD style errno location
835 WINE_CHECK_ERRNO(__errno)
837 if test "$wine_cv_libc_reentrant" != "no" 
838 then
839   AC_DEFINE_UNQUOTED(ERRNO_LOCATION,$wine_cv_libc_reentrant,
840                      [Define to the name of the function returning errno for reentrant libc])
843 dnl **** Check for reentrant X libraries ****
845 dnl This may fail to determine whether X libraries are reentrant if
846 dnl AC_PATH_XTRA does not set x_libraries. In this case manual configuration
847 dnl is possible with the --without-reentrant-x option.
849 if test "$have_x" = "yes" -a "$wine_cv_libc_reentrant" != "no"
850 then
851 AC_CACHE_CHECK( [for reentrant X libraries], wine_cv_x_reentrant,
852   [ if test "x$with_reentrant_x" = "xno" 
853     then
854         wine_cv_x_reentrant=no
855     else
856         libX11_check=none
857         for dir in "$x_libraries" /usr/lib /usr/local/lib /lib; do
858             if test -r $dir/libX11.so; then
859                 libX11_check="-D $dir/libX11.so"
860                 break 1
861             fi
862             if test -r $dir/libX11.a; then
863                 libX11_check="$dir/libX11.a"
864                 break 1
865             fi
866         done
867         if test "$libX11_check" != "none"; then
868             if nm $libX11_check | grep $wine_cv_libc_reentrant >/dev/null 2>&1
869             then
870                 wine_cv_x_reentrant=yes
871             else
872                 wine_cv_x_reentrant=no
873             fi
874         else
875             wine_cv_x_reentrant=unknown
876         fi
877     fi ] )
878 else
879     wine_cv_x_reentrant=no
881 if test "$wine_cv_x_reentrant" = "no"
882 then
883   AC_DEFINE(NO_REENTRANT_X11, 1,
884             [Define if X libraries are not reentrant (compiled without -D_REENTRANT)])
888 dnl **** Check for functions ****
890 AC_FUNC_ALLOCA()
891 AC_CHECK_FUNCS(\
892         __libc_fork \
893         _lwp_create \
894         _pclose \
895         _popen \
896         _stricmp \
897         _strnicmp \
898         clone \
899         ecvt \
900         finite \
901         fpclass \
902         ftruncate64 \
903         getnetbyaddr \
904         getnetbyname \
905         getpagesize \
906         getprotobyname \
907         getprotobynumber \
908         getrlimit \
909         getservbyport \
910         getsockopt \
911         inet_network \
912         lseek64 \
913         lstat \
914         memmove \
915         mmap \
916         pclose \
917         pread \
918         popen \
919         pwrite \
920         rfork \
921         select \
922         sendmsg \
923         settimeofday \
924         sigaltstack \
925         statfs \
926         strcasecmp \
927         strerror \
928         strncasecmp \
929         tcgetattr \
930         timegm \
931         usleep \
932         vfscanf \
933         wait4 \
934         waitpid \
937 dnl **** Check for header files ****
939 AC_CHECK_HEADERS(\
940         arpa/inet.h \
941         arpa/nameser.h \
942         direct.h \
943         elf.h \
944         float.h \
945         ieeefp.h \
946         io.h \
947         libio.h \
948         libutil.h \
949         link.h \
950         linux/cdrom.h \
951         linux/input.h \
952         linux/joystick.h \
953         linux/serial.h \
954         linux/ucdrom.h \
955         net/if.h \
956         netdb.h \
957         netinet/in.h \
958         netinet/in_systm.h \
959         netinet/ip.h \
960         netinet/tcp.h \
961         pty.h \
962         resolv.h \
963         sched.h \
964         socket.h \
965         stdint.h \
966         strings.h \
967         sys/cdio.h \
968         sys/errno.h \
969         sys/file.h \
970         sys/filio.h \
971         sys/inttypes.h \
972         sys/ipc.h \
973         sys/link.h \
974         sys/lwp.h \
975         sys/mman.h \
976         sys/modem.h \
977         sys/mount.h \
978         sys/msg.h \
979         sys/param.h \
980         sys/ptrace.h \
981         sys/reg.h \
982         sys/signal.h \
983         sys/shm.h \
984         sys/socket.h \
985         sys/sockio.h \
986         sys/statfs.h \
987         sys/strtio.h \
988         sys/syscall.h \
989         sys/time.h \
990         sys/user.h \
991         sys/wait.h \
992         sys/v86.h \
993         sys/v86intr.h \
994         sys/vfs.h \
995         sys/vm86.h \
996         syscall.h \
997         ucontext.h \
998         unistd.h \
1000 AC_HEADER_STAT()
1002 dnl **** Check for types ****
1004 AC_C_CONST
1005 AC_C_INLINE
1006 AC_TYPE_MODE_T
1007 AC_TYPE_OFF_T
1008 AC_TYPE_PID_T
1009 AC_TYPE_SIZE_T
1010 AC_CHECK_SIZEOF(long long,0)
1012 AC_CACHE_CHECK([whether linux/input.h is for real],
1013         wine_cv_linux_input_h,
1014         AC_TRY_COMPILE([
1015             #include <linux/input.h>
1016         ] , [
1017             int foo = EVIOCGBIT(EV_ABS,42);
1018             int bar = BTN_PINKIE;
1019             int fortytwo = 42;
1020         ],
1021         wine_cv_linux_input_h=yes,
1022         wine_cv_linux_input_h=no,
1023         no
1024         )
1025     )
1026     if test "$wine_cv_linux_input_h" = "yes"
1027     then
1028         AC_DEFINE(HAVE_CORRECT_LINUXINPUT_H, 1,
1029                   [Define if we have linux/input.h AND it contains the INPUT event API])
1030     fi
1032    
1033 AC_CACHE_CHECK([whether we can use re-entrant gethostbyname_r Linux style],
1034         wine_cv_linux_gethostbyname_r_6,
1035         AC_TRY_COMPILE([
1036 #include <netdb.h>
1037         ], [
1038     char *name=NULL;
1039     struct hostent he;
1040     struct hostent *result;
1041     char *buf=NULL;
1042     int bufsize=0;
1043     int res,errnr;
1044     char *addr=NULL;
1045     int addrlen=0;
1046     int addrtype=0;
1047     res=gethostbyname_r(name,&he,buf,bufsize,&result,&errnr);
1048     res=gethostbyaddr_r(addr, addrlen, addrtype,&he,buf,bufsize,&result,&errnr);
1049     ],
1050         wine_cv_linux_gethostbyname_r_6=yes,
1051         wine_cv_linux_gethostbyname_r_6=no
1052         )
1053    )
1054    if test "$wine_cv_linux_gethostbyname_r_6" = "yes"
1055    then
1056       AC_DEFINE(HAVE_LINUX_GETHOSTBYNAME_R_6, 1,
1057                 [Define if Linux-style gethostbyname_r and gethostbyaddr_r are available])
1058    fi
1060 if test "$ac_cv_header_linux_joystick_h" = "yes"
1061 then
1062    AC_CACHE_CHECK([whether linux/joystick.h uses the Linux 2.2+ API],
1063         wine_cv_linux_joystick_22_api,
1064         AC_TRY_COMPILE([
1065         #include <sys/ioctl.h>
1066         #include <linux/joystick.h>
1068         struct js_event blub;
1069         #if !defined(JS_EVENT_AXIS) || !defined(JS_EVENT_BUTTON)
1070         #error "no 2.2 header"
1071         #endif
1072         ],/*empty*/,
1073         wine_cv_linux_joystick_22_api=yes,
1074         wine_cv_linux_joystick_22_api=no,
1075         wine_cv_linux_joystick_22_api=no
1076         )
1077    )
1078    if test "$wine_cv_linux_joystick_22_api" = "yes"
1079    then
1080       AC_DEFINE(HAVE_LINUX_22_JOYSTICK_API, 1,
1081                 [Define if <linux/joystick.h> defines the Linux 2.2 joystick API])
1082    fi
1085 dnl **** statfs checks ****
1087 if test "$ac_cv_header_sys_vfs_h" = "yes"
1088 then
1089     AC_CACHE_CHECK( [whether sys/vfs.h defines statfs],
1090                     wine_cv_sys_vfs_has_statfs,
1091         AC_TRY_COMPILE([
1092         #include <sys/types.h>
1093         #ifdef HAVE_SYS_PARAM_H
1094         # include <sys/param.h>
1095         #endif
1096         #include <sys/vfs.h>
1097         ],[
1098                 struct statfs stfs;
1100                 memset(&stfs,0,sizeof(stfs));
1101         ],wine_cv_sys_vfs_has_statfs=yes,wine_cv_sys_vfs_has_statfs=no
1102         )
1103     )
1104     if test "$wine_cv_sys_vfs_has_statfs" = "yes"
1105     then
1106       AC_DEFINE(STATFS_DEFINED_BY_SYS_VFS, 1,
1107                 [Define if the struct statfs is defined by <sys/vfs.h>])
1108     fi
1111 if test "$ac_cv_header_sys_statfs_h" = "yes"
1112 then
1113     AC_CACHE_CHECK( [whether sys/statfs.h defines statfs],
1114                     wine_cv_sys_statfs_has_statfs,
1115         AC_TRY_COMPILE([
1116         #include <sys/types.h>
1117         #ifdef HAVE_SYS_PARAM_H
1118         # include <sys/param.h>
1119         #endif
1120         #include <sys/statfs.h>
1121         ],[
1122                 struct statfs stfs;
1123         ],wine_cv_sys_statfs_has_statfs=yes,wine_cv_sys_statfs_has_statfs=no
1124         )
1125     )
1126     if test "$wine_cv_sys_statfs_has_statfs" = "yes"
1127     then
1128       AC_DEFINE(STATFS_DEFINED_BY_SYS_STATFS, 1,
1129                 [Define if the struct statfs is defined by <sys/statfs.h>])
1130     fi
1133 if test "$ac_cv_header_sys_mount_h" = "yes"
1134 then
1135     AC_CACHE_CHECK( [whether sys/mount.h defines statfs],
1136                     wine_cv_sys_mount_has_statfs,
1137         AC_TRY_COMPILE([
1138         #include <sys/types.h>
1139         #ifdef HAVE_SYS_PARAM_H
1140         # include <sys/param.h>
1141         #endif
1142         #include <sys/mount.h>
1143         ],[
1144                 struct statfs stfs;
1145         ],wine_cv_sys_mount_has_statfs=yes,wine_cv_sys_mount_has_statfs=no
1146         )
1147     )
1148     if test "$wine_cv_sys_mount_has_statfs" = "yes"
1149     then
1150       AC_DEFINE(STATFS_DEFINED_BY_SYS_MOUNT, 1,
1151                 [Define if the struct statfs is defined by <sys/mount.h>])
1152     fi
1155 dnl *** Check for some structure members
1157 dnl Macro to check if a structure contains a specified member
1158 dnl Usage: WINE_CHECK_STRUCT_MEMBER(struct,member,[includes,[action-if-found,[action-if-not-found]]])
1160 AC_DEFUN([WINE_CHECK_STRUCT_MEMBER],
1161 [AC_CACHE_CHECK([for $2 in struct $1], ac_cv_c_$1_$2,
1162  AC_TRY_COMPILE([$3],[struct $1 s; s.$2 = 0],ac_cv_c_$1_$2="yes",ac_cv_c_$1_$2="no"))
1163 AS_IF([ test "x$ac_cv_c_$1_$2" = "xyes"],[$4],[$5])
1166 dnl **** FIXME: what about mixed cases, where we need two of them? ***
1168 WINE_CHECK_STRUCT_MEMBER(statfs,f_bfree,
1169 [#include <sys/types.h>
1170 #ifdef HAVE_SYS_PARAM_H
1171 # include <sys/param.h>
1172 #endif
1173 #ifdef STATFS_DEFINED_BY_SYS_MOUNT
1174 # include <sys/mount.h>
1175 #else
1176 # ifdef STATFS_DEFINED_BY_SYS_VFS
1177 #  include <sys/vfs.h>
1178 # else
1179 #  ifdef STATFS_DEFINED_BY_SYS_STATFS
1180 #   include <sys/statfs.h>
1181 #  endif
1182 # endif
1183 #endif],
1184     [AC_DEFINE(STATFS_HAS_BFREE, 1, [Define if the struct statfs has the member bfree])])
1186 WINE_CHECK_STRUCT_MEMBER(statfs,f_bavail,
1187 [#include <sys/types.h>
1188 #ifdef HAVE_SYS_PARAM_H
1189 # include <sys/param.h>
1190 #endif
1191 #ifdef STATFS_DEFINED_BY_SYS_MOUNT
1192 # include <sys/mount.h>
1193 #else
1194 # ifdef STATFS_DEFINED_BY_SYS_VFS
1195 #  include <sys/vfs.h>
1196 # else
1197 #  ifdef STATFS_DEFINED_BY_SYS_STATFS
1198 #   include <sys/statfs.h>
1199 #  endif
1200 # endif
1201 #endif],
1202     [AC_DEFINE(STATFS_HAS_BAVAIL, 1, [Define if the struct statfs has the member bavail])])
1204 dnl Check for file descriptor passing with msg_accrights
1205 WINE_CHECK_STRUCT_MEMBER(msghdr,msg_accrights,
1206 [#include <sys/types.h>
1207 #include <sys/socket.h>],
1208     [AC_DEFINE(HAVE_MSGHDR_ACCRIGHTS, 1, [Define if struct msghdr contains msg_accrights])])
1210 dnl Check for the sa_len member in struct sockaddr
1211 WINE_CHECK_STRUCT_MEMBER(sockaddr,sa_len,
1212 [#include <sys/types.h>
1213 #include <sys/socket.h>],
1214     [AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if struct sockaddr contains sa_len])])
1216 dnl Check for the sun_len member in struct sockaddr_un
1217 WINE_CHECK_STRUCT_MEMBER(sockaddr_un,sun_len,
1218 [#include <sys/types.h>
1219 #include <sys/socket.h>
1220 #include <sys/un.h>],
1221     [AC_DEFINE(HAVE_SOCKADDR_SUN_LEN, 1, [Define if struct sockaddr_un contains sun_len])])
1223 dnl *** check for the need to define __i386__
1225 case $target_cpu in
1226   *i[3456789]86* )
1227     AC_CACHE_CHECK([whether we need to define __i386__],ac_cv_cpp_def_i386,
1228       AC_EGREP_CPP(yes,[#ifndef __i386__
1230 #endif],
1231  ac_cv_cpp_def_i386="yes", ac_cv_cpp_def_i386="no"))
1232     ;;
1233 esac
1234 if test "$ac_cv_cpp_def_i386" = "yes"
1235 then
1236     CFLAGS="$CFLAGS -D__i386__"
1237     LINTFLAGS="$LINTFLAGS -D__i386__"
1240 dnl **** Generate output files ****
1242 dnl Macro to create non-existent directories from config.status
1243 dnl Usage: WINE_CONFIG_EXTRA_DIR(dirname)
1244 AC_DEFUN([WINE_CONFIG_EXTRA_DIR],
1245 [AC_CONFIG_COMMANDS([$1],[test -d "$1" || (AC_MSG_NOTICE([creating $1]) && mkdir "$1")])])
1247 AH_TOP([#define __WINE_CONFIG_H])
1249 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/d3ddevice)
1250 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dclipper)
1251 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/ddraw)
1252 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/direct3d)
1253 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dpalette)
1254 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dsurface)
1255 WINE_CONFIG_EXTRA_DIR(dlls/dinput/joystick)
1256 WINE_CONFIG_EXTRA_DIR(dlls/dinput/keyboard)
1257 WINE_CONFIG_EXTRA_DIR(dlls/dinput/mouse)
1258 WINE_CONFIG_EXTRA_DIR(dlls/gdi/enhmfdrv)
1259 WINE_CONFIG_EXTRA_DIR(dlls/gdi/mfdrv)
1260 WINE_CONFIG_EXTRA_DIR(dlls/gdi/win16drv)
1261 WINE_CONFIG_EXTRA_DIR(dlls/kernel/messages)
1262 WINE_CONFIG_EXTRA_DIR(dlls/kernel/tests)
1263 WINE_CONFIG_EXTRA_DIR(dlls/oleaut32/tests)
1264 WINE_CONFIG_EXTRA_DIR(dlls/user/dde)
1265 WINE_CONFIG_EXTRA_DIR(dlls/user/resources)
1266 WINE_CONFIG_EXTRA_DIR(dlls/user/tests)
1267 WINE_CONFIG_EXTRA_DIR(dlls/wineps/data)
1268 WINE_CONFIG_EXTRA_DIR(include/wine)
1269 WINE_CONFIG_EXTRA_DIR(programs/regapi/tests)
1270 WINE_CONFIG_EXTRA_DIR(programs/winetest/tests)
1272 AC_CONFIG_COMMANDS([include/wine/version.h],
1273 [AC_MSG_NOTICE([creating include/wine/version.h])
1274 cat >$tmp/version.h <<CEOF
1275 /* Generated automatically by configure; DO NOT EDIT! */
1276 #define WINE_RELEASE_INFO "Wine version $wine_version"
1277 CEOF
1278 if cmp -s $tmp/version.h include/wine/version.h 2>/dev/null; then
1279   AC_MSG_NOTICE([include/wine/version.h is unchanged])
1280   rm -f $tmp/version.h
1281 else
1282   rm -f include/wine/version.h
1283   mv $tmp/version.h include/wine/version.h
1284 fi],
1285 [wine_version=$PACKAGE_VERSION])
1287 MAKE_RULES=Make.rules
1288 AC_SUBST_FILE(MAKE_RULES)
1290 MAKE_DLL_RULES=dlls/Makedll.rules
1291 AC_SUBST_FILE(MAKE_DLL_RULES)
1293 MAKE_PROG_RULES=programs/Makeprog.rules
1294 AC_SUBST_FILE(MAKE_PROG_RULES)
1296 AC_CONFIG_FILES([
1297 Make.rules
1298 dlls/Makedll.rules
1299 programs/Makeprog.rules
1300 Makefile
1301 console/Makefile
1302 controls/Makefile
1303 debugger/Makefile
1304 dlls/Makefile
1305 dlls/advapi32/Makefile
1306 dlls/avicap32/Makefile
1307 dlls/avifil32/Makefile
1308 dlls/comctl32/Makefile
1309 dlls/commdlg/Makefile
1310 dlls/crtdll/Makefile
1311 dlls/crypt32/Makefile
1312 dlls/dciman32/Makefile
1313 dlls/ddraw/Makefile
1314 dlls/devenum/Makefile
1315 dlls/dinput/Makefile
1316 dlls/dplay/Makefile
1317 dlls/dplayx/Makefile
1318 dlls/dsound/Makefile
1319 dlls/gdi/Makefile
1320 dlls/glu32/Makefile
1321 dlls/icmp/Makefile
1322 dlls/imagehlp/Makefile
1323 dlls/imm32/Makefile
1324 dlls/kernel/Makefile
1325 dlls/lzexpand/Makefile
1326 dlls/mapi32/Makefile
1327 dlls/mpr/Makefile
1328 dlls/msacm/Makefile
1329 dlls/msacm/imaadp32/Makefile
1330 dlls/msacm/msg711/Makefile
1331 dlls/msdmo/Makefile
1332 dlls/msimg32/Makefile
1333 dlls/msnet32/Makefile
1334 dlls/msrle32/Makefile
1335 dlls/msvcrt/Makefile
1336 dlls/msvcrt20/Makefile
1337 dlls/msvideo/Makefile
1338 dlls/netapi32/Makefile
1339 dlls/ntdll/Makefile
1340 dlls/odbc32/Makefile
1341 dlls/ole32/Makefile
1342 dlls/oleaut32/Makefile
1343 dlls/olecli/Makefile
1344 dlls/oledlg/Makefile
1345 dlls/olepro32/Makefile
1346 dlls/olesvr/Makefile
1347 dlls/opengl32/Makefile
1348 dlls/psapi/Makefile
1349 dlls/qcap/Makefile
1350 dlls/quartz/Makefile
1351 dlls/rasapi32/Makefile
1352 dlls/richedit/Makefile
1353 dlls/rpcrt4/Makefile
1354 dlls/serialui/Makefile
1355 dlls/setupapi/Makefile
1356 dlls/shdocvw/Makefile
1357 dlls/shell32/Makefile
1358 dlls/shfolder/Makefile
1359 dlls/shlwapi/Makefile
1360 dlls/sti/Makefile
1361 dlls/tapi32/Makefile
1362 dlls/ttydrv/Makefile
1363 dlls/twain/Makefile
1364 dlls/url/Makefile
1365 dlls/urlmon/Makefile
1366 dlls/user/Makefile
1367 dlls/version/Makefile
1368 dlls/win32s/Makefile
1369 dlls/winaspi/Makefile
1370 dlls/winedos/Makefile
1371 dlls/wineps/Makefile
1372 dlls/wininet/Makefile
1373 dlls/winmm/Makefile
1374 dlls/winmm/joystick/Makefile
1375 dlls/winmm/mcianim/Makefile
1376 dlls/winmm/mciavi/Makefile
1377 dlls/winmm/mcicda/Makefile
1378 dlls/winmm/mciseq/Makefile
1379 dlls/winmm/mciwave/Makefile
1380 dlls/winmm/midimap/Makefile
1381 dlls/winmm/wavemap/Makefile
1382 dlls/winmm/winearts/Makefile
1383 dlls/winmm/wineoss/Makefile
1384 dlls/winnls/Makefile
1385 dlls/winsock/Makefile
1386 dlls/winspool/Makefile
1387 dlls/wintrust/Makefile
1388 dlls/wow32/Makefile
1389 dlls/wsock32/Makefile
1390 dlls/x11drv/Makefile
1391 documentation/Makefile
1392 files/Makefile
1393 graphics/Makefile
1394 graphics/x11drv/Makefile
1395 if1632/Makefile
1396 include/Makefile
1397 library/Makefile
1398 libtest/Makefile
1399 loader/Makefile
1400 loader/ne/Makefile
1401 memory/Makefile
1402 misc/Makefile
1403 miscemu/Makefile
1404 msdos/Makefile
1405 objects/Makefile
1406 ole/Makefile
1407 programs/Makefile
1408 programs/avitools/Makefile
1409 programs/clock/Makefile
1410 programs/cmdlgtst/Makefile
1411 programs/control/Makefile
1412 programs/notepad/Makefile
1413 programs/osversioncheck/Makefile
1414 programs/progman/Makefile
1415 programs/regapi/Makefile
1416 programs/regtest/Makefile
1417 programs/uninstaller/Makefile
1418 programs/view/Makefile
1419 programs/wcmd/Makefile
1420 programs/wineconsole/Makefile
1421 programs/winemine/Makefile
1422 programs/winetest/Makefile
1423 programs/winhelp/Makefile
1424 programs/winver/Makefile
1425 relay32/Makefile
1426 scheduler/Makefile
1427 server/Makefile
1428 tools/Makefile
1429 tools/winapi/Makefile
1430 tools/winebuild/Makefile
1431 tools/winedump/Makefile
1432 tools/wmc/Makefile
1433 tools/wrc/Makefile
1434 tsx11/Makefile
1435 unicode/Makefile
1436 win32/Makefile
1437 windows/Makefile
1438 windows/x11drv/Makefile ])
1440 AC_OUTPUT
1442 if test "$have_x" = "no"
1443 then
1444   echo
1445   echo "*** Warning: X development files not found. Wine will be built without"
1446   echo "*** X support, which currently does not work, and would probably not be"
1447   echo "*** what you want anyway. You will need to install devel packages of"
1448   echo "*** Xlib/Xfree86 at the very least."
1451 if test "$ac_cv_lib_ncurses_resizeterm" = "no" -a "$ac_cv_lib_ncurses_waddch" = "yes"
1452 then
1453   echo
1454   echo "*** Warning: resizeterm not found in ncurses. Wine will be built without"
1455   echo "*** terminal resize support. Consider upgrading ncurses."
1458 if test "$wine_cv_libc_reentrant" = "no" 
1459 then
1460   echo
1461   echo "*** Warning: non-reentrant libc detected. Wine will be built without"
1462   echo "*** threading support. Consider upgrading libc to a more recent"
1463   echo "*** reentrant version of libc."
1466 if test "$wine_cv_opengl_version_OK" = "no"
1467 then
1468   echo
1469   echo "*** Warning: old Mesa headers detected. Wine will be built without Direct3D"
1470   echo "*** support. Consider upgrading your Mesa libraries (http://www.mesa3d.org/)."
1473 if test "$wine_cv_opengl_version_threadsafe" = "yes" -a "x$enable_opengl" = "x"
1474 then
1475   echo
1476   echo "*** Warning: the OpenGL version you have installed relies on libpthread for"
1477   echo "*** thread-safety. To prevent crashes, OpenGL support has been removed."
1478   echo "*** A fix for glibc 2.1.3 that seems to work is included in this version of Wine,"
1479   echo "*** start configure with '--enable-opengl' to force OpenGL support."
1482 if test "$wine_cv_opengl_version_threadsafe" = "yes" -a "x$enable_opengl" = "xyes"
1483 then
1484   echo
1485   echo "*** Warning: you explicitly linked in a thread-safe OpenGL version. If you"
1486   echo "*** experience unusual crashes on DirectDraw games, try first to disable OpenGL"
1487   echo "*** support before reporting bugs."
1490 if test "$wine_cv_warn_cups_h" = "yes"
1491 then
1492   echo
1493   echo "*** Note: You have cups runtime libraries, but no development"
1494   echo "*** libraries. Install the cups-devel package or whichever package"
1495   echo "*** contains cups.h to enable CUPS support in Wine."
1498 if test "$wine_cv_msg_freetype" = "yes"
1499 then
1500   echo
1501   echo "*** Note: Your system appears to have the FreeType 2 runtime libraries"
1502   echo "*** installed, but 'freetype-config' is not in your PATH. Install the"
1503   echo "*** freetype-devel package (or its equivalent on your distribution) to"
1504   echo "*** enable Wine to use TrueType fonts."
1507 echo
1508 echo "Configure finished.  Do 'make depend && make' to compile Wine."
1509 echo
1511 dnl Local Variables:
1512 dnl comment-start: "dnl "
1513 dnl comment-end: ""
1514 dnl comment-start-skip: "\\bdnl\\b\\s *"
1515 dnl compile-command: "autoconf"
1516 dnl End: