1 dnl Process this file with autoconf to produce a configure script.
2 dnl Original author: Michael Patra
3 dnl See ChangeLog file for detailed change history.
5 m4_define(WINE_VERSION,regexp(m4_include(VERSION),[version \([-.0-9A-Za-z]+\)],[\1]))
8 AC_INIT([Wine],WINE_VERSION)
9 AC_CONFIG_SRCDIR(server/atom.c)
10 AC_CONFIG_HEADERS(include/config.h)
11 AC_CONFIG_AUX_DIR(tools)
13 dnl **** Command-line arguments ****
16 LIBEXT=so # library type .so or .a
18 AC_ARG_ENABLE(debug, AC_HELP_STRING([--disable-debug],[compile out all debugging messages]))
19 AC_ARG_ENABLE(trace, AC_HELP_STRING([--disable-trace],[compile out TRACE messages]))
20 AC_ARG_ENABLE(opengl,AC_HELP_STRING([--enable-opengl],[force usage of OpenGL even if the latter is thread-safe via pthread]))
21 AC_ARG_WITH(curses, AC_HELP_STRING([--without-curses],[do not use curses]))
22 AC_ARG_WITH(reentrant-x,AC_HELP_STRING([--without-reentrant-x],[compile for use with non-reentrant X libraries]))
25 if test "x$enable_debug" = "xno"
27 AC_DEFINE(NO_DEBUG_MSGS,1,[Define to disable all debug messages.])
29 if test "x$enable_trace" = "xno" -o "x$enable_debug" = "xno"
31 AC_DEFINE(NO_TRACE_MSGS,1,[Define to disable trace messages.])
34 dnl **** Check for some programs ****
44 dnl **** Just additional warning checks, since AC_PROG just sets 'yacc' even
45 dnl **** without one present.
46 AC_CHECK_PROGS(XYACC,$YACC bison yacc,none)
47 if test "$XYACC" = "none"
49 AC_MSG_ERROR([no suitable bison/yacc found. Please install the 'bison' package.])
51 AC_CHECK_PROGS(XLEX,$LEX flex lex,none)
52 if test "$XLEX" = "none"
54 AC_MSG_ERROR([no suitable lex found. Please install the 'flex' package.])
59 AC_CHECK_PROG(C2MAN,c2man,c2man,\$(TOPSRCDIR)/tools/c2man.pl)
60 AC_PATH_PROG(LDCONFIG, ldconfig, true, /sbin:/usr/sbin:$PATH)
63 AC_CHECK_PROGS(LINT, lclint lint)
64 if test "$LINT" = "lint"
66 LINTFLAGS="$LINTFLAGS -errchk=%all,no%longptr64 -errhdr=%user -Ncheck=macro -Nlevel=4"
67 dnl LINTFLAGS='-D_SIZE_T "-Dsize_t=unsigned long" -errchk=longptr64'
73 *cygwin*) LDCOMBINE="ld -r --enable-stdcall-fixup" ;;
74 *) LDCOMBINE="ld -r" ;;
78 dnl **** Check for some libraries ****
82 dnl Check for -li386 for NetBSD and OpenBSD
83 AC_CHECK_LIB(i386,i386_set_ldt)
84 dnl Check for -lossaudio for NetBSD
85 AC_CHECK_LIB(ossaudio,_oss_ioctl)
86 dnl Check for -lw for Solaris
87 AC_CHECK_FUNCS(iswalnum,,AC_CHECK_LIB(w,iswalnum))
88 dnl Check for -lnsl for Solaris
89 AC_CHECK_FUNCS(gethostbyname,,AC_CHECK_LIB(nsl,gethostbyname))
90 dnl Check for -lsocket for Solaris
91 AC_CHECK_FUNCS(connect,,AC_CHECK_LIB(socket,connect))
92 dnl Check for -lxpg4 for FreeBSD
93 AC_CHECK_LIB(xpg4,_xpg4_setrunelocale)
94 dnl Check for -lmmap for OS/2
95 AC_CHECK_LIB(mmap,mmap)
100 AC_CHECK_FUNCS(openpty,,
101 [AC_CHECK_LIB(util,openpty,
102 [AC_DEFINE(HAVE_OPENPTY)
108 AC_CHECK_HEADERS(dlfcn.h,
109 [AC_CHECK_FUNCS(dlopen,,
110 [AC_CHECK_LIB(dl,dlopen,
111 [AC_DEFINE(HAVE_DLOPEN,1,[Define if you have dlopen])
120 AC_CHECK_HEADERS(jpeglib.h,
121 AC_CHECK_LIB(jpeg,jpeg_start_decompress,
122 AC_DEFINE(HAVE_LIBJPEG,1,[Define if you have libjpeg including devel headers])
131 AC_SUBST(OPENGLFILES)
135 if test "$have_x" = "yes"
138 ac_save_CPPFLAGS="$CPPFLAGS"
139 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
141 dnl *** All of the following tests require X11/Xlib.h
142 AC_CHECK_HEADERS(X11/Xlib.h,
144 dnl *** Check for X keyboard extension
145 AC_CHECK_HEADERS(X11/XKBlib.h,
146 [ dnl *** If X11/XKBlib.h exists...
147 AC_CHECK_LIB(X11, XkbQueryExtension,
148 AC_DEFINE(HAVE_XKB, 1, [Define if you have the XKB extension]),,
149 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
151 AC_MSG_WARN([[Xkb extension not found, Wine will be built without it]])
154 dnl *** Check for X Shm extension
155 AC_CHECK_HEADERS(X11/extensions/XShm.h,
156 [ dnl *** If X11/extensions/XShm.h exists...
157 AC_CHECK_LIB(Xext, XShmQueryExtension,
158 AC_DEFINE(HAVE_LIBXXSHM, 1, [Define if you have the X Shm extension]),,
159 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
161 AC_MSG_WARN([[XShm extension not found, Wine will be built without it]])
164 dnl *** Check for X shape extension
165 AC_CHECK_HEADERS(X11/extensions/shape.h,
166 [ dnl *** If X11/extensions/shape.h exists...
167 AC_CHECK_LIB(Xext,XShapeQueryExtension,
168 AC_DEFINE(HAVE_LIBXSHAPE, 1, [Define if you have the X Shape extension]),,
169 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
171 AC_MSG_WARN([[XShape extension not found, Wine will be built without it]])
174 dnl *** Check for XFree86 DGA / DGA 2.0 extension
175 AC_CHECK_HEADERS(X11/extensions/xf86dga.h,
176 [ dnl *** If X11/extensions/xf86dga.h exists, check
177 dnl *** for XDGAQueryExtension()...
178 AC_CHECK_LIB(Xxf86dga, XDGAQueryExtension,
179 [ dnl *** If found...
180 AC_DEFINE(HAVE_LIBXXF86DGA2, 1,
181 [Define if you have the Xxf86dga library version 2])
182 X_PRE_LIBS="$X_PRE_LIBS -lXxf86dga"
184 [ dnl *** If not found, look for XF86DGAQueryExtension()
185 dnl *** instead (DGA 2.0 not found)...
186 AC_CHECK_LIB(Xxf86dga, XF86DGAQueryExtension,
187 [ AC_DEFINE(HAVE_LIBXXF86DGA, 1,
188 [Define if you have the Xxf86dga library version 1])
189 X_PRE_LIBS="$X_PRE_LIBS -lXxf86dga"
191 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
194 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
197 AC_MSG_WARN([[DGA extension not found, Wine will be built without it]])
200 dnl *** Check for XFree86 VMODE extension
201 AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,
202 [ dnl *** If X11/extensions/xf86vmode.h exists...
203 AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryExtension,
204 [ AC_DEFINE(HAVE_LIBXXF86VM, 1, [Define if you have the Xxf86vm library])
205 X_PRE_LIBS="$X_PRE_LIBS -lXxf86vm"
207 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
210 AC_MSG_WARN([[XFree86 VMODE extension not found, Wine will be built without it]])
213 dnl *** Check for XVideo extension supporting XvImages
214 AC_CHECK_HEADERS(X11/extensions/Xvlib.h,
215 [ dnl *** If X11/extensions/Xvlib.h exists...
216 AC_CHECK_LIB(Xv, XvShmCreateImage,
217 [ AC_DEFINE(HAVE_XVIDEO, 1, [Define if the X libraries support XVideo])
218 X_PRE_LIBS="$X_PRE_LIBS -lXv"
220 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
223 AC_MSG_WARN([[XVideo extension not found, Wine will be built without it]])
226 dnl *** Check for XRender extension
227 AC_CHECK_HEADERS(X11/extensions/Xrender.h,
228 [ dnl *** If X11/extensions/Xrender.h exists...
229 AC_CHECK_LIB(Xrender, XRenderQueryExtension,
230 [ AC_DEFINE(HAVE_LIBXRENDER, 1, [Define if you have the XRender extension library])
231 X_PRE_LIBS="$X_PRE_LIBS -lXrender"
233 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
236 AC_MSG_WARN([[XRender extension not found, Wine will be built without it]])
240 ) dnl *** End of X11/Xlib.h check
242 dnl Check for the presence of OpenGL
243 if test "x$enable_opengl" != "xno"
245 if test -f /usr/X11R6/lib/libGL.a -a ! -f /usr/X11R6/lib/libGL.so
247 AC_MSG_ERROR([/usr/X11R6/lib/libGL.a is present on your system.
248 This prevents linking to OpenGL. Delete the file and restart configure.])
251 AC_CHECK_HEADERS(GL/gl.h GL/glx.h GL/glext.h)
252 if test "$ac_cv_header_GL_gl_h" = "yes" -a "$ac_cv_header_GL_glx_h" = "yes"
254 dnl Check for some problems due to old Mesa versions
255 AC_CACHE_CHECK([for up-to-date OpenGL version], wine_cv_opengl_version_OK,
257 [#include <GL/gl.h>],
258 [GLenum test = GL_UNSIGNED_SHORT_5_6_5;],
259 [wine_cv_opengl_version_OK="yes"],
260 [wine_cv_opengl_version_OK="no"]
264 dnl Check for the thread-safety of the OpenGL library
265 AC_CACHE_CHECK([for thread-safe OpenGL version],
266 wine_cv_opengl_version_threadsafe,
269 AC_TRY_LINK([],[pthread_getspecific();],
270 [wine_cv_opengl_version_threadsafe="yes"],
271 [wine_cv_opengl_version_threadsafe="no"])
275 if test "$wine_cv_opengl_version_OK" = "yes" -a \( "$wine_cv_opengl_version_threadsafe" = "no" -o "x$enable_opengl" = "xyes" \)
277 dnl Check for the presence of the library
278 AC_CHECK_LIB(GL,glXCreateContext,
279 X_PRE_LIBS="$X_PRE_LIBS -lGL"
281 $X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS)
283 if test "$ac_cv_lib_GL_glXCreateContext" = "yes"
285 OPENGLFILES='$(OPENGLFILES)'
286 AC_DEFINE(HAVE_OPENGL, 1, [Define if OpenGL is present on the system])
288 AC_CHECK_LIB(GL,glXGetProcAddressARB,
289 AC_DEFINE(HAVE_GLX_GETPROCADDRESS, 1,
290 [Define if the OpenGL library supports the glXGetProcAddressARB call]),,
291 $X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS)
293 if test "$ac_cv_lib_GL_glXGetProcAddressARB" = "yes"
295 AC_CACHE_CHECK([for OpenGL extension functions prototypes], wine_cv_extension_prototypes,
296 [AC_TRY_COMPILE([#include <GL/gl.h>
297 #ifdef HAVE_GL_GLEXT_H
298 # include <GL/glext.h>
301 [PFNGLCOLORTABLEEXTPROC test_proc;],
302 [wine_cv_extension_prototypes="yes"],
303 [wine_cv_extension_prototypes="no"]
306 if test "$wine_cv_extension_prototypes" = "yes"
308 AC_DEFINE(HAVE_GLEXT_PROTOTYPES, 1,
309 [Define if the OpenGL headers define extension typedefs])
314 dnl Check for GLU32 library.
315 AC_CHECK_LIB(GLU,gluLookAt,
316 [X_PRE_LIBS="$X_PRE_LIBS -lGLU"
317 GLU32FILES='$(GLU32FILES)']
319 $X_LIBS $X_PRE_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS
325 CPPFLAGS="$ac_save_CPPFLAGS"
333 dnl **** Check which curses lib to use ***
335 if test "x$with_curses" != "xno"
337 AC_CHECK_HEADERS(ncurses.h,
338 [AC_CHECK_LIB(ncurses,waddch,
339 [AC_DEFINE(HAVE_LIBNCURSES, 1, [Define if you have the ncurses library (-lncurses)])
340 CURSESLIBS="-lncurses"],
341 [AC_CHECK_HEADERS(curses.h,
342 [AC_CHECK_LIB(curses,waddch,
343 [AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have the curses library (-lcurses)])
344 CURSESLIBS="-lcurses"])])])])
346 LIBS="$CURSESLIBS $LIBS"
347 AC_CHECK_FUNCS(getbkgd resizeterm)
353 dnl **** Check for CUPS ****
354 wine_cv_warn_cups_h=no
355 AC_CHECK_LIB(cups,cupsGetPPD,
356 [AC_CHECK_HEADER(cups/cups.h,
357 [AC_DEFINE(HAVE_CUPS, 1, [Define if we have CUPS])
359 wine_cv_warn_cups_h=yes)]
363 dnl **** Check for FreeType 2 ****
364 AC_CHECK_LIB(freetype,FT_Init_FreeType,ft_lib=yes,ft_lib=no,$X_LIBS)
365 if test "$ft_lib" = "no"
369 wine_cv_msg_freetype=no
371 AC_CHECK_PROG(ft_devel,freetype-config,freetype-config,no)
372 if test "$ft_devel" = "no"
374 AC_CHECK_PROG(ft_devel2,freetype2-config,freetype2-config,no)
375 if test "$ft_devel2" = "freetype2-config"
380 if test "$ft_devel" = "no"
384 wine_cv_msg_freetype=yes
386 FREETYPELIBS=`$ft_devel --libs`
387 FREETYPEINCL=`$ft_devel --cflags`
388 ac_save_CPPFLAGS="$CPPFLAGS"
389 CPPFLAGS="$FREETYPEINCL $CPPFLAGS"
390 AC_CHECK_HEADERS(freetype/freetype.h \
392 freetype/tttables.h \
394 freetype/ftsnames.h \
395 freetype/ttnameid.h \
397 freetype/internal/sfnt.h)
398 AC_TRY_CPP([#include <ft2build.h>
399 #include <freetype/fttrigon.h>],
400 [AC_DEFINE(HAVE_FREETYPE_FTTRIGON_H, 1,
401 [Define if you have the <freetype/fttrigon.h> header file.])
402 wine_cv_fttrigon=yes],
404 CPPFLAGS="$ac_save_CPPFLAGS"
405 dnl Check that we have at least freetype/freetype.h
406 if test "$ac_cv_header_freetype_freetype_h" = "yes" -a "$wine_cv_fttrigon" = "yes"
408 AC_DEFINE(HAVE_FREETYPE, 1, [Define if FreeType 2 is installed])
409 wine_cv_msg_freetype=no
413 wine_cv_msg_freetype=yes
417 AC_SUBST(FREETYPELIBS)
418 AC_SUBST(FREETYPEINCL)
420 dnl **** Check for parport (currently Linux only) ****
421 AC_CACHE_CHECK([for parport header/ppdev.h], ac_cv_c_ppdev,
423 [#include <linux/ppdev.h>],
424 [ioctl (1,PPCLAIM,0)],
425 [ac_cv_c_ppdev="yes"],
426 [ac_cv_c_ppdev="no"])
428 if test "$ac_cv_c_ppdev" = "yes"
430 AC_DEFINE(HAVE_PPDEV, 1, [Define if we can use ppdev.h for parallel port access])
433 dnl **** Check for IPX (currently Linux only) ****
434 AC_CACHE_CHECK([for GNU style IPX support], ac_cv_c_ipx_gnu,
436 [#include <sys/socket.h>
437 #include <netipx/ipx.h>],
438 [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
439 [ac_cv_c_ipx_gnu="yes"],
440 [ac_cv_c_ipx_gnu="no"])
442 if test "$ac_cv_c_ipx_gnu" = "yes"
444 AC_DEFINE(HAVE_IPX_GNU, 1, [Define if IPX should use netipx/ipx.h from libc])
447 if test "$ac_cv_c_ipx_gnu" = "no"
449 AC_CACHE_CHECK([for linux style IPX support], ac_cv_c_ipx_linux,
451 [#include <sys/socket.h>
452 #include <asm/types.h>
453 #include <linux/ipx.h>],
454 [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
455 [ac_cv_c_ipx_linux="yes"],
456 [ac_cv_c_ipx_linux="no"])
458 if test "$ac_cv_c_ipx_linux" = "yes"
460 AC_DEFINE(HAVE_IPX_LINUX, 1, [Define if IPX includes are taken from Linux kernel])
464 dnl **** Check for Open Sound System ****
465 AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h soundcard.h, break)
467 AC_CACHE_CHECK([for Open Sound System],
468 ac_cv_c_opensoundsystem,
470 #if defined(HAVE_SYS_SOUNDCARD_H)
471 #include <sys/soundcard.h>
472 #elif defined(HAVE_MACHINE_SOUNDCARD_H)
473 #include <machine/soundcard.h>
474 #elif defined(HAVE_SOUNDCARD_H)
475 #include <soundcard.h>
479 /* check for one of the Open Sound System specific SNDCTL_ defines */
480 #if !defined(SNDCTL_DSP_STEREO)
481 #error No open sound system
483 ],ac_cv_c_opensoundsystem="yes",ac_cv_c_opensoundsystem="no"))
485 if test "$ac_cv_c_opensoundsystem" = "yes"
487 AC_DEFINE(HAVE_OSS, 1, [Define if you have the Open Sound system])
490 AC_CACHE_CHECK([for Open Sound System/MIDI interface],
491 ac_cv_c_opensoundsystem_midi,
493 #if defined(HAVE_SYS_SOUNDCARD_H)
494 #include <sys/soundcard.h>
495 #elif defined(HAVE_MACHINE_SOUNDCARD_H)
496 #include <machine/soundcard.h>
497 #elif defined(HAVE_SOUNDCARD_H)
498 #include <soundcard.h>
502 /* check for one of the Open Sound System specific SNDCTL_SEQ defines */
503 #if !defined(SNDCTL_SEQ_SYNC)
504 #error No open sound system MIDI interface
506 ],ac_cv_c_opensoundsystem_midi="yes",ac_cv_c_opensoundsystem_midi="no"))
508 if test "$ac_cv_c_opensoundsystem_midi" = "yes"
510 AC_DEFINE(HAVE_OSS_MIDI, 1, [Define if you have the Open Sound system (MIDI interface)])
513 dnl **** Check for broken glibc mmap64 ****
515 AC_CACHE_CHECK( [whether mmap64 works defined as mmap], ac_cv_mmap64_works,
517 #define _FILE_OFFSET_BITS 64
521 #include <sys/mman.h>
524 int main(int argc,char **argv) {
525 int fd = open("conftest.map",O_CREAT|O_RDWR,0600);
526 if (fd == -1) exit(1);
528 unlink("conftest.map");
532 if ((-1 == mmap(0,4,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0)) &&
538 fprintf(stderr,"success!\n");
543 ac_cv_mmap64_works="yes",
544 ac_cv_mmap64_works="no",
545 ac_cv_mmap64_works="no") )
547 if test "$ac_cv_mmap64_works" = "yes"
549 AC_DEFINE(_FILE_OFFSET_BITS, 64, [Set this to 64 to enable 64-bit file support on Linux])
552 dnl **** Check for gcc strength-reduce bug ****
554 if test "x${GCC}" = "xyes"
556 CFLAGS="$CFLAGS -Wall"
557 AC_CACHE_CHECK( [for gcc strength-reduce bug], ac_cv_c_gcc_strength_bug,
559 int L[[4]] = {0,1,2,3};
561 static int Array[[3]];
564 for(i=0; i<B; i++) Array[[i]] = i - 3;
565 for(i=0; i<4 - 1; i++) L[[i]] = L[[i + 1]];
568 exit( Array[[1]] != -2 || L[[2]] != 3);
570 ac_cv_c_gcc_strength_bug="no",
571 ac_cv_c_gcc_strength_bug="yes",
572 ac_cv_c_gcc_strength_bug="yes") )
573 if test "$ac_cv_c_gcc_strength_bug" = "yes"
575 CFLAGS="$CFLAGS -fno-strength-reduce"
578 dnl Check for -mpreferred-stack-boundary
579 AC_CACHE_CHECK([for gcc -mpreferred-stack-boundary=2 support],
580 ac_cv_c_gcc_stack_boundary,
581 [saved_cflags=$CFLAGS
582 CFLAGS="$CFLAGS -mpreferred-stack-boundary=2"
583 AC_TRY_COMPILE(,[return 0],ac_cv_c_gcc_stack_boundary="yes",ac_cv_c_gcc_stack_boundary="no")
586 if test "$ac_cv_c_gcc_stack_boundary" = "yes"
588 CFLAGS="$CFLAGS -mpreferred-stack-boundary=2"
592 dnl **** Check if we need to place .type inside a .def directive ****
594 AC_CACHE_CHECK([whether .type must sit inside a .def directive],
597 LIBS="conftest_asm.s $LIBS"
598 cat > conftest_asm.s <<EOF
600 .def _ac_test; .scl 2; .type 32; .endef
604 AC_TRY_LINK(,,ac_cv_c_type_in_def="yes",ac_cv_c_type_in_def="no")
606 if test "$ac_cv_c_type_in_def" = "yes"
608 AC_DEFINE(NEED_TYPE_IN_DEF, 1, [Define if .type asm directive must be inside a .def directive])
611 dnl **** Check for underscore on external symbols ****
613 AC_CACHE_CHECK([whether external symbols need an underscore prefix],
614 ac_cv_c_extern_prefix,
616 LIBS="conftest_asm.s $LIBS"
617 cat > conftest_asm.s <<EOF
622 AC_TRY_LINK([extern int ac_test;],[if (ac_test) return 1],
623 ac_cv_c_extern_prefix="yes",ac_cv_c_extern_prefix="no")
625 if test "$ac_cv_c_extern_prefix" = "yes"
627 AC_DEFINE(NEED_UNDERSCORE_PREFIX, 1,
628 [Define if symbols declared in assembly code need an underscore prefix])
631 dnl **** Check whether stdcall symbols need to be decorated ****
633 AC_CACHE_CHECK([whether stdcall symbols need to be decorated],
634 ac_cv_c_stdcall_decoration,
636 LIBS="conftest_asm.s $LIBS"
637 if test "$ac_cv_c_extern_prefix" = "yes"
639 cat > conftest_asm.s <<EOF
644 cat > conftest_asm.s <<EOF
649 AC_TRY_LINK([extern void __attribute__((__stdcall__)) ac_test(void);],
650 [ac_test(); return 0],
651 ac_cv_c_stdcall_decoration="yes",ac_cv_c_stdcall_decoration="no")
653 if test "$ac_cv_c_stdcall_decoration" = "yes"
655 AC_DEFINE(NEED_STDCALL_DECORATION, 1,
656 [Define if stdcall symbols need to be decorated])
659 dnl **** Check for .string in assembler ****
661 AC_CACHE_CHECK([whether assembler accepts .string],
664 LIBS="conftest_asm.s $LIBS"
665 cat > conftest_asm.s <<EOF
668 AC_TRY_LINK(,,ac_cv_c_asm_string="yes",ac_cv_c_asm_string="no")
670 if test "$ac_cv_c_asm_string" = "yes"
672 AC_DEFINE(HAVE_ASM_STRING, 1, [Define to use .string instead of .ascii])
675 dnl **** Check for working dll ****
679 if test "$LIBEXT" = "so"
681 AC_CACHE_CHECK([whether we can build a GNU style ELF dll],
683 [saved_cflags=$CFLAGS
684 CFLAGS="$CFLAGS -fPIC -shared -Wl,-soname,conftest.so.1.0,-Bsymbolic"
685 AC_TRY_LINK(,[return 1],ac_cv_c_dll_gnuelf="yes",ac_cv_c_dll_gnuelf="no")
688 if test "$ac_cv_c_dll_gnuelf" = "yes"
690 LDSHARED="\$(CC) -shared \$(SONAME:%=-Wl,-soname,%)"
691 LDDLLFLAGS="-Wl,-Bsymbolic"
693 AC_CACHE_CHECK(whether we can build a UnixWare (Solaris) dll,
694 ac_cv_c_dll_unixware,
695 [saved_cflags=$CFLAGS
696 CFLAGS="$CFLAGS -fPIC -Wl,-G,-h,conftest.so.1.0,-B,symbolic"
697 AC_TRY_LINK(,[return 1],ac_cv_c_dll_unixware="yes",ac_cv_c_dll_unixware="no")
700 if test "$ac_cv_c_dll_unixware" = "yes"
702 LDSHARED="\$(CC) -Wl,-G \$(SONAME:%=-Wl,-h,%)"
703 LDDLLFLAGS="-Wl,-B,symbolic"
706 if test "$ac_cv_c_dll_gnuelf" = "no" -a "$ac_cv_c_dll_unixware" = "no"
709 AC_CHECK_PROG(DLLWRAP,dllwrap,dllwrap,false)
710 if test "$DLLWRAP" = "dllwrap"; then
711 dnl FIXME - check whether dllwrap works correctly...
721 if test "$LIBEXT" = "a"; then
723 [could not find a way to build shared libraries.
724 It is currently not possible to build Wine without shared library
725 (.so) support to allow transparent switch between .so and .dll files.
726 If you are using Linux, you will need a newer binutils.]
733 if test "$LIBEXT" = "so"; then
735 LDPATH="LD_LIBRARY_PATH=\"\$(TOPOBJDIR)/unicode:\$\$LD_LIBRARY_PATH\""
736 elif test "$LIBEXT" = "dll"; then
737 #DLLFLAGS="-fPIC" # -fPIC doesn't work(at least in cygwin-b20) - FIXME
738 LDPATH="PATH=\"\$(TOPOBJDIR)/unicode:\$\$PATH\""
747 dnl **** Check for reentrant libc ****
749 dnl For cross-compiling we blindly assume that libc is reentrant. This is
750 dnl ok since non-reentrant libc is quite rare (mostly old libc5 versions).
752 AC_DEFUN([WINE_CHECK_ERRNO],
754 AC_CACHE_CHECK(for reentrant libc: $1, wine_cv_libc_r_$1,
755 [AC_TRY_RUN([int myerrno = 0;
757 int *$1(){return &myerrno;}
758 main(){connect(0,buf,255); exit(!myerrno);}],
759 wine_cv_libc_r_$1=yes, wine_cv_libc_r_$1=no,
760 wine_cv_libc_r_$1=yes )
762 if test "$wine_cv_libc_r_$1" = "yes"
764 wine_cv_libc_reentrant=$1
768 wine_cv_libc_reentrant=no
769 dnl Linux style errno location
770 WINE_CHECK_ERRNO(__errno_location)
771 dnl FreeBSD style errno location
772 WINE_CHECK_ERRNO(__error)
773 dnl Solaris style errno location
774 WINE_CHECK_ERRNO(___errno)
775 dnl UnixWare style errno location
776 WINE_CHECK_ERRNO(__thr_errno)
777 dnl NetBSD style errno location
778 WINE_CHECK_ERRNO(__errno)
780 if test "$wine_cv_libc_reentrant" != "no"
782 AC_DEFINE_UNQUOTED(ERRNO_LOCATION,$wine_cv_libc_reentrant,
783 [Define to the name of the function returning errno for reentrant libc])
786 dnl **** Check for reentrant X libraries ****
788 dnl This may fail to determine whether X libraries are reentrant if
789 dnl AC_PATH_XTRA does not set x_libraries. In this case manual configuration
790 dnl is possible with the --without-reentrant-x option.
792 if test "$have_x" = "yes" -a "$wine_cv_libc_reentrant" != "no"
794 AC_CACHE_CHECK( [for reentrant X libraries], wine_cv_x_reentrant,
795 [ if test "x$with_reentrant_x" = "xno"
797 wine_cv_x_reentrant=no
800 for dir in "$x_libraries" /usr/lib /usr/local/lib /lib; do
801 if test -r $dir/libX11.so; then
802 libX11_check="-D $dir/libX11.so"
805 if test -r $dir/libX11.a; then
806 libX11_check="$dir/libX11.a"
810 if test "$libX11_check" != "none"; then
811 if nm $libX11_check | grep $wine_cv_libc_reentrant >/dev/null 2>&1
813 wine_cv_x_reentrant=yes
815 wine_cv_x_reentrant=no
818 wine_cv_x_reentrant=unknown
822 wine_cv_x_reentrant=no
824 if test "$wine_cv_x_reentrant" = "no"
826 AC_DEFINE(NO_REENTRANT_X11, 1,
827 [Define if X libraries are not reentrant (compiled without -D_REENTRANT)])
831 dnl **** Check for functions ****
874 dnl **** Check for header files ****
933 dnl **** Check for types ****
941 AC_CHECK_SIZEOF(long long,0)
943 AC_CACHE_CHECK([whether linux/input.h is for real],
944 wine_cv_linux_input_h,
946 #include <linux/input.h>
948 int foo = EVIOCGBIT(EV_ABS,42);
949 int bar = BTN_PINKIE;
952 wine_cv_linux_input_h=yes,
953 wine_cv_linux_input_h=no,
957 if test "$wine_cv_linux_input_h" = "yes"
959 AC_DEFINE(HAVE_CORRECT_LINUXINPUT_H, 1,
960 [Define if we have linux/input.h AND it contains the INPUT event API])
964 AC_CACHE_CHECK([whether we can use re-entrant gethostbyname_r Linux style],
965 wine_cv_linux_gethostbyname_r_6,
971 struct hostent *result;
978 res=gethostbyname_r(name,&he,buf,bufsize,&result,&errnr);
979 res=gethostbyaddr_r(addr, addrlen, addrtype,&he,buf,bufsize,&result,&errnr);
981 wine_cv_linux_gethostbyname_r_6=yes,
982 wine_cv_linux_gethostbyname_r_6=no
985 if test "$wine_cv_linux_gethostbyname_r_6" = "yes"
987 AC_DEFINE(HAVE_LINUX_GETHOSTBYNAME_R_6, 1,
988 [Define if Linux-style gethostbyname_r and gethostbyaddr_r are available])
991 if test "$ac_cv_header_linux_joystick_h" = "yes"
993 AC_CACHE_CHECK([whether linux/joystick.h uses the Linux 2.2+ API],
994 wine_cv_linux_joystick_22_api,
996 #include <sys/ioctl.h>
997 #include <linux/joystick.h>
999 struct js_event blub;
1000 #if !defined(JS_EVENT_AXIS) || !defined(JS_EVENT_BUTTON)
1001 #error "no 2.2 header"
1004 wine_cv_linux_joystick_22_api=yes,
1005 wine_cv_linux_joystick_22_api=no,
1006 wine_cv_linux_joystick_22_api=no
1009 if test "$wine_cv_linux_joystick_22_api" = "yes"
1011 AC_DEFINE(HAVE_LINUX_22_JOYSTICK_API, 1,
1012 [Define if <linux/joystick.h> defines the Linux 2.2 joystick API])
1016 dnl **** statfs checks ****
1018 if test "$ac_cv_header_sys_vfs_h" = "yes"
1020 AC_CACHE_CHECK( [whether sys/vfs.h defines statfs],
1021 wine_cv_sys_vfs_has_statfs,
1023 #include <sys/types.h>
1024 #ifdef HAVE_SYS_PARAM_H
1025 # include <sys/param.h>
1027 #include <sys/vfs.h>
1031 memset(&stfs,0,sizeof(stfs));
1032 ],wine_cv_sys_vfs_has_statfs=yes,wine_cv_sys_vfs_has_statfs=no
1035 if test "$wine_cv_sys_vfs_has_statfs" = "yes"
1037 AC_DEFINE(STATFS_DEFINED_BY_SYS_VFS, 1,
1038 [Define if the struct statfs is defined by <sys/vfs.h>])
1042 if test "$ac_cv_header_sys_statfs_h" = "yes"
1044 AC_CACHE_CHECK( [whether sys/statfs.h defines statfs],
1045 wine_cv_sys_statfs_has_statfs,
1047 #include <sys/types.h>
1048 #ifdef HAVE_SYS_PARAM_H
1049 # include <sys/param.h>
1051 #include <sys/statfs.h>
1054 ],wine_cv_sys_statfs_has_statfs=yes,wine_cv_sys_statfs_has_statfs=no
1057 if test "$wine_cv_sys_statfs_has_statfs" = "yes"
1059 AC_DEFINE(STATFS_DEFINED_BY_SYS_STATFS, 1,
1060 [Define if the struct statfs is defined by <sys/statfs.h>])
1064 if test "$ac_cv_header_sys_mount_h" = "yes"
1066 AC_CACHE_CHECK( [whether sys/mount.h defines statfs],
1067 wine_cv_sys_mount_has_statfs,
1069 #include <sys/types.h>
1070 #ifdef HAVE_SYS_PARAM_H
1071 # include <sys/param.h>
1073 #include <sys/mount.h>
1076 ],wine_cv_sys_mount_has_statfs=yes,wine_cv_sys_mount_has_statfs=no
1079 if test "$wine_cv_sys_mount_has_statfs" = "yes"
1081 AC_DEFINE(STATFS_DEFINED_BY_SYS_MOUNT, 1,
1082 [Define if the struct statfs is defined by <sys/mount.h>])
1086 dnl *** Check for some structure members
1088 dnl Macro to check if a structure contains a specified member
1089 dnl Usage: WINE_CHECK_STRUCT_MEMBER(struct,member,[includes,[action-if-found,[action-if-not-found]]])
1091 AC_DEFUN([WINE_CHECK_STRUCT_MEMBER],
1092 [AC_CACHE_CHECK([for $2 in struct $1], ac_cv_c_$1_$2,
1093 AC_TRY_COMPILE([$3],[struct $1 s; s.$2 = 0],ac_cv_c_$1_$2="yes",ac_cv_c_$1_$2="no"))
1094 AS_IF([ test "x$ac_cv_c_$1_$2" = "xyes"],[$4],[$5])
1097 dnl **** FIXME: what about mixed cases, where we need two of them? ***
1099 WINE_CHECK_STRUCT_MEMBER(statfs,f_bfree,
1100 [#include <sys/types.h>
1101 #ifdef HAVE_SYS_PARAM_H
1102 # include <sys/param.h>
1104 #ifdef STATFS_DEFINED_BY_SYS_MOUNT
1105 # include <sys/mount.h>
1107 # ifdef STATFS_DEFINED_BY_SYS_VFS
1108 # include <sys/vfs.h>
1110 # ifdef STATFS_DEFINED_BY_SYS_STATFS
1111 # include <sys/statfs.h>
1115 [AC_DEFINE(STATFS_HAS_BFREE, 1, [Define if the struct statfs has the member bfree])])
1117 WINE_CHECK_STRUCT_MEMBER(statfs,f_bavail,
1118 [#include <sys/types.h>
1119 #ifdef HAVE_SYS_PARAM_H
1120 # include <sys/param.h>
1122 #ifdef STATFS_DEFINED_BY_SYS_MOUNT
1123 # include <sys/mount.h>
1125 # ifdef STATFS_DEFINED_BY_SYS_VFS
1126 # include <sys/vfs.h>
1128 # ifdef STATFS_DEFINED_BY_SYS_STATFS
1129 # include <sys/statfs.h>
1133 [AC_DEFINE(STATFS_HAS_BAVAIL, 1, [Define if the struct statfs has the member bavail])])
1135 dnl Check for file descriptor passing with msg_accrights
1136 WINE_CHECK_STRUCT_MEMBER(msghdr,msg_accrights,
1137 [#include <sys/types.h>
1138 #include <sys/socket.h>],
1139 [AC_DEFINE(HAVE_MSGHDR_ACCRIGHTS, 1, [Define if struct msghdr contains msg_accrights])])
1141 dnl Check for the sa_len member in struct sockaddr
1142 WINE_CHECK_STRUCT_MEMBER(sockaddr,sa_len,
1143 [#include <sys/types.h>
1144 #include <sys/socket.h>],
1145 [AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if struct sockaddr contains sa_len])])
1147 dnl Check for the sun_len member in struct sockaddr_un
1148 WINE_CHECK_STRUCT_MEMBER(sockaddr_un,sun_len,
1149 [#include <sys/types.h>
1150 #include <sys/socket.h>
1151 #include <sys/un.h>],
1152 [AC_DEFINE(HAVE_SOCKADDR_SUN_LEN, 1, [Define if struct sockaddr_un contains sun_len])])
1154 dnl *** check for the need to define __i386__
1158 AC_CACHE_CHECK([whether we need to define __i386__],ac_cv_cpp_def_i386,
1159 AC_EGREP_CPP(yes,[#ifndef __i386__
1162 ac_cv_cpp_def_i386="yes", ac_cv_cpp_def_i386="no"))
1165 if test "$ac_cv_cpp_def_i386" = "yes"
1167 CFLAGS="$CFLAGS -D__i386__"
1168 LINTFLAGS="$LINTFLAGS -D__i386__"
1171 dnl **** Generate output files ****
1173 dnl Macro to create non-existent directories from config.status
1174 dnl Usage: WINE_CONFIG_EXTRA_DIR(dirname)
1175 AC_DEFUN([WINE_CONFIG_EXTRA_DIR],
1176 [AC_CONFIG_COMMANDS([$1],[test -d "$1" || (AC_MSG_NOTICE([creating $1]) && mkdir "$1")])])
1178 AH_TOP([#define __WINE_CONFIG_H])
1180 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/d3ddevice)
1181 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dclipper)
1182 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/ddraw)
1183 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/direct3d)
1184 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dpalette)
1185 WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dsurface)
1186 WINE_CONFIG_EXTRA_DIR(dlls/dinput/joystick)
1187 WINE_CONFIG_EXTRA_DIR(dlls/dinput/keyboard)
1188 WINE_CONFIG_EXTRA_DIR(dlls/dinput/mouse)
1189 WINE_CONFIG_EXTRA_DIR(dlls/kernel/messages)
1190 WINE_CONFIG_EXTRA_DIR(dlls/user/dde)
1191 WINE_CONFIG_EXTRA_DIR(dlls/user/resources)
1192 WINE_CONFIG_EXTRA_DIR(dlls/wineps/data)
1193 WINE_CONFIG_EXTRA_DIR(include/wine)
1195 AC_CONFIG_COMMANDS([include/wine/version.h],
1196 [AC_MSG_NOTICE([creating include/wine/version.h])
1197 cat >$tmp/version.h <<CEOF
1198 /* Generated automatically by configure; DO NOT EDIT! */
1199 #define WINE_RELEASE_INFO "Wine version $wine_version"
1201 if cmp -s $tmp/version.h include/wine/version.h 2>/dev/null; then
1202 AC_MSG_NOTICE([include/wine/version.h is unchanged])
1203 rm -f $tmp/version.h
1205 rm -f include/wine/version.h
1206 mv $tmp/version.h include/wine/version.h
1208 [wine_version=$PACKAGE_VERSION])
1210 MAKE_RULES=Make.rules
1211 AC_SUBST_FILE(MAKE_RULES)
1213 MAKE_DLL_RULES=dlls/Makedll.rules
1214 AC_SUBST_FILE(MAKE_DLL_RULES)
1216 MAKE_PROG_RULES=programs/Makeprog.rules
1217 AC_SUBST_FILE(MAKE_PROG_RULES)
1222 programs/Makeprog.rules
1228 dlls/advapi32/Makefile
1229 dlls/avicap32/Makefile
1230 dlls/avifil32/Makefile
1231 dlls/comctl32/Makefile
1232 dlls/commdlg/Makefile
1233 dlls/crtdll/Makefile
1234 dlls/crypt32/Makefile
1235 dlls/dciman32/Makefile
1237 dlls/devenum/Makefile
1238 dlls/dinput/Makefile
1240 dlls/dplayx/Makefile
1241 dlls/dsound/Makefile
1245 dlls/imagehlp/Makefile
1247 dlls/kernel/Makefile
1248 dlls/lzexpand/Makefile
1249 dlls/mapi32/Makefile
1253 dlls/msimg32/Makefile
1254 dlls/msnet32/Makefile
1255 dlls/msrle32/Makefile
1256 dlls/msvcrt/Makefile
1257 dlls/msvcrt20/Makefile
1258 dlls/msvideo/Makefile
1259 dlls/netapi32/Makefile
1261 dlls/odbc32/Makefile
1263 dlls/oleaut32/Makefile
1264 dlls/olecli/Makefile
1265 dlls/oledlg/Makefile
1266 dlls/olepro32/Makefile
1267 dlls/olesvr/Makefile
1268 dlls/opengl32/Makefile
1271 dlls/quartz/Makefile
1272 dlls/rasapi32/Makefile
1273 dlls/richedit/Makefile
1274 dlls/rpcrt4/Makefile
1275 dlls/serialui/Makefile
1276 dlls/setupapi/Makefile
1277 dlls/shdocvw/Makefile
1278 dlls/shell32/Makefile
1279 dlls/shfolder/Makefile
1280 dlls/shlwapi/Makefile
1282 dlls/tapi32/Makefile
1283 dlls/ttydrv/Makefile
1285 dlls/urlmon/Makefile
1287 dlls/version/Makefile
1288 dlls/win32s/Makefile
1289 dlls/winaspi/Makefile
1290 dlls/winedos/Makefile
1291 dlls/wineps/Makefile
1292 dlls/wininet/Makefile
1294 dlls/winmm/joystick/Makefile
1295 dlls/winmm/mcianim/Makefile
1296 dlls/winmm/mciavi/Makefile
1297 dlls/winmm/mcicda/Makefile
1298 dlls/winmm/mciseq/Makefile
1299 dlls/winmm/mciwave/Makefile
1300 dlls/winmm/midimap/Makefile
1301 dlls/winmm/wavemap/Makefile
1302 dlls/winmm/wineoss/Makefile
1303 dlls/winnls/Makefile
1304 dlls/winsock/Makefile
1305 dlls/winspool/Makefile
1306 dlls/wintrust/Makefile
1308 dlls/wsock32/Makefile
1309 dlls/x11drv/Makefile
1310 documentation/Makefile
1313 graphics/enhmetafiledrv/Makefile
1314 graphics/metafiledrv/Makefile
1315 graphics/win16drv/Makefile
1316 graphics/x11drv/Makefile
1330 programs/avitools/Makefile
1331 programs/clock/Makefile
1332 programs/cmdlgtst/Makefile
1333 programs/control/Makefile
1334 programs/notepad/Makefile
1335 programs/osversioncheck/Makefile
1336 programs/progman/Makefile
1337 programs/regapi/Makefile
1338 programs/regtest/Makefile
1339 programs/uninstaller/Makefile
1340 programs/view/Makefile
1341 programs/wcmd/Makefile
1342 programs/wineconsole/Makefile
1343 programs/winemine/Makefile
1344 programs/winetest/Makefile
1345 programs/winhelp/Makefile
1346 programs/winver/Makefile
1351 tools/winapi/Makefile
1352 tools/winebuild/Makefile
1353 tools/winedump/Makefile
1360 windows/x11drv/Makefile ])
1364 if test "$have_x" = "no"
1367 echo "*** Warning: X development files not found. Wine will be built without"
1368 echo "*** X support, which currently does not work, and would probably not be"
1369 echo "*** what you want anyway. You will need to install devel packages of"
1370 echo "*** Xlib/Xfree86 at the very least."
1373 if test "$ac_cv_lib_ncurses_resizeterm" = "no" -a "$ac_cv_lib_ncurses_waddch" = "yes"
1376 echo "*** Warning: resizeterm not found in ncurses. Wine will be built without"
1377 echo "*** terminal resize support. Consider upgrading ncurses."
1380 if test "$wine_cv_libc_reentrant" = "no"
1383 echo "*** Warning: non-reentrant libc detected. Wine will be built without"
1384 echo "*** threading support. Consider upgrading libc to a more recent"
1385 echo "*** reentrant version of libc."
1388 if test "$wine_cv_opengl_version_OK" = "no"
1391 echo "*** Warning: old Mesa headers detected. Wine will be built without Direct3D"
1392 echo "*** support. Consider upgrading your Mesa libraries (http://www.mesa3d.org/)."
1395 if test "$wine_cv_opengl_version_threadsafe" = "yes" -a "x$enable_opengl" = "x"
1398 echo "*** Warning: the OpenGL version you have installed relies on libpthread for"
1399 echo "*** thread-safety. To prevent crashes, OpenGL support has been removed."
1400 echo "*** A fix for glibc 2.1.3 that seems to work is included in this version of Wine,"
1401 echo "*** start configure with '--enable-opengl' to force OpenGL support."
1404 if test "$wine_cv_opengl_version_threadsafe" = "yes" -a "x$enable_opengl" = "xyes"
1407 echo "*** Warning: you explicitly linked in a thread-safe OpenGL version. If you"
1408 echo "*** experience unusual crashes on DirectDraw games, try first to disable OpenGL"
1409 echo "*** support before reporting bugs."
1412 if test "$wine_cv_warn_cups_h" = "yes"
1415 echo "*** Note: You have cups runtime libraries, but no development"
1416 echo "*** libraries. Install the cups-devel package or whichever package"
1417 echo "*** contains cups.h to enable CUPS support in Wine."
1420 if test "$wine_cv_msg_freetype" = "yes"
1423 echo "*** Note: Your system appears to have the FreeType 2 runtime libraries"
1424 echo "*** installed, but 'freetype-config' is not in your PATH. Install the"
1425 echo "*** freetype-devel package (or its equivalent on your distribution) to"
1426 echo "*** enable Wine to use TrueType fonts."
1430 echo "Configure finished. Do 'make depend && make' to compile Wine."
1433 dnl Local Variables:
1434 dnl comment-start: "dnl "
1436 dnl comment-start-skip: "\\bdnl\\b\\s *"
1437 dnl compile-command: "autoconf"