Skip to content
Snippets Groups Projects
configure.ac 66.3 KiB
Newer Older
  • Learn to ignore specific revisions
  • Alexandre Julliard's avatar
    Alexandre Julliard committed
    dnl Process this file with autoconf to produce a configure script.
    
    dnl Original author: Michael Patra
    dnl See ChangeLog file for detailed change history.
    
    m4_define(WINE_VERSION,regexp(m4_include(VERSION),[version \([-.0-9A-Za-z]+\)],[\1]))
    
    
    AC_INIT([Wine],[WINE_VERSION],[wine-devel@winehq.org])
    
    AC_CONFIG_SRCDIR(server/atom.c)
    
    AC_CONFIG_HEADERS(include/config.h)
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    AC_CONFIG_AUX_DIR(tools)
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    dnl **** Command-line arguments ****
    
    
    AC_ARG_ENABLE(win16, AS_HELP_STRING([--disable-win16],[do not include Win16 support]))
    AC_ARG_ENABLE(win64, AS_HELP_STRING([--enable-win64],[build a Win64 emulator on AMD64 (won't run Win32 binaries)]))
    
    AC_ARG_WITH(opengl,    AS_HELP_STRING([--without-opengl],[do not use OpenGL]))
    AC_ARG_WITH(wine-tools,AS_HELP_STRING([--with-wine-tools=<dir>],[use Wine tools from directory <dir>]))
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    case $host in
      x86_64*linux*)
        if test "x$enable_win64" != "xyes"
        then
          test -n "$CC" || CC="gcc -m32"
    
          test -n "$CXX"|| CXX="g++ -m32"
    
          test -n "$LD" || LD="ld -m elf_i386"
          test -n "$AS" || AS="as --32"
    
          host_cpu="i386"
    
    dnl enable_win16 defaults to yes on x86, to no on other CPUs
    case $host_cpu in
      *i[[3456789]]86*)
        if test "x$enable_win16" != "xno" 
        then
          enable_win16="yes"
        fi
        ;;
    esac
       
    AC_SUBST(WIN16_FILES,"\$(WIN16_FILES)")
    AC_SUBST(WIN16_INSTALL,"\$(WIN16_INSTALL)")
    if test "x$enable_win16" != "xyes"
    then
      WIN16_FILES=""
      WIN16_INSTALL=""
    fi
    
    
    dnl check for out of tree build with unclean source tree
    case "$srcdir" in
     .) ;;
     *) if test -f "$srcdir/Makefile" -o -f "$srcdir/include/config.h"; then
          AC_MSG_ERROR([you are building out of the source tree, but the source tree contains object files.
    You need to run 'make distclean' in the source tree first.])
        fi ;;
    esac
    
    
    dnl **** Check for some programs ****
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    AC_PROG_MAKE_SET
    AC_PROG_CC
    
    dnl We can't use AC_PROG_CPP for winegcc, it uses by default $(CC) -E
    AC_CHECK_TOOL(CPPBIN,cpp,cpp)
    
    
    AC_CACHE_CHECK([for the directory containing the Wine tools], wine_cv_toolsdir,
      [if test -z "$with_wine_tools"; then
         if test "$cross_compiling" = "yes"; then
           AC_MSG_ERROR([you must use the --with-wine-tools option when cross-compiling.])
         else
           wine_cv_toolsdir="\$(TOPOBJDIR)"
         fi
       elif test -d "$with_wine_tools/tools/winebuild"; then
         case $with_wine_tools in
           /*) wine_cv_toolsdir="$with_wine_tools" ;;
           *)  wine_cv_toolsdir="\$(TOPOBJDIR)/$with_wine_tools" ;;
         esac
       else
         AC_MSG_ERROR([could not find Wine tools in $with_wine_tools.])
       fi])
    AC_SUBST(TOOLSDIR,$wine_cv_toolsdir)
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    AC_PATH_XTRA
    
    dnl Check for flex
    AC_CHECK_PROGS(FLEX,flex,none)
    if test "$FLEX" = "none"
    
      AC_MSG_ERROR([no suitable flex found. Please install the 'flex' package.])
    
    dnl Check for bison
    AC_CHECK_PROGS(BISON,bison,none)
    if test "$BISON" = "none"
    then
      AC_MSG_ERROR([no suitable bison found. Please install the 'bison' package.])
    fi
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    AC_PROG_RANLIB
    
    AC_CHECK_TOOL(STRIP,strip,strip)
    AC_CHECK_TOOL(WINDRES,windres,false)
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    AC_PROG_LN_S
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    WINE_PROG_LN
    
    AC_PATH_PROG(LDCONFIG, ldconfig, true, [/sbin /usr/sbin $PATH])
    
    AC_PROG_INSTALL
    dnl Prepend src dir to install path dir if it's a relative path
    case "$INSTALL" in
    
      [[\\/$]]* | ?:[[\\/]]* ) ;;
    
      *)  INSTALL="\\\$(TOPSRCDIR)/$INSTALL" ;;
    esac
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    dnl Check for lint
    AC_CHECK_PROGS(LINT, lclint lint)
    if test "$LINT" = "lint"
    then
      LINTFLAGS="$LINTFLAGS -errchk=%all,no%longptr64 -errhdr=%user -Ncheck=macro -Nlevel=4"
      dnl LINTFLAGS='-D_SIZE_T "-Dsize_t=unsigned long" -errchk=longptr64'
    fi
    AC_SUBST(LINT)
    AC_SUBST(LINTFLAGS)
    
    
    dnl Check for various programs
    AC_CHECK_PROGS(FONTFORGE, fontforge, false)
    
    AC_CHECK_PROGS(PKG_CONFIG, pkg-config, false)
    
        AC_PATH_PROG(PRELINK, prelink, false, [/sbin /usr/sbin $PATH])
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    dnl **** Check for some libraries ****
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    dnl Check for -li386 for NetBSD and OpenBSD
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    AC_CHECK_LIB(i386,i386_set_ldt)
    
    dnl Check for -lossaudio for NetBSD
    AC_CHECK_LIB(ossaudio,_oss_ioctl)
    
    dnl Check for -lpthread
    AC_CHECK_LIB(pthread,pthread_create,AC_SUBST(LIBPTHREAD,"-lpthread"))
    
    AC_SUBST(XLIB,"")
    AC_SUBST(XFILES,"")
    AC_SUBST(OPENGLFILES,"")
    AC_SUBST(GLU32FILES,"")
    AC_SUBST(OPENGL_LIBS,"")
    
    
    dnl **** Check for header files ****
    
    AC_CHECK_HEADERS(\
    
    	AudioUnit/AudioUnit.h \
    
    	CoreAudio/CoreAudio.h \
    
    	DiskArbitration/DiskArbitration.h \
    
    	asm/types.h \
    
    	elf.h \
    	float.h \
    	fontconfig/fontconfig.h \
    	getopt.h \
    	ieeefp.h \
    	io.h \
    	jack/jack.h \
    	jpeglib.h \
    
    	link.h \
    	linux/cdrom.h \
    	linux/compiler.h \
    	linux/hdreg.h \
    	linux/input.h \
    	linux/ioctl.h \
    	linux/joystick.h \
    	linux/major.h \
    	linux/param.h \
    	linux/serial.h \
    	linux/ucdrom.h \
    
    	mach/machine.h \
    
    	machine/limits.h \
    
    	netdb.h \
    	netinet/in.h \
    	netinet/in_systm.h \
    	netinet/tcp.h \
    	netinet/tcp_fsm.h \
    
    	poll.h \
    
    	process.h \
    	pthread.h \
    	pwd.h \
    	regex.h \
    	sched.h \
    	scsi/scsi.h \
    	scsi/scsi_ioctl.h \
    
    	sys/exec_elf.h \
    	sys/filio.h \
    	sys/ioctl.h \
    	sys/ipc.h \
    
    	sys/link.h \
    	sys/lwp.h \
    	sys/mman.h \
    	sys/modem.h \
    	sys/msg.h \
    
    	sys/scsiio.h \
    	sys/shm.h \
    	sys/signal.h \
    	sys/socket.h \
    
    	sys/statvfs.h \
    	sys/strtio.h \
    	sys/syscall.h \
    	sys/sysctl.h \
    	sys/time.h \
    	sys/times.h \
    	sys/uio.h \
    	sys/un.h \
    	sys/vm86.h \
    	sys/wait.h \
    	syscall.h \
    	termios.h \
    	unistd.h \
    	utime.h \
    	valgrind/memcheck.h
    )
    AC_HEADER_STAT()
    
    
    dnl **** Checks for headers that depend on other ones ****
    
    AC_CHECK_HEADERS([sys/mount.h sys/statfs.h sys/user.h sys/vfs.h],,,
        [#include <sys/types.h>
         #if HAVE_SYS_PARAM_H
         # include <sys/param.h>
         #endif])
    
    
    AC_CHECK_HEADERS([netinet/in_pcb.h netinet/ip_var.h net/if.h net/if_arp.h net/if_dl.h net/if_types.h net/route.h netipx/ipx.h],,,
    
        [#include <sys/types.h>
         #if HAVE_SYS_SOCKET_H
         # include <sys/socket.h>
    
         #if HAVE_SYS_SOCKETVAR_H
         # include <sys/socketvar.h>
    
         #endif
         #if HAVE_NETINET_IN_H
         # include <netinet/in.h>
    
    
    AC_CHECK_HEADERS([netinet/tcp_var.h],,,
        [#include <sys/types.h>
         #if HAVE_SYS_SOCKET_H
         # include <sys/socket.h>
         #endif
         #if HAVE_SYS_SOCKETVAR_H
         # include <sys/socketvar.h>
         #endif
         #if HAVE_NETINET_IN_H
         # include <netinet/in.h>
         #endif
         #ifdef HAVE_NETINET_TCP_H
         # include <netinet/tcp.h>
         #endif])
    
    AC_CHECK_HEADERS([linux/ipx.h],,,
        [#include <sys/types.h>
         #ifdef HAVE_ASM_TYPES_H
         # include <asm/types.h>
         #endif
         #if HAVE_SYS_SOCKET_H
         # include <sys/socket.h>
         #endif])
    
    
    AC_CHECK_HEADERS([resolv.h],,,
        [#include <sys/types.h>
         #if HAVE_SYS_SOCKET_H
         # include <sys/socket.h>
         #endif
         #if HAVE_NETINET_IN_H
         # include <netinet/in.h>
         #endif
         #if HAVE_ARPA_NAMESER_H
         # include <arpa/nameser.h>
         #endif])
    
    AC_CHECK_HEADERS(ucontext.h,,,[#include <signal.h>])
    
    
    AC_CHECK_HEADERS([sys/thr.h],,,
    [#include <sys/types.h>
    #if HAVE_UCONTEXT_H
    #include <ucontext.h>
    #endif])
    
    
    AC_CHECK_HEADERS([pthread_np.h],,,
    [#ifdef HAVE_PTHREAD_H
    #include <pthread.h>
    #endif])
    
    
    AC_CHECK_HEADERS([linux/videodev.h],,,
    
    [#ifdef HAVE_SYS_TIME_H
    #include <sys/time.h>
    #endif
    #include <sys/types.h>
    #ifdef HAVE_ASM_TYPES_H
    #include <asm/types.h>
    #endif])
    
    
    dnl Check for broken kernel header that doesn't define __user
    AC_CHECK_HEADERS([linux/capi.h],,,[#define __user])
    
    
    dnl **** Check for working dll ****
    
    AC_SUBST(DLLEXT,"")
    AC_SUBST(DLLFLAGS,"-D_REENTRANT")
    AC_SUBST(LDSHARED,"")
    AC_SUBST(LDDLLFLAGS,"")
    AC_SUBST(LIBEXT,"so")
    AC_SUBST(IMPLIBEXT,"def")
    AC_SUBST(LDRPATH_INSTALL,"")
    AC_SUBST(LDRPATH_LOCAL,"")
    WINE_PATH_LDD
    
    case $host_os in
      cygwin*|mingw32*)
        AC_CHECK_TOOL(DLLTOOL,dlltool,false)
        AC_CHECK_TOOL(DLLWRAP,dllwrap,false)
        AC_CHECK_TOOL(MINGWAR,ar,false)
        if test "$DLLWRAP" = "false"; then
          LIBEXT="a"
        else
          dnl FIXME - check whether dllwrap works correctly...
          LIBEXT="dll"
        fi
        IMPLIBEXT="a"
        dnl We can't build 16-bit NE dlls
        WIN16_FILES=""
        WIN16_INSTALL=""
        ;;
      darwin*|macosx*)
        DLLEXT=".so"
        LIBEXT="dylib"
        DLLFLAGS="$DLLFLAGS -fPIC"
        LDDLLFLAGS="-bundle -multiply_defined suppress"
        LIBWINE_LDFLAGS="-multiply_defined suppress"
        LDSHARED="\$(CC) -dynamiclib"
        STRIP="$STRIP -x"
        LDRPATH_LOCAL="&& install_name_tool -change @executable_path/\`\$(RELPATH) \$(bindir) \$(libdir)\`/libwine.1.dylib @executable_path/\$(TOPOBJDIR)/libs/wine/libwine.1.dylib \$@ || \$(RM) \$@"
        dnl declare needed frameworks
    
        AC_SUBST(SECURITYLIB,"-framework Security -framework CoreFoundation")
    
        AC_SUBST(COREFOUNDATIONLIB,"-framework CoreFoundation")
        AC_SUBST(IOKITLIB,"-framework IOKit -framework CoreFoundation")
        AC_SUBST(LDEXECFLAGS,["-image_base 0x7bf00000 -Wl,-segaddr,WINE_DOS,0x00000000,-segaddr,WINE_SHARED_HEAP,0x7f000000"])
        if test "$ac_cv_header_DiskArbitration_DiskArbitration_h" = "yes"
        then
            dnl DiskArbitration API is not public on Darwin < 8.0, use it only if header found
            AC_SUBST(DISKARBITRATIONLIB,"-framework DiskArbitration -framework CoreFoundation")
        fi
        if test "$ac_cv_header_CoreAudio_CoreAudio_h" = "yes" -a "$ac_cv_header_AudioUnit_AudioUnit_h" = "yes"
        then
            dnl CoreServices needed by AudioUnit
            AC_SUBST(COREAUDIO,"-framework CoreAudio -framework AudioUnit -framework CoreServices -framework AudioToolbox -framework CoreMIDI")
        fi
        case $host_cpu in
          *powerpc*)
            LDDLLFLAGS="$LDDLLFLAGS -read_only_relocs warning"  dnl FIXME
            ;;
        esac
        dnl Enable quartz driver on Mac OS X
        if test "$ac_cv_header_Carbon_Carbon_h" = "yes"
        then
            AC_SUBST(CARBONLIB,"-framework Carbon")
            QUARTZFILES='$(QUARTZFILES)'
        fi
        ;;
      *)
        DLLFLAGS="$DLLFLAGS -fPIC"
        DLLEXT=".so"
        AC_CACHE_CHECK([whether we can build a GNU style ELF dll], ac_cv_c_dll_gnuelf,
            [WINE_TRY_SHLIB_FLAGS([-fPIC -shared -Wl,-Bsymbolic],
                                  ac_cv_c_dll_gnuelf="yes",ac_cv_c_dll_gnuelf="no")])
        if test "$ac_cv_c_dll_gnuelf" = "yes"
        then
          LDSHARED="\$(CC) -shared"
          LDDLLFLAGS="-shared -Wl,-Bsymbolic"
          WINE_TRY_CFLAGS([-fPIC -shared -Wl,-soname,confest.so.1],
                          [LDSHARED="\$(CC) -shared \$(SONAME:%=-Wl,-soname,%)"],
                          [WINE_TRY_CFLAGS([-fPIC -shared -Wl,-h,confest.so.1],
                                           [LDSHARED="\$(CC) -shared \$(SONAME:%=-Wl,-h,%)"])])
    
          WINE_TRY_CFLAGS([-fPIC -shared -Wl,-Bsymbolic,-z,defs], [LDDLLFLAGS="$LDDLLFLAGS,-z,defs"])
    
          WINE_TRY_CFLAGS([-fPIC -shared -Wl,-Bsymbolic,-init,__wine_spec_init,-fini,__wine_spec_fini],
                          [LDDLLFLAGS="$LDDLLFLAGS,-init,__wine_spec_init,-fini,__wine_spec_fini"])
    
          echo '{ global: *; };' >conftest.map
          WINE_TRY_CFLAGS([-fPIC -shared -Wl,--version-script=conftest.map],
                          [LDSHARED="$LDSHARED \$(VERSCRIPT:%=-Wl,--version-script=%)"])
          rm -f conftest.map
    
          WINE_TRY_CFLAGS([-fPIC -Wl,--export-dynamic],
                          [AC_SUBST(LDEXECFLAGS,["-Wl,--export-dynamic"])])
    
          WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,\$ORIGIN/../lib],
                          [LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`"
                           LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(TOPOBJDIR)/libs/wine"],
              [WINE_TRY_CFLAGS([-fPIC -Wl,-R,\$ORIGIN/../lib],
                               [LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`"
                                LDRPATH_LOCAL="-Wl,-R,\\\$\$ORIGIN/\$(TOPOBJDIR)/libs/wine"])])
    
    
          WINE_TRY_CFLAGS([-Wl,--enable-new-dtags],
                          [LDRPATH_INSTALL="$LDRPATH_INSTALL -Wl,--enable-new-dtags"])
    
    
          case $host_cpu in
            *i[[3456789]]86* | x86_64)
              WINE_TRY_CFLAGS([-Wl,--section-start,.interp=0x7bf00400],
                              [LDEXECFLAGS="$LDEXECFLAGS -Wl,--section-start,.interp=0x7bf00400"])
              ;;
          esac
    
        else
          AC_CACHE_CHECK(whether we can build a UnixWare (Solaris) dll, ac_cv_c_dll_unixware,
              [WINE_TRY_SHLIB_FLAGS([-fPIC -Wl,-G,-h,conftest.so.1.0,-B,symbolic],
                                    ac_cv_c_dll_unixware="yes",ac_cv_c_dll_unixware="no")])
          if test "$ac_cv_c_dll_unixware" = "yes"
          then
            LDSHARED="\$(CC) -Wl,-G \$(SONAME:%=-Wl,-h,%)"
            LDDLLFLAGS="-Wl,-G,-B,symbolic"
    
          else
            AC_CACHE_CHECK(whether we can build an HP-UX dll, ac_cv_c_dll_hpux,
              [WINE_TRY_SHLIB_FLAGS([-shared], ac_cv_c_dll_hpux="yes", ac_cv_c_dll_hpux="no")])
            if test "$ac_cv_c_dll_hpux" = "yes"
            then
              LIBEXT="sl"
              DLLEXT=".sl"
              LDDLLFLAGS="-shared -fPIC"
              LDSHARED="\$(CC) -shared"
            fi
          fi
        fi
    
        dnl Check for cross compiler to build test programs
        AC_SUBST(CROSSTEST,"")
        if test "$cross_compiling" = "no"
        then
          WINE_CHECK_MINGW_PROG(CROSSCC,gcc,false)
          WINE_CHECK_MINGW_PROG(DLLTOOL,dlltool,false)
          WINE_CHECK_MINGW_PROG(CROSSWINDRES,windres,false)
          WINE_CHECK_MINGW_PROG(MINGWAR,ar,false)
          if test "$CROSSCC" != "false"; then CROSSTEST="\$(CROSSTEST)"; fi
        fi
        ;;
    esac
    
    if test "$LIBEXT" = "a"; then
      AC_MSG_ERROR(
    [could not find a way to build shared libraries.
    It is currently not possible to build Wine without shared library
    (.so) support to allow transparent switch between .so and .dll files.
    If you are using Linux, you will need a newer binutils.]
    )
    fi
    
    
        XLIB="-lXext -lX11"
    
        ac_save_CPPFLAGS="$CPPFLAGS"
        CPPFLAGS="$CPPFLAGS $X_CFLAGS"
    
        WINE_CHECK_SONAME(X11,XCreateWindow,,,[$X_LIBS $X_EXTRA_LIBS])
        WINE_CHECK_SONAME(Xext,XextCreateExtension,,,[$X_LIBS -lX11 $X_EXTRA_LIBS])
    
    
        dnl *** All of the following tests require X11/Xlib.h
    
        AC_CHECK_HEADERS([X11/Xlib.h \
                          X11/XKBlib.h \
                          X11/Xutil.h \
    
                          X11/Xcursor/Xcursor.h \
    
                          X11/extensions/shape.h \
                          X11/extensions/XInput.h \
                          X11/extensions/XShm.h \
    
                          X11/extensions/Xcomposite.h \
    
                          X11/extensions/Xinerama.h \
    
                          X11/extensions/Xrandr.h \
                          X11/extensions/Xrender.h \
                          X11/extensions/xf86vmode.h],,,
    [#ifdef HAVE_X11_XLIB_H
    # include <X11/Xlib.h>
    #endif
    #ifdef HAVE_X11_XUTIL_H
    # include <X11/Xutil.h>
    #endif])
    
            dnl *** Check for X keyboard extension
    
            if test "$ac_cv_header_X11_XKBlib_h" = "yes"
            then
    
                  AC_CHECK_LIB(X11, XkbQueryExtension,
    
                  AC_DEFINE(HAVE_XKB, 1, [Define if you have the XKB extension]),,
    
                  $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
    
            dnl *** Check for X cursor
            if test "$ac_cv_header_X11_Xcursor_Xcursor_h" = "yes"
            then
                WINE_CHECK_SONAME(Xcursor,XcursorImageLoadCursor,,,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
            fi
    
    
            dnl *** Check for X input extension
            if test "$ac_cv_header_X11_extensions_XInput_h" = "yes"
            then
                WINE_CHECK_SONAME(Xi,XOpenDevice,,,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
            fi
    
    
            dnl *** Check for X Shm extension
    
            if test "$ac_cv_header_X11_extensions_XShm_h" = "yes"
            then
    
                  AC_CHECK_LIB(Xext, XShmQueryExtension,
    
                  AC_DEFINE(HAVE_LIBXXSHM, 1, [Define if you have the X Shm extension]),,
    
                  $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
    
            WINE_NOTICE_IF([test "$ac_cv_lib_Xext_XShmQueryExtension" != "yes"],[XShm development files not found.
    Wine will be built without XShm support. (winex11.drv)])
    
            dnl *** Check for X shape extension
    
            if test "$ac_cv_header_X11_extensions_shape_h" = "yes"
            then
    
                  AC_CHECK_LIB(Xext,XShapeQueryExtension,
    
    	      AC_DEFINE(HAVE_LIBXSHAPE, 1, [Define if you have the X Shape extension]),,
    
    	      $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
    
            WINE_NOTICE_IF([test "$ac_cv_lib_Xext_XShapeQueryExtension" != "yes"],[XShape development files not found.
    Wine will be built without XShape support. (winex11.drv)])
    
            dnl *** Check for XFree86 VMODE extension
    
            if test "$ac_cv_header_X11_extensions_xf86vmode_h" = "yes"
            then
    
                    AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryExtension,
    
                      [ AC_DEFINE(HAVE_LIBXXF86VM, 1, [Define if you have the Xxf86vm library])
    
                         X_PRE_LIBS="$X_PRE_LIBS -lXxf86vm"
                      ],,
    
                      $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
            fi
    
            WINE_NOTICE_IF([test "$ac_cv_lib_Xxf86vm_XF86VidModeQueryExtension" != "yes"],[Xxf86vm development files not found.
    Wine will be built without XF86 Vidmode support. (winex11.drv)])
    
            dnl *** Check for Transform functions in Xrender
    
            if test "$ac_cv_header_X11_extensions_Xrender_h" = "yes" -a "x$ac_cv_lib_soname_X11" != "x" -a "x$ac_cv_lib_soname_Xext" != "x"
    
                WINE_CHECK_SONAME(Xrender,XRenderQueryExtension,
                  [AC_CHECK_LIB(Xrender,XRenderSetPictureTransform,
    
                    [AC_DEFINE(HAVE_XRENDERSETPICTURETRANSFORM, 1,
                     [Define if Xrender has the XRenderSetPictureTransform function])],,
    
                    [$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])],,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
    
            fi
    
            WINE_NOTICE_IF([test "x$ac_cv_lib_soname_Xrender" = "x"],[XRender development files not found.
    Wine will be built without XRender support. (winex11.drv)])
    
    
            dnl *** Check for X RandR extension
            if test "$ac_cv_header_X11_extensions_Xrandr_h" = "yes" -a "x$ac_cv_lib_soname_Xrender" != "x"
            then
                    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <X11/Xlib.h>
    #include <X11/extensions/Xrandr.h>]], [[static typeof(XRRSetScreenConfigAndRate) * func;]])],
                      [WINE_CHECK_SONAME(Xrandr,XRRQueryExtension,,,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])])
    
            WINE_NOTICE_IF([test "x$ac_cv_lib_soname_Xrandr" = "x"],[XRandr development files not found.
    Wine will be built without XRandr support. (winex11.drv)])
    
    
            dnl *** Check for Xinerama extension
            if test "$ac_cv_header_X11_extensions_Xinerama_h" = "yes"
            then
    
                    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <X11/Xlib.h>
    #include <X11/extensions/Xinerama.h>]], [[static typeof(XineramaQueryScreens) * func;]])],
    
                      [WINE_CHECK_SONAME(Xinerama,XineramaQueryScreens,,,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])])
    
            WINE_NOTICE_IF([test "x$ac_cv_lib_soname_Xinerama" = "x"],[Xinerama development files not found.
    Wine will be built without Xinerama support. (winex11.drv)])
    
            dnl *** Check for X Composite extension
            if test "$ac_cv_header_X11_extensions_Xcomposite_h" = "yes"
            then
                WINE_CHECK_SONAME(Xcomposite,XCompositeRedirectWindow,,,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
            fi
            WINE_NOTICE_IF([test "x$ac_cv_lib_soname_Xcomposite" = "x"],[XComposite development files not found.
    Wine will be built without XComposite support. (winex11.drv)])
    
    
    Lionel Ulmer's avatar
    Lionel Ulmer committed
        dnl Check for the presence of OpenGL
    
        if test "x$with_opengl" != "xno"
    
    	AC_CHECK_HEADERS(GL/gl.h GL/glx.h GL/glext.h GL/glu.h,,,
    
    [#ifdef HAVE_GL_GLX_H
    # include <GL/glx.h>
    #endif])
    
    	if test "$ac_cv_header_GL_gl_h" = "yes" -a "$ac_cv_header_GL_glx_h" = "yes"
    
    	then
    	    dnl Check for some problems due to old Mesa versions
    
    	    AC_CACHE_CHECK([for up-to-date OpenGL version], wine_cv_opengl_header_version_OK,
    
    	      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <GL/gl.h>]], [[GLenum test = GL_UNSIGNED_SHORT_5_6_5;]])],
    
    		[wine_cv_opengl_header_version_OK="yes"],
    
    		[wine_cv_opengl_header_version_OK="no"]))
    
    	    if test "$wine_cv_opengl_header_version_OK" = "yes"
    
    		dnl Check for the presence of the library
    
    		WINE_CHECK_SONAME(GL,glXCreateContext,
    
    			     [OPENGL_LIBS="-lGL"
                                 OPENGLFILES='$(OPENGLFILES)'
    
                                 AC_DEFINE(HAVE_OPENGL, 1, [Define if OpenGL is present on the system])],
                                 [if test -f /usr/X11R6/lib/libGL.a
                                  then
                                      WINE_WARNING([/usr/X11R6/lib/libGL.a is present on your system.
    This probably prevents linking to OpenGL. Try deleting the file and restarting configure.])
                                  else
                                      WINE_WARNING([No OpenGL library found on this system.
    
    Wine will be built without OpenGL or Direct3D support.])
    
    	        dnl Check for GLU32 library.
    
    			     [OPENGL_LIBS="$OPENGL_LIBS -lGLU"
    
    			     GLU32FILES='$(GLU32FILES)']
    
    			     $OPENGL_LIBS $X_LIBS $X_PRE_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS)
                 else
                     WINE_WARNING([Old Mesa headers detected. Consider upgrading your Mesa libraries (http://www.mesa3d.org/).
    
    Wine will be built without OpenGL or Direct3D support.])
    
                 WINE_WARNING([OpenGL development headers not found.
    
    Wine will be built without OpenGL or Direct3D support.])
    
        dnl **** Check for NAS ****
        AC_SUBST(NASLIBS,"")
        AC_CHECK_HEADERS(audio/audiolib.h,
             [AC_CHECK_HEADERS(audio/soundlib.h,,,[#include <audio/audiolib.h>])
              AC_CHECK_LIB(audio,AuCreateFlow,
                           [AC_DEFINE(HAVE_NAS,1,[Define if you have NAS including devel headers])
    
                            AC_CHECK_LIB(Xau,XauGetBestAuthByAddr,
                              [NASLIBS="-lXau -laudio -lXt $X_LIBS -lXext -lX11 $X_EXTRA_LIBS"],
                              [NASLIBS="-laudio -lXt $X_LIBS -lXext -lX11 $X_EXTRA_LIBS"],
                              [$X_LIBS])
                           ],,
    
                           [-lXt $X_LIBS -lXext -lX11 $X_EXTRA_LIBS])])
    
    
        CPPFLAGS="$ac_save_CPPFLAGS"
    
        XFILES='$(XFILES)'
    
        WINE_WARNING([X development files not found. Wine will be built
    without X support, which probably isn't what you want. You will need to install
    development packages of Xlib/Xfree86 at the very least.])
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    dnl **** Check for libxml2 ****
    
    AC_SUBST(XML2LIBS,"")
    AC_SUBST(XML2INCL,"")
    
    AC_SUBST(XSLTLIBS,"")
    AC_SUBST(XSLTINCL,"")
    
    ac_save_CPPFLAGS="$CPPFLAGS"
    
    if test "$PKG_CONFIG" != "false"
    then
    
        ac_xml_libs="`$PKG_CONFIG --libs libxml-2.0 2>/dev/null`"
        ac_xml_cflags="`$PKG_CONFIG --cflags libxml-2.0 2>/dev/null`"
    
    else
        ac_xml_libs="`xml2-config --libs 2>/dev/null`"
        ac_xml_cflags="`xml2-config --cflags  2>/dev/null`"
    fi
    CPPFLAGS="$CPPFLAGS $ac_xml_cflags"
    AC_CHECK_HEADERS(libxml/parser.h,
    
            [AC_CHECK_LIB(xml2, xmlParseMemory,
                [AC_DEFINE(HAVE_LIBXML2, 1, [Define if you have the libxml2 library])
                 XML2LIBS="$ac_xml_libs"
    
                 XML2INCL="$ac_xml_cflags"],,$ac_xml_libs)
             AC_CHECK_LIB(xml2, xmlReadMemory,
    
                [AC_DEFINE(HAVE_XMLREADMEMORY,1,[Define if libxml2 has the xmlReadMemory function])],,$ac_xml_libs)
    
             AC_CHECK_LIB(xml2, xmlNewDocPI,
                [AC_DEFINE(HAVE_XMLNEWDOCPI,1,[Define if libxml2 has the xmlNewDocPI function])],,$ac_xml_libs)
    
        ])
    CPPFLAGS="$ac_save_CPPFLAGS"
    
    WINE_NOTICE_IF([test "$ac_cv_lib_xml2_xmlParseMemory" != "yes"],[libxml2 development files not found.
    Wine will be built without XML support. (msxml.dll)])
    
    
    if test "$PKG_CONFIG" != "false"
    then
    
        ac_xslt_libs="`$PKG_CONFIG --libs libxslt 2>/dev/null`"
        ac_xslt_cflags="`$PKG_CONFIG --cflags libxslt 2>/dev/null`"
    
    else
        ac_xslt_libs="`xslt-config --libs 2>/dev/null`"
        ac_xslt_cflags="`xslt-config --cflags 2>/dev/null`"
    fi
    CPPFLAGS="$CPPFLAGS $ac_xslt_cflags"
    AC_CHECK_HEADERS([libxslt/pattern.h libxslt/transform.h],
    
            [AC_CHECK_LIB(xslt, xsltCompilePattern,
                [AC_DEFINE(HAVE_LIBXSLT, 1, [Define if you have the libxslt library])
                 XSLTLIBS="$ac_xslt_libs"
                 XSLTINCL="$ac_xslt_cflags"],,$ac_xslt_libs)
    
            ],,
    [#ifdef HAVE_LIBXSLT_PATTERN_H
    # include <libxslt/pattern.h>
    #endif])
    
    CPPFLAGS="$ac_save_CPPFLAGS"
    
    WINE_NOTICE_IF([test "$ac_cv_lib_xslt_xsltCompilePattern" != "yes"],[libxslt development files not found.
    Wine will be built without xslt support. (msxml.dll)])
    
    dnl **** Check for libhal ****
    AC_SUBST(HALINCL,"")
    if test "$PKG_CONFIG" != "false"
    then
        ac_save_CPPFLAGS="$CPPFLAGS"
    
        ac_hal_libs="`$PKG_CONFIG --libs hal 2>/dev/null`"
        ac_hal_cflags="`$PKG_CONFIG --cflags hal 2>/dev/null`"
    
        CPPFLAGS="$CPPFLAGS $ac_hal_cflags"
    
        AC_CHECK_HEADERS([dbus/dbus.h hal/libhal.h])
        if test "$ac_cv_header_dbus_dbus_h" = "yes" -a "$ac_cv_header_hal_libhal_h" = "yes"
        then
    
            AC_CHECK_LIB(dbus-1, dbus_connection_close,
              [WINE_CHECK_SONAME(hal, libhal_ctx_new,
                [HALINCL="$ac_hal_cflags"],,[$ac_hal_libs])],,[$ac_hal_libs])
    
        CPPFLAGS="$ac_save_CPPFLAGS"
    fi
    
    WINE_NOTICE_IF([test "x$ac_cv_lib_soname_hal" = "x"],[libhal development files not found.
    Wine will be built without dynamic device support. (explorer.exe)])
    
    dnl **** Check which curses lib to use ***
    
    if test "$ac_cv_header_ncurses_h" = "yes"
    
        WINE_CHECK_SONAME(ncurses,waddch,[CURSESLIBS="-lncurses"])
    
    elif test "$ac_cv_header_curses_h" = "yes"
    then
    
        WINE_CHECK_SONAME(curses,waddch,[CURSESLIBS="-lcurses"])
    
    ac_save_LIBS="$LIBS"
    LIBS="$LIBS $CURSESLIBS"
    AC_CHECK_FUNCS(mousemask)
    LIBS="$ac_save_LIBS"
    
    WINE_NOTICE_IF([test "x$ac_cv_lib_soname_curses$ac_cv_lib_soname_ncurses" = "x"],[lib(n)curses development files not found.
    Wine will be built without (n)curses support. (wineconsole.exe)])
    
    dnl **** Check for SANE ****
    AC_CHECK_PROG(sane_devel,sane-config,sane-config,no)
    
    if test "$sane_devel" != "no"
    
        ac_sane_incl="`$sane_devel --cflags`"
    
        ac_save_CPPFLAGS="$CPPFLAGS"
    
        AC_CHECK_HEADER(sane/sane.h,
    
            [WINE_CHECK_SONAME(sane,sane_init,[AC_SUBST(SANEINCL,"$ac_sane_incl")])])
    
        CPPFLAGS="$ac_save_CPPFLAGS"
    fi
    
    WINE_NOTICE_IF([test "x$ac_cv_lib_soname_sane" = "x"],[libsane development files not found.
    Wine will be built without scanner support. (sane.ds/twain_32.dll)])
    
    dnl **** Check for libgphoto2 ****
    AC_CHECK_PROG(gphoto2_devel,gphoto2-config,gphoto2-config,no)
    AC_CHECK_PROG(gphoto2port_devel,gphoto2-port-config,gphoto2-port-config,no)
    if test "$gphoto2_devel" != "no" -a "$gphoto2port_devel" != "no"
    then
    
        ac_gphoto2_incl="`$gphoto2_devel --cflags` `$gphoto2port_devel --cflags`"
        ac_gphoto2_libs=""
    
        for i in `$gphoto2_devel --libs` `$gphoto2port_devel --libs`
        do
          case "$i" in
            -L/usr/lib|-L/usr/lib64) ;;
    
            -L*|-l*) ac_gphoto2_libs="$ac_gphoto2_libs $i";;
    
        AC_CHECK_HEADER(gphoto2-camera.h,
                        [AC_CHECK_LIB(gphoto2,gp_camera_new,
    
                                      [AC_DEFINE(HAVE_GPHOTO2, 1, [Define if we have libgphoto2 development environment])
                                       AC_SUBST(GPHOTO2LIBS,"$ac_gphoto2_libs")
                                       AC_SUBST(GPHOTO2INCL,"$ac_gphoto2_incl")],,
                                      [$GPHOTO2LIBS])])
    
    WINE_NOTICE_IF([test "$ac_cv_lib_gphoto2_gp_camera_new" != "yes"],[libgphoto2 development files not found.
    Wine will be built without Digital Camera support. (gphoto2.ds/twain_32.dll)])
    
    
    dnl **** Check for resolver library ***
    AC_SUBST(RESOLVLIBS,"")
    if test "$ac_cv_header_resolv_h" = "yes"
    then
        AC_CHECK_LIB(resolv, res_query,
            [AC_DEFINE(HAVE_RESOLV, 1, [Define if you have the resolver library and header])
             RESOLVLIBS="-lresolv"])
    fi
    
    
    dnl **** Check for LittleCMS ***
    AC_SUBST(LCMSLIBS,"")
    if test "$ac_cv_header_lcms_h" = "yes" -o "$ac_cv_header_lcms_lcms_h" = "yes"
    then
        AC_CHECK_LIB(lcms, cmsOpenProfileFromFile,
            [AC_DEFINE(HAVE_LCMS, 1, [Define if you have the LittleCMS development environment])
             LCMSLIBS="-llcms"])
    fi
    
    WINE_NOTICE_IF([test "$ac_cv_lib_lcms_cmsOpenProfileFromFile" != "yes"],[liblcms development files not found.
    
    Wine will be built without Color Management support. (mscms.dll)])
    
    dnl **** Check for OpenLDAP ***
    AC_SUBST(LDAPLIBS,"")
    if test "$ac_cv_header_ldap_h" = "yes" -a "$ac_cv_header_lber_h" = "yes"
    then
    
        AC_CHECK_LIB(ldap_r, ldap_initialize,
    
            [AC_CHECK_LIB(lber, ber_init,
                [AC_DEFINE(HAVE_LDAP, 1, [Define if you have the OpenLDAP development environment])
    
                 LDAPLIBS="-lldap_r -llber"],,
                 [$LIBPTHREAD])],,
                 [$LIBPTHREAD])
    
    	ldap_count_references \
    	ldap_first_reference \
    	ldap_next_reference \
    
    	ldap_parse_reference \
    	ldap_parse_sort_control \
    	ldap_parse_sortresponse_control \
    	ldap_parse_vlv_control \
    	ldap_parse_vlvresponse_control,
    
    WINE_NOTICE_IF([test "x$LDAPLIBS" = "x"],[libldap (OpenLDAP) development files not found.
    Wine will be built without LDAP support. (wldap32.dll)])
    
    dnl **** Check for FreeType 2 ****
    
    AC_CHECK_PROGS(ft_devel,[freetype-config freetype2-config],false)
    if test "$ft_devel" != "false"
    
        ac_freetype_libs=`$ft_devel --libs`
        ac_freetype_incl=`$ft_devel --cflags`
        WINE_CHECK_SONAME(freetype,FT_Init_FreeType,[ft_lib=yes],[ft_lib=no],[$ac_freetype_libs])
        if test "$ft_lib" = "yes"
    
    	ac_save_CPPFLAGS="$CPPFLAGS"
    
    	CPPFLAGS="$ac_freetype_incl $CPPFLAGS"
    
    	AC_CHECK_HEADERS(ft2build.h \
                             freetype/freetype.h \
    
                             freetype/fttypes.h \
    
                             freetype/tttables.h \
                             freetype/ftnames.h \
                             freetype/ftsnames.h \
    
    Huw D. M. Davies's avatar
    Huw D. M. Davies committed
                             freetype/ftoutln.h \
    
                             freetype/ftwinfnt.h \
    
                             freetype/ftmodapi.h \
    
                             freetype/internal/sfnt.h,,,
                             [#if HAVE_FT2BUILD_H
                              #include <ft2build.h>
                              #endif])
    
    	AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <ft2build.h>
                        #include <freetype/fttrigon.h>]])],[AC_DEFINE(HAVE_FREETYPE_FTTRIGON_H, 1,
    
              [Define if you have the <freetype/fttrigon.h> header file.])
    
                        wine_cv_fttrigon=yes],[wine_cv_fttrigon=no])
    
            AC_CHECK_TYPES(FT_TrueTypeEngineType,,,[#include <freetype/ftmodapi.h>])
    
            AC_CHECK_FUNCS(FT_Load_Sfnt_Table)
            CFLAGS="$ac_save_CFLAGS"
    
    	CPPFLAGS="$ac_save_CPPFLAGS"
    
    	dnl Check that we have at least freetype/freetype.h
    
    	if test "$ac_cv_header_freetype_freetype_h" = "yes" -a "$wine_cv_fttrigon" = "yes"
    
    	then
    	    AC_DEFINE(HAVE_FREETYPE, 1, [Define if FreeType 2 is installed])
    
                AC_SUBST(FREETYPELIBS,"$ac_freetype_libs")
                AC_SUBST(FREETYPEINCL,"$ac_freetype_incl")
    
    dnl Only build the fonts dir if we have both freetype and fontforge
    
    if test "$FONTFORGE" = "false"
    then
        WINE_WARNING([FontForge is missing.
    Fonts will not be built. Dialog text may be invisible or unaligned.])
    elif test "x$FREETYPELIBS" = "x"
    
        WINE_WARNING([FreeType development files not found.
    Fonts will not be built. Dialog text may be invisible or unaligned.])
    else
    
    dnl **** Check for parport (currently Linux only) ****
    
    AC_CACHE_CHECK([for parport header/ppdev.h], ac_cv_c_ppdev,
    
     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/ppdev.h>]], [[ioctl (1,PPCLAIM,0)]])],
        [ac_cv_c_ppdev="yes"],[ac_cv_c_ppdev="no"]))
    
    if test "$ac_cv_c_ppdev" = "yes"
    then
    
        AC_DEFINE(HAVE_PPDEV, 1, [Define if we can use ppdev.h for parallel port access])
    
    dnl **** Check for va_copy ****
    AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
    
     AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h>]], [[va_list ap1, ap2; va_copy(ap1,ap2);]])],
        [ac_cv_c_va_copy="yes"],[ac_cv_c_va_copy="no"])
    
     )
    if test "$ac_cv_c_va_copy" = "yes"
    then
        AC_DEFINE(HAVE_VA_COPY, 1, [Define if we have va_copy])
    fi
    AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
    
     AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h>]], [[va_list ap1, ap2; __va_copy(ap1,ap2);]])],
        [ac_cv_c___va_copy="yes"],[ac_cv_c___va_copy="no"])
    
     )
    if test "$ac_cv_c___va_copy" = "yes"
    then
        AC_DEFINE(HAVE___VA_COPY, 1, [Define if we have __va_copy])
    fi
    
    
    dnl **** Check for sigsetjmp ****
    AC_CACHE_CHECK([for sigsetjmp], ac_cv_c_sigsetjmp,
    
     AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <setjmp.h>]], [[sigjmp_buf buf;
    
        siglongjmp( buf, 1 );]])],[ac_cv_c_sigsetjmp="yes"],[ac_cv_c_sigsetjmp="no"])
    
     )
    if test "$ac_cv_c_sigsetjmp" = "yes"
    then
        AC_DEFINE(HAVE_SIGSETJMP, 1, [Define to 1 if you have the sigsetjmp (and siglongjmp) function])
    fi
    
    
    dnl **** Check for pthread_rwlock_t ****
    AC_CHECK_TYPES([pthread_rwlock_t, pthread_rwlockattr_t],,,[#define _GNU_SOURCE
    #include <pthread.h>])
    
    
    dnl **** Check for pthread functions ****
    
            pthread_attr_get_np \
    
            pthread_getattr_np \
            pthread_get_stackaddr_np \
    
            pthread_get_stacksize_np,
            [$LIBPTHREAD])
    
    dnl **** Check for EsounD ****
    AC_PATH_PROG(ESDCONFIG, esd-config)
    if test x$ESDCONFIG != x -a x$ESDCONFIG != x'"$ESDCONFIG"';
    then
        ESD_CFLAGS=""
        for i in `$ESDCONFIG --cflags`
        do
          case "$i" in
            -I*) ESD_CFLAGS="$ESD_CFLAGS $i";;
          esac
        done
        ESD_LIBS=`$ESDCONFIG --libs`
        save_CFLAGS="$CFLAGS"
        CFLAGS="$CFLAGS $ESD_CFLAGS"