Add -gstabs+ option if supported (based on a patch by Marcus
[wine/multimedia.git] / configure.ac
blobc90532890e51605a16de21b9ae4d7edc70ce48ad
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 AC_ARG_ENABLE(win16, AC_HELP_STRING([--disable-win16],[do not include Win16 support]))
16 AC_ARG_ENABLE(debug, AC_HELP_STRING([--disable-debug],[compile out all debugging messages]))
17 AC_ARG_ENABLE(trace, AC_HELP_STRING([--disable-trace],[compile out TRACE messages]))
19 AC_ARG_WITH(opengl,    AC_HELP_STRING([--without-opengl],[do not use OpenGL]))
20 AC_ARG_WITH(curses,    AC_HELP_STRING([--without-curses],[do not use curses]))
21 AC_ARG_WITH(wine-tools,AC_HELP_STRING([--with-wine-tools=<dir>],[use Wine tools from directory <dir>]))
23 AC_SUBST(OPTIONS)
24 AC_SUBST(WIN16_FILES,"\$(WIN16_FILES)")
25 AC_SUBST(WIN16_INSTALL,"\$(WIN16_INSTALL)")
26 if test "x$enable_win16" = "xno"
27 then
28   WIN16_FILES=""
29   WIN16_INSTALL=""
31 if test "x$enable_debug" = "xno"
32 then
33     AC_DEFINE(NO_DEBUG_MSGS,1,[Define to disable all debug messages.])
35 if test "x$enable_trace" = "xno" -o "x$enable_debug" = "xno"
36 then
37     AC_DEFINE(NO_TRACE_MSGS,1,[Define to disable trace messages.])
40 dnl **** Check for some programs ****
42 AC_CANONICAL_HOST
43 AC_PROG_MAKE_SET
44 AC_PROG_CC
45 AC_PROG_CPP
47 AC_CACHE_CHECK([for the directory containing the Wine tools], wine_cv_toolsdir,
48   [if test -z "$with_wine_tools"; then
49      if test "$cross_compiling" = "yes"; then
50        AC_MSG_ERROR([you must use the --with-wine-tools option when cross-compiling.])
51      else
52        wine_cv_toolsdir="\$(TOPOBJDIR)"
53      fi
54    elif test -d "$with_wine_tools/tools/winebuild"; then
55      case $with_wine_tools in
56        /*) wine_cv_toolsdir="$with_wine_tools" ;;
57        *)  wine_cv_toolsdir="\$(TOPOBJDIR)/$with_wine_tools" ;;
58      esac
59    else
60      AC_MSG_ERROR([could not find Wine tools in $with_wine_tools.])
61    fi])
62 AC_SUBST(TOOLSDIR,$wine_cv_toolsdir)
64 AC_PATH_XTRA
65 AC_PROG_YACC
66 AC_PROG_LEX
68 dnl **** Just additional warning checks, since AC_PROG just sets 'yacc' even
69 dnl **** without one present.
70 AC_CHECK_PROGS(XYACC,$YACC bison yacc,none)
71 if test "$XYACC" = "none"
72 then
73   AC_MSG_ERROR([no suitable bison/yacc found. Please install the 'bison' package.])
75 AC_CHECK_PROGS(XLEX,$LEX flex lex,none)
76 if test "$XLEX" = "none"
77 then
78   AC_MSG_ERROR([no suitable lex found. Please install the 'flex' package.])
81 AC_CHECK_TOOL(LD,ld,ld)
82 AC_CHECK_TOOL(AR,ar,ar)
83 AC_PROG_RANLIB
84 AC_CHECK_TOOL(STRIP,strip,strip)
85 AC_CHECK_TOOL(WINDRES,windres,false)
86 AC_PROG_LN_S
87 WINE_PROG_LN
88 AC_CHECK_PROG(C2MAN,c2man,c2man,\$(TOPSRCDIR)/tools/c2man.pl)
89 AC_PATH_PROG(LDCONFIG, ldconfig, true, [/sbin /usr/sbin $PATH])
90 AC_PROG_INSTALL
91 dnl Prepend src dir to install path dir if it's a relative path
92 case "$INSTALL" in
93   [[\\/$]]* | ?:[[\\/]]* ) ;;
94   *)  INSTALL="\\\$(TOPSRCDIR)/$INSTALL" ;;
95 esac
97 dnl Check for lint
98 AC_CHECK_PROGS(LINT, lclint lint)
99 if test "$LINT" = "lint"
100 then
101   LINTFLAGS="$LINTFLAGS -errchk=%all,no%longptr64 -errhdr=%user -Ncheck=macro -Nlevel=4"
102   dnl LINTFLAGS='-D_SIZE_T "-Dsize_t=unsigned long" -errchk=longptr64'
104 AC_SUBST(LINT)
105 AC_SUBST(LINTFLAGS)
107 dnl Check for db2html
108 AC_CHECK_PROGS(DB2HTML, docbook2html db2html, false)
109 AC_SUBST(DB2HTML)
111 dnl Check for db2pdf
112 AC_CHECK_PROGS(DB2PDF, docbook2pdf db2pdf, false)
113 AC_SUBST(DB2PDF)
115 dnl Check for db2ps
116 AC_CHECK_PROGS(DB2PS, docbook2ps db2ps, false)
117 AC_SUBST(DB2PS)
119 dnl **** Check for some libraries ****
121 dnl Check for -lm
122 AC_CHECK_LIB(m,sqrt)
123 dnl Check for -li386 for NetBSD and OpenBSD
124 AC_CHECK_LIB(i386,i386_set_ldt)
125 dnl Check for -lossaudio for NetBSD
126 AC_CHECK_LIB(ossaudio,_oss_ioctl)
127 dnl Check for -lw for Solaris
128 AC_CHECK_FUNCS(iswalnum,,AC_CHECK_LIB(w,iswalnum))
129 dnl Check for -lnsl for Solaris
130 AC_CHECK_FUNCS(gethostbyname,,AC_CHECK_LIB(nsl,gethostbyname))
131 dnl Check for -lsocket for Solaris
132 AC_CHECK_FUNCS(connect,,AC_CHECK_LIB(socket,connect))
133 dnl Check for -lresolv for Solaris
134 AC_CHECK_FUNCS(inet_aton,,AC_CHECK_LIB(resolv,inet_aton))
135 dnl Check for -lxpg4 for FreeBSD
136 AC_CHECK_LIB(xpg4,_xpg4_setrunelocale)
137 dnl Check for -lmmap for OS/2
138 AC_CHECK_LIB(mmap,mmap)
140 JPEGLIB=""
141 AC_SUBST(JPEGLIB)
142 AC_CHECK_HEADERS(jpeglib.h,
143     AC_CHECK_LIB(jpeg,jpeg_start_decompress,
144         AC_DEFINE(HAVE_LIBJPEG,1,[Define if you have libjpeg including devel headers])
145         JPEGLIB="-ljpeg"
146     )
150 AC_SUBST(XLIB)
151 AC_SUBST(XFILES)
152 XFILES=""
153 AC_SUBST(OPENGLFILES)
154 OPENGLFILES=""
155 AC_SUBST(GLU32FILES)
156 GLU32FILES=""
157 AC_SUBST(OPENGL_LIBS)
158 OPENGL_LIBS=""
159 if test "$have_x" = "yes"
160 then
161     XLIB="-lXext -lX11"
162     ac_save_CPPFLAGS="$CPPFLAGS"
163     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
165     dnl *** All of the following tests require X11/Xlib.h
166     AC_CHECK_HEADERS(X11/Xlib.h,
167       [
168         dnl *** Check for X keyboard extension
169         AC_CHECK_HEADERS(X11/XKBlib.h,
170             [ dnl *** If X11/XKBlib.h exists...
171               AC_CHECK_LIB(X11, XkbQueryExtension,
172               AC_DEFINE(HAVE_XKB, 1, [Define if you have the XKB extension]),,
173               $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
174             ],
175             AC_MSG_WARN([[Xkb extension not found, Wine will be built without it]]),
176             [#include <X11/Xlib.h>])
178         dnl *** Check for X Shm extension
179         AC_CHECK_HEADERS(X11/extensions/XShm.h,
180             [ dnl *** If X11/extensions/XShm.h exists...
181               AC_CHECK_LIB(Xext, XShmQueryExtension,
182               AC_DEFINE(HAVE_LIBXXSHM, 1, [Define if you have the X Shm extension]),,
183               $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
184             ],
185             AC_MSG_WARN([[XShm extension not found, Wine will be built without it]]),
186             [#include <X11/Xlib.h>])
188         dnl *** Check for Xutil
189         AC_CHECK_HEADERS(X11/Xutil.h,,,
190             [#include <X11/Xlib.h>])
192         dnl *** Check for X shape extension
193         AC_CHECK_HEADERS(X11/extensions/shape.h,
194             [ dnl *** If X11/extensions/shape.h exists...
195               AC_CHECK_LIB(Xext,XShapeQueryExtension,
196               AC_DEFINE(HAVE_LIBXSHAPE, 1, [Define if you have the X Shape extension]),,
197               $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
198             ],
199             AC_MSG_WARN([[XShape extension not found, Wine will be built without it]]),
200             [#include <X11/Xlib.h>
201              #ifdef HAVE_X11_XUTIL_H
202              # include <X11/Xutil.h>
203              #endif])
205         dnl *** Check for XFree86 DGA / DGA 2.0 extension
206         AC_CHECK_HEADERS(X11/extensions/xf86dga.h,
207             [ dnl *** If X11/extensions/xf86dga.h exists, check
208               dnl *** for XDGAQueryExtension()...
209               AC_CHECK_LIB(Xxf86dga, XDGAQueryExtension,
210                 [ dnl *** If found...
211                   AC_DEFINE(HAVE_LIBXXF86DGA2, 1,
212                             [Define if you have the Xxf86dga library version 2])
213                   X_PRE_LIBS="$X_PRE_LIBS -lXxf86dga"
214                ],
215                 [ dnl *** If not found, look for XF86DGAQueryExtension()
216                   dnl *** instead (DGA 2.0 not found)...
217                   AC_CHECK_LIB(Xxf86dga, XF86DGAQueryExtension,
218                     [ AC_DEFINE(HAVE_LIBXXF86DGA, 1,
219                                 [Define if you have the Xxf86dga library version 1])
220                       X_PRE_LIBS="$X_PRE_LIBS -lXxf86dga"
221                     ],,
222                     $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
223                   )
224                 ],
225                 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
226               )
227             ],
228             AC_MSG_WARN([[DGA extension not found, Wine will be built without it]]),
229             [#include <X11/Xlib.h>])
231         dnl *** Check for XFree86 VMODE extension
232         AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,
233             [ dnl *** If X11/extensions/xf86vmode.h exists...
234                 AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryExtension,
235                   [ AC_DEFINE(HAVE_LIBXXF86VM, 1, [Define if you have the Xxf86vm library])
236                      X_PRE_LIBS="$X_PRE_LIBS -lXxf86vm"
237                   ],,
238                   $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
239                 )
240             ],
241             AC_MSG_WARN([[XFree86 VMODE extension not found, Wine will be built without it]]),
242             [#include <X11/Xlib.h>])
244         dnl *** Check for XVideo extension supporting XvImages
245         AC_CHECK_HEADERS(X11/extensions/Xvlib.h,
246             [ dnl *** If X11/extensions/Xvlib.h exists...
247                 AC_CHECK_LIB(Xv, XvShmCreateImage,
248                   [ AC_DEFINE(HAVE_XVIDEO, 1, [Define if the X libraries support XVideo])
249                      X_PRE_LIBS="$X_PRE_LIBS -lXv"
250                   ],,
251                   $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
252                 )
253             ],
254             AC_MSG_WARN([[XVideo extension not found, Wine will be built without it]]),
255             [#include <X11/Xlib.h>])
257         dnl *** Check for XRender include file
258         AC_CHECK_HEADERS(X11/extensions/Xrender.h,,,[#include <X11/Xlib.h>])
259       ]
260     ) dnl *** End of X11/Xlib.h check
262     dnl Check for the presence of OpenGL
263     if test "x$with_opengl" != "xno"
264     then
265         if test -f /usr/X11R6/lib/libGL.a -a ! -f /usr/X11R6/lib/libGL.so
266         then
267             AC_MSG_ERROR([/usr/X11R6/lib/libGL.a is present on your system.
268 This prevents linking to OpenGL. Delete the file and restart configure.])
269         fi
271         AC_CHECK_HEADERS(GL/gl.h GL/glx.h)
272         if test "$ac_cv_header_GL_gl_h" = "yes" -a "$ac_cv_header_GL_glx_h" = "yes"
273         then
274             AC_CHECK_HEADERS(GL/glext.h,,,[#include <GL/glx.h>])
275             dnl Check for some problems due to old Mesa versions
276             AC_CACHE_CHECK([for up-to-date OpenGL version], wine_cv_opengl_version_OK,
277               AC_TRY_COMPILE(
278                 [#include <GL/gl.h>],
279                 [GLenum test = GL_UNSIGNED_SHORT_5_6_5;],
280                 [wine_cv_opengl_version_OK="yes"],
281                 [wine_cv_opengl_version_OK="no"]
282               )
283             )
285             if test "$wine_cv_opengl_version_OK" = "yes"
286             then
287                 dnl Check for the presence of the library
288                 AC_CHECK_LIB(GL,glXCreateContext,
289                              OPENGL_LIBS="-lGL"
290                              ,,
291                              $X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS)
293                 if test "$ac_cv_lib_GL_glXCreateContext" = "yes"
294                 then
295                         OPENGLFILES='$(OPENGLFILES)'
296                         AC_DEFINE(HAVE_OPENGL, 1, [Define if OpenGL is present on the system])
298                         AC_CHECK_LIB(GL,glXGetProcAddressARB,
299                                      AC_DEFINE(HAVE_GLX_GETPROCADDRESS, 1,
300                                                [Define if the OpenGL library supports the glXGetProcAddressARB call]),,
301                                      $X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS)
303                         if test "$ac_cv_lib_GL_glXGetProcAddressARB" = "yes"
304                         then
305                                AC_CACHE_CHECK([for OpenGL extension functions prototypes], wine_cv_extension_prototypes,
306                                   [AC_TRY_COMPILE([#include <GL/gl.h>
307                                                   #ifdef HAVE_GL_GLEXT_H
308                                                   # include <GL/glext.h>
309                                                   #endif
310                                                   ],
311                                                  [PFNGLCOLORTABLEEXTPROC test_proc;],
312                                                  [wine_cv_extension_prototypes="yes"],
313                                                  [wine_cv_extension_prototypes="no"]
314                                   )]
315                                 )
316                                 if test "$wine_cv_extension_prototypes" = "yes"
317                                 then
318                                     AC_DEFINE(HAVE_GLEXT_PROTOTYPES, 1,
319                                               [Define if the OpenGL headers define extension typedefs])
320                                 fi
321                         fi
323                 fi
324                 dnl Check for GLU32 library.
325                 AC_CHECK_LIB(GLU,gluLookAt,
326                              [OPENGL_LIBS="$OPENGL_LIBS -lGLU"
327                              GLU32FILES='$(GLU32FILES)']
328                              ,,
329                              $OPENGL_LIBS $X_LIBS $X_PRE_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS
330                 )
331              fi
332          fi
333     fi
335     dnl **** Check for NAS ****
336     AC_SUBST(NASLIBS,"")
337     AC_CHECK_HEADERS(audio/audiolib.h,
338          [AC_CHECK_HEADERS(audio/soundlib.h,,,[#include <audio/audiolib.h>])
339           AC_CHECK_LIB(audio,AuCreateFlow,
340                        [AC_DEFINE(HAVE_NAS,1,[Define if you have NAS including devel headers])
341                         NASLIBS="-laudio -lXt $X_LIBS -lXext -lX11 $X_EXTRA_LIBS"],,
342                        [-lXt $X_LIBS -lXext -lX11 $X_EXTRA_LIBS])])
344     CPPFLAGS="$ac_save_CPPFLAGS"
345     XFILES='$(XFILES)'
346 else
347     XLIB=""
348     X_CFLAGS=""
349     X_LIBS=""
352 dnl **** Check which curses lib to use ***
353 CURSESLIBS=""
354 if test "x$with_curses" != "xno"
355 then
356     AC_CHECK_HEADERS(ncurses.h,
357         [AC_CHECK_LIB(ncurses,waddch,
358             [AC_DEFINE(HAVE_LIBNCURSES, 1, [Define if you have the ncurses library (-lncurses)])
359              CURSESLIBS="-lncurses"],
360              [AC_CHECK_HEADERS(curses.h,
361                  [AC_CHECK_LIB(curses,waddch,
362                      [AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have the curses library (-lcurses)])
363                       CURSESLIBS="-lcurses"])])])])
364     saved_libs="$LIBS"
365     LIBS="$CURSESLIBS $LIBS"
366     AC_CHECK_FUNCS(getbkgd resizeterm)
367     LIBS="$saved_libs"
369 AC_SUBST(CURSESLIBS)
371 dnl **** Check for SANE ****
372 AC_CHECK_PROG(sane_devel,sane-config,sane-config,no)
373 if test "$sane_devel" = "no"
374 then
375     SANELIBS=""
376     SANEINCL=""
377 else
378     SANELIBS="`$sane_devel --libs`"
379     SANEINCL="`$sane_devel --cflags`"
380     ac_save_CPPFLAGS="$CPPFLAGS"
381     ac_save_LIBS="$LIBS"
382     CPPFLAGS="$CPPFLAGS $SANEINCL"
383     LIBS="$LIBS $SANELIBS"
384     AC_CHECK_HEADER(sane/sane.h,
385                     [AC_CHECK_LIB(sane,sane_open,
386                                   [AC_DEFINE(HAVE_SANE, 1, [Define if we have SANE development environment])],
387                                   [SANELIBS=""
388                                   SANEINCL=""])],
389                     [SANELIBS=""
390                     SANEINCL=""])
391     LIBS="$ac_save_LIBS"
392     CPPFLAGS="$ac_save_CPPFLAGS"
394 AC_SUBST(SANELIBS)
395 AC_SUBST(SANEINCL)
397 dnl **** Check for FreeType 2 ****
398 AC_CHECK_LIB(freetype,FT_Init_FreeType,ft_lib=yes,ft_lib=no,$X_LIBS)
399 if test "$ft_lib" = "no"
400 then
401     FREETYPEINCL=""
402     wine_cv_msg_freetype=no
403 else
404     AC_CHECK_PROG(ft_devel,freetype-config,freetype-config,no)
405     if test "$ft_devel" = "no"
406     then
407         AC_CHECK_PROG(ft_devel2,freetype2-config,freetype2-config,no)
408         if test "$ft_devel2" = "freetype2-config"
409         then
410                 ft_devel=$ft_devel2
411         fi
412     fi
413     if test "$ft_devel" = "no"
414     then
415         FREETYPEINCL=""
416         wine_cv_msg_freetype=yes
417     else
418         FREETYPEINCL=`$ft_devel --cflags`
419         ac_save_CPPFLAGS="$CPPFLAGS"
420         CPPFLAGS="$FREETYPEINCL $CPPFLAGS"
421         AC_CHECK_HEADERS(freetype/freetype.h \
422                          freetype/ftglyph.h \
423                          freetype/tttables.h \
424                          freetype/ftnames.h \
425                          freetype/ftsnames.h \
426                          freetype/ttnameid.h \
427                          freetype/ftoutln.h \
428                          freetype/internal/sfnt.h)
429         AC_TRY_CPP([#include <ft2build.h>
430                     #include <freetype/fttrigon.h>],
431                     [AC_DEFINE(HAVE_FREETYPE_FTTRIGON_H, 1,
432           [Define if you have the <freetype/fttrigon.h> header file.])
433                     wine_cv_fttrigon=yes],
434                     wine_cv_fttrigon=no)
435         CPPFLAGS="$ac_save_CPPFLAGS"
436         dnl Check that we have at least freetype/freetype.h
437         if test "$ac_cv_header_freetype_freetype_h" = "yes" -a "$wine_cv_fttrigon" = "yes"
438         then
439             AC_DEFINE(HAVE_FREETYPE, 1, [Define if FreeType 2 is installed])
440             wine_cv_msg_freetype=no
441         else
442             FREETYPEINCL=""
443             wine_cv_msg_freetype=yes
444         fi
445     fi
447 AC_SUBST(FREETYPEINCL)
449 dnl **** Check for parport (currently Linux only) ****
450 AC_CACHE_CHECK([for parport header/ppdev.h], ac_cv_c_ppdev,
451  AC_TRY_COMPILE(
452    [#include <linux/ppdev.h>],
453    [ioctl (1,PPCLAIM,0)],
454    [ac_cv_c_ppdev="yes"],
455    [ac_cv_c_ppdev="no"])
457 if test "$ac_cv_c_ppdev" = "yes"
458 then
459     AC_DEFINE(HAVE_PPDEV, 1, [Define if we can use ppdev.h for parallel port access])
462 dnl **** Check for va_copy ****
463 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
464  AC_TRY_LINK(
465    [#include <stdarg.h>],
466    [va_list ap1, ap2;
467     va_copy(ap1,ap2);
468    ],
469    [ac_cv_c_va_copy="yes"],
470    [ac_cv_c_va_copy="no"])
472 if test "$ac_cv_c_va_copy" = "yes"
473 then
474     AC_DEFINE(HAVE_VA_COPY, 1, [Define if we have va_copy])
476 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
477  AC_TRY_LINK(
478    [#include <stdarg.h>],
479    [va_list ap1, ap2;
480     __va_copy(ap1,ap2);
481    ],
482    [ac_cv_c___va_copy="yes"],
483    [ac_cv_c___va_copy="no"])
485 if test "$ac_cv_c___va_copy" = "yes"
486 then
487     AC_DEFINE(HAVE___VA_COPY, 1, [Define if we have __va_copy])
490 dnl **** Check for IPX (currently Linux only) ****
491 AC_CACHE_CHECK([for GNU style IPX support], ac_cv_c_ipx_gnu,
492  AC_TRY_COMPILE(
493    [#include <sys/types.h>
494     #ifdef HAVE_SYS_SOCKET_H
495     # include <sys/socket.h>
496     #endif
497     #include <netipx/ipx.h>],
498    [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
499    [ac_cv_c_ipx_gnu="yes"],
500    [ac_cv_c_ipx_gnu="no"])
502 if test "$ac_cv_c_ipx_gnu" = "yes"
503 then
504     AC_DEFINE(HAVE_IPX_GNU, 1, [Define if IPX should use netipx/ipx.h from libc])
507 if test "$ac_cv_c_ipx_gnu" = "no"
508 then
509  AC_CACHE_CHECK([for linux style IPX support], ac_cv_c_ipx_linux,
510   AC_TRY_COMPILE(
511     [#include <sys/types.h>
512      #ifdef HAVE_SYS_SOCKET_H
513      # include <sys/socket.h>
514      #endif
515      #include <asm/types.h>
516      #include <linux/ipx.h>],
517     [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
518     [ac_cv_c_ipx_linux="yes"],
519     [ac_cv_c_ipx_linux="no"])
520   )
521   if test "$ac_cv_c_ipx_linux" = "yes"
522   then
523       AC_DEFINE(HAVE_IPX_LINUX, 1, [Define if IPX includes are taken from Linux kernel])
524   fi
527 dnl **** Check for Open Sound System ****
528 AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h soundcard.h, break)
530 AC_CACHE_CHECK([for Open Sound System],
531         ac_cv_c_opensoundsystem,
532         AC_TRY_COMPILE([
533         #if defined(HAVE_SYS_SOUNDCARD_H)
534                 #include <sys/soundcard.h>
535         #elif defined(HAVE_MACHINE_SOUNDCARD_H)
536                 #include <machine/soundcard.h>
537         #elif defined(HAVE_SOUNDCARD_H)
538                 #include <soundcard.h>
539         #endif
540         ],[
542 /* check for one of the Open Sound System specific SNDCTL_ defines */
543 #if !defined(SNDCTL_DSP_STEREO)
544 #error No open sound system
545 #endif
546 ],ac_cv_c_opensoundsystem="yes",ac_cv_c_opensoundsystem="no"))
548 if test "$ac_cv_c_opensoundsystem" = "yes"
549 then
550     AC_DEFINE(HAVE_OSS, 1, [Define if you have the Open Sound system])
553 AC_CACHE_CHECK([for Open Sound System/MIDI interface],
554         ac_cv_c_opensoundsystem_midi,
555         AC_TRY_COMPILE([
556         #if defined(HAVE_SYS_SOUNDCARD_H)
557                 #include <sys/soundcard.h>
558         #elif defined(HAVE_MACHINE_SOUNDCARD_H)
559                 #include <machine/soundcard.h>
560         #elif defined(HAVE_SOUNDCARD_H)
561                 #include <soundcard.h>
562         #endif
563         ],[
565 /* check for one of the Open Sound System specific SNDCTL_SEQ defines */
566 #if !defined(SNDCTL_SEQ_SYNC)
567 #error No open sound system MIDI interface
568 #endif
569 ],ac_cv_c_opensoundsystem_midi="yes",ac_cv_c_opensoundsystem_midi="no"))
571 if test "$ac_cv_c_opensoundsystem_midi" = "yes"
572 then
573     AC_DEFINE(HAVE_OSS_MIDI, 1, [Define if you have the Open Sound system (MIDI interface)])
576 dnl **** Check for aRts Sound Server ****
577 AC_PATH_PROG(ARTSCCONFIG, artsc-config)
578 AC_CACHE_CHECK([for aRts Sound server],
579         ac_cv_c_artsserver,
580         if test x$ARTSCCONFIG = x -o x$ARTSCCONFIG = x'"$ARTSCCONFIG"';
581         then
582             ac_cv_c_artsserver=no
583         else
584             ARTSC_CFLAGS=`$ARTSCCONFIG --cflags`
585             ARTSC_LIBS=`$ARTSCCONFIG --libs`
586             ac_cv_c_artsserver=no
587             save_CFLAGS="$CFLAGS"
588             CFLAGS="$CFLAGS $ARTSC_CFLAGS"
589             AC_TRY_COMPILE([
590              #include <artsc.h>
591             ],[
592              arts_stream_t stream;
593             ],[
594             ac_cv_c_artsserver=yes
595             ])
596             CFLAGS="$save_CFLAGS"
597         fi)
599 if test "$ac_cv_c_artsserver" = "yes"
600 then
601     AC_SUBST(ARTSLIBS, $ARTSC_LIBS)
602     AC_SUBST(ARTSINCL, $ARTSC_CFLAGS)
604     AC_DEFINE(HAVE_ARTS, 1, [Define if you have ARTS sound server])
607 dnl **** Check for ALSA ****
608 AC_SUBST(ALSALIBS,"")
609 AC_CHECK_HEADERS(alsa/asoundlib.h sys/asoundlib.h, break)
610 if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes"
611 then
612     AC_CHECK_LIB(asound,snd_pcm_open,
613         AC_DEFINE(HAVE_ALSA,1,[Define if you have ALSA including devel headers])
614         ALSALIBS="-lasound")
617 dnl **** Check for libaudioio (which can be used to get solaris audio support) ****
619 AC_SUBST(AUDIOIOLIBS,"")
620 AC_CHECK_HEADERS(libaudioio.h,
621     [AC_CHECK_LIB(audioio,AudioIOGetVersion,
622                   [AUDIOIOLIBS="-laudioio"
623                    AC_DEFINE(HAVE_LIBAUDIOIO, 1, [Define if you have libaudioIO])])])
625 dnl **** Check for broken glibc mmap64 ****
627 AC_CACHE_CHECK( [whether mmap64 works defined as mmap], ac_cv_mmap64_works,
628         AC_TRY_RUN([
629                 #define _FILE_OFFSET_BITS 64
630                 #include <stdio.h>
631                 #include <unistd.h>
632                 #include <fcntl.h>
633                 #include <sys/mman.h>
634                 #include <errno.h>
636                 int main(int argc,char **argv) {
637                         int fd = open("conftest.map",O_CREAT|O_RDWR,0600);
638                         if (fd == -1) exit(1);
640                         unlink("conftest.map");
642                         write(fd,"test",4);
644                         if ((-1 == mmap(0,4,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0)) &&
645                             (errno == EINVAL)
646                         ) {
647                                 exit(1);
648                         }
649                         close(fd);
650                         fprintf(stderr,"success!\n");
651                         exit(0);
652                 }
654         ],
655     ac_cv_mmap64_works="yes",
656     ac_cv_mmap64_works="no",
657     ac_cv_mmap64_works="no") )
659 if test "$ac_cv_mmap64_works" = "yes"
660 then
661     AC_DEFINE(_FILE_OFFSET_BITS, 64, [Set this to 64 to enable 64-bit file support on Linux])
664 dnl **** Check for gcc strength-reduce bug ****
666 if test "x${GCC}" = "xyes"
667 then
668   CFLAGS="$CFLAGS -Wall"
669   AC_CACHE_CHECK( [for gcc strength-reduce bug], ac_cv_c_gcc_strength_bug,
670                   AC_TRY_RUN([
671 int     L[[4]] = {0,1,2,3};
672 int main(void) {
673   static int Array[[3]];
674   unsigned int B = 3;
675   int i;
676   for(i=0; i<B; i++) Array[[i]] = i - 3;
677   for(i=0; i<4 - 1; i++) L[[i]] = L[[i + 1]];
678   L[[i]] = 4;
680   exit( Array[[1]] != -2 || L[[2]] != 3);
682     ac_cv_c_gcc_strength_bug="no",
683     ac_cv_c_gcc_strength_bug="yes",
684     ac_cv_c_gcc_strength_bug="yes") )
685   if test "$ac_cv_c_gcc_strength_bug" = "yes"
686   then
687     CFLAGS="$CFLAGS -fno-strength-reduce"
688   fi
690   dnl Check for -mpreferred-stack-boundary
691   AC_CACHE_CHECK([for gcc -mpreferred-stack-boundary=2 support], ac_cv_c_gcc_stack_boundary,
692       [WINE_TRY_CFLAGS([-mpreferred-stack-boundary=2],
693                       ac_cv_c_gcc_stack_boundary="yes",ac_cv_c_gcc_stack_boundary="no")])
694   if test "$ac_cv_c_gcc_stack_boundary" = "yes"
695   then
696     CFLAGS="$CFLAGS -mpreferred-stack-boundary=2"
697   fi
699   dnl Check for -gstabs+ option
700   AC_CACHE_CHECK([for gcc -gstabs+ support], ac_cv_c_gcc_gstabs,
701       [WINE_TRY_CFLAGS([-gstabs+],ac_cv_c_gcc_gstabs="yes", ac_cv_c_gcc_gstabs="no")])
702   if test "$ac_cv_c_gcc_gstabs" = "yes"
703   then
704     CFLAGS="$CFLAGS -gstabs+"
705   fi
708 dnl **** Check how to define a function in assembly code ****
710 AC_CACHE_CHECK([how to define a function in assembly code], ac_cv_asm_func_def,
711   WINE_TRY_ASM_LINK(
712       ["\t.globl _ac_test\n\t.def _ac_test; .scl 2; .type 32; .endef\n_ac_test:\t.long 0"],,,
713       ac_cv_asm_func_def=".def",
714     [WINE_TRY_ASM_LINK(["\t.globl _ac_test\n\t.type _ac_test,@function\n_ac_test:\t.long 0"],,,
715       ac_cv_asm_func_def=".type @function",
716     [WINE_TRY_ASM_LINK(["\t.globl _ac_test\n\t.type _ac_test,2\n_ac_test:\t.long 0"],,,
717       ac_cv_asm_func_def=".type 2",
718       ac_cv_asm_func_def="unknown")])]))
720 AH_TEMPLATE(__ASM_FUNC,[Define to a macro to generate an assembly function directive])
721 case "$ac_cv_asm_func_def" in
722   ".def")
723      AC_DEFINE([__ASM_FUNC(name)], [".def " __ASM_NAME(name) "; .scl 2; .type 32; .endef"]) ;;
724   ".type @function")
725      AC_DEFINE([__ASM_FUNC(name)], [".type " __ASM_NAME(name) ",@function"]) ;;
726   ".type 2")
727      AC_DEFINE([__ASM_FUNC(name)], [".type " __ASM_NAME(name) ",2"]) ;;
728   *)
729      AC_DEFINE([__ASM_FUNC(name)], [""]) ;;
730 esac
732 dnl **** Check for underscore on external symbols ****
734 AC_CACHE_CHECK([whether external symbols need an underscore prefix], ac_cv_c_extern_prefix,
735     WINE_TRY_ASM_LINK([".globl _ac_test\n_ac_test:\t.long 0"],
736                       [extern int ac_test;],
737                       [if (ac_test) return 1],
738                       ac_cv_c_extern_prefix="yes",ac_cv_c_extern_prefix="no"))
740 AH_TEMPLATE(__ASM_NAME,[Define to a macro to generate an assembly name from a C symbol])
741 if test "$ac_cv_c_extern_prefix" = "yes"
742 then
743   AC_DEFINE([__ASM_NAME(name)], ["_" name])
744 else
745   AC_DEFINE([__ASM_NAME(name)], [name])
748 dnl **** Check for .string in assembler ****
750 AC_CACHE_CHECK([whether assembler accepts .string], ac_cv_c_asm_string,
751     WINE_TRY_ASM_LINK([".data\n\t.string \"test\"\n\t.text"],,,
752                       ac_cv_c_asm_string="yes",ac_cv_c_asm_string="no"))
753 if test "$ac_cv_c_asm_string" = "yes"
754 then
755   AC_DEFINE(HAVE_ASM_STRING, 1, [Define to use .string instead of .ascii])
758 dnl **** Check for working dll ****
760 AC_SUBST(DLLEXT,"")
761 AC_SUBST(DLLFLAGS,"")
762 AC_SUBST(DLLIBS,"")
763 AC_SUBST(LDDLLFLAGS,"")
764 AC_SUBST(LDSHARED,"")
765 AC_SUBST(LIBEXT,"so")
766 AC_SUBST(IMPLIBEXT,"def")
768 case $host_os in
769   cygwin*|mingw32*)
770     AC_CHECK_TOOL(DLLTOOL,dlltool,false)
771     AC_CHECK_TOOL(DLLWRAP,dllwrap,false)
772     if test "$DLLWRAP" = "false"; then
773       LIBEXT="a"
774     else
775       dnl FIXME - check whether dllwrap works correctly...
776       LIBEXT="dll"
777     fi
778     IMPLIBEXT="a"
779     ;;
780   *)
781     AC_CHECK_HEADERS(dlfcn.h,
782         [AC_CHECK_FUNCS(dlopen,,
783             [AC_CHECK_LIB(dl,dlopen,
784                          [AC_DEFINE(HAVE_DLOPEN,1,[Define if you have dlopen])
785                           DLLIBS="-ldl"],
786                          [LIBEXT="a"])])],
787         [LIBEXT="a"])
789     if test "$LIBEXT" = "so"
790     then
791       DLLFLAGS="-fPIC"
792       DLLEXT=".so"
793       AC_CACHE_CHECK([whether we can build a GNU style ELF dll], ac_cv_c_dll_gnuelf,
794           [WINE_TRY_CFLAGS([-fPIC -shared -Wl,-soname,conftest.so.1.0,-Bsymbolic],
795                            ac_cv_c_dll_gnuelf="yes",ac_cv_c_dll_gnuelf="no")])
796       if test "$ac_cv_c_dll_gnuelf" = "yes"
797       then
798         LDSHARED="\$(CC) -shared \$(SONAME:%=-Wl,-soname,%)"
799         LDDLLFLAGS="-Wl,-Bsymbolic"
800         AC_CACHE_CHECK([whether the linker accepts -z defs], ac_cv_c_dll_zdefs,
801           [WINE_TRY_CFLAGS([-fPIC -shared -Wl,-Bsymbolic,-z,defs],
802                            ac_cv_c_dll_zdefs="yes",ac_cv_c_dll_zdefs="no")])
803         if test "$ac_cv_c_dll_zdefs" = "yes"
804         then
805           LDDLLFLAGS="$LDDLLFLAGS,-z,defs"
806         fi
807       else
808         AC_CACHE_CHECK(whether we can build a UnixWare (Solaris) dll, ac_cv_c_dll_unixware,
809             [WINE_TRY_CFLAGS([-fPIC -Wl,-G,-h,conftest.so.1.0,-B,symbolic],
810                              ac_cv_c_dll_unixware="yes",ac_cv_c_dll_unixware="no")])
811         if test "$ac_cv_c_dll_unixware" = "yes"
812         then
813           LDSHARED="\$(CC) -Wl,-G \$(SONAME:%=-Wl,-h,%)"
814           LDDLLFLAGS="-Wl,-B,symbolic"
815         fi
816       fi
817     fi
819     dnl Check for cross compiler to build test programs
820     AC_SUBST(CROSSTEST,"")
821     if test "$cross_compiling" = "no"
822     then
823       AC_CHECK_PROGS(CROSSCC,i586-mingw32msvc-gcc,false)
824       AC_CHECK_PROGS(DLLTOOL,i586-mingw32msvc-dlltool,false)
825       if test "$CROSSCC" != "false"; then CROSSTEST="\$(CROSSTEST)"; fi
826     fi
827     ;;
828 esac
830 if test "$LIBEXT" = "a"; then
831   AC_MSG_ERROR(
832 [could not find a way to build shared libraries.
833 It is currently not possible to build Wine without shared library
834 (.so) support to allow transparent switch between .so and .dll files.
835 If you are using Linux, you will need a newer binutils.]
839 case $build_os in
840   cygwin*|mingw32*)
841     AC_SUBST(LDPATH,"PATH=\"\$(TOOLSDIR)/library:\$(TOOLSDIR)/unicode:\$\$PATH\"") ;;
842   *)
843     AC_SUBST(LDPATH,"LD_LIBRARY_PATH=\"\$(TOOLSDIR)/library:\$(TOOLSDIR)/unicode:\$\$LD_LIBRARY_PATH\"") ;;
844 esac
846 dnl Mingw needs explicit msvcrt for linking libwine
847 AC_SUBST(CRTLIBS,"")
848 case $host_os in
849   mingw32*)
850     CRTLIBS="-lmsvcrt" ;;
851 esac
853 dnl **** Get the soname for libraries that we load dynamically ****
855 if test "$LIBEXT" = "so"
856 then
857   WINE_GET_SONAME(X11,XCreateWindow,[$X_LIBS $X_EXTRA_LIBS])
858   WINE_GET_SONAME(Xext,XextCreateExtension,[$X_LIBS -lX11 $X_EXTRA_LIBS])
859   WINE_GET_SONAME(Xrender,XRenderQueryExtension,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
860   WINE_GET_SONAME(freetype,FT_Init_FreeType,[$X_LIBS])
861   WINE_GET_SONAME(GL,glXQueryExtension,[$X_LIBS $X_EXTRA_LIBS])
862   WINE_GET_SONAME(cups,cupsGetDefault)
863   WINE_GET_SONAME(jack,jack_client_new)
867 dnl **** Check for reentrant libc ****
869 wine_cv_libc_reentrant=no
870 dnl Linux style errno location
871 WINE_CHECK_ERRNO([__errno_location], [wine_cv_libc_reentrant=__errno_location],
872   dnl FreeBSD style errno location
873   WINE_CHECK_ERRNO([__error], [wine_cv_libc_reentrant=__error],
874     dnl Solaris style errno location
875     WINE_CHECK_ERRNO([___errno], [wine_cv_libc_reentrant=___errno],
876       dnl UnixWare style errno location
877       WINE_CHECK_ERRNO([__thr_errno], [wine_cv_libc_reentrant=__thr_errno],
878         dnl NetBSD style errno location
879         WINE_CHECK_ERRNO([__errno], [wine_cv_libc_reentrant=__errno])
880 ))))
882 if test "$wine_cv_libc_reentrant" != "no"
883 then
884   AC_DEFINE_UNQUOTED(ERRNO_LOCATION,$wine_cv_libc_reentrant,
885                      [Define to the name of the function returning errno for reentrant libc])
888 dnl **** Check for reentrant X libraries ****
890 dnl This may fail to determine whether X libraries are reentrant if
891 dnl AC_PATH_XTRA does not set x_libraries.
893 if test "$have_x" = "yes"
894 then
895 AC_CACHE_CHECK( [for reentrant X libraries], wine_cv_x_reentrant,
896     [libX11_check=none
897     for dir in "$x_libraries" /usr/lib /usr/local/lib /lib; do
898         if test -r $dir/libX11.so; then
899             libX11_check="-D $dir/libX11.so"
900             break
901         fi
902         if test -r $dir/libX11.a; then
903             libX11_check="$dir/libX11.a"
904             break
905         fi
906     done
907     if test "$libX11_check" != "none"; then
908         if nm $libX11_check | grep $wine_cv_libc_reentrant >/dev/null 2>&1
909         then
910             wine_cv_x_reentrant=yes
911         else
912             wine_cv_x_reentrant=no
913         fi
914     else
915         wine_cv_x_reentrant=unknown
916     fi])
919 dnl **** Check for functions ****
921 AC_FUNC_ALLOCA()
922 AC_CHECK_FUNCS(\
923         _lwp_create \
924         _pclose \
925         _popen \
926         _snprintf \
927         _stricmp \
928         _strnicmp \
929         chsize \
930         clone \
931         ecvt \
932         fcvt \
933         finite \
934         fpclass \
935         ftruncate \
936         ftruncate64 \
937         gcvt \
938         getnetbyaddr \
939         getnetbyname \
940         getopt_long \
941         getpagesize \
942         getprotobyname \
943         getprotobynumber \
944         getpwuid \
945         getservbyport \
946         getsockopt \
947         inet_network \
948         lseek64 \
949         lstat \
950         memmove \
951         mkstemp \
952         mmap \
953         pclose \
954         popen \
955         pread \
956         pthread_getspecific \
957         pthread_key_create \
958         pthread_mutex_lock \
959         pthread_mutex_unlock \
960         pthread_setspecific \
961         pwrite \
962         rfork \
963         select \
964         sendmsg \
965         settimeofday \
966         sigaltstack \
967         snprintf \
968         statfs \
969         strcasecmp \
970         strerror \
971         strncasecmp \
972         tcgetattr \
973         timegm \
974         usleep \
975         vfscanf \
976         wait4 \
977         waitpid \
980 dnl **** Check for header files ****
982 AC_CHECK_HEADERS(\
983         arpa/inet.h \
984         arpa/nameser.h \
985         cups/cups.h \
986         direct.h \
987         elf.h \
988         float.h \
989         getopt.h \
990         ieeefp.h \
991         io.h \
992         jack/jack.h \
993         libio.h \
994         libutil.h \
995         link.h \
996         linux/cdrom.h \
997         linux/hdreg.h \
998         linux/input.h \
999         linux/joystick.h \
1000         linux/major.h \
1001         linux/param.h \
1002         linux/serial.h \
1003         linux/ucdrom.h \
1004         netdb.h \
1005         netinet/in.h \
1006         netinet/in_systm.h \
1007         netinet/tcp.h \
1008         pty.h \
1009         pwd.h \
1010         sched.h \
1011         scsi/sg.h \
1012         socket.h \
1013         stdint.h \
1014         strings.h \
1015         sys/cdio.h \
1016         sys/errno.h \
1017         sys/file.h \
1018         sys/filio.h \
1019         sys/inttypes.h \
1020         sys/ioctl.h \
1021         sys/ipc.h \
1022         sys/link.h \
1023         sys/lwp.h \
1024         sys/mman.h \
1025         sys/modem.h \
1026         sys/msg.h \
1027         sys/param.h \
1028         sys/poll.h \
1029         sys/ptrace.h \
1030         sys/reg.h \
1031         sys/shm.h \
1032         sys/signal.h \
1033         sys/socket.h \
1034         sys/sockio.h \
1035         sys/statfs.h \
1036         sys/strtio.h \
1037         sys/syscall.h \
1038         sys/sysctl.h \
1039         sys/time.h \
1040         sys/times.h \
1041         sys/uio.h \
1042         sys/un.h \
1043         sys/v86.h \
1044         sys/v86intr.h \
1045         sys/vfs.h \
1046         sys/vm86.h \
1047         sys/wait.h \
1048         syscall.h \
1049         termios.h \
1050         unistd.h \
1051         utime.h \
1053 AC_HEADER_STAT()
1055 dnl **** Checks for headers that depend on other ones ****
1057 AC_CHECK_HEADERS(sys/mount.h sys/user.h,,,
1058     [#include <sys/types.h>
1059      #if HAVE_SYS_PARAM_H
1060      # include <sys/param.h>
1061      #endif])
1063 AC_CHECK_HEADERS(net/if.h,,,
1064     [#include <sys/types.h>
1065      #if HAVE_SYS_SOCKET_H
1066      # include <sys/socket.h>
1067      #endif])
1069 AC_CHECK_HEADERS(netinet/ip.h,,,
1070     [#include <sys/types.h>
1071      #if HAVE_SYS_SOCKET_H
1072      # include <sys/socket.h>
1073      #endif
1074      #if HAVE_NETINET_IN_SYSTM_H
1075      # include <netinet/in_systm.h>
1076      #endif])
1078 AC_CHECK_HEADERS(resolv.h,,,
1079     [#include <sys/types.h>
1080      #if HAVE_SYS_SOCKET_H
1081      # include <sys/socket.h>
1082      #endif])
1084 AC_CHECK_HEADERS(ucontext.h,,,[#include <signal.h>])
1086 dnl **** Check for types ****
1088 AC_C_CONST
1089 AC_C_INLINE
1090 AC_CHECK_TYPES([mode_t, off_t, pid_t, size_t, ssize_t])
1091 AC_CHECK_SIZEOF(long long,0)
1093 AC_CACHE_CHECK([whether linux/input.h is for real],
1094         wine_cv_linux_input_h,
1095         AC_TRY_COMPILE([
1096             #include <linux/input.h>
1097         ] , [
1098             int foo = EVIOCGBIT(EV_ABS,42);
1099             int bar = BTN_PINKIE;
1100             int fortytwo = 42;
1101         ],
1102         wine_cv_linux_input_h=yes,
1103         wine_cv_linux_input_h=no,
1104         no
1105         )
1106     )
1107     if test "$wine_cv_linux_input_h" = "yes"
1108     then
1109         AC_DEFINE(HAVE_CORRECT_LINUXINPUT_H, 1,
1110                   [Define if we have linux/input.h AND it contains the INPUT event API])
1111     fi
1114 AC_CACHE_CHECK([whether we can use re-entrant gethostbyname_r Linux style],
1115         wine_cv_linux_gethostbyname_r_6,
1116         AC_TRY_COMPILE([
1117 #include <netdb.h>
1118         ], [
1119     char *name=NULL;
1120     struct hostent he;
1121     struct hostent *result;
1122     char *buf=NULL;
1123     int bufsize=0;
1124     int res,errnr;
1125     char *addr=NULL;
1126     int addrlen=0;
1127     int addrtype=0;
1128     res=gethostbyname_r(name,&he,buf,bufsize,&result,&errnr);
1129     res=gethostbyaddr_r(addr, addrlen, addrtype,&he,buf,bufsize,&result,&errnr);
1130     ],
1131         wine_cv_linux_gethostbyname_r_6=yes,
1132         wine_cv_linux_gethostbyname_r_6=no
1133         )
1134    )
1135    if test "$wine_cv_linux_gethostbyname_r_6" = "yes"
1136    then
1137       AC_DEFINE(HAVE_LINUX_GETHOSTBYNAME_R_6, 1,
1138                 [Define if Linux-style gethostbyname_r and gethostbyaddr_r are available])
1139    fi
1141 if test "$ac_cv_header_linux_joystick_h" = "yes"
1142 then
1143    AC_CACHE_CHECK([whether linux/joystick.h uses the Linux 2.2+ API],
1144         wine_cv_linux_joystick_22_api,
1145         AC_TRY_COMPILE([
1146         #include <sys/ioctl.h>
1147         #include <linux/joystick.h>
1149         struct js_event blub;
1150         #if !defined(JS_EVENT_AXIS) || !defined(JS_EVENT_BUTTON)
1151         #error "no 2.2 header"
1152         #endif
1153         ],/*empty*/,
1154         wine_cv_linux_joystick_22_api=yes,
1155         wine_cv_linux_joystick_22_api=no,
1156         wine_cv_linux_joystick_22_api=no
1157         )
1158    )
1159    if test "$wine_cv_linux_joystick_22_api" = "yes"
1160    then
1161       AC_DEFINE(HAVE_LINUX_22_JOYSTICK_API, 1,
1162                 [Define if <linux/joystick.h> defines the Linux 2.2 joystick API])
1163    fi
1166 dnl **** statfs checks ****
1168 if test "$ac_cv_header_sys_vfs_h" = "yes"
1169 then
1170     AC_CACHE_CHECK( [whether sys/vfs.h defines statfs],
1171                     wine_cv_sys_vfs_has_statfs,
1172         AC_TRY_COMPILE([
1173         #include <sys/types.h>
1174         #ifdef HAVE_SYS_PARAM_H
1175         # include <sys/param.h>
1176         #endif
1177         #include <sys/vfs.h>
1178         ],[
1179                 struct statfs stfs;
1181                 memset(&stfs,0,sizeof(stfs));
1182         ],wine_cv_sys_vfs_has_statfs=yes,wine_cv_sys_vfs_has_statfs=no
1183         )
1184     )
1185     if test "$wine_cv_sys_vfs_has_statfs" = "yes"
1186     then
1187       AC_DEFINE(STATFS_DEFINED_BY_SYS_VFS, 1,
1188                 [Define if the struct statfs is defined by <sys/vfs.h>])
1189     fi
1192 if test "$ac_cv_header_sys_statfs_h" = "yes"
1193 then
1194     AC_CACHE_CHECK( [whether sys/statfs.h defines statfs],
1195                     wine_cv_sys_statfs_has_statfs,
1196         AC_TRY_COMPILE([
1197         #include <sys/types.h>
1198         #ifdef HAVE_SYS_PARAM_H
1199         # include <sys/param.h>
1200         #endif
1201         #include <sys/statfs.h>
1202         ],[
1203                 struct statfs stfs;
1204         ],wine_cv_sys_statfs_has_statfs=yes,wine_cv_sys_statfs_has_statfs=no
1205         )
1206     )
1207     if test "$wine_cv_sys_statfs_has_statfs" = "yes"
1208     then
1209       AC_DEFINE(STATFS_DEFINED_BY_SYS_STATFS, 1,
1210                 [Define if the struct statfs is defined by <sys/statfs.h>])
1211     fi
1214 if test "$ac_cv_header_sys_mount_h" = "yes"
1215 then
1216     AC_CACHE_CHECK( [whether sys/mount.h defines statfs],
1217                     wine_cv_sys_mount_has_statfs,
1218         AC_TRY_COMPILE([
1219         #include <sys/types.h>
1220         #ifdef HAVE_SYS_PARAM_H
1221         # include <sys/param.h>
1222         #endif
1223         #include <sys/mount.h>
1224         ],[
1225                 struct statfs stfs;
1226         ],wine_cv_sys_mount_has_statfs=yes,wine_cv_sys_mount_has_statfs=no
1227         )
1228     )
1229     if test "$wine_cv_sys_mount_has_statfs" = "yes"
1230     then
1231       AC_DEFINE(STATFS_DEFINED_BY_SYS_MOUNT, 1,
1232                 [Define if the struct statfs is defined by <sys/mount.h>])
1233     fi
1236 dnl **** FIXME: what about mixed cases, where we need two of them? ***
1238 WINE_CHECK_STRUCT_MEMBER(statfs,f_bfree,
1239 [#include <sys/types.h>
1240 #ifdef HAVE_SYS_PARAM_H
1241 # include <sys/param.h>
1242 #endif
1243 #ifdef STATFS_DEFINED_BY_SYS_MOUNT
1244 # include <sys/mount.h>
1245 #else
1246 # ifdef STATFS_DEFINED_BY_SYS_VFS
1247 #  include <sys/vfs.h>
1248 # else
1249 #  ifdef STATFS_DEFINED_BY_SYS_STATFS
1250 #   include <sys/statfs.h>
1251 #  endif
1252 # endif
1253 #endif],
1254     [AC_DEFINE(STATFS_HAS_BFREE, 1, [Define if the struct statfs has the member bfree])])
1256 WINE_CHECK_STRUCT_MEMBER(statfs,f_bavail,
1257 [#include <sys/types.h>
1258 #ifdef HAVE_SYS_PARAM_H
1259 # include <sys/param.h>
1260 #endif
1261 #ifdef STATFS_DEFINED_BY_SYS_MOUNT
1262 # include <sys/mount.h>
1263 #else
1264 # ifdef STATFS_DEFINED_BY_SYS_VFS
1265 #  include <sys/vfs.h>
1266 # else
1267 #  ifdef STATFS_DEFINED_BY_SYS_STATFS
1268 #   include <sys/statfs.h>
1269 #  endif
1270 # endif
1271 #endif],
1272     [AC_DEFINE(STATFS_HAS_BAVAIL, 1, [Define if the struct statfs has the member bavail])])
1274 dnl Check for file descriptor passing with msg_accrights
1275 WINE_CHECK_STRUCT_MEMBER(msghdr,msg_accrights,
1276 [#include <sys/types.h>
1277 #ifdef HAVE_SYS_SOCKET_H
1278 # include <sys/socket.h>
1279 #endif],
1280     [AC_DEFINE(HAVE_MSGHDR_ACCRIGHTS, 1, [Define if struct msghdr contains msg_accrights])])
1282 dnl Check for the sa_len member in struct sockaddr
1283 WINE_CHECK_STRUCT_MEMBER(sockaddr,sa_len,
1284 [#include <sys/types.h>
1285 #ifdef HAVE_SYS_SOCKET_H
1286 # include <sys/socket.h>
1287 #endif],
1288     [AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if struct sockaddr contains sa_len])])
1290 dnl Check for the sun_len member in struct sockaddr_un
1291 WINE_CHECK_STRUCT_MEMBER(sockaddr_un,sun_len,
1292 [#include <sys/types.h>
1293 #ifdef HAVE_SYS_SOCKET_H
1294 # include <sys/socket.h>
1295 #endif
1296 #ifdef HAVE_SYS_UN_H
1297 # include <sys/un.h>
1298 #endif],
1299     [AC_DEFINE(HAVE_SOCKADDR_SUN_LEN, 1, [Define if struct sockaddr_un contains sun_len])])
1301 dnl *** check for the need to define platform-specific symbols
1303 case $host_cpu in
1304   *i[[3456789]]86*) WINE_CHECK_DEFINE([__i386__]) ;;
1305   *alpha*)          WINE_CHECK_DEFINE([__ALPHA__]) ;;
1306   *sparc*)          WINE_CHECK_DEFINE([__sparc__]) ;;
1307 esac
1309 case $host_vendor in
1310   *sun*) WINE_CHECK_DEFINE([__sun__]) ;;
1311 esac
1313 dnl **** Generate output files ****
1315 AH_TOP([#define __WINE_CONFIG_H])
1317 WINE_CONFIG_EXTRA_DIR(controls)
1318 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/d3ddevice)
1319 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dclipper)
1320 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/ddraw)
1321 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/direct3d)
1322 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dpalette)
1323 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dsurface)
1324 WINE_CONFIG_EXTRA_DIR(dlls/dinput/joystick)
1325 WINE_CONFIG_EXTRA_DIR(dlls/dinput/keyboard)
1326 WINE_CONFIG_EXTRA_DIR(dlls/dinput/mouse)
1327 WINE_CONFIG_EXTRA_DIR(dlls/gdi/enhmfdrv)
1328 WINE_CONFIG_EXTRA_DIR(dlls/gdi/mfdrv)
1329 WINE_CONFIG_EXTRA_DIR(dlls/gdi/win16drv)
1330 WINE_CONFIG_EXTRA_DIR(dlls/kernel/messages)
1331 WINE_CONFIG_EXTRA_DIR(dlls/user/dde)
1332 WINE_CONFIG_EXTRA_DIR(dlls/user/resources)
1333 WINE_CONFIG_EXTRA_DIR(dlls/wineps/data)
1334 WINE_CONFIG_EXTRA_DIR(files)
1335 WINE_CONFIG_EXTRA_DIR(graphics)
1336 WINE_CONFIG_EXTRA_DIR(graphics/x11drv)
1337 WINE_CONFIG_EXTRA_DIR(if1632)
1338 WINE_CONFIG_EXTRA_DIR(include/wine)
1339 WINE_CONFIG_EXTRA_DIR(loader)
1340 WINE_CONFIG_EXTRA_DIR(loader/ne)
1341 WINE_CONFIG_EXTRA_DIR(memory)
1342 WINE_CONFIG_EXTRA_DIR(misc)
1343 WINE_CONFIG_EXTRA_DIR(msdos)
1344 WINE_CONFIG_EXTRA_DIR(objects)
1345 WINE_CONFIG_EXTRA_DIR(programs/regapi/tests)
1346 WINE_CONFIG_EXTRA_DIR(programs/regedit/tests)
1347 WINE_CONFIG_EXTRA_DIR(relay32)
1348 WINE_CONFIG_EXTRA_DIR(scheduler)
1349 WINE_CONFIG_EXTRA_DIR(win32)
1350 WINE_CONFIG_EXTRA_DIR(windows)
1352 MAKE_RULES=Make.rules
1353 AC_SUBST_FILE(MAKE_RULES)
1355 MAKE_DLL_RULES=dlls/Makedll.rules
1356 AC_SUBST_FILE(MAKE_DLL_RULES)
1358 MAKE_TEST_RULES=dlls/Maketest.rules
1359 AC_SUBST_FILE(MAKE_TEST_RULES)
1361 MAKE_PROG_RULES=programs/Makeprog.rules
1362 AC_SUBST_FILE(MAKE_PROG_RULES)
1364 AC_CONFIG_FILES([
1365 Make.rules
1366 dlls/Makedll.rules
1367 dlls/Maketest.rules
1368 programs/Makeprog.rules
1369 Makefile
1370 dlls/Makefile
1371 dlls/advapi32/Makefile
1372 dlls/advapi32/tests/Makefile
1373 dlls/avicap32/Makefile
1374 dlls/avifil32/Makefile
1375 dlls/cabinet/Makefile
1376 dlls/comcat/Makefile
1377 dlls/comctl32/Makefile
1378 dlls/commdlg/Makefile
1379 dlls/crtdll/Makefile
1380 dlls/crypt32/Makefile
1381 dlls/ctl3d/Makefile
1382 dlls/d3d8/Makefile
1383 dlls/d3dx8/Makefile
1384 dlls/dciman32/Makefile
1385 dlls/ddraw/Makefile
1386 dlls/devenum/Makefile
1387 dlls/dinput/Makefile
1388 dlls/dinput8/Makefile
1389 dlls/dplay/Makefile
1390 dlls/dplayx/Makefile
1391 dlls/dsound/Makefile
1392 dlls/dsound/tests/Makefile
1393 dlls/gdi/Makefile
1394 dlls/gdi/tests/Makefile
1395 dlls/glu32/Makefile
1396 dlls/icmp/Makefile
1397 dlls/imagehlp/Makefile
1398 dlls/imm32/Makefile
1399 dlls/kernel/Makefile
1400 dlls/kernel/tests/Makefile
1401 dlls/lzexpand/Makefile
1402 dlls/mapi32/Makefile
1403 dlls/mpr/Makefile
1404 dlls/msacm/Makefile
1405 dlls/msacm/imaadp32/Makefile
1406 dlls/msacm/msadp32/Makefile
1407 dlls/msacm/msg711/Makefile
1408 dlls/msacm/winemp3/Makefile
1409 dlls/msdmo/Makefile
1410 dlls/msimg32/Makefile
1411 dlls/msisys/Makefile
1412 dlls/msnet32/Makefile
1413 dlls/msvcrt/Makefile
1414 dlls/msvcrt/tests/Makefile
1415 dlls/msvcrt20/Makefile
1416 dlls/msvideo/Makefile
1417 dlls/msvideo/msrle32/Makefile
1418 dlls/netapi32/Makefile
1419 dlls/netapi32/tests/Makefile
1420 dlls/ntdll/Makefile
1421 dlls/ntdll/tests/Makefile
1422 dlls/odbc32/Makefile
1423 dlls/ole32/Makefile
1424 dlls/oleaut32/Makefile
1425 dlls/oleaut32/tests/Makefile
1426 dlls/olecli/Makefile
1427 dlls/oledlg/Makefile
1428 dlls/olepro32/Makefile
1429 dlls/olesvr/Makefile
1430 dlls/opengl32/Makefile
1431 dlls/psapi/Makefile
1432 dlls/qcap/Makefile
1433 dlls/quartz/Makefile
1434 dlls/rasapi32/Makefile
1435 dlls/richedit/Makefile
1436 dlls/rpcrt4/Makefile
1437 dlls/rpcrt4/tests/Makefile
1438 dlls/serialui/Makefile
1439 dlls/setupapi/Makefile
1440 dlls/shdocvw/Makefile
1441 dlls/shell32/Makefile
1442 dlls/shell32/tests/Makefile
1443 dlls/shfolder/Makefile
1444 dlls/shlwapi/Makefile
1445 dlls/shlwapi/tests/Makefile
1446 dlls/snmpapi/Makefile
1447 dlls/sti/Makefile
1448 dlls/tapi32/Makefile
1449 dlls/ttydrv/Makefile
1450 dlls/twain/Makefile
1451 dlls/url/Makefile
1452 dlls/urlmon/Makefile
1453 dlls/urlmon/tests/Makefile
1454 dlls/user/Makefile
1455 dlls/user/tests/Makefile
1456 dlls/version/Makefile
1457 dlls/win32s/Makefile
1458 dlls/winaspi/Makefile
1459 dlls/winedos/Makefile
1460 dlls/wineps/Makefile
1461 dlls/wininet/Makefile
1462 dlls/wininet/tests/Makefile
1463 dlls/winmm/Makefile
1464 dlls/winmm/joystick/Makefile
1465 dlls/winmm/mcianim/Makefile
1466 dlls/winmm/mciavi/Makefile
1467 dlls/winmm/mcicda/Makefile
1468 dlls/winmm/mciseq/Makefile
1469 dlls/winmm/mciwave/Makefile
1470 dlls/winmm/midimap/Makefile
1471 dlls/winmm/tests/Makefile
1472 dlls/winmm/wavemap/Makefile
1473 dlls/winmm/winealsa/Makefile
1474 dlls/winmm/winearts/Makefile
1475 dlls/winmm/wineaudioio/Makefile
1476 dlls/winmm/winenas/Makefile
1477 dlls/winmm/winejack/Makefile
1478 dlls/winmm/wineoss/Makefile
1479 dlls/winnls/Makefile
1480 dlls/winsock/Makefile
1481 dlls/winsock/tests/Makefile
1482 dlls/winspool/Makefile
1483 dlls/wintab32/Makefile
1484 dlls/wintrust/Makefile
1485 dlls/wow32/Makefile
1486 dlls/wsock32/Makefile
1487 dlls/x11drv/Makefile
1488 documentation/Makefile
1489 include/Makefile
1490 library/Makefile
1491 miscemu/Makefile
1492 ole/Makefile
1493 programs/Makefile
1494 programs/avitools/Makefile
1495 programs/clock/Makefile
1496 programs/cmdlgtst/Makefile
1497 programs/control/Makefile
1498 programs/expand/Makefile
1499 programs/notepad/Makefile
1500 programs/osversioncheck/Makefile
1501 programs/progman/Makefile
1502 programs/regapi/Makefile
1503 programs/regedit/Makefile
1504 programs/regsvr32/Makefile
1505 programs/regtest/Makefile
1506 programs/rpcss/Makefile
1507 programs/rundll32/Makefile
1508 programs/uninstaller/Makefile
1509 programs/view/Makefile
1510 programs/wcmd/Makefile
1511 programs/wineboot/Makefile
1512 programs/wineconsole/Makefile
1513 programs/winedbg/Makefile
1514 programs/winefile/Makefile
1515 programs/winemine/Makefile
1516 programs/winepath/Makefile
1517 programs/winhelp/Makefile
1518 programs/winver/Makefile
1519 server/Makefile
1520 tools/Makefile
1521 tools/widl/Makefile
1522 tools/winapi/Makefile
1523 tools/winebuild/Makefile
1524 tools/winedump/Makefile
1525 tools/wmc/Makefile
1526 tools/wpp/Makefile
1527 tools/wrc/Makefile
1528 unicode/Makefile])
1530 AC_OUTPUT
1532 if test "$have_x" = "no"
1533 then
1534   echo
1535   echo "*** Warning: X development files not found. Wine will be built without"
1536   echo "*** X support, which currently does not work, and would probably not be"
1537   echo "*** what you want anyway. You will need to install devel packages of"
1538   echo "*** Xlib/Xfree86 at the very least."
1541 if test "$ac_cv_lib_ncurses_resizeterm" = "no" -a "$ac_cv_lib_ncurses_waddch" = "yes"
1542 then
1543   echo
1544   echo "*** Warning: resizeterm not found in ncurses. Wine will be built without"
1545   echo "*** terminal resize support. Consider upgrading ncurses."
1548 if test "$wine_cv_libc_reentrant" = "no"
1549 then
1550   echo
1551   echo "*** Warning: non-reentrant libc detected. Wine will be built without"
1552   echo "*** threading support. Consider upgrading libc to a more recent"
1553   echo "*** reentrant version of libc."
1556 if test "$have_x" = "yes" -a "$wine_cv_x_reentrant" != "yes"
1557 then
1558   echo
1559   echo "*** Warning: non-reentrant X11 library detected. Multi-threaded"
1560   echo "*** applications won't work properly. You should upgrade your X11 library."
1563 if test "$wine_cv_opengl_version_OK" = "no"
1564 then
1565   echo
1566   echo "*** Warning: old Mesa headers detected. Wine will be built without Direct3D"
1567   echo "*** support. Consider upgrading your Mesa libraries (http://www.mesa3d.org/)."
1570 if test "$wine_cv_msg_freetype" = "yes"
1571 then
1572   echo
1573   echo "*** Note: Your system appears to have the FreeType 2 runtime libraries"
1574   echo "*** installed, but 'freetype-config' is not in your PATH. Install the"
1575   echo "*** freetype-devel package (or its equivalent on your distribution) to"
1576   echo "*** enable Wine to use TrueType fonts."
1579 echo
1580 echo "Configure finished.  Do 'make depend && make' to compile Wine."
1581 echo
1583 dnl Local Variables:
1584 dnl comment-start: "dnl "
1585 dnl comment-end: ""
1586 dnl comment-start-skip: "\\bdnl\\b\\s *"
1587 dnl compile-command: "autoconf"
1588 dnl End: