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,[wine-devel@winehq.org])
9 AC_CONFIG_SRCDIR(server/atom.c)
10 AC_CONFIG_HEADERS(include/config.h)
11 AC_CONFIG_AUX_DIR(tools)
13 dnl **** Command-line arguments ****
15 AC_ARG_ENABLE(win16, AC_HELP_STRING([--disable-win16],[do not include Win16 support]))
16 AC_ARG_ENABLE(win64, AC_HELP_STRING([--enable-win64], [build a Win64 emulator on AMD64 (won't run Win32 binaries)]))
18 AC_ARG_WITH(opengl, AC_HELP_STRING([--without-opengl],[do not use OpenGL]))
19 AC_ARG_WITH(curses, AC_HELP_STRING([--without-curses],[do not use curses]))
20 AC_ARG_WITH(wine-tools,AC_HELP_STRING([--with-wine-tools=<dir>],[use Wine tools from directory <dir>]))
25 if test "x$enable_win64" != "xyes"
27 test -n "$CC" || CC="gcc -m32"
28 test -n "$LD" || LD="ld -m elf_i386"
29 test -n "$AS" || AS="as --32"
35 dnl enable_win16 defaults to yes on x86, to no on other CPUs
38 if test "x$enable_win16" != "xno"
45 AC_SUBST(WIN16_FILES,"\$(WIN16_FILES)")
46 AC_SUBST(WIN16_INSTALL,"\$(WIN16_INSTALL)")
47 if test "x$enable_win16" != "xyes"
53 dnl **** Check for some programs ****
58 dnl We can't use AC_PROG_CPP for winegcc, it uses by default $(CC) -E
59 AC_CHECK_TOOL(CPPBIN,cpp,cpp)
61 AC_CACHE_CHECK([for the directory containing the Wine tools], wine_cv_toolsdir,
62 [if test -z "$with_wine_tools"; then
63 if test "$cross_compiling" = "yes"; then
64 AC_MSG_ERROR([you must use the --with-wine-tools option when cross-compiling.])
66 wine_cv_toolsdir="\$(TOPOBJDIR)"
68 elif test -d "$with_wine_tools/tools/winebuild"; then
69 case $with_wine_tools in
70 /*) wine_cv_toolsdir="$with_wine_tools" ;;
71 *) wine_cv_toolsdir="\$(TOPOBJDIR)/$with_wine_tools" ;;
74 AC_MSG_ERROR([could not find Wine tools in $with_wine_tools.])
76 AC_SUBST(TOOLSDIR,$wine_cv_toolsdir)
81 dnl **** Just additional warning checks, since AC_PROG just sets 'lex' even
82 dnl **** without one present.
83 AC_CHECK_PROGS(XLEX,$LEX flex lex,none)
84 if test "$XLEX" = "none"
86 AC_MSG_ERROR([no suitable lex found. Please install the 'flex' package.])
90 AC_CHECK_PROGS(BISON,bison,none)
91 if test "$BISON" = "none"
93 AC_MSG_ERROR([no suitable bison found. Please install the 'bison' package.])
96 AC_CHECK_TOOLS(AS,[gas as],as)
97 AC_CHECK_TOOL(LD,ld,ld)
98 AC_CHECK_TOOL(AR,ar,ar)
100 AC_CHECK_TOOL(STRIP,strip,strip)
101 AC_CHECK_TOOL(WINDRES,windres,false)
105 AC_PATH_PROG(LDCONFIG, ldconfig, true, [/sbin /usr/sbin $PATH])
107 dnl Prepend src dir to install path dir if it's a relative path
109 [[\\/$]]* | ?:[[\\/]]* ) ;;
110 *) INSTALL="\\\$(TOPSRCDIR)/$INSTALL" ;;
114 AC_CHECK_PROGS(LINT, lclint lint)
115 if test "$LINT" = "lint"
117 LINTFLAGS="$LINTFLAGS -errchk=%all,no%longptr64 -errhdr=%user -Ncheck=macro -Nlevel=4"
118 dnl LINTFLAGS='-D_SIZE_T "-Dsize_t=unsigned long" -errchk=longptr64'
123 dnl Check for various programs
124 AC_CHECK_PROGS(FONTFORGE, fontforge, false)
125 AC_CHECK_PROGS(PKG_CONFIG, pkg-config, false)
129 AC_PATH_PROG(PRELINK, prelink, false, [/sbin /usr/sbin $PATH])
133 dnl **** Check for some libraries ****
135 dnl Check for -li386 for NetBSD and OpenBSD
136 AC_CHECK_LIB(i386,i386_set_ldt)
137 dnl Check for -lossaudio for NetBSD
138 AC_CHECK_LIB(ossaudio,_oss_ioctl)
139 dnl Check for -lnsl for Solaris
140 AC_CHECK_FUNCS(gethostbyname,,AC_CHECK_LIB(nsl,gethostbyname))
141 dnl Check for -lsocket for Solaris
142 AC_CHECK_FUNCS(connect,,AC_CHECK_LIB(socket,connect))
143 dnl Check for -lresolv for Solaris
144 AC_CHECK_FUNCS(inet_aton,,AC_CHECK_LIB(resolv,inet_aton))
145 dnl Check for -lxpg4 for FreeBSD
146 AC_CHECK_LIB(xpg4,_xpg4_setrunelocale)
147 dnl Check for -lpthread
148 AC_CHECK_LIB(pthread,pthread_create,AC_SUBST(LIBPTHREAD,"-lpthread"))
152 AC_SUBST(OPENGLFILES,"")
153 AC_SUBST(GLU32FILES,"")
154 AC_SUBST(OPENGL_LIBS,"")
156 dnl **** Check for header files ****
159 AudioUnit/AudioUnit.h \
160 CoreAudio/CoreAudio.h \
173 fontconfig/fontconfig.h \
199 machine/soundcard.h \
270 dnl **** Checks for headers that depend on other ones ****
272 AC_CHECK_HEADERS([sys/mount.h sys/statfs.h sys/user.h sys/vfs.h],,,
273 [#include <sys/types.h>
275 # include <sys/param.h>
278 AC_CHECK_HEADERS([net/if.h net/if_arp.h net/if_dl.h net/if_types.h net/route.h netipx/ipx.h],,,
279 [#include <sys/types.h>
280 #if HAVE_SYS_SOCKET_H
281 # include <sys/socket.h>
284 AC_CHECK_HEADERS([linux/ipx.h],,,
285 [#include <sys/types.h>
286 #ifdef HAVE_ASM_TYPES_H
287 # include <asm/types.h>
289 #if HAVE_SYS_SOCKET_H
290 # include <sys/socket.h>
293 AC_CHECK_HEADERS([resolv.h],,,
294 [#include <sys/types.h>
295 #if HAVE_SYS_SOCKET_H
296 # include <sys/socket.h>
298 #if HAVE_NETINET_IN_H
299 # include <netinet/in.h>
301 #if HAVE_ARPA_NAMESER_H
302 # include <arpa/nameser.h>
305 AC_CHECK_HEADERS(ucontext.h,,,[#include <signal.h>])
307 AC_CHECK_HEADERS([linux/videodev.h],,,
308 [#ifdef HAVE_SYS_TIME_H
309 #include <sys/time.h>
311 #include <sys/types.h>
312 #ifdef HAVE_ASM_TYPES_H
313 #include <asm/types.h>
316 dnl Check for broken kernel header that doesn't define __user
317 AC_CHECK_HEADERS([linux/capi.h],,,[#define __user])
319 dnl **** Check for X11 ****
321 if test "$have_x" = "yes"
324 ac_save_CPPFLAGS="$CPPFLAGS"
325 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
327 dnl *** All of the following tests require X11/Xlib.h
328 AC_CHECK_HEADERS([X11/Xlib.h \
331 X11/extensions/shape.h \
332 X11/extensions/XInput.h \
333 X11/extensions/XShm.h \
334 X11/extensions/Xrandr.h \
335 X11/extensions/Xrender.h \
336 X11/extensions/xf86vmode.h],,,
337 [#ifdef HAVE_X11_XLIB_H
338 # include <X11/Xlib.h>
340 #ifdef HAVE_X11_XUTIL_H
341 # include <X11/Xutil.h>
344 dnl *** Check for X keyboard extension
345 if test "$ac_cv_header_X11_XKBlib_h" = "yes"
347 AC_CHECK_LIB(X11, XkbQueryExtension,
348 AC_DEFINE(HAVE_XKB, 1, [Define if you have the XKB extension]),,
349 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
352 dnl *** Check for X Shm extension
353 if test "$ac_cv_header_X11_extensions_XShm_h" = "yes"
355 AC_CHECK_LIB(Xext, XShmQueryExtension,
356 AC_DEFINE(HAVE_LIBXXSHM, 1, [Define if you have the X Shm extension]),,
357 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
360 dnl *** Check for X shape extension
361 if test "$ac_cv_header_X11_extensions_shape_h" = "yes"
363 AC_CHECK_LIB(Xext,XShapeQueryExtension,
364 AC_DEFINE(HAVE_LIBXSHAPE, 1, [Define if you have the X Shape extension]),,
365 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
368 dnl *** Check for XFree86 VMODE extension
369 if test "$ac_cv_header_X11_extensions_xf86vmode_h" = "yes"
371 AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryExtension,
372 [ AC_DEFINE(HAVE_LIBXXF86VM, 1, [Define if you have the Xxf86vm library])
373 X_PRE_LIBS="$X_PRE_LIBS -lXxf86vm"
375 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
378 dnl *** Check for X RandR extension
379 if test "$ac_cv_header_X11_extensions_Xrandr_h" = "yes"
381 AC_TRY_COMPILE([#include <X11/Xlib.h>
382 #include <X11/extensions/Xrandr.h>],[static typeof(XRRSetScreenConfigAndRate) * func;],
383 [AC_DEFINE(HAVE_LIBXRANDR, 1, [Define if you have the Xrandr library])])
386 dnl *** Check for Transform functions in Xrender
387 if test "$ac_cv_header_X11_extensions_Xrender_h" = "yes"
389 AC_CHECK_LIB(Xrender, XRenderSetPictureTransform,
390 [AC_DEFINE(HAVE_XRENDERSETPICTURETRANSFORM, 1,
391 [Define if Xrender has the XRenderSetPictureTransform function])],,
392 $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
394 dnl *** End of X11/Xlib.h check
396 dnl Check for the presence of OpenGL
397 if test "x$with_opengl" != "xno"
399 AC_CHECK_HEADERS(GL/gl.h GL/glx.h GL/glext.h GL/glu.h,,,
400 [#ifdef HAVE_GL_GLX_H
403 if test "$ac_cv_header_GL_gl_h" = "yes" -a "$ac_cv_header_GL_glx_h" = "yes"
405 dnl Check for some problems due to old Mesa versions
406 AC_CACHE_CHECK([for up-to-date OpenGL version], wine_cv_opengl_version_OK,
408 [#include <GL/gl.h>],
409 [GLenum test = GL_UNSIGNED_SHORT_5_6_5;],
410 [wine_cv_opengl_version_OK="yes"],
411 [wine_cv_opengl_version_OK="no"]
415 if test "$wine_cv_opengl_version_OK" = "yes"
417 dnl Check for the presence of the library
418 AC_CHECK_LIB(GL,glXCreateContext,
421 $X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS)
423 if test "$ac_cv_lib_GL_glXCreateContext" = "yes"
425 OPENGLFILES='$(OPENGLFILES)'
426 AC_DEFINE(HAVE_OPENGL, 1, [Define if OpenGL is present on the system])
428 if test -f /usr/X11R6/lib/libGL.a
430 AC_MSG_ERROR([/usr/X11R6/lib/libGL.a is present on your system.
431 This prevents linking to OpenGL. Delete the file and restart configure.])
435 dnl Check for GLU32 library.
436 AC_CHECK_LIB(GLU,gluLookAt,
437 [OPENGL_LIBS="$OPENGL_LIBS -lGLU"
438 GLU32FILES='$(GLU32FILES)']
440 $OPENGL_LIBS $X_LIBS $X_PRE_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS
444 dnl Check for glut32 library.
445 AC_CHECK_LIB(glut,glutMainLoop,
446 [AC_SUBST(GLUT_LIBS,"-lglut -lXmu -lXi")
447 AC_SUBST(GLUT32FILES,'$(GLUT32FILES)')],,
448 $OPENGL_LIBS $X_LIBS $X_PRE_LIBS -lXmu -lXi -lX11 $X_EXTRA_LIBS)
452 dnl **** Check for NAS ****
454 AC_CHECK_HEADERS(audio/audiolib.h,
455 [AC_CHECK_HEADERS(audio/soundlib.h,,,[#include <audio/audiolib.h>])
456 AC_CHECK_LIB(audio,AuCreateFlow,
457 [AC_DEFINE(HAVE_NAS,1,[Define if you have NAS including devel headers])
458 NASLIBS="-laudio -lXt $X_LIBS -lXext -lX11 $X_EXTRA_LIBS"],,
459 [-lXt $X_LIBS -lXext -lX11 $X_EXTRA_LIBS])])
461 CPPFLAGS="$ac_save_CPPFLAGS"
469 dnl **** Check for libxml2 ****
471 AC_SUBST(XML2LIBS,"")
472 AC_SUBST(XML2INCL,"")
473 AC_SUBST(XSLTLIBS,"")
474 AC_SUBST(XSLTINCL,"")
475 if test "$PKG_CONFIG" != "false"
477 ac_save_CPPFLAGS="$CPPFLAGS"
478 ac_xml_libs="`$PKG_CONFIG --libs libxml-2.0 2>/dev/null`"
479 ac_xml_cflags="`$PKG_CONFIG --cflags libxml-2.0 2>/dev/null`"
480 CPPFLAGS="$CPPFLAGS $ac_xml_cflags"
481 AC_CHECK_HEADERS(libxml/parser.h,
482 [AC_CHECK_LIB(xml2, xmlParseMemory,
483 [AC_DEFINE(HAVE_LIBXML2, 1, [Define if you have the libxml2 library])
484 XML2LIBS="$ac_xml_libs"
485 XML2INCL="$ac_xml_cflags"],,$ac_xml_libs)
486 AC_CHECK_LIB(xml2, xmlReadMemory,
487 [AC_DEFINE(HAVE_XMLREADMEMORY,1,[Define if libxml2 has the xmlReadMemory function])],,$ac_xml_libs)
489 CPPFLAGS="$ac_save_CPPFLAGS"
490 ac_xslt_libs="`$PKG_CONFIG --libs libxslt 2>/dev/null`"
491 ac_xslt_cflags="`$PKG_CONFIG --cflags libxslt 2>/dev/null`"
492 CPPFLAGS="$CPPFLAGS $ac_xslt_cflags"
493 AC_CHECK_HEADERS([libxslt/pattern.h libxslt/transform.h],
494 [AC_CHECK_LIB(xslt, xsltCompilePattern,
495 [AC_DEFINE(HAVE_LIBXSLT, 1, [Define if you have the libxslt library])
496 XSLTLIBS="$ac_xslt_libs"
497 XSLTINCL="$ac_xslt_cflags"],,$ac_xslt_libs)
499 [#ifdef HAVE_LIBXSLT_PATTERN_H
500 # include <libxslt/pattern.h>
502 CPPFLAGS="$ac_save_CPPFLAGS"
505 dnl **** Check for libhal ****
507 if test "$PKG_CONFIG" != "false"
509 ac_save_CPPFLAGS="$CPPFLAGS"
510 ac_hal_libs="`$PKG_CONFIG --libs hal 2>/dev/null`"
511 ac_hal_cflags="`$PKG_CONFIG --cflags hal 2>/dev/null`"
512 CPPFLAGS="$CPPFLAGS $ac_hal_cflags"
513 AC_CHECK_HEADERS([dbus/dbus.h hal/libhal.h])
514 if test "$ac_cv_header_dbus_dbus_h" = "yes" -a "$ac_cv_header_hal_libhal_h" = "yes"
516 AC_CHECK_LIB(hal, libhal_ctx_new,
517 [AC_CHECK_LIB(dbus-1, dbus_connection_close,
518 [AC_DEFINE(HAVE_LIBHAL, 1, [Define if you have the hal library])
519 HALINCL="$ac_hal_cflags"],,$ac_hal_libs)])
521 CPPFLAGS="$ac_save_CPPFLAGS"
524 dnl **** Check which curses lib to use ***
526 if test "x$with_curses" != "xno"
528 if test "$ac_cv_header_ncurses_h" = "yes"
530 AC_CHECK_LIB(ncurses,waddch,
531 [AC_DEFINE(HAVE_LIBNCURSES, 1, [Define if you have the ncurses library (-lncurses)])
532 CURSESLIBS="-lncurses"])
533 elif test "$ac_cv_header_curses_h" = "yes"
535 AC_CHECK_LIB(curses,waddch,
536 [AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have the curses library (-lcurses)])
537 CURSESLIBS="-lcurses"])
540 LIBS="$LIBS $CURSESLIBS"
541 AC_CHECK_FUNCS(mousemask)
546 dnl **** Check for SANE ****
547 AC_CHECK_PROG(sane_devel,sane-config,sane-config,no)
548 AC_SUBST(SANELIBS,"")
549 AC_SUBST(SANEINCL,"")
550 if test "$sane_devel" != "no"
552 SANELIBS="`$sane_devel --libs`"
553 SANEINCL="`$sane_devel --cflags`"
554 ac_save_CPPFLAGS="$CPPFLAGS"
556 CPPFLAGS="$CPPFLAGS $SANEINCL"
557 LIBS="$LIBS $SANELIBS"
558 AC_CHECK_HEADER(sane/sane.h,
559 [AC_CHECK_LIB(sane,sane_open,
560 [AC_DEFINE(HAVE_SANE, 1, [Define if we have SANE development environment])],
566 CPPFLAGS="$ac_save_CPPFLAGS"
569 dnl **** Check for libgphoto2 ****
570 AC_CHECK_PROG(gphoto2_devel,gphoto2-config,gphoto2-config,no)
571 AC_CHECK_PROG(gphoto2port_devel,gphoto2-port-config,gphoto2-port-config,no)
572 AC_SUBST(GPHOTO2LIBS,"")
573 AC_SUBST(GPHOTO2INCL,"")
574 if test "$gphoto2_devel" != "no" -a "$gphoto2port_devel" != "no"
576 GPHOTO2INCL="`$gphoto2_devel --cflags` `$gphoto2port_devel --cflags`"
578 for i in `$gphoto2_devel --libs` `$gphoto2port_devel --libs`
581 -L/usr/lib|-L/usr/lib64) ;;
582 -L*|-l*) GPHOTO2LIBS="$GPHOTO2LIBS $i";;
585 ac_save_CPPFLAGS="$CPPFLAGS"
587 CPPFLAGS="$CPPFLAGS $GPHOTO2INCL"
588 LIBS="$LIBS $GPHOTO2LIBS"
589 AC_CHECK_HEADER(gphoto2-camera.h,
590 [AC_CHECK_LIB(gphoto2,gp_camera_new,
591 [AC_DEFINE(HAVE_GPHOTO2, 1, [Define if we have libgphoto2 development environment])],
597 CPPFLAGS="$ac_save_CPPFLAGS"
600 dnl **** Check for the ICU library ****
601 if test "$ac_cv_header_unicode_ubidi_h" = "yes"
604 for i in ${ICU_LIB_DIR-/usr/lib}/libsicu ${ICU_LIB_DIR-/usr/lib}/libicu
606 TEST_ICUUC_LIB="${ICUUC_LIB-${i}uc.a}"
607 TEST_ICUDATA_LIB="${ICUDATA_LIB-${i}data.a}"
608 AC_MSG_CHECKING(whether can link with ICU libraries $TEST_ICUUC_LIB and $TEST_ICUDATA_LIB)
609 LIBS="$saved_libs $TEST_ICUUC_LIB $TEST_ICUDATA_LIB -lstdc++ -lgcc_s"
610 AC_TRY_LINK([#include <unicode/ubidi.h>],[ubidi_open()],
611 [AC_DEFINE(HAVE_ICU,1,[Define to 1 if the ICU libraries are installed])
612 AC_SUBST(ICULIBS,"$TEST_ICUUC_LIB $TEST_ICUDATA_LIB -lstdc++ -lgcc_s")
619 dnl **** Check for resolver library ***
620 AC_SUBST(RESOLVLIBS,"")
621 if test "$ac_cv_header_resolv_h" = "yes"
623 AC_CHECK_LIB(resolv, res_query,
624 [AC_DEFINE(HAVE_RESOLV, 1, [Define if you have the resolver library and header])
625 RESOLVLIBS="-lresolv"])
628 dnl **** Check for LittleCMS ***
629 AC_SUBST(LCMSLIBS,"")
630 if test "$ac_cv_header_lcms_h" = "yes" -o "$ac_cv_header_lcms_lcms_h" = "yes"
632 AC_CHECK_LIB(lcms, cmsOpenProfileFromFile,
633 [AC_DEFINE(HAVE_LCMS, 1, [Define if you have the LittleCMS development environment])
637 dnl **** Check for OpenLDAP ***
638 AC_SUBST(LDAPLIBS,"")
639 if test "$ac_cv_header_ldap_h" = "yes" -a "$ac_cv_header_lber_h" = "yes"
641 AC_CHECK_LIB(ldap_r, ldap_initialize,
642 [AC_CHECK_LIB(lber, ber_init,
643 [AC_DEFINE(HAVE_LDAP, 1, [Define if you have the OpenLDAP development environment])
644 LDAPLIBS="-lldap_r -llber"],,
647 WINE_CHECK_LIB_FUNCS(\
648 ldap_count_references \
649 ldap_first_reference \
650 ldap_next_reference \
651 ldap_parse_reference,
652 [$LDAPLIBS $LIBPTHREAD])
655 dnl **** Check for FreeType 2 ****
656 AC_SUBST(FREETYPELIBS,"")
657 AC_SUBST(FREETYPEINCL,"")
658 AC_CHECK_PROG(ft_devel,freetype-config,freetype-config,no)
659 if test "$ft_devel" = "no"
661 AC_CHECK_PROG(ft_devel2,freetype2-config,freetype2-config,no)
662 if test "$ft_devel2" = "freetype2-config"
668 if test "$ft_devel" = "no"
670 wine_cv_msg_freetype=yes
672 FREETYPELIBS=`$ft_devel --libs`
673 FREETYPEINCL=`$ft_devel --cflags`
674 AC_CHECK_LIB(freetype,FT_Init_FreeType,ft_lib=yes,ft_lib=no,$FREETYPELIBS)
675 if test "$ft_lib" = "no"
677 wine_cv_msg_freetype=yes
681 ac_save_CPPFLAGS="$CPPFLAGS"
682 CPPFLAGS="$FREETYPEINCL $CPPFLAGS"
683 AC_CHECK_HEADERS(ft2build.h \
684 freetype/freetype.h \
686 freetype/tttables.h \
688 freetype/ftsnames.h \
689 freetype/ttnameid.h \
691 freetype/ftwinfnt.h \
692 freetype/ftmodapi.h \
693 freetype/internal/sfnt.h,,,
695 #include <ft2build.h>
697 AC_TRY_CPP([#include <ft2build.h>
698 #include <freetype/fttrigon.h>],
699 [AC_DEFINE(HAVE_FREETYPE_FTTRIGON_H, 1,
700 [Define if you have the <freetype/fttrigon.h> header file.])
701 wine_cv_fttrigon=yes],
703 AC_CHECK_TYPES(FT_TrueTypeEngineType,,,[#include <freetype/ftmodapi.h>])
704 ac_save_CFLAGS="$CFLAGS"
705 CFLAGS="$CFLAGS $FREETYPELIBS"
706 AC_CHECK_FUNCS(FT_Load_Sfnt_Table)
707 CFLAGS="$ac_save_CFLAGS"
708 CPPFLAGS="$ac_save_CPPFLAGS"
709 dnl Check that we have at least freetype/freetype.h
710 if test "$ac_cv_header_freetype_freetype_h" = "yes" -a "$wine_cv_fttrigon" = "yes"
712 AC_DEFINE(HAVE_FREETYPE, 1, [Define if FreeType 2 is installed])
713 wine_cv_msg_freetype=no
717 wine_cv_msg_freetype=yes
722 dnl Only build the fonts dir if we have both freetype and fontforge
723 if test "$FONTFORGE" != "false" -a -n "$FREETYPELIBS"
725 AC_SUBST(FONTSSUBDIRS,"fonts")
728 dnl **** Check for parport (currently Linux only) ****
729 AC_CACHE_CHECK([for parport header/ppdev.h], ac_cv_c_ppdev,
731 [#include <linux/ppdev.h>],
732 [ioctl (1,PPCLAIM,0)],
733 [ac_cv_c_ppdev="yes"],
734 [ac_cv_c_ppdev="no"])
736 if test "$ac_cv_c_ppdev" = "yes"
738 AC_DEFINE(HAVE_PPDEV, 1, [Define if we can use ppdev.h for parallel port access])
741 dnl **** Check for va_copy ****
742 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
744 [#include <stdarg.h>],
748 [ac_cv_c_va_copy="yes"],
749 [ac_cv_c_va_copy="no"])
751 if test "$ac_cv_c_va_copy" = "yes"
753 AC_DEFINE(HAVE_VA_COPY, 1, [Define if we have va_copy])
755 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
757 [#include <stdarg.h>],
761 [ac_cv_c___va_copy="yes"],
762 [ac_cv_c___va_copy="no"])
764 if test "$ac_cv_c___va_copy" = "yes"
766 AC_DEFINE(HAVE___VA_COPY, 1, [Define if we have __va_copy])
769 dnl **** Check for sigsetjmp ****
770 AC_CACHE_CHECK([for sigsetjmp], ac_cv_c_sigsetjmp,
772 [#include <setjmp.h>],
775 siglongjmp( buf, 1 );],
776 [ac_cv_c_sigsetjmp="yes"],
777 [ac_cv_c_sigsetjmp="no"])
779 if test "$ac_cv_c_sigsetjmp" = "yes"
781 AC_DEFINE(HAVE_SIGSETJMP, 1, [Define to 1 if you have the sigsetjmp (and siglongjmp) function])
784 dnl **** Check for pthread_rwlock_t ****
785 AC_CHECK_TYPES([pthread_rwlock_t, pthread_rwlockattr_t],,,[#define _GNU_SOURCE
786 #include <pthread.h>])
788 dnl **** Check for pthread functions ****
789 WINE_CHECK_LIB_FUNCS(\
790 pthread_attr_get_np \
792 pthread_get_stackaddr_np \
793 pthread_get_stacksize_np,
796 dnl **** Check for aRts Sound Server ****
797 AC_PATH_PROG(ARTSCCONFIG, artsc-config)
798 if test x$ARTSCCONFIG != x -a x$ARTSCCONFIG != x'"$ARTSCCONFIG"';
801 for i in `$ARTSCCONFIG --cflags`
804 -I*) ARTSC_CFLAGS="$ARTSC_CFLAGS $i";;
808 for i in `$ARTSCCONFIG --libs`
811 -L/usr/lib|-L/usr/lib64) ;;
812 -L*|-l*) ARTSC_LIBS="$ARTSC_LIBS $i";;
815 save_CFLAGS="$CFLAGS"
816 CFLAGS="$CFLAGS $ARTSC_CFLAGS"
817 AC_CHECK_LIB(artsc,arts_init,
818 [AC_TRY_COMPILE([#include <artsc.h>],[arts_stream_t stream;],
819 [AC_SUBST(ARTSLIBS, $ARTSC_LIBS)
820 AC_SUBST(ARTSINCL, $ARTSC_CFLAGS)
821 AC_DEFINE(HAVE_ARTS, 1, [Define if you have ARTS sound server])])],,
823 CFLAGS="$save_CFLAGS"
826 dnl **** Check for EsounD ****
827 AC_PATH_PROG(ESDCONFIG, esd-config)
828 if test x$ESDCONFIG != x -a x$ESDCONFIG != x'"$ESDCONFIG"';
831 for i in `$ESDCONFIG --cflags`
834 -I*) ESD_CFLAGS="$ESD_CFLAGS $i";;
837 ESD_LIBS=`$ESDCONFIG --libs`
838 save_CFLAGS="$CFLAGS"
839 CFLAGS="$CFLAGS $ESD_CFLAGS"
840 AC_CHECK_LIB(esd,esd_open_sound,
841 [AC_SUBST(ESDLIBS, $ESD_LIBS)
842 AC_SUBST(ESDINCL, $ESD_CFLAGS)
843 AC_DEFINE(HAVE_ESD, 1, [Define if you have EsounD sound server])])
844 CFLAGS="$save_CFLAGS"
847 dnl **** Check for ALSA 1.x ****
848 AC_SUBST(ALSALIBS,"")
849 if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes"
851 AC_CHECK_LIB(asound,snd_pcm_hw_params_get_access,
852 [AC_TRY_COMPILE([#ifdef HAVE_ALSA_ASOUNDLIB_H
853 #include <alsa/asoundlib.h>
854 #elif defined(HAVE_SYS_ASOUNDLIB_H)
855 #include <sys/asoundlib.h>
857 [int ret = snd_pcm_hw_params_get_access(NULL, NULL)],
858 [AC_DEFINE(HAVE_ALSA,1,[Define if you have ALSA 1.x including devel headers])
859 ALSALIBS="-lasound"])])
862 dnl **** Check for libaudioio (which can be used to get solaris audio support) ****
864 AC_SUBST(AUDIOIOLIBS,"")
865 if test "$ac_cv_header_libaudioio_h" = "yes"
867 AC_CHECK_LIB(audioio,AudioIOGetVersion,
868 [AUDIOIOLIBS="-laudioio"
869 AC_DEFINE(HAVE_LIBAUDIOIO, 1, [Define if you have libaudioIO])])
872 dnl **** Check for capi4linux ****
874 if test "$ac_cv_header_capi20_h" = "yes" -a "$ac_cv_header_linux_capi_h" = "yes"
876 AC_CHECK_LIB(capi20,capi20_register,[AC_DEFINE(HAVE_CAPI4LINUX,1,[Define if you have capi4linux libs and headers])])
879 dnl **** Check for gif header usability ****
881 if test "$ac_cv_header_gif_lib_h" = "yes"
883 AC_TRY_COMPILE([#include <gif_lib.h>],[static typeof(DGifOpen) * func;],
884 AC_DEFINE(HAVE_GIF, 1, [Define if you have usable GIF headers]))
887 dnl **** Check for gcc specific options ****
889 AC_SUBST(EXTRACFLAGS,"")
890 if test "x${GCC}" = "xyes"
892 EXTRACFLAGS="-Wall -pipe"
894 dnl Check for strength-reduce bug
895 AC_CACHE_CHECK( [for gcc strength-reduce bug], ac_cv_c_gcc_strength_bug,
897 int L[[4]] = {0,1,2,3};
899 static int Array[[3]];
902 for(i=0; i<B; i++) Array[[i]] = i - 3;
903 for(i=0; i<4 - 1; i++) L[[i]] = L[[i + 1]];
906 exit( Array[[1]] != -2 || L[[2]] != 3);
908 ac_cv_c_gcc_strength_bug="no",
909 ac_cv_c_gcc_strength_bug="yes",
910 ac_cv_c_gcc_strength_bug="yes") )
911 if test "$ac_cv_c_gcc_strength_bug" = "yes"
913 EXTRACFLAGS="$EXTRACFLAGS -fno-strength-reduce"
916 dnl Check for -fshort-wchar
917 AC_CACHE_CHECK([for gcc -fshort-wchar support], ac_cv_c_gcc_fshort_wchar,
918 [WINE_TRY_CFLAGS([-fshort-wchar],
919 ac_cv_c_gcc_fshort_wchar="yes",ac_cv_c_gcc_fshort_wchar="no")])
920 if test "$ac_cv_c_gcc_fshort_wchar" = "yes"
922 AC_DEFINE(CC_FLAG_SHORT_WCHAR, "-fshort-wchar", [Specifies the compiler flag that forces a short wchar_t])
925 dnl Check for -fno-strict-aliasing
926 AC_CACHE_CHECK([for gcc -fno-strict-aliasing support], ac_cv_c_gcc_no_strict_aliasing,
927 [WINE_TRY_CFLAGS([-fno-strict-aliasing],
928 ac_cv_c_gcc_no_strict_aliasing="yes",ac_cv_c_gcc_no_strict_aliasing="no")])
929 if test "$ac_cv_c_gcc_no_strict_aliasing" = "yes"
931 EXTRACFLAGS="$EXTRACFLAGS -fno-strict-aliasing"
934 dnl Check for -gstabs+ option
935 AC_CACHE_CHECK([for gcc -gstabs+ support], ac_cv_c_gcc_gstabs,
936 [WINE_TRY_CFLAGS([-gstabs+],ac_cv_c_gcc_gstabs="yes", ac_cv_c_gcc_gstabs="no")])
937 if test "$ac_cv_c_gcc_gstabs" = "yes"
939 EXTRACFLAGS="$EXTRACFLAGS -gstabs+"
942 dnl Check for -Wdeclaration-after-statement option
943 AC_CACHE_CHECK([for gcc -Wdeclaration-after-statement support], ac_cv_c_gcc_decl_after_statement,
944 [WINE_TRY_CFLAGS([-Wdeclaration-after-statement],ac_cv_c_gcc_decl_after_statement="yes", ac_cv_c_gcc_decl_after_statement="no")])
945 if test "$ac_cv_c_gcc_decl_after_statement" = "yes"
947 EXTRACFLAGS="$EXTRACFLAGS -Wdeclaration-after-statement"
950 dnl Check for noisy string.h
951 saved_CFLAGS="$CFLAGS"
952 CFLAGS="$CFLAGS -Wpointer-arith -Werror"
953 AC_CACHE_CHECK([for broken string.h that generates warnings], ac_cv_c_string_h_warnings,
954 AC_TRY_COMPILE([#include <string.h>],[],
955 [ac_cv_c_string_h_warnings=no],[ac_cv_c_string_h_warnings=yes]))
956 CFLAGS="$saved_CFLAGS"
957 if test "$ac_cv_c_string_h_warnings" = "no"
959 EXTRACFLAGS="$EXTRACFLAGS -Wpointer-arith"
962 AC_SUBST(BUILTINFLAG,"")
963 saved_CFLAGS="$CFLAGS"
964 CFLAGS="$CFLAGS -Werror"
965 AC_CACHE_CHECK([for builtin wchar inlines], ac_cv_c_builtin_wchar_ctype,
967 [int iswlower(unsigned short);],
968 [ac_cv_c_builtin_wchar_ctype=no],[ac_cv_c_builtin_wchar_ctype=yes]))
969 CFLAGS="$saved_CFLAGS"
970 if test "$ac_cv_c_builtin_wchar_ctype" = "yes"
972 BUILTINFLAG="-fno-builtin"
976 dnl **** Check how to define a function in assembly code ****
978 AC_CACHE_CHECK([how to define a function in assembly code], ac_cv_asm_func_def,
980 ["\t.globl _ac_test\n\t.def _ac_test; .scl 2; .type 32; .endef\n_ac_test:\t.long 0"],,,
981 ac_cv_asm_func_def=".def",
982 [WINE_TRY_ASM_LINK(["\t.globl _ac_test\n\t.type _ac_test,@function\n_ac_test:\t.long 0"],,,
983 ac_cv_asm_func_def=".type @function",
984 [WINE_TRY_ASM_LINK(["\t.globl _ac_test\n\t.type _ac_test,2\n_ac_test:\t.long 0"],,,
985 ac_cv_asm_func_def=".type 2",
986 ac_cv_asm_func_def="unknown")])]))
988 AH_TEMPLATE(__ASM_FUNC,[Define to a macro to generate an assembly function directive])
989 case "$ac_cv_asm_func_def" in
991 AC_DEFINE([__ASM_FUNC(name)], [".def " __ASM_NAME(name) "; .scl 2; .type 32; .endef"]) ;;
993 AC_DEFINE([__ASM_FUNC(name)], [".type " __ASM_NAME(name) ",@function"]) ;;
995 AC_DEFINE([__ASM_FUNC(name)], [".type " __ASM_NAME(name) ",2"]) ;;
997 AC_DEFINE([__ASM_FUNC(name)], [""]) ;;
1000 dnl **** Check for underscore on external symbols ****
1002 AC_CACHE_CHECK([whether external symbols need an underscore prefix], ac_cv_c_extern_prefix,
1003 WINE_TRY_ASM_LINK([".globl _ac_test\n_ac_test:\t.long 0"],
1004 [extern int ac_test;],
1005 [if (ac_test) return 1],
1006 ac_cv_c_extern_prefix="yes",ac_cv_c_extern_prefix="no"))
1008 AH_TEMPLATE(__ASM_NAME,[Define to a macro to generate an assembly name from a C symbol])
1009 if test "$ac_cv_c_extern_prefix" = "yes"
1011 AC_DEFINE([__ASM_NAME(name)], ["_" name])
1013 AC_DEFINE([__ASM_NAME(name)], [name])
1016 dnl **** Check for working dll ****
1019 AC_SUBST(DLLFLAGS,"-D_REENTRANT")
1021 AC_SUBST(LDSHARED,"")
1022 AC_SUBST(LDDLLFLAGS,"")
1023 AC_SUBST(LIBEXT,"so")
1024 AC_SUBST(IMPLIBEXT,"def")
1028 AC_CHECK_TOOL(DLLTOOL,dlltool,false)
1029 AC_CHECK_TOOL(DLLWRAP,dllwrap,false)
1030 if test "$DLLWRAP" = "false"; then
1033 dnl FIXME - check whether dllwrap works correctly...
1037 dnl We can't build 16-bit NE dlls
1042 if test "$ac_cv_header_dlfcn_h" = "yes"
1044 AC_CHECK_FUNCS(dlopen,,
1045 [AC_CHECK_LIB(dl,dlopen,
1046 [AC_DEFINE(HAVE_DLOPEN,1,[Define if you have dlopen])
1049 WINE_CHECK_LIB_FUNCS(dladdr,[$DLLIBS])
1054 if test "$LIBEXT" = "so"
1056 DLLFLAGS="$DLLFLAGS -fPIC"
1058 AC_CACHE_CHECK([whether we can build a GNU style ELF dll], ac_cv_c_dll_gnuelf,
1059 [WINE_TRY_SHLIB_FLAGS([-fPIC -shared -Wl,-Bsymbolic],
1060 ac_cv_c_dll_gnuelf="yes",ac_cv_c_dll_gnuelf="no")])
1061 if test "$ac_cv_c_dll_gnuelf" = "yes"
1063 LDSHARED="\$(CC) -shared"
1064 LDDLLFLAGS="-shared -Wl,-Bsymbolic"
1065 AC_CACHE_CHECK([whether the linker accepts soname], ac_cv_c_sonames,
1066 [WINE_TRY_CFLAGS([-fPIC -shared -Wl,-soname,confest.so.1],
1067 ac_cv_c_sonames="yes",ac_cv_c_sonames="no")])
1068 if test "$ac_cv_c_sonames" = "yes"
1070 LDSHARED="\$(CC) -shared \$(SONAME:%=-Wl,-soname,%)"
1072 AC_CACHE_CHECK([check to see if -h soname is an alternate], ac_cv_c_h_sonames,
1073 [WINE_TRY_CFLAGS([-fPIC -shared -Wl,-h,confest.so.1],
1074 ac_cv_c_h_sonames="yes",ac_cv_c_h_sonames="no")])
1075 if test "$ac_cv_c_h_sonames" = "yes"
1077 LDSHARED="\$(CC) -shared \$(SONAME:%=-Wl,-h,%)"
1081 AC_CACHE_CHECK([whether the linker accepts -z defs], ac_cv_c_dll_zdefs,
1082 [WINE_TRY_CFLAGS([-fPIC -shared -Wl,-Bsymbolic,-z,defs],
1083 ac_cv_c_dll_zdefs="yes",ac_cv_c_dll_zdefs="no")])
1084 if test "$ac_cv_c_dll_zdefs" = "yes"
1086 LDDLLFLAGS="$LDDLLFLAGS,-z,defs"
1089 AC_CACHE_CHECK([whether the linker accepts -init and -fini], ac_cv_c_dll_init_fini,
1090 [WINE_TRY_CFLAGS([-fPIC -shared -Wl,-Bsymbolic,-init,__wine_spec_init,-fini,__wine_spec_fini],
1091 ac_cv_c_dll_init_fini="yes",ac_cv_c_dll_init_fini="no")])
1092 if test "$ac_cv_c_dll_init_fini" = "yes"
1094 LDDLLFLAGS="$LDDLLFLAGS,-init,__wine_spec_init,-fini,__wine_spec_fini"
1097 AC_CACHE_CHECK([whether the linker accepts version scripts], ac_cv_c_ld_version_scripts,
1098 [echo '{ global: *; };' >conftest.map
1099 WINE_TRY_CFLAGS([-fPIC -shared -Wl,--version-script=conftest.map],
1100 ac_cv_c_ld_version_scripts="yes",ac_cv_c_ld_version_scripts="no")
1101 rm -f conftest.map])
1102 if test "$ac_cv_c_ld_version_scripts" = "yes"
1104 LDSHARED="$LDSHARED \$(VERSCRIPT:%=-Wl,--version-script=%)"
1107 AC_CACHE_CHECK([whether the linker accepts --export-dynamic], ac_cv_c_export_dynamic,
1108 [WINE_TRY_CFLAGS([-fPIC -Wl,--export-dynamic],
1109 ac_cv_c_export_dynamic="yes",ac_cv_c_export_dynamic="no")])
1110 if test "$ac_cv_c_export_dynamic" = "yes"
1112 AC_SUBST(LDEXECFLAGS,["-Wl,--export-dynamic"])
1115 AC_CACHE_CHECK([whether the linker accepts --rpath], ac_cv_ld_rpath,
1116 [WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,\$ORIGIN/../lib],
1117 ac_cv_ld_rpath="yes",ac_cv_ld_rpath="no")])
1118 if test "$ac_cv_ld_rpath" = "yes"
1120 AC_SUBST(LDEXERPATH,["-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`"])
1121 AC_SUBST(LDDLLRPATH,["-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(dlldir) \$(libdir)\`"])
1125 *i[[3456789]]86* | x86_64)
1126 AC_CACHE_CHECK([whether we can relocate the executable to 0x7bf00000], ac_cv_ld_reloc_exec,
1127 [WINE_TRY_CFLAGS([-Wl,--section-start,.interp=0x7bf00400],
1128 ac_cv_ld_reloc_exec="yes", ac_cv_ld_reloc_exec="no")])
1129 if test "$ac_cv_ld_reloc_exec" = "yes"
1131 LDEXECFLAGS="$LDEXECFLAGS -Wl,--section-start,.interp=0x7bf00400"
1137 AC_CACHE_CHECK(whether we can build a UnixWare (Solaris) dll, ac_cv_c_dll_unixware,
1138 [WINE_TRY_SHLIB_FLAGS([-fPIC -Wl,-G,-h,conftest.so.1.0,-B,symbolic],
1139 ac_cv_c_dll_unixware="yes",ac_cv_c_dll_unixware="no")])
1140 if test "$ac_cv_c_dll_unixware" = "yes"
1142 LDSHARED="\$(CC) -Wl,-G \$(SONAME:%=-Wl,-h,%)"
1143 LDDLLFLAGS="-Wl,-G,-B,symbolic"
1146 AC_CACHE_CHECK(whether we can build a Mach-O (Mac OS X/Darwin) dll, ac_cv_c_dll_macho,
1147 [WINE_TRY_SHLIB_FLAGS([-bundle], ac_cv_c_dll_macho="yes", ac_cv_c_dll_macho="no")])
1148 if test "$ac_cv_c_dll_macho" = "yes"
1151 LDDLLFLAGS="-bundle -multiply_defined suppress"
1152 LDSHARED="\$(CC) -dynamiclib -install_name @executable_path/\`\$(RELPATH) \$(bindir) \$(libdir)\`/\$(DYNAME)"
1153 STRIP="$STRIP -u -r"
1154 dnl declare needed frameworks
1155 AC_SUBST(COREFOUNDATIONLIB,"-framework CoreFoundation")
1156 AC_SUBST(IOKITLIB,"-framework IOKit -framework CoreFoundation")
1157 AC_SUBST(LDEXECFLAGS,["-image_base 0x7bf00000 -Wl,-segaddr,WINE_DOS,0x00000000,-segaddr,WINE_SHARED_HEAP,0x7f000000"])
1158 if test "$ac_cv_header_CoreAudio_CoreAudio_h" = "yes" -a "$ac_cv_header_AudioUnit_AudioUnit_h" = "yes"
1160 dnl CoreServices needed by AudioUnit
1161 AC_SUBST(COREAUDIO,"-framework CoreAudio -framework AudioUnit -framework CoreServices")
1165 CFLAGS="$CFLAGS -ffixed-r13"
1166 LDDLLFLAGS="$LDDLLFLAGS -read_only_relocs warning"
1171 AC_CACHE_CHECK(whether we can build an HP-UX dll, ac_cv_c_dll_hpux,
1172 [WINE_TRY_SHLIB_FLAGS([-shared], ac_cv_c_dll_hpux="yes", ac_cv_c_dll_hpux="no")])
1173 if test "$ac_cv_c_dll_hpux" = "yes"
1177 LDDLLFLAGS="-shared -fPIC"
1178 LDSHARED="\$(CC) -shared"
1185 dnl Check for cross compiler to build test programs
1186 AC_SUBST(CROSSTEST,"")
1187 if test "$cross_compiling" = "no"
1189 AC_CHECK_PROGS(CROSSCC,i586-mingw32msvc-gcc i386-mingw32msvc-gcc i386-mingw32-gcc mingw-gcc,false)
1190 AC_CHECK_PROGS(DLLTOOL,i586-mingw32msvc-dlltool i386-mingw32msvc-dlltool i386-mingw32-dlltool mingw-dlltool,false)
1191 AC_CHECK_PROGS(CROSSWINDRES,i586-mingw32msvc-windres i386-mingw32msvc-windres i386-mingw32-windres mingw-windres,false)
1192 if test "$CROSSCC" != "false"; then CROSSTEST="\$(CROSSTEST)"; fi
1197 if test "$LIBEXT" = "a"; then
1199 [could not find a way to build shared libraries.
1200 It is currently not possible to build Wine without shared library
1201 (.so) support to allow transparent switch between .so and .dll files.
1202 If you are using Linux, you will need a newer binutils.]
1208 AC_SUBST(LDPATH,"PATH=\"\$(TOOLSDIR)/libs/wine:\$\$PATH\"") ;;
1210 AC_SUBST(LDPATH,"DYLD_LIBRARY_PATH=\"\$(TOOLSDIR)/libs/wine:\$\$DYLD_LIBRARY_PATH\"") ;;
1212 AC_SUBST(LDPATH,"LD_LIBRARY_PATH=\"\$(TOOLSDIR)/libs/wine:\$\$LD_LIBRARY_PATH\"") ;;
1215 dnl Mingw needs explicit msvcrt for linking libwine and winsock for wininet
1218 AC_SUBST(CRTLIBS,"-lmsvcrt")
1219 AC_SUBST(SOCKETLIBS,"-lws2_32")
1223 AC_SUBST(MAIN_BINARY,"wine-pthread") dnl Default value
1227 linux* | k*bsd*-gnu)
1228 AC_SUBST(MAIN_BINARY,"wine-glibc")
1229 AC_SUBST(EXTRA_BINARIES,"wine-kthread wine-pthread wine-preloader") ;;
1234 dnl **** Get the soname for libraries that we load dynamically ****
1236 if test "$LIBEXT" = "so" -o "$LIBEXT" = "dylib"
1238 WINE_GET_SONAME(X11,XCreateWindow,[$X_LIBS $X_EXTRA_LIBS])
1239 WINE_GET_SONAME(Xext,XextCreateExtension,[$X_LIBS -lX11 $X_EXTRA_LIBS])
1240 WINE_GET_SONAME(Xi,XOpenDevice,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
1241 WINE_GET_SONAME(Xrender,XRenderQueryExtension,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
1242 WINE_GET_SONAME(Xrandr,XRRQueryExtension,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
1243 WINE_GET_SONAME(freetype,FT_Init_FreeType,[$X_LIBS])
1244 WINE_GET_SONAME(GL,glXQueryExtension,[$X_LIBS $X_EXTRA_LIBS])
1245 WINE_GET_SONAME(dbus-1,dbus_error_init)
1246 WINE_GET_SONAME(hal,libhal_ctx_new)
1247 WINE_GET_SONAME(txc_dxtn,fetch_2d_texel_rgba_dxt1)
1248 WINE_GET_SONAME(cups,cupsGetDefault)
1249 WINE_GET_SONAME(jack,jack_client_new)
1250 WINE_GET_SONAME(fontconfig,FcInit)
1251 WINE_GET_SONAME(ssl,SSL_library_init)
1252 WINE_GET_SONAME(crypto,BIO_new_socket)
1253 WINE_GET_SONAME(ncurses,waddch)
1254 WINE_GET_SONAME(curses,waddch)
1255 WINE_GET_SONAME(jpeg,jpeg_start_decompress)
1256 WINE_GET_SONAME(ungif,DGifOpen)
1257 WINE_GET_SONAME(gif,DGifOpen)
1258 WINE_GET_SONAME(capi20,capi20_isinstalled)
1262 dnl **** Check for functions ****
1334 dnl Check for -lpoll for Mac OS X/Darwin
1335 if test "$ac_cv_func_poll" = no
1337 AC_CHECK_LIB(poll,poll,[AC_DEFINE(HAVE_POLL,1) AC_SUBST(LIBPOLL,"-lpoll")])
1340 dnl **** Check for types ****
1344 AC_CHECK_TYPES([mode_t, off_t, pid_t, size_t, ssize_t, long long, fsblkcnt_t, fsfilcnt_t])
1345 AC_CHECK_TYPES([sigset_t],,,[#include <signal.h>])
1346 AC_CHECK_TYPES([request_sense],,,[#include <linux/cdrom.h>])
1348 AC_CHECK_MEMBERS([struct ff_effect.direction],,,
1349 [#ifdef HAVE_LINUX_INPUT_H
1350 #include <linux/input.h>
1353 AC_CACHE_CHECK([for sigaddset],wine_cv_have_sigaddset,
1354 AC_TRY_LINK([#include <signal.h>],[sigset_t set; sigaddset(&set,SIGTERM);],
1355 wine_cv_have_sigaddset=yes,wine_cv_have_sigaddset=no))
1356 if test "$wine_cv_have_sigaddset" = "yes"
1358 AC_DEFINE(HAVE_SIGADDSET, 1, [Define if sigaddset is supported])
1362 AC_CACHE_CHECK([whether we can use re-entrant gethostbyname_r Linux style],
1363 wine_cv_linux_gethostbyname_r_6,
1369 struct hostent *result;
1376 res=gethostbyname_r(name,&he,buf,bufsize,&result,&errnr);
1377 res=gethostbyaddr_r(addr, addrlen, addrtype,&he,buf,bufsize,&result,&errnr);
1379 wine_cv_linux_gethostbyname_r_6=yes,
1380 wine_cv_linux_gethostbyname_r_6=no
1383 if test "$wine_cv_linux_gethostbyname_r_6" = "yes"
1385 AC_DEFINE(HAVE_LINUX_GETHOSTBYNAME_R_6, 1,
1386 [Define if Linux-style gethostbyname_r and gethostbyaddr_r are available])
1389 if test "$ac_cv_header_linux_joystick_h" = "yes"
1391 AC_CACHE_CHECK([whether linux/joystick.h uses the Linux 2.2+ API],
1392 wine_cv_linux_joystick_22_api,
1394 #include <sys/ioctl.h>
1395 #include <linux/joystick.h>
1397 struct js_event blub;
1398 #if !defined(JS_EVENT_AXIS) || !defined(JS_EVENT_BUTTON)
1399 #error "no 2.2 header"
1402 wine_cv_linux_joystick_22_api=yes,
1403 wine_cv_linux_joystick_22_api=no,
1404 wine_cv_linux_joystick_22_api=no
1407 if test "$wine_cv_linux_joystick_22_api" = "yes"
1409 AC_DEFINE(HAVE_LINUX_22_JOYSTICK_API, 1,
1410 [Define if <linux/joystick.h> defines the Linux 2.2 joystick API])
1414 dnl **** FIXME: what about mixed cases, where we need two of them? ***
1416 dnl Check for statfs members
1417 AC_CHECK_MEMBERS([struct statfs.f_bfree, struct statfs.f_bavail, struct statfs.f_frsize, struct statfs.f_ffree, struct statfs.f_favail, struct statfs.f_namelen],,,
1418 [#include <sys/types.h>
1419 #ifdef HAVE_SYS_PARAM_H
1420 # include <sys/param.h>
1422 #ifdef HAVE_SYS_MOUNT_H
1423 # include <sys/mount.h>
1425 #ifdef HAVE_SYS_VFS_H
1426 # include <sys/vfs.h>
1428 #ifdef HAVE_SYS_STATFS_H
1429 # include <sys/statfs.h>
1432 AC_CHECK_MEMBERS([struct statvfs.f_blocks],,,
1433 [#ifdef HAVE_SYS_STATVFS_H
1434 #include <sys/statvfs.h>
1437 dnl Check for socket structure members
1438 AC_CHECK_MEMBERS([struct msghdr.msg_accrights, struct sockaddr.sa_len, struct sockaddr_un.sun_len],,,
1439 [#include <sys/types.h>
1440 #ifdef HAVE_SYS_SOCKET_H
1441 # include <sys/socket.h>
1443 #ifdef HAVE_SYS_UN_H
1444 # include <sys/un.h>
1447 dnl Check for scsireq_t and sg_io_hdr_t members
1448 AC_CHECK_MEMBERS([scsireq_t.cmd, sg_io_hdr_t.interface_id],,,
1449 [#include <sys/types.h>
1450 #ifdef HAVE_SCSI_SG_H
1451 #include <scsi/sg.h>
1454 dnl Check for siginfo_t members
1455 AC_CHECK_MEMBERS([siginfo_t.si_fd],,,[#include <signal.h>])
1457 dnl Check for struct mtget members
1458 AC_CHECK_MEMBERS([struct mtget.mt_blksiz, struct mtget.mt_gstat, struct mtget.mt_blkno],,,
1459 [#include <sys/types.h>
1460 #ifdef HAVE_SYS_MTIO_H
1461 #include <sys/mtio.h>
1464 dnl Check for struct option
1465 AC_CHECK_MEMBERS([struct option.name],,,
1466 [#ifdef HAVE_GETOPT_H
1470 dnl Check for stat.st_blocks
1471 AC_CHECK_MEMBERS([struct stat.st_blocks])
1473 dnl Check for sin6_scope_id
1474 AC_CHECK_MEMBERS([struct sockaddr_in6.sin6_scope_id],,,
1475 [#ifdef HAVE_SYS_TYPES_H
1476 #include <sys/types.h>
1478 #ifdef HAVE_NETINET_IN_H
1479 #include <netinet/in.h>
1482 dnl Check for ns_msg ptr member
1483 AC_CHECK_MEMBERS([ns_msg._msg_ptr],,,
1484 [#ifdef HAVE_SYS_TYPES_H
1485 #include <sys/types.h>
1487 #ifdef HAVE_NETINET_IN_H
1488 # include <netinet/in.h>
1490 #ifdef HAVE_ARPA_NAMESER_H
1491 # include <arpa/nameser.h>
1494 dnl Check for the external timezone variables timezone and daylight
1495 AC_CACHE_CHECK([for timezone variable], ac_cv_have_timezone,
1496 AC_TRY_LINK([#include <time.h>],[timezone;],
1497 ac_cv_have_timezone="yes", ac_cv_have_timezone="no"))
1498 if test "$ac_cv_have_timezone" = "yes"
1500 AC_DEFINE(HAVE_TIMEZONE, 1, [Define if you have the timezone variable])
1502 AC_CACHE_CHECK([for daylight variable], ac_cv_have_daylight,
1503 AC_TRY_LINK([#include <time.h>],[daylight;],
1504 ac_cv_have_daylight="yes", ac_cv_have_daylight="no"))
1505 if test "$ac_cv_have_daylight" = "yes"
1507 AC_DEFINE(HAVE_DAYLIGHT, 1, [Define if you have the daylight variable])
1510 dnl *** check for the need to define platform-specific symbols
1513 *i[[3456789]]86*) WINE_CHECK_DEFINE([__i386__]) ;;
1514 *x86_64*) WINE_CHECK_DEFINE([__x86_64__])
1515 WINE_CHECK_DEFINE([_WIN64]) ;;
1516 *alpha*) WINE_CHECK_DEFINE([__ALPHA__]) ;;
1517 *sparc*) WINE_CHECK_DEFINE([__sparc__]) ;;
1518 *powerpc*) WINE_CHECK_DEFINE([__powerpc__]) ;;
1521 case $host_vendor in
1522 *sun*) WINE_CHECK_DEFINE([__sun__]) ;;
1525 dnl **** Generate output files ****
1527 AH_TOP([#define __WINE_CONFIG_H])
1529 WINE_CONFIG_EXTRA_DIR(dlls/gdi/enhmfdrv)
1530 WINE_CONFIG_EXTRA_DIR(dlls/gdi/mfdrv)
1531 WINE_CONFIG_EXTRA_DIR(dlls/kernel/messages)
1532 WINE_CONFIG_EXTRA_DIR(dlls/user/resources)
1533 WINE_CONFIG_EXTRA_DIR(dlls/wineps.drv/data)
1534 WINE_CONFIG_EXTRA_DIR(include/wine)
1536 MAKE_RULES=Make.rules
1537 AC_SUBST_FILE(MAKE_RULES)
1539 MAKE_DLL_RULES=dlls/Makedll.rules
1540 AC_SUBST_FILE(MAKE_DLL_RULES)
1542 MAKE_IMPLIB_RULES=dlls/Makeimplib.rules
1543 AC_SUBST_FILE(MAKE_IMPLIB_RULES)
1545 MAKE_TEST_RULES=dlls/Maketest.rules
1546 AC_SUBST_FILE(MAKE_TEST_RULES)
1548 MAKE_PROG_RULES=programs/Makeprog.rules
1549 AC_SUBST_FILE(MAKE_PROG_RULES)
1554 dlls/Makeimplib.rules
1556 programs/Makeprog.rules
1559 dlls/activeds/Makefile
1560 dlls/advapi32/Makefile
1561 dlls/advapi32/tests/Makefile
1562 dlls/advpack/Makefile
1563 dlls/advpack/tests/Makefile
1564 dlls/amstream/Makefile
1566 dlls/avicap32/Makefile
1567 dlls/avifil32/Makefile
1568 dlls/cabinet/Makefile
1569 dlls/cabinet/tests/Makefile
1570 dlls/capi2032/Makefile
1572 dlls/cfgmgr32/Makefile
1573 dlls/comcat/Makefile
1574 dlls/comcat/tests/Makefile
1575 dlls/comctl32/Makefile
1576 dlls/comctl32/tests/Makefile
1577 dlls/comdlg32/Makefile
1578 dlls/comdlg32/tests/Makefile
1579 dlls/compstui/Makefile
1580 dlls/crtdll/Makefile
1581 dlls/crypt32/Makefile
1582 dlls/crypt32/tests/Makefile
1583 dlls/cryptdll/Makefile
1584 dlls/cryptnet/Makefile
1585 dlls/ctl3d32/Makefile
1587 dlls/d3d8/tests/Makefile
1589 dlls/d3d9/tests/Makefile
1593 dlls/d3dxof/Makefile
1594 dlls/dbghelp/Makefile
1595 dlls/dciman32/Makefile
1597 dlls/ddraw/tests/Makefile
1598 dlls/devenum/Makefile
1599 dlls/dinput/Makefile
1600 dlls/dinput/tests/Makefile
1601 dlls/dinput8/Makefile
1602 dlls/dmband/Makefile
1603 dlls/dmcompos/Makefile
1605 dlls/dmloader/Makefile
1606 dlls/dmscript/Makefile
1607 dlls/dmstyle/Makefile
1608 dlls/dmsynth/Makefile
1609 dlls/dmusic/Makefile
1610 dlls/dmusic32/Makefile
1611 dlls/dnsapi/Makefile
1612 dlls/dnsapi/tests/Makefile
1614 dlls/dplayx/Makefile
1616 dlls/dpnhpast/Makefile
1617 dlls/dsound/Makefile
1618 dlls/dsound/tests/Makefile
1619 dlls/dswave/Makefile
1620 dlls/dxdiagn/Makefile
1621 dlls/dxerr8/Makefile
1622 dlls/dxerr9/Makefile
1623 dlls/dxguid/Makefile
1625 dlls/gdi/tests/Makefile
1627 dlls/glut32/Makefile
1628 dlls/gphoto2.ds/Makefile
1629 dlls/hhctrl.ocx/Makefile
1632 dlls/hlink/tests/Makefile
1633 dlls/iccvid/Makefile
1635 dlls/ifsmgr.vxd/Makefile
1636 dlls/imaadp32.acm/Makefile
1637 dlls/imagehlp/Makefile
1639 dlls/infosoft/Makefile
1640 dlls/inseng/Makefile
1641 dlls/iphlpapi/Makefile
1642 dlls/iphlpapi/tests/Makefile
1644 dlls/kernel/Makefile
1645 dlls/kernel/tests/Makefile
1647 dlls/lz32/tests/Makefile
1648 dlls/mapi32/Makefile
1649 dlls/mapi32/tests/Makefile
1650 dlls/mciavi32/Makefile
1651 dlls/mcicda/Makefile
1652 dlls/mciseq/Makefile
1653 dlls/mciwave/Makefile
1654 dlls/midimap/Makefile
1656 dlls/mlang/tests/Makefile
1657 dlls/mmdevldr.vxd/Makefile
1658 dlls/monodebg.vxd/Makefile
1660 dlls/mprapi/Makefile
1661 dlls/msacm32.drv/Makefile
1662 dlls/msacm32/Makefile
1663 dlls/msacm32/tests/Makefile
1664 dlls/msadp32.acm/Makefile
1666 dlls/mscms/tests/Makefile
1668 dlls/msftedit/Makefile
1669 dlls/msg711.acm/Makefile
1670 dlls/mshtml/Makefile
1671 dlls/mshtml/tests/Makefile
1673 dlls/msi/tests/Makefile
1674 dlls/msimg32/Makefile
1675 dlls/msisys.ocx/Makefile
1676 dlls/msnet32/Makefile
1677 dlls/msrle32/Makefile
1678 dlls/msvcrt/Makefile
1679 dlls/msvcrt/tests/Makefile
1680 dlls/msvcrt20/Makefile
1681 dlls/msvcrt40/Makefile
1682 dlls/msvcrtd/Makefile
1683 dlls/msvcrtd/tests/Makefile
1684 dlls/msvfw32/Makefile
1685 dlls/msvidc32/Makefile
1686 dlls/mswsock/Makefile
1687 dlls/msxml3/Makefile
1688 dlls/msxml3/tests/Makefile
1689 dlls/netapi32/Makefile
1690 dlls/netapi32/tests/Makefile
1691 dlls/newdev/Makefile
1693 dlls/ntdll/tests/Makefile
1694 dlls/ntdsapi/Makefile
1695 dlls/objsel/Makefile
1696 dlls/odbc32/Makefile
1697 dlls/odbccp32/Makefile
1699 dlls/ole32/tests/Makefile
1700 dlls/oleacc/Makefile
1701 dlls/oleaut32/Makefile
1702 dlls/oleaut32/tests/Makefile
1703 dlls/olecli32/Makefile
1704 dlls/oledlg/Makefile
1705 dlls/olepro32/Makefile
1706 dlls/olesvr32/Makefile
1707 dlls/opengl32/Makefile
1708 dlls/powrprof/Makefile
1710 dlls/psapi/tests/Makefile
1711 dlls/pstorec/Makefile
1713 dlls/quartz/Makefile
1714 dlls/quartz/tests/Makefile
1716 dlls/rasapi32/Makefile
1717 dlls/riched20/Makefile
1718 dlls/riched20/tests/Makefile
1719 dlls/riched32/Makefile
1720 dlls/rpcrt4/Makefile
1721 dlls/rpcrt4/tests/Makefile
1722 dlls/rsabase/Makefile
1723 dlls/rsabase/tests/Makefile
1724 dlls/rsaenh/Makefile
1725 dlls/rsaenh/tests/Makefile
1726 dlls/sane.ds/Makefile
1727 dlls/secur32/Makefile
1728 dlls/secur32/tests/Makefile
1729 dlls/security/Makefile
1730 dlls/sensapi/Makefile
1731 dlls/serialui/Makefile
1732 dlls/setupapi/Makefile
1733 dlls/setupapi/tests/Makefile
1735 dlls/shdocvw/Makefile
1736 dlls/shdocvw/tests/Makefile
1737 dlls/shell32/Makefile
1738 dlls/shell32/tests/Makefile
1739 dlls/shfolder/Makefile
1740 dlls/shlwapi/Makefile
1741 dlls/shlwapi/tests/Makefile
1742 dlls/snmpapi/Makefile
1743 dlls/spoolss/Makefile
1744 dlls/stdole2.tlb/Makefile
1745 dlls/stdole32.tlb/Makefile
1747 dlls/strmiids/Makefile
1748 dlls/tapi32/Makefile
1749 dlls/twain_32/Makefile
1750 dlls/unicows/Makefile
1752 dlls/urlmon/Makefile
1753 dlls/urlmon/tests/Makefile
1755 dlls/user/tests/Makefile
1756 dlls/userenv/Makefile
1758 dlls/usp10/tests/Makefile
1760 dlls/uxtheme/Makefile
1761 dlls/uxtheme/tests/Makefile
1762 dlls/vdhcp.vxd/Makefile
1763 dlls/vdmdbg/Makefile
1764 dlls/version/Makefile
1765 dlls/version/tests/Makefile
1766 dlls/vmm.vxd/Makefile
1767 dlls/vnbt.vxd/Makefile
1768 dlls/vnetbios.vxd/Makefile
1769 dlls/vtdapi.vxd/Makefile
1770 dlls/vwin32.vxd/Makefile
1771 dlls/w32skrnl/Makefile
1772 dlls/winecrt0/Makefile
1773 dlls/wined3d/Makefile
1774 dlls/winedos/Makefile
1775 dlls/winemp3.acm/Makefile
1776 dlls/wineps.drv/Makefile
1777 dlls/winex11.drv/Makefile
1778 dlls/wininet/Makefile
1779 dlls/wininet/tests/Makefile
1781 dlls/winmm/joystick/Makefile
1782 dlls/winmm/tests/Makefile
1783 dlls/winmm/winealsa/Makefile
1784 dlls/winmm/winearts/Makefile
1785 dlls/winmm/wineaudioio/Makefile
1786 dlls/winmm/winecoreaudio/Makefile
1787 dlls/winmm/wineesd/Makefile
1788 dlls/winmm/winejack/Makefile
1789 dlls/winmm/winenas/Makefile
1790 dlls/winmm/wineoss/Makefile
1791 dlls/winnls32/Makefile
1792 dlls/winspool.drv/Makefile
1793 dlls/winspool.drv/tests/Makefile
1794 dlls/wintab32/Makefile
1795 dlls/wintrust/Makefile
1796 dlls/wldap32/Makefile
1797 dlls/wnaspi32/Makefile
1799 dlls/ws2_32/Makefile
1800 dlls/ws2_32/tests/Makefile
1801 dlls/wsock32/Makefile
1802 dlls/wtsapi32/Makefile
1803 documentation/Makefile
1812 programs/clock/Makefile
1813 programs/cmdlgtst/Makefile
1814 programs/control/Makefile
1815 programs/eject/Makefile
1816 programs/expand/Makefile
1817 programs/explorer/Makefile
1818 programs/hh/Makefile
1819 programs/icinfo/Makefile
1820 programs/iexplore/Makefile
1821 programs/msiexec/Makefile
1822 programs/notepad/Makefile
1823 programs/oleview/Makefile
1824 programs/progman/Makefile
1825 programs/regedit/Makefile
1826 programs/regsvr32/Makefile
1827 programs/rpcss/Makefile
1828 programs/rundll32/Makefile
1829 programs/start/Makefile
1830 programs/taskmgr/Makefile
1831 programs/uninstaller/Makefile
1832 programs/view/Makefile
1833 programs/wcmd/Makefile
1834 programs/wineboot/Makefile
1835 programs/winebrowser/Makefile
1836 programs/winecfg/Makefile
1837 programs/wineconsole/Makefile
1838 programs/winedbg/Makefile
1839 programs/winefile/Makefile
1840 programs/winemenubuilder/Makefile
1841 programs/winemine/Makefile
1842 programs/winepath/Makefile
1843 programs/winetest/Makefile
1844 programs/winevdm/Makefile
1845 programs/winhelp/Makefile
1846 programs/winver/Makefile
1847 programs/wordpad/Makefile
1851 tools/winapi/Makefile
1852 tools/winebuild/Makefile
1853 tools/winedump/Makefile
1854 tools/winegcc/Makefile
1856 tools/wrc/Makefile])
1860 if test "$have_x" = "no"
1863 AC_MSG_WARN([X development files not found. Wine will be built without])
1864 AC_MSG_WARN([X support, which currently does not work, and probably])
1865 AC_MSG_WARN([isn't what you want anyway. You will need to install devel])
1866 AC_MSG_WARN([ packages of Xlib/Xfree86 at the very least.])
1869 if test "$wine_cv_opengl_version_OK" = "no"
1872 AC_MSG_WARN([Old Mesa headers detected. Wine will be built without Direct3D])
1873 AC_MSG_WARN([support. Consider upgrading your Mesa libraries (http://www.mesa3d.org/).])
1876 if test "$wine_cv_msg_freetype" = "yes"
1879 AC_MSG_WARN([Your system appears to have the FreeType 2 runtime libraries])
1880 AC_MSG_WARN([installed, but 'freetype-config' is not in your PATH. Install])
1881 AC_MSG_WARN([the freetype-devel package (or its equivalent on your distribution)])
1882 AC_MSG_WARN([to enable Wine to use TrueType fonts.])
1885 if test -z "$FONTSSUBDIRS"
1888 if test "$FONTFORGE" = "false"
1890 AC_MSG_WARN([FontForge is missing.])
1892 AC_MSG_WARN([FreeType is missing.])
1894 AC_MSG_WARN([Fonts will not be built. Dialog text may be invisible or unaligned.])
1897 if test -z "$ALSALIBS" -a \
1898 -z "$ARTSC_LIBS" -a \
1899 -z "$AUDIOIOLIBS" -a \
1902 -z "$ac_cv_lib_soname_jack" -a \
1903 "$ac_cv_header_sys_soundcard_h" != "yes" -a \
1904 "$ac_cv_header_machine_soundcard_h" != "yes" -a \
1905 "$ac_cv_header_soundcard_h" != "yes"
1908 AC_MSG_WARN([No sound system was found. Windows applications will be silent.])
1909 AC_MSG_WARN([The currently supported sound systems are:])
1910 AC_MSG_WARN([ALSA, ARTS, EsounD, AudioIO, Jack, NAS and OSS])
1914 echo "Configure finished. Do '${ac_make} depend && ${ac_make}' to compile Wine."
1917 dnl Local Variables:
1918 dnl comment-start: "dnl "
1920 dnl comment-start-skip: "\\bdnl\\b\\s *"
1921 dnl compile-command: "autoconf && autoheader"