- stubs for SHLWAPI.295 (create a URL shortcut ?) and SHLWAPI.394
[wine/multimedia.git] / configure.ac
blob6a250ea9f0a459d18abd3669126b1d8921800f94
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         )
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 X shape extension
164         AC_CHECK_HEADERS(X11/extensions/shape.h,
165             [ dnl *** If X11/extensions/shape.h exists...
166               AC_CHECK_LIB(Xext,XShapeQueryExtension,
167               AC_DEFINE(HAVE_LIBXSHAPE, 1, [Define if you have the X Shape extension]),,
168               $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
169             ],
170             AC_MSG_WARN([[XShape extension not found, Wine will be built without it]]),
171             [#include <X11/Xlib.h>])
173         dnl *** Check for XFree86 DGA / DGA 2.0 extension
174         AC_CHECK_HEADERS(X11/extensions/xf86dga.h,
175             [ dnl *** If X11/extensions/xf86dga.h exists, check
176               dnl *** for XDGAQueryExtension()...
177               AC_CHECK_LIB(Xxf86dga, XDGAQueryExtension,
178                 [ dnl *** If found...
179                   AC_DEFINE(HAVE_LIBXXF86DGA2, 1,
180                             [Define if you have the Xxf86dga library version 2])
181                   X_PRE_LIBS="$X_PRE_LIBS -lXxf86dga"
182                ],
183                 [ dnl *** If not found, look for XF86DGAQueryExtension()
184                   dnl *** instead (DGA 2.0 not found)...
185                   AC_CHECK_LIB(Xxf86dga, XF86DGAQueryExtension,
186                     [ AC_DEFINE(HAVE_LIBXXF86DGA, 1,
187                                 [Define if you have the Xxf86dga library version 1])
188                       X_PRE_LIBS="$X_PRE_LIBS -lXxf86dga"
189                     ],,
190                     $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
191                   )
192                 ],
193                 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
194               )
195             ],
196             AC_MSG_WARN([[DGA extension not found, Wine will be built without it]]),
197             [#include <X11/Xlib.h>])
199         dnl *** Check for XFree86 VMODE extension
200         AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,
201             [ dnl *** If X11/extensions/xf86vmode.h exists...
202                 AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryExtension,
203                   [ AC_DEFINE(HAVE_LIBXXF86VM, 1, [Define if you have the Xxf86vm library])
204                      X_PRE_LIBS="$X_PRE_LIBS -lXxf86vm"
205                   ],,
206                   $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
207                 )
208             ],
209             AC_MSG_WARN([[XFree86 VMODE extension not found, Wine will be built without it]]),
210             [#include <X11/Xlib.h>])
212         dnl *** Check for XVideo extension supporting XvImages
213         AC_CHECK_HEADERS(X11/extensions/Xvlib.h,
214             [ dnl *** If X11/extensions/Xvlib.h exists...
215                 AC_CHECK_LIB(Xv, XvShmCreateImage,
216                   [ AC_DEFINE(HAVE_XVIDEO, 1, [Define if the X libraries support XVideo])
217                      X_PRE_LIBS="$X_PRE_LIBS -lXv"
218                   ],,
219                   $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
220                 )
221             ],
222             AC_MSG_WARN([[XVideo extension not found, Wine will be built without it]]),
223             [#include <X11/Xlib.h>])
225         dnl *** Check for XRender include file
226         AC_CHECK_HEADERS(X11/extensions/Xrender.h,,,[#include <X11/Xlib.h>])
227       ]
228     ) dnl *** End of X11/Xlib.h check
230     dnl Check for the presence of OpenGL
231     if test "x$enable_opengl" != "xno"
232     then
233         if test -f /usr/X11R6/lib/libGL.a -a ! -f /usr/X11R6/lib/libGL.so
234         then
235             AC_MSG_ERROR([/usr/X11R6/lib/libGL.a is present on your system.
236 This prevents linking to OpenGL. Delete the file and restart configure.])
237         fi
239         AC_CHECK_HEADERS(GL/gl.h GL/glx.h)
240         if test "$ac_cv_header_GL_gl_h" = "yes" -a "$ac_cv_header_GL_glx_h" = "yes"
241         then
242             AC_CHECK_HEADERS(GL/glext.h,,,[#include <GL/glx.h>])
243             dnl Check for some problems due to old Mesa versions
244             AC_CACHE_CHECK([for up-to-date OpenGL version], wine_cv_opengl_version_OK,
245               AC_TRY_COMPILE(
246                 [#include <GL/gl.h>],
247                 [GLenum test = GL_UNSIGNED_SHORT_5_6_5;],
248                 [wine_cv_opengl_version_OK="yes"],
249                 [wine_cv_opengl_version_OK="no"]
250               )
251             )
253             dnl Check for the thread-safety of the OpenGL library
254             AC_CACHE_CHECK([for thread-safe OpenGL version],
255                            wine_cv_opengl_version_threadsafe,
256               [saved_libs=$LIBS
257                LIBS="$X_LIBS -lGL"
258                AC_TRY_LINK([],[pthread_getspecific();],
259                               [wine_cv_opengl_version_threadsafe="yes"],
260                               [wine_cv_opengl_version_threadsafe="no"])
261                LIBS=$saved_libs]
262             )
264             if test "$wine_cv_opengl_version_OK" = "yes" -a \( "$wine_cv_opengl_version_threadsafe" = "no" -o "x$enable_opengl" = "xyes" \)
265             then
266                 dnl Check for the presence of the library
267                 AC_CHECK_LIB(GL,glXCreateContext,
268                              X_PRE_LIBS="$X_PRE_LIBS -lGL"
269                              ,,
270                              $X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS)
272                 if test "$ac_cv_lib_GL_glXCreateContext" = "yes"
273                 then
274                         OPENGLFILES='$(OPENGLFILES)'
275                         AC_DEFINE(HAVE_OPENGL, 1, [Define if OpenGL is present on the system])
277                         AC_CHECK_LIB(GL,glXGetProcAddressARB,
278                                      AC_DEFINE(HAVE_GLX_GETPROCADDRESS, 1,
279                                                [Define if the OpenGL library supports the glXGetProcAddressARB call]),,
280                                      $X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS)
282                         if test "$ac_cv_lib_GL_glXGetProcAddressARB" = "yes"
283                         then
284                                AC_CACHE_CHECK([for OpenGL extension functions prototypes], wine_cv_extension_prototypes,
285                                   [AC_TRY_COMPILE([#include <GL/gl.h>
286                                                   #ifdef HAVE_GL_GLEXT_H
287                                                   # include <GL/glext.h>
288                                                   #endif
289                                                   ],
290                                                  [PFNGLCOLORTABLEEXTPROC test_proc;],
291                                                  [wine_cv_extension_prototypes="yes"],
292                                                  [wine_cv_extension_prototypes="no"]
293                                   )]
294                                 )
295                                 if test "$wine_cv_extension_prototypes" = "yes"
296                                 then
297                                     AC_DEFINE(HAVE_GLEXT_PROTOTYPES, 1,
298                                               [Define if the OpenGL headers define extension typedefs])
299                                 fi
300                         fi
302                 fi
303                 dnl Check for GLU32 library.
304                 AC_CHECK_LIB(GLU,gluLookAt,
305                              [X_PRE_LIBS="$X_PRE_LIBS -lGLU"
306                              GLU32FILES='$(GLU32FILES)']
307                              ,,
308                              $X_LIBS $X_PRE_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS
309                 )
310              fi
311          fi
312     fi
314     CPPFLAGS="$ac_save_CPPFLAGS"
315     XFILES='$(XFILES)'
316 else
317     XLIB=""
318     X_CFLAGS=""
319     X_LIBS=""
322 dnl **** Check which curses lib to use ***
323 CURSESLIBS=""
324 if test "x$with_curses" != "xno"
325 then
326     AC_CHECK_HEADERS(ncurses.h,
327         [AC_CHECK_LIB(ncurses,waddch,
328             [AC_DEFINE(HAVE_LIBNCURSES, 1, [Define if you have the ncurses library (-lncurses)])
329              CURSESLIBS="-lncurses"],
330              [AC_CHECK_HEADERS(curses.h,
331                  [AC_CHECK_LIB(curses,waddch,
332                      [AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have the curses library (-lcurses)])
333                       CURSESLIBS="-lcurses"])])])])
334     saved_libs="$LIBS"
335     LIBS="$CURSESLIBS $LIBS"
336     AC_CHECK_FUNCS(getbkgd resizeterm)
337     LIBS="$saved_libs"
339 AC_SUBST(CURSESLIBS)
341 CUPSLIBS=""
342 dnl **** Check for CUPS ****
343 wine_cv_warn_cups_h=no
344 AC_CHECK_LIB(cups,cupsGetPPD,
345         [AC_CHECK_HEADER(cups/cups.h,
346             [AC_DEFINE(HAVE_CUPS, 1, [Define if we have CUPS])
347             CUPSLIBS="-lcups"],
348             wine_cv_warn_cups_h=yes)]
350 AC_SUBST(CUPSLIBS)
352 dnl **** Check for SANE ****
353 AC_CHECK_PROG(sane_devel,sane-config,sane-config,no)
354 if test "$sane_devel" = "no"
355 then
356     SANELIBS=""
357     SANEINCL=""
358 else
359     SANELIBS="`$sane_devel --libs`"
360     SANEINCL="`$sane_devel --cflags`"
361     ac_save_CPPFLAGS="$CPPFLAGS"
362     ac_save_LIBS="$LIBS"
363     CPPFLAGS="$CPPFLAGS $SANEINCL"
364     LIBS="$LIBS $SANELIBS"
365     AC_CHECK_HEADER(sane/sane.h,
366                     [AC_CHECK_LIB(sane,sane_open,
367                                   [AC_DEFINE(HAVE_SANE, 1, [Define if we have SANE development environment])],
368                                   [SANELIBS=""
369                                   SANEINCL=""])],
370                     [SANELIBS=""
371                     SANEINCL=""])
372     LIBS="$ac_save_LIBS"
373     CPPFLAGS="$ac_save_CPPFLAGS"
375 AC_SUBST(SANELIBS)
376 AC_SUBST(SANEINCL)
378 dnl **** Check for FreeType 2 ****
379 AC_CHECK_LIB(freetype,FT_Init_FreeType,ft_lib=yes,ft_lib=no,$X_LIBS)
380 if test "$ft_lib" = "no"
381 then
382     FREETYPEINCL=""
383     wine_cv_msg_freetype=no
384 else
385     AC_CHECK_PROG(ft_devel,freetype-config,freetype-config,no)
386     if test "$ft_devel" = "no"
387     then
388         AC_CHECK_PROG(ft_devel2,freetype2-config,freetype2-config,no)
389         if test "$ft_devel2" = "freetype2-config"
390         then
391                 ft_devel=$ft_devel2
392         fi
393     fi
394     if test "$ft_devel" = "no"
395     then
396         FREETYPEINCL=""
397         wine_cv_msg_freetype=yes
398     else
399         FREETYPEINCL=`$ft_devel --cflags`
400         ac_save_CPPFLAGS="$CPPFLAGS"
401         CPPFLAGS="$FREETYPEINCL $CPPFLAGS"
402         AC_CHECK_HEADERS(freetype/freetype.h \
403                          freetype/ftglyph.h \
404                          freetype/tttables.h \
405                          freetype/ftnames.h \
406                          freetype/ftsnames.h \
407                          freetype/ttnameid.h \
408                          freetype/ftoutln.h \
409                          freetype/internal/sfnt.h)
410         AC_TRY_CPP([#include <ft2build.h>
411                     #include <freetype/fttrigon.h>],
412                     [AC_DEFINE(HAVE_FREETYPE_FTTRIGON_H, 1,
413           [Define if you have the <freetype/fttrigon.h> header file.])
414                     wine_cv_fttrigon=yes],
415                     wine_cv_fttrigon=no)
416         CPPFLAGS="$ac_save_CPPFLAGS"
417         dnl Check that we have at least freetype/freetype.h
418         if test "$ac_cv_header_freetype_freetype_h" = "yes" -a "$wine_cv_fttrigon" = "yes"
419         then
420             AC_DEFINE(HAVE_FREETYPE, 1, [Define if FreeType 2 is installed])
421             wine_cv_msg_freetype=no
422         else
423             FREETYPEINCL=""
424             wine_cv_msg_freetype=yes
425         fi
426     fi
428 AC_SUBST(FREETYPEINCL)
430 dnl **** Check for parport (currently Linux only) ****
431 AC_CACHE_CHECK([for parport header/ppdev.h], ac_cv_c_ppdev,
432  AC_TRY_COMPILE(
433    [#include <linux/ppdev.h>],
434    [ioctl (1,PPCLAIM,0)],
435    [ac_cv_c_ppdev="yes"],
436    [ac_cv_c_ppdev="no"])
438 if test "$ac_cv_c_ppdev" = "yes"
439 then
440     AC_DEFINE(HAVE_PPDEV, 1, [Define if we can use ppdev.h for parallel port access])
443 dnl **** Check for IPX (currently Linux only) ****
444 AC_CACHE_CHECK([for GNU style IPX support], ac_cv_c_ipx_gnu,
445  AC_TRY_COMPILE(
446    [#include <sys/socket.h>
447     #include <netipx/ipx.h>],
448    [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
449    [ac_cv_c_ipx_gnu="yes"],
450    [ac_cv_c_ipx_gnu="no"])
452 if test "$ac_cv_c_ipx_gnu" = "yes"
453 then
454     AC_DEFINE(HAVE_IPX_GNU, 1, [Define if IPX should use netipx/ipx.h from libc])
457 if test "$ac_cv_c_ipx_gnu" = "no"
458 then
459  AC_CACHE_CHECK([for linux style IPX support], ac_cv_c_ipx_linux,
460   AC_TRY_COMPILE(
461     [#include <sys/socket.h>
462      #include <asm/types.h>
463      #include <linux/ipx.h>],
464     [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
465     [ac_cv_c_ipx_linux="yes"],
466     [ac_cv_c_ipx_linux="no"])
467   )
468   if test "$ac_cv_c_ipx_linux" = "yes"
469   then
470       AC_DEFINE(HAVE_IPX_LINUX, 1, [Define if IPX includes are taken from Linux kernel])
471   fi
474 dnl **** Check for Open Sound System ****
475 AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h soundcard.h, break)
477 AC_CACHE_CHECK([for Open Sound System],
478         ac_cv_c_opensoundsystem,
479         AC_TRY_COMPILE([
480         #if defined(HAVE_SYS_SOUNDCARD_H)
481                 #include <sys/soundcard.h>
482         #elif defined(HAVE_MACHINE_SOUNDCARD_H)
483                 #include <machine/soundcard.h>
484         #elif defined(HAVE_SOUNDCARD_H)
485                 #include <soundcard.h>
486         #endif
487         ],[
489 /* check for one of the Open Sound System specific SNDCTL_ defines */
490 #if !defined(SNDCTL_DSP_STEREO)
491 #error No open sound system
492 #endif
493 ],ac_cv_c_opensoundsystem="yes",ac_cv_c_opensoundsystem="no"))
495 if test "$ac_cv_c_opensoundsystem" = "yes"
496 then
497     AC_DEFINE(HAVE_OSS, 1, [Define if you have the Open Sound system])
500 AC_CACHE_CHECK([for Open Sound System/MIDI interface],
501         ac_cv_c_opensoundsystem_midi,
502         AC_TRY_COMPILE([
503         #if defined(HAVE_SYS_SOUNDCARD_H)
504                 #include <sys/soundcard.h>
505         #elif defined(HAVE_MACHINE_SOUNDCARD_H)
506                 #include <machine/soundcard.h>
507         #elif defined(HAVE_SOUNDCARD_H)
508                 #include <soundcard.h>
509         #endif
510         ],[
512 /* check for one of the Open Sound System specific SNDCTL_SEQ defines */
513 #if !defined(SNDCTL_SEQ_SYNC)
514 #error No open sound system MIDI interface
515 #endif
516 ],ac_cv_c_opensoundsystem_midi="yes",ac_cv_c_opensoundsystem_midi="no"))
518 if test "$ac_cv_c_opensoundsystem_midi" = "yes"
519 then
520     AC_DEFINE(HAVE_OSS_MIDI, 1, [Define if you have the Open Sound system (MIDI interface)])
523 dnl **** Check for aRts Sound Server ****
524 AC_PATH_PROG(ARTSCCONFIG, artsc-config)
525 AC_CACHE_CHECK([for aRts Sound server],
526         ac_cv_c_artsserver,
527         if test x$ARTSCCONFIG = x -o x$ARTSCCONFIG = x'"$ARTSCCONFIG"';
528         then
529             ac_cv_c_artsserver=no
530         else
531             ARTSC_CFLAGS=`$ARTSCCONFIG --cflags`
532             ARTSC_LIBS=`$ARTSCCONFIG --libs`
533             ac_cv_c_artsserver=no
534             save_CFLAGS="$CFLAGS"
535             CFLAGS="$CFLAGS $ARTSC_CFLAGS"
536             AC_TRY_COMPILE([
537              #include <artsc.h>
538             ],[
539              arts_stream_t stream;
540             ],[
541             ac_cv_c_artsserver=yes
542             ])
543             CFLAGS="$save_CFLAGS"
544         fi)
546 if test "$ac_cv_c_artsserver" = "yes"
547 then
548     AC_SUBST(ARTSLIBS, $ARTSC_LIBS)
549     AC_SUBST(ARTSINCL, $ARTSC_CFLAGS)
551     AC_DEFINE(HAVE_ARTS, 1, [Define if you have ARTS sound server])
554 dnl **** Check for ALSA ****
555 AC_SUBST(ALSALIBS,"")
556 AC_CHECK_HEADERS(sys/asoundlib.h)
557 if test "$ac_cv_header_sys_asoundlib_h" = "yes"
558 then
559     AC_CHECK_LIB(asound,snd_pcm_open,
560         AC_DEFINE(HAVE_ALSA,1,[Define if you have ALSA including devel headers])
561         ALSALIBS="-lasound")
564 dnl **** Check for broken glibc mmap64 ****
566 AC_CACHE_CHECK( [whether mmap64 works defined as mmap], ac_cv_mmap64_works,
567         AC_TRY_RUN([
568                 #define _FILE_OFFSET_BITS 64
569                 #include <stdio.h>
570                 #include <unistd.h>
571                 #include <fcntl.h>
572                 #include <sys/mman.h>
573                 #include <errno.h>
575                 int main(int argc,char **argv) {
576                         int fd = open("conftest.map",O_CREAT|O_RDWR,0600);
577                         if (fd == -1) exit(1);
579                         unlink("conftest.map");
581                         write(fd,"test",4);
583                         if ((-1 == mmap(0,4,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0)) &&
584                             (errno == EINVAL)
585                         ) {
586                                 exit(1);
587                         }
588                         close(fd);
589                         fprintf(stderr,"success!\n");
590                         exit(0);
591                 }
593         ],
594     ac_cv_mmap64_works="yes",
595     ac_cv_mmap64_works="no",
596     ac_cv_mmap64_works="no") )
598 if test "$ac_cv_mmap64_works" = "yes"
599 then
600     AC_DEFINE(_FILE_OFFSET_BITS, 64, [Set this to 64 to enable 64-bit file support on Linux])
603 dnl **** Check for gcc strength-reduce bug ****
605 if test "x${GCC}" = "xyes"
606 then
607   CFLAGS="$CFLAGS -Wall"
608   AC_CACHE_CHECK( [for gcc strength-reduce bug], ac_cv_c_gcc_strength_bug,
609                   AC_TRY_RUN([
610 int     L[[4]] = {0,1,2,3};
611 int main(void) {
612   static int Array[[3]];
613   unsigned int B = 3;
614   int i;
615   for(i=0; i<B; i++) Array[[i]] = i - 3;
616   for(i=0; i<4 - 1; i++) L[[i]] = L[[i + 1]];
617   L[[i]] = 4;
619   exit( Array[[1]] != -2 || L[[2]] != 3);
621     ac_cv_c_gcc_strength_bug="no",
622     ac_cv_c_gcc_strength_bug="yes",
623     ac_cv_c_gcc_strength_bug="yes") )
624   if test "$ac_cv_c_gcc_strength_bug" = "yes"
625   then
626     CFLAGS="$CFLAGS -fno-strength-reduce"
627   fi
629   dnl Check for -mpreferred-stack-boundary
630   AC_CACHE_CHECK([for gcc -mpreferred-stack-boundary=2 support], ac_cv_c_gcc_stack_boundary,
631       [WINE_TRY_CFLAGS([-mpreferred-stack-boundary=2],
632                       ac_cv_c_gcc_stack_boundary="yes",ac_cv_c_gcc_stack_boundary="no")])
633   if test "$ac_cv_c_gcc_stack_boundary" = "yes"
634   then
635     CFLAGS="$CFLAGS -mpreferred-stack-boundary=2"
636   fi
639 dnl **** Check if we need to place .type inside a .def directive ****
641 AC_CACHE_CHECK([whether .type must sit inside a .def directive], ac_cv_c_type_in_def,
642     WINE_TRY_ASM_LINK(
643 [       .globl _ac_test
644         .def _ac_test; .scl 2; .type 32; .endef
645 _ac_test:
646         .long 0],,,
647     ac_cv_c_type_in_def="yes",ac_cv_c_type_in_def="no"))
648 if test "$ac_cv_c_type_in_def" = "yes"
649 then
650   AC_DEFINE(NEED_TYPE_IN_DEF, 1, [Define if .type asm directive must be inside a .def directive])
653 dnl **** Check for underscore on external symbols ****
655 AC_CACHE_CHECK([whether external symbols need an underscore prefix], ac_cv_c_extern_prefix,
656     WINE_TRY_ASM_LINK(
657 [       .globl _ac_test
658 _ac_test:
659         .long 0],
660 [extern int ac_test;],
661 [if (ac_test) return 1],
662     ac_cv_c_extern_prefix="yes",ac_cv_c_extern_prefix="no"))
663 if test "$ac_cv_c_extern_prefix" = "yes"
664 then
665   AC_DEFINE(NEED_UNDERSCORE_PREFIX, 1,
666             [Define if symbols declared in assembly code need an underscore prefix])
669 dnl **** Check whether stdcall symbols need to be decorated ****
671 AC_CACHE_CHECK([whether stdcall symbols need to be decorated], ac_cv_c_stdcall_decoration,
672     WINE_TRY_ASM_LINK(
673 [       .globl _ac_test@0
674 _ac_test@0:
675         .globl ac_test@0
676 ac_test@0:],
677 [extern void __attribute__((__stdcall__)) ac_test(void);],
678 [ac_test()],
679     ac_cv_c_stdcall_decoration="yes",ac_cv_c_stdcall_decoration="no"))
680 if test "$ac_cv_c_stdcall_decoration" = "yes"
681 then
682   AC_DEFINE(NEED_STDCALL_DECORATION, 1, [Define if stdcall symbols need to be decorated])
685 dnl **** Check for .string in assembler ****
687 AC_CACHE_CHECK([whether assembler accepts .string], ac_cv_c_asm_string,
688     WINE_TRY_ASM_LINK(
689 [       .string "test"],,,ac_cv_c_asm_string="yes",ac_cv_c_asm_string="no"))
690 if test "$ac_cv_c_asm_string" = "yes"
691 then
692   AC_DEFINE(HAVE_ASM_STRING, 1, [Define to use .string instead of .ascii])
695 dnl **** Check for working dll ****
697 LDSHARED=""
698 LDDLLFLAGS=""
699 DLLIBS=""
701 case $host_os in
702   cygwin*|mingw32*)
703     AC_CHECK_TOOL(DLLWRAP,dllwrap,false)
704     if test "$DLLWRAP" = "false"; then
705       LIBEXT="a"
706     else
707       dnl FIXME - check whether dllwrap works correctly...
708       LIBEXT="dll"
709     fi
710     ;;
711   *)
712     AC_CHECK_HEADERS(dlfcn.h,
713         [AC_CHECK_FUNCS(dlopen,,
714             [AC_CHECK_LIB(dl,dlopen,
715                          [AC_DEFINE(HAVE_DLOPEN,1,[Define if you have dlopen])
716                           DLLIBS="-ldl"],
717                          [LIBEXT="a"])])],
718         [LIBEXT="a"])
720     if test "$LIBEXT" = "so"
721     then
722       AC_CACHE_CHECK([whether we can build a GNU style ELF dll], ac_cv_c_dll_gnuelf,
723           [WINE_TRY_CFLAGS([-fPIC -shared -Wl,-soname,conftest.so.1.0,-Bsymbolic],
724                            ac_cv_c_dll_gnuelf="yes",ac_cv_c_dll_gnuelf="no")])
725       if test "$ac_cv_c_dll_gnuelf" = "yes"
726       then
727         LDSHARED="\$(CC) -shared \$(SONAME:%=-Wl,-soname,%)"
728         LDDLLFLAGS="-Wl,-Bsymbolic"
729       else
730         AC_CACHE_CHECK(whether we can build a UnixWare (Solaris) dll, ac_cv_c_dll_unixware,
731             [WINE_TRY_CFLAGS([-fPIC -Wl,-G,-h,conftest.so.1.0,-B,symbolic],
732                              ac_cv_c_dll_unixware="yes",ac_cv_c_dll_unixware="no")])
733         if test "$ac_cv_c_dll_unixware" = "yes"
734         then
735           LDSHARED="\$(CC) -Wl,-G \$(SONAME:%=-Wl,-h,%)"
736           LDDLLFLAGS="-Wl,-B,symbolic"
737         fi
738       fi
739     fi
740     ;;
741 esac
743 if test "$LIBEXT" = "a"; then
744   AC_MSG_ERROR(
745 [could not find a way to build shared libraries.
746 It is currently not possible to build Wine without shared library
747 (.so) support to allow transparent switch between .so and .dll files.
748 If you are using Linux, you will need a newer binutils.]
752 DLLFLAGS=""
754 if test "$LIBEXT" = "so"; then
755     DLLFLAGS="-fPIC"
756     DLLEXT=".so"
757 elif test "$LIBEXT" = "dll"; then
758     #DLLFLAGS="-fPIC" # -fPIC doesn't work(at least in cygwin-b20) - FIXME
759     DLLEXT=""
762 case $build_os in
763   cygwin*|mingw32*)
764     LDPATH="PATH=\"\$(TOOLSDIR)/library:\$(TOOLSDIR)/unicode:\$\$PATH\"" ;;
765   *)
766     LDPATH="LD_LIBRARY_PATH=\"\$(TOOLSDIR)/library:\$(TOOLSDIR)/unicode:\$\$LD_LIBRARY_PATH\"" ;;
767 esac
769 AC_SUBST(DLLIBS)
770 AC_SUBST(DLLFLAGS)
771 AC_SUBST(DLLEXT)
772 AC_SUBST(LDSHARED)
773 AC_SUBST(LDDLLFLAGS)
774 AC_SUBST(LIBEXT)
775 AC_SUBST(LDPATH)
777 dnl **** Get the soname for libraries that we load dynamically ****
779 if test "$LIBEXT" = "so"
780 then
781   WINE_GET_SONAME(X11,XCreateWindow,[$X_LIBS $X_EXTRA_LIBS])
782   WINE_GET_SONAME(Xext,XextCreateExtension,[$X_LIBS -lX11 $X_EXTRA_LIBS])
783   WINE_GET_SONAME(Xrender,XRenderQueryExtension,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
784   WINE_GET_SONAME(freetype,FT_Init_FreeType,[$X_LIBS])
788 dnl **** Check for reentrant libc ****
790 wine_cv_libc_reentrant=no
791 dnl Linux style errno location
792 WINE_CHECK_ERRNO([__errno_location], [wine_cv_libc_reentrant=__errno_location],
793   dnl FreeBSD style errno location
794   WINE_CHECK_ERRNO([__error], [wine_cv_libc_reentrant=__error],
795     dnl Solaris style errno location
796     WINE_CHECK_ERRNO([___errno], [wine_cv_libc_reentrant=___errno],
797       dnl UnixWare style errno location
798       WINE_CHECK_ERRNO([__thr_errno], [wine_cv_libc_reentrant=__thr_errno],
799         dnl NetBSD style errno location
800         WINE_CHECK_ERRNO([__errno], [wine_cv_libc_reentrant=__errno])
801 ))))
803 if test "$wine_cv_libc_reentrant" != "no"
804 then
805   AC_DEFINE_UNQUOTED(ERRNO_LOCATION,$wine_cv_libc_reentrant,
806                      [Define to the name of the function returning errno for reentrant libc])
809 dnl **** Check for reentrant X libraries ****
811 dnl This may fail to determine whether X libraries are reentrant if
812 dnl AC_PATH_XTRA does not set x_libraries.
814 if test "$have_x" = "yes"
815 then
816 AC_CACHE_CHECK( [for reentrant X libraries], wine_cv_x_reentrant,
817     [libX11_check=none
818     for dir in "$x_libraries" /usr/lib /usr/local/lib /lib; do
819         if test -r $dir/libX11.so; then
820             libX11_check="-D $dir/libX11.so"
821             break
822         fi
823         if test -r $dir/libX11.a; then
824             libX11_check="$dir/libX11.a"
825             break
826         fi
827     done
828     if test "$libX11_check" != "none"; then
829         if nm $libX11_check | grep $wine_cv_libc_reentrant >/dev/null 2>&1
830         then
831             wine_cv_x_reentrant=yes
832         else
833             wine_cv_x_reentrant=no
834         fi
835     else
836         wine_cv_x_reentrant=unknown
837     fi])
840 dnl **** Check for functions ****
842 AC_FUNC_ALLOCA()
843 AC_CHECK_FUNCS(\
844         __libc_fork \
845         _lwp_create \
846         _pclose \
847         _popen \
848         _snprintf \
849         _stricmp \
850         _strnicmp \
851         chsize \
852         clone \
853         ecvt \
854         finite \
855         fpclass \
856         ftruncate \
857         ftruncate64 \
858         getnetbyaddr \
859         getnetbyname \
860         getpagesize \
861         getprotobyname \
862         getprotobynumber \
863         getpwuid \
864         getservbyport \
865         getsockopt \
866         inet_network \
867         lseek64 \
868         lstat \
869         memmove \
870         mmap \
871         pclose \
872         popen \
873         pread \
874         pwrite \
875         rfork \
876         select \
877         sendmsg \
878         settimeofday \
879         sigaltstack \
880         snprintf \
881         statfs \
882         strcasecmp \
883         strerror \
884         strncasecmp \
885         tcgetattr \
886         timegm \
887         usleep \
888         vfscanf \
889         wait4 \
890         waitpid \
893 dnl **** Check for header files ****
895 AC_CHECK_HEADERS(\
896         arpa/inet.h \
897         arpa/nameser.h \
898         direct.h \
899         elf.h \
900         float.h \
901         ieeefp.h \
902         io.h \
903         libio.h \
904         libutil.h \
905         link.h \
906         linux/cdrom.h \
907         linux/hdreg.h \
908         linux/input.h \
909         linux/joystick.h \
910         linux/major.h \
911         linux/param.h \
912         linux/serial.h \
913         linux/ucdrom.h \
914         net/if.h \
915         netdb.h \
916         netinet/in.h \
917         netinet/in_systm.h \
918         netinet/ip.h \
919         netinet/tcp.h \
920         pty.h \
921         pwd.h \
922         resolv.h \
923         sched.h \
924         scsi/sg.h \
925         socket.h \
926         stdint.h \
927         strings.h \
928         sys/cdio.h \
929         sys/errno.h \
930         sys/file.h \
931         sys/filio.h \
932         sys/inttypes.h \
933         sys/ioctl.h \
934         sys/ipc.h \
935         sys/link.h \
936         sys/lwp.h \
937         sys/mman.h \
938         sys/modem.h \
939         sys/mount.h \
940         sys/msg.h \
941         sys/param.h \
942         sys/ptrace.h \
943         sys/reg.h \
944         sys/shm.h \
945         sys/signal.h \
946         sys/socket.h \
947         sys/sockio.h \
948         sys/statfs.h \
949         sys/strtio.h \
950         sys/syscall.h \
951         sys/sysctl.h \
952         sys/time.h \
953         sys/user.h \
954         sys/v86.h \
955         sys/v86intr.h \
956         sys/vfs.h \
957         sys/vm86.h \
958         sys/wait.h \
959         syscall.h \
960         termios.h \
961         ucontext.h \
962         unistd.h \
964 AC_HEADER_STAT()
966 dnl **** Check for types ****
968 AC_C_CONST
969 AC_C_INLINE
970 AC_CHECK_TYPES([mode_t, off_t, pid_t, size_t, ssize_t])
971 AC_CHECK_SIZEOF(long long,0)
973 AC_CACHE_CHECK([whether linux/input.h is for real],
974         wine_cv_linux_input_h,
975         AC_TRY_COMPILE([
976             #include <linux/input.h>
977         ] , [
978             int foo = EVIOCGBIT(EV_ABS,42);
979             int bar = BTN_PINKIE;
980             int fortytwo = 42;
981         ],
982         wine_cv_linux_input_h=yes,
983         wine_cv_linux_input_h=no,
984         no
985         )
986     )
987     if test "$wine_cv_linux_input_h" = "yes"
988     then
989         AC_DEFINE(HAVE_CORRECT_LINUXINPUT_H, 1,
990                   [Define if we have linux/input.h AND it contains the INPUT event API])
991     fi
994 AC_CACHE_CHECK([whether we can use re-entrant gethostbyname_r Linux style],
995         wine_cv_linux_gethostbyname_r_6,
996         AC_TRY_COMPILE([
997 #include <netdb.h>
998         ], [
999     char *name=NULL;
1000     struct hostent he;
1001     struct hostent *result;
1002     char *buf=NULL;
1003     int bufsize=0;
1004     int res,errnr;
1005     char *addr=NULL;
1006     int addrlen=0;
1007     int addrtype=0;
1008     res=gethostbyname_r(name,&he,buf,bufsize,&result,&errnr);
1009     res=gethostbyaddr_r(addr, addrlen, addrtype,&he,buf,bufsize,&result,&errnr);
1010     ],
1011         wine_cv_linux_gethostbyname_r_6=yes,
1012         wine_cv_linux_gethostbyname_r_6=no
1013         )
1014    )
1015    if test "$wine_cv_linux_gethostbyname_r_6" = "yes"
1016    then
1017       AC_DEFINE(HAVE_LINUX_GETHOSTBYNAME_R_6, 1,
1018                 [Define if Linux-style gethostbyname_r and gethostbyaddr_r are available])
1019    fi
1021 if test "$ac_cv_header_linux_joystick_h" = "yes"
1022 then
1023    AC_CACHE_CHECK([whether linux/joystick.h uses the Linux 2.2+ API],
1024         wine_cv_linux_joystick_22_api,
1025         AC_TRY_COMPILE([
1026         #include <sys/ioctl.h>
1027         #include <linux/joystick.h>
1029         struct js_event blub;
1030         #if !defined(JS_EVENT_AXIS) || !defined(JS_EVENT_BUTTON)
1031         #error "no 2.2 header"
1032         #endif
1033         ],/*empty*/,
1034         wine_cv_linux_joystick_22_api=yes,
1035         wine_cv_linux_joystick_22_api=no,
1036         wine_cv_linux_joystick_22_api=no
1037         )
1038    )
1039    if test "$wine_cv_linux_joystick_22_api" = "yes"
1040    then
1041       AC_DEFINE(HAVE_LINUX_22_JOYSTICK_API, 1,
1042                 [Define if <linux/joystick.h> defines the Linux 2.2 joystick API])
1043    fi
1046 dnl **** statfs checks ****
1048 if test "$ac_cv_header_sys_vfs_h" = "yes"
1049 then
1050     AC_CACHE_CHECK( [whether sys/vfs.h defines statfs],
1051                     wine_cv_sys_vfs_has_statfs,
1052         AC_TRY_COMPILE([
1053         #include <sys/types.h>
1054         #ifdef HAVE_SYS_PARAM_H
1055         # include <sys/param.h>
1056         #endif
1057         #include <sys/vfs.h>
1058         ],[
1059                 struct statfs stfs;
1061                 memset(&stfs,0,sizeof(stfs));
1062         ],wine_cv_sys_vfs_has_statfs=yes,wine_cv_sys_vfs_has_statfs=no
1063         )
1064     )
1065     if test "$wine_cv_sys_vfs_has_statfs" = "yes"
1066     then
1067       AC_DEFINE(STATFS_DEFINED_BY_SYS_VFS, 1,
1068                 [Define if the struct statfs is defined by <sys/vfs.h>])
1069     fi
1072 if test "$ac_cv_header_sys_statfs_h" = "yes"
1073 then
1074     AC_CACHE_CHECK( [whether sys/statfs.h defines statfs],
1075                     wine_cv_sys_statfs_has_statfs,
1076         AC_TRY_COMPILE([
1077         #include <sys/types.h>
1078         #ifdef HAVE_SYS_PARAM_H
1079         # include <sys/param.h>
1080         #endif
1081         #include <sys/statfs.h>
1082         ],[
1083                 struct statfs stfs;
1084         ],wine_cv_sys_statfs_has_statfs=yes,wine_cv_sys_statfs_has_statfs=no
1085         )
1086     )
1087     if test "$wine_cv_sys_statfs_has_statfs" = "yes"
1088     then
1089       AC_DEFINE(STATFS_DEFINED_BY_SYS_STATFS, 1,
1090                 [Define if the struct statfs is defined by <sys/statfs.h>])
1091     fi
1094 if test "$ac_cv_header_sys_mount_h" = "yes"
1095 then
1096     AC_CACHE_CHECK( [whether sys/mount.h defines statfs],
1097                     wine_cv_sys_mount_has_statfs,
1098         AC_TRY_COMPILE([
1099         #include <sys/types.h>
1100         #ifdef HAVE_SYS_PARAM_H
1101         # include <sys/param.h>
1102         #endif
1103         #include <sys/mount.h>
1104         ],[
1105                 struct statfs stfs;
1106         ],wine_cv_sys_mount_has_statfs=yes,wine_cv_sys_mount_has_statfs=no
1107         )
1108     )
1109     if test "$wine_cv_sys_mount_has_statfs" = "yes"
1110     then
1111       AC_DEFINE(STATFS_DEFINED_BY_SYS_MOUNT, 1,
1112                 [Define if the struct statfs is defined by <sys/mount.h>])
1113     fi
1116 dnl **** FIXME: what about mixed cases, where we need two of them? ***
1118 WINE_CHECK_STRUCT_MEMBER(statfs,f_bfree,
1119 [#include <sys/types.h>
1120 #ifdef HAVE_SYS_PARAM_H
1121 # include <sys/param.h>
1122 #endif
1123 #ifdef STATFS_DEFINED_BY_SYS_MOUNT
1124 # include <sys/mount.h>
1125 #else
1126 # ifdef STATFS_DEFINED_BY_SYS_VFS
1127 #  include <sys/vfs.h>
1128 # else
1129 #  ifdef STATFS_DEFINED_BY_SYS_STATFS
1130 #   include <sys/statfs.h>
1131 #  endif
1132 # endif
1133 #endif],
1134     [AC_DEFINE(STATFS_HAS_BFREE, 1, [Define if the struct statfs has the member bfree])])
1136 WINE_CHECK_STRUCT_MEMBER(statfs,f_bavail,
1137 [#include <sys/types.h>
1138 #ifdef HAVE_SYS_PARAM_H
1139 # include <sys/param.h>
1140 #endif
1141 #ifdef STATFS_DEFINED_BY_SYS_MOUNT
1142 # include <sys/mount.h>
1143 #else
1144 # ifdef STATFS_DEFINED_BY_SYS_VFS
1145 #  include <sys/vfs.h>
1146 # else
1147 #  ifdef STATFS_DEFINED_BY_SYS_STATFS
1148 #   include <sys/statfs.h>
1149 #  endif
1150 # endif
1151 #endif],
1152     [AC_DEFINE(STATFS_HAS_BAVAIL, 1, [Define if the struct statfs has the member bavail])])
1154 dnl Check for file descriptor passing with msg_accrights
1155 WINE_CHECK_STRUCT_MEMBER(msghdr,msg_accrights,
1156 [#include <sys/types.h>
1157 #include <sys/socket.h>],
1158     [AC_DEFINE(HAVE_MSGHDR_ACCRIGHTS, 1, [Define if struct msghdr contains msg_accrights])])
1160 dnl Check for the sa_len member in struct sockaddr
1161 WINE_CHECK_STRUCT_MEMBER(sockaddr,sa_len,
1162 [#include <sys/types.h>
1163 #include <sys/socket.h>],
1164     [AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if struct sockaddr contains sa_len])])
1166 dnl Check for the sun_len member in struct sockaddr_un
1167 WINE_CHECK_STRUCT_MEMBER(sockaddr_un,sun_len,
1168 [#include <sys/types.h>
1169 #include <sys/socket.h>
1170 #include <sys/un.h>],
1171     [AC_DEFINE(HAVE_SOCKADDR_SUN_LEN, 1, [Define if struct sockaddr_un contains sun_len])])
1173 dnl *** check for the need to define __i386__
1175 case $host_cpu in
1176   *i[3456789]86* )
1177     AC_CACHE_CHECK([whether we need to define __i386__],ac_cv_cpp_def_i386,
1178       AC_EGREP_CPP(yes,[#ifndef __i386__
1180 #endif],
1181  ac_cv_cpp_def_i386="yes", ac_cv_cpp_def_i386="no"))
1182     ;;
1183 esac
1184 if test "$ac_cv_cpp_def_i386" = "yes"
1185 then
1186     CFLAGS="$CFLAGS -D__i386__"
1187     LINTFLAGS="$LINTFLAGS -D__i386__"
1190 dnl **** Generate output files ****
1192 AH_TOP([#define __WINE_CONFIG_H])
1194 WINE_CONFIG_EXTRA_DIR(controls)
1195 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/d3ddevice)
1196 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dclipper)
1197 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/ddraw)
1198 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/direct3d)
1199 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dpalette)
1200 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dsurface)
1201 WINE_CONFIG_EXTRA_DIR(dlls/dinput/joystick)
1202 WINE_CONFIG_EXTRA_DIR(dlls/dinput/keyboard)
1203 WINE_CONFIG_EXTRA_DIR(dlls/dinput/mouse)
1204 WINE_CONFIG_EXTRA_DIR(dlls/gdi/enhmfdrv)
1205 WINE_CONFIG_EXTRA_DIR(dlls/gdi/mfdrv)
1206 WINE_CONFIG_EXTRA_DIR(dlls/gdi/win16drv)
1207 WINE_CONFIG_EXTRA_DIR(dlls/kernel/messages)
1208 WINE_CONFIG_EXTRA_DIR(dlls/kernel/tests)
1209 WINE_CONFIG_EXTRA_DIR(dlls/oleaut32/tests)
1210 WINE_CONFIG_EXTRA_DIR(dlls/shlwapi/tests)
1211 WINE_CONFIG_EXTRA_DIR(dlls/user/dde)
1212 WINE_CONFIG_EXTRA_DIR(dlls/user/resources)
1213 WINE_CONFIG_EXTRA_DIR(dlls/user/tests)
1214 WINE_CONFIG_EXTRA_DIR(dlls/wineps/data)
1215 WINE_CONFIG_EXTRA_DIR(dlls/wininet/tests)
1216 WINE_CONFIG_EXTRA_DIR(dlls/winsock/tests)
1217 WINE_CONFIG_EXTRA_DIR(files)
1218 WINE_CONFIG_EXTRA_DIR(graphics)
1219 WINE_CONFIG_EXTRA_DIR(graphics/x11drv)
1220 WINE_CONFIG_EXTRA_DIR(if1632)
1221 WINE_CONFIG_EXTRA_DIR(include/wine)
1222 WINE_CONFIG_EXTRA_DIR(loader)
1223 WINE_CONFIG_EXTRA_DIR(loader/ne)
1224 WINE_CONFIG_EXTRA_DIR(memory)
1225 WINE_CONFIG_EXTRA_DIR(misc)
1226 WINE_CONFIG_EXTRA_DIR(msdos)
1227 WINE_CONFIG_EXTRA_DIR(objects)
1228 WINE_CONFIG_EXTRA_DIR(programs/regapi/tests)
1229 WINE_CONFIG_EXTRA_DIR(programs/regedit/tests)
1230 WINE_CONFIG_EXTRA_DIR(programs/winetest/tests)
1231 WINE_CONFIG_EXTRA_DIR(relay32)
1232 WINE_CONFIG_EXTRA_DIR(scheduler)
1233 WINE_CONFIG_EXTRA_DIR(win32)
1234 WINE_CONFIG_EXTRA_DIR(windows)
1236 MAKE_RULES=Make.rules
1237 AC_SUBST_FILE(MAKE_RULES)
1239 MAKE_DLL_RULES=dlls/Makedll.rules
1240 AC_SUBST_FILE(MAKE_DLL_RULES)
1242 MAKE_PROG_RULES=programs/Makeprog.rules
1243 AC_SUBST_FILE(MAKE_PROG_RULES)
1245 AC_CONFIG_FILES([
1246 Make.rules
1247 dlls/Makedll.rules
1248 programs/Makeprog.rules
1249 Makefile
1250 debugger/Makefile
1251 dlls/Makefile
1252 dlls/advapi32/Makefile
1253 dlls/avicap32/Makefile
1254 dlls/avifil32/Makefile
1255 dlls/comcat/Makefile
1256 dlls/comctl32/Makefile
1257 dlls/commdlg/Makefile
1258 dlls/crtdll/Makefile
1259 dlls/crypt32/Makefile
1260 dlls/d3d8/Makefile
1261 dlls/dciman32/Makefile
1262 dlls/ddraw/Makefile
1263 dlls/devenum/Makefile
1264 dlls/dinput/Makefile
1265 dlls/dinput8/Makefile
1266 dlls/dplay/Makefile
1267 dlls/dplayx/Makefile
1268 dlls/dsound/Makefile
1269 dlls/gdi/Makefile
1270 dlls/glu32/Makefile
1271 dlls/icmp/Makefile
1272 dlls/imagehlp/Makefile
1273 dlls/imm32/Makefile
1274 dlls/kernel/Makefile
1275 dlls/lzexpand/Makefile
1276 dlls/mapi32/Makefile
1277 dlls/mpr/Makefile
1278 dlls/msacm/Makefile
1279 dlls/msacm/imaadp32/Makefile
1280 dlls/msacm/msadp32/Makefile
1281 dlls/msacm/msg711/Makefile
1282 dlls/msacm/winemp3/Makefile
1283 dlls/msdmo/Makefile
1284 dlls/msimg32/Makefile
1285 dlls/msisys/Makefile
1286 dlls/msnet32/Makefile
1287 dlls/msrle32/Makefile
1288 dlls/msvcrt/Makefile
1289 dlls/msvcrt20/Makefile
1290 dlls/msvideo/Makefile
1291 dlls/netapi32/Makefile
1292 dlls/ntdll/Makefile
1293 dlls/odbc32/Makefile
1294 dlls/ole32/Makefile
1295 dlls/oleaut32/Makefile
1296 dlls/olecli/Makefile
1297 dlls/oledlg/Makefile
1298 dlls/olepro32/Makefile
1299 dlls/olesvr/Makefile
1300 dlls/opengl32/Makefile
1301 dlls/psapi/Makefile
1302 dlls/qcap/Makefile
1303 dlls/quartz/Makefile
1304 dlls/rasapi32/Makefile
1305 dlls/richedit/Makefile
1306 dlls/rpcrt4/Makefile
1307 dlls/serialui/Makefile
1308 dlls/setupapi/Makefile
1309 dlls/shdocvw/Makefile
1310 dlls/shell32/Makefile
1311 dlls/shfolder/Makefile
1312 dlls/shlwapi/Makefile
1313 dlls/snmpapi/Makefile
1314 dlls/sti/Makefile
1315 dlls/tapi32/Makefile
1316 dlls/ttydrv/Makefile
1317 dlls/twain/Makefile
1318 dlls/url/Makefile
1319 dlls/urlmon/Makefile
1320 dlls/user/Makefile
1321 dlls/version/Makefile
1322 dlls/win32s/Makefile
1323 dlls/winaspi/Makefile
1324 dlls/winedos/Makefile
1325 dlls/wineps/Makefile
1326 dlls/wininet/Makefile
1327 dlls/winmm/Makefile
1328 dlls/winmm/joystick/Makefile
1329 dlls/winmm/mcianim/Makefile
1330 dlls/winmm/mciavi/Makefile
1331 dlls/winmm/mcicda/Makefile
1332 dlls/winmm/mciseq/Makefile
1333 dlls/winmm/mciwave/Makefile
1334 dlls/winmm/midimap/Makefile
1335 dlls/winmm/wavemap/Makefile
1336 dlls/winmm/winealsa/Makefile
1337 dlls/winmm/winearts/Makefile
1338 dlls/winmm/wineoss/Makefile
1339 dlls/winnls/Makefile
1340 dlls/winsock/Makefile
1341 dlls/winspool/Makefile
1342 dlls/wintrust/Makefile
1343 dlls/wow32/Makefile
1344 dlls/wsock32/Makefile
1345 dlls/x11drv/Makefile
1346 documentation/Makefile
1347 include/Makefile
1348 library/Makefile
1349 miscemu/Makefile
1350 ole/Makefile
1351 programs/Makefile
1352 programs/avitools/Makefile
1353 programs/clock/Makefile
1354 programs/cmdlgtst/Makefile
1355 programs/control/Makefile
1356 programs/expand/Makefile
1357 programs/notepad/Makefile
1358 programs/osversioncheck/Makefile
1359 programs/progman/Makefile
1360 programs/regapi/Makefile
1361 programs/regedit/Makefile
1362 programs/regsvr32/Makefile
1363 programs/regtest/Makefile
1364 programs/uninstaller/Makefile
1365 programs/view/Makefile
1366 programs/wcmd/Makefile
1367 programs/wineconsole/Makefile
1368 programs/winefile/Makefile
1369 programs/winemine/Makefile
1370 programs/winepath/Makefile
1371 programs/winetest/Makefile
1372 programs/winhelp/Makefile
1373 programs/winver/Makefile
1374 server/Makefile
1375 tools/Makefile
1376 tools/winapi/Makefile
1377 tools/winebuild/Makefile
1378 tools/winedump/Makefile
1379 tools/wmc/Makefile
1380 tools/wrc/Makefile
1381 tsx11/Makefile
1382 unicode/Makefile])
1384 AC_OUTPUT
1386 if test "$have_x" = "no"
1387 then
1388   echo
1389   echo "*** Warning: X development files not found. Wine will be built without"
1390   echo "*** X support, which currently does not work, and would probably not be"
1391   echo "*** what you want anyway. You will need to install devel packages of"
1392   echo "*** Xlib/Xfree86 at the very least."
1395 if test "$ac_cv_lib_ncurses_resizeterm" = "no" -a "$ac_cv_lib_ncurses_waddch" = "yes"
1396 then
1397   echo
1398   echo "*** Warning: resizeterm not found in ncurses. Wine will be built without"
1399   echo "*** terminal resize support. Consider upgrading ncurses."
1402 if test "$wine_cv_libc_reentrant" = "no"
1403 then
1404   echo
1405   echo "*** Warning: non-reentrant libc detected. Wine will be built without"
1406   echo "*** threading support. Consider upgrading libc to a more recent"
1407   echo "*** reentrant version of libc."
1410 if test "$have_x" = "yes" -a "$wine_cv_x_reentrant" != "yes"
1411 then
1412   echo
1413   echo "*** Warning: non-reentrant X11 library detected. Multi-threaded"
1414   echo "*** applications won't work properly. You should upgrade your X11 library."
1417 if test "$wine_cv_opengl_version_OK" = "no"
1418 then
1419   echo
1420   echo "*** Warning: old Mesa headers detected. Wine will be built without Direct3D"
1421   echo "*** support. Consider upgrading your Mesa libraries (http://www.mesa3d.org/)."
1424 if test "$wine_cv_opengl_version_threadsafe" = "yes" -a "x$enable_opengl" = "x"
1425 then
1426   echo
1427   echo "*** Warning: the OpenGL version you have installed relies on libpthread for"
1428   echo "*** thread-safety. To prevent crashes, OpenGL support has been removed."
1429   echo "*** A fix for glibc 2.1.3 that seems to work is included in this version of Wine,"
1430   echo "*** start configure with '--enable-opengl' to force OpenGL support."
1433 if test "$wine_cv_opengl_version_threadsafe" = "yes" -a "x$enable_opengl" = "xyes"
1434 then
1435   echo
1436   echo "*** Warning: you explicitly linked in a thread-safe OpenGL version. If you"
1437   echo "*** experience unusual crashes on DirectDraw games, try first to disable OpenGL"
1438   echo "*** support before reporting bugs."
1441 if test "$wine_cv_warn_cups_h" = "yes"
1442 then
1443   echo
1444   echo "*** Note: You have cups runtime libraries, but no development"
1445   echo "*** libraries. Install the cups-devel package or whichever package"
1446   echo "*** contains cups.h to enable CUPS support in Wine."
1449 if test "$wine_cv_msg_freetype" = "yes"
1450 then
1451   echo
1452   echo "*** Note: Your system appears to have the FreeType 2 runtime libraries"
1453   echo "*** installed, but 'freetype-config' is not in your PATH. Install the"
1454   echo "*** freetype-devel package (or its equivalent on your distribution) to"
1455   echo "*** enable Wine to use TrueType fonts."
1458 echo
1459 echo "Configure finished.  Do 'make depend && make' to compile Wine."
1460 echo
1462 dnl Local Variables:
1463 dnl comment-start: "dnl "
1464 dnl comment-end: ""
1465 dnl comment-start-skip: "\\bdnl\\b\\s *"
1466 dnl compile-command: "autoconf"
1467 dnl End: