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