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