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