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