Skip to content
Snippets Groups Projects
configure.ac 52.5 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, AC_HELP_STRING([--disable-win16],[do not include Win16 support]))
    
    AC_ARG_ENABLE(debug, AC_HELP_STRING([--disable-debug],[compile out all debugging messages]))
    AC_ARG_ENABLE(trace, AC_HELP_STRING([--disable-trace],[compile out TRACE messages]))
    
    AC_ARG_ENABLE(win64, AC_HELP_STRING([--enable-win64], [build a Win64 emulator on AMD64 (won't run Win32 binaries)]))
    
    
    AC_ARG_WITH(opengl,    AC_HELP_STRING([--without-opengl],[do not use OpenGL]))
    
    AC_ARG_WITH(curses,    AC_HELP_STRING([--without-curses],[do not use curses]))
    AC_ARG_WITH(wine-tools,AC_HELP_STRING([--with-wine-tools=<dir>],[use Wine tools from directory <dir>]))
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    then
    
      DLLDEFS="$DLLDEFS -DWINE_NO_DEBUG_MSGS"
    
    if test "x$enable_trace" = "xno" -o "x$enable_debug" = "xno"
    
      DLLDEFS="$DLLDEFS -DWINE_NO_TRACE_MSGS"
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    fi
    
    
    case $host in
      x86_64*linux*)
        if test "x$enable_win64" != "xyes"
        then
          test -n "$CC" || CC="gcc -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 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
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    AC_PROG_LEX
    
    dnl **** Just additional warning checks, since AC_PROG just sets 'lex' even
    
    dnl **** without one present.
    
    AC_CHECK_PROGS(XLEX,$LEX flex lex,none)
    if test "$XLEX" = "none"
    then
    
      AC_MSG_ERROR([no suitable lex 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)
    
    case $host_cpu in
      *i[[3456789]]86*)
        AC_CHECK_PROGS(PRELINK, prelink, false, [/sbin /usr/sbin $PATH])
        ;;
    esac
    
    
    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)
    
    AC_CHECK_FUNCS(gethostbyname,,AC_CHECK_LIB(nsl,gethostbyname))
    
    dnl Check for -lsocket for Solaris
    
    AC_CHECK_FUNCS(connect,,AC_CHECK_LIB(socket,connect))
    
    dnl Check for -lresolv for Solaris
    
    AC_CHECK_FUNCS(inet_aton,,AC_CHECK_LIB(resolv,inet_aton))
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    dnl Check for -lxpg4 for FreeBSD
    
    AC_CHECK_LIB(xpg4,_xpg4_setrunelocale)
    
    dnl Check for -lpoll for Mac OS X/Darwin
    AC_CHECK_LIB(poll,poll)
    
    dnl Check for -lresolv for Mac OS X/Darwin
    AC_CHECK_LIB(resolv,res_9_init)
    
    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(\
    
    	asm/types.h \
    
    	elf.h \
    	float.h \
    	fontconfig/fontconfig.h \
    	getopt.h \
    	gif_lib.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/sockio.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([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>
         #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([linux/ipx.h 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])
    
    
        XLIB="-lXext -lX11"
    
        ac_save_CPPFLAGS="$CPPFLAGS"
        CPPFLAGS="$CPPFLAGS $X_CFLAGS"
    
        dnl *** All of the following tests require X11/Xlib.h
    
        AC_CHECK_HEADERS([X11/Xlib.h \
                          X11/XKBlib.h \
                          X11/Xutil.h \
                          X11/extensions/shape.h \
                          X11/extensions/XInput.h \
                          X11/extensions/XShm.h \
                          X11/extensions/Xrandr.h \
                          X11/extensions/Xrender.h \
                          X11/extensions/xf86dga.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 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)
    
            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)
    
            dnl *** Check for XFree86 DGA / DGA 2.0 extension
    
            if test "$ac_cv_header_X11_extensions_xf86dga_h" = "yes"
            then
    
                  AC_CHECK_LIB(Xxf86dga, XDGAQueryExtension,
    
                    [ AC_DEFINE(HAVE_LIBXXF86DGA2, 1,
    
                                [Define if you have the Xxf86dga library version 2])
    
                      X_PRE_LIBS="$X_PRE_LIBS -lXxf86dga"
    
                    $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
            fi
    
    
            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
    
            dnl *** Check for X RandR extension
    
            if test "$ac_cv_header_X11_extensions_Xrandr_h" = "yes"
            then
    
                    AC_TRY_COMPILE([#include <X11/Xlib.h>
    #include <X11/extensions/Xrandr.h>],[static typeof(XRRSetScreenConfigAndRate) * func;],
                      [AC_DEFINE(HAVE_LIBXRANDR, 1, [Define if you have the Xrandr library])])
    
            dnl *** Check for Transform functions in Xrender
            if test "$ac_cv_header_X11_extensions_Xrender_h" = "yes"
            then
                  AC_CHECK_LIB(Xrender, XRenderSetPictureTransform,
                    [AC_DEFINE(HAVE_XRENDERSETPICTURETRANSFORM, 1,
                     [Define if Xrender has the XRenderSetPictureTransform function])],,
                    $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
            fi
    
    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_version_OK,
    
    		[GLenum test = GL_UNSIGNED_SHORT_5_6_5;],
    
    Lionel Ulmer's avatar
    Lionel Ulmer committed
    		[wine_cv_opengl_version_OK="yes"],
    		[wine_cv_opengl_version_OK="no"]
    
    	    if test "$wine_cv_opengl_version_OK" = "yes"
    
    		dnl Check for the presence of the library
    
    		AC_CHECK_LIB(GL,glXCreateContext,
    
    			     OPENGL_LIBS="-lGL"
    
    			     ,,
    			     $X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS)
    
    
    		if test "$ac_cv_lib_GL_glXCreateContext" = "yes"
    
    			OPENGLFILES='$(OPENGLFILES)'
    
    			AC_DEFINE(HAVE_OPENGL, 1, [Define if OpenGL is present on the system])
    
    		else
                        if test -f /usr/X11R6/lib/libGL.a
                        then 
                           AC_MSG_ERROR([/usr/X11R6/lib/libGL.a is present on your system.
    This prevents linking to OpenGL. Delete the file and restart configure.])
                        fi
    
    	        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
    
    Jacek Caban's avatar
    Jacek Caban committed
    
                 dnl Check for glut32 library.
                 AC_CHECK_LIB(glut,glutMainLoop,
    
                           [AC_SUBST(GLUT_LIBS,"-lglut -lXmu -lXi")
    
    Jacek Caban's avatar
    Jacek Caban committed
                            AC_SUBST(GLUT32FILES,'$(GLUT32FILES)')],,
    
                            $OPENGL_LIBS $X_LIBS $X_PRE_LIBS -lXmu -lXi -lX11 $X_EXTRA_LIBS)
    
        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])
                            NASLIBS="-laudio -lXt $X_LIBS -lXext -lX11 $X_EXTRA_LIBS"],,
                           [-lXt $X_LIBS -lXext -lX11 $X_EXTRA_LIBS])])
    
    
        CPPFLAGS="$ac_save_CPPFLAGS"
    
        XFILES='$(XFILES)'
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    dnl **** Check for libxml2 ****
    
    AC_SUBST(XML2LIBS,"")
    AC_SUBST(XML2INCL,"")
    
    AC_SUBST(XSLTLIBS,"")
    AC_SUBST(XSLTINCL,"")
    
    if test "$PKG_CONFIG" != "false"
    then
        ac_save_CPPFLAGS="$CPPFLAGS"
        ac_xml_libs="`$PKG_CONFIG --libs libxml-2.0`"
        ac_xml_cflags="`$PKG_CONFIG --cflags libxml-2.0`"
        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)
            ])
        CPPFLAGS="$ac_save_CPPFLAGS"
        ac_xslt_libs="`$PKG_CONFIG --libs libxslt`"
        ac_xslt_cflags="`$PKG_CONFIG --cflags libxslt`"
        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"
    fi
    
    dnl **** Check which curses lib to use ***
    
        if test "$ac_cv_header_ncurses_h" = "yes"
        then
            AC_CHECK_LIB(ncurses,waddch,
    
                [AC_DEFINE(HAVE_LIBNCURSES, 1, [Define if you have the ncurses library (-lncurses)])
    
                 CURSESLIBS="-lncurses"])
        elif test "$ac_cv_header_curses_h" = "yes"
        then
            AC_CHECK_LIB(curses,waddch,
                [AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have the curses library (-lcurses)])
                 CURSESLIBS="-lcurses"])
        fi
    
    dnl **** Check for SANE ****
    AC_CHECK_PROG(sane_devel,sane-config,sane-config,no)
    
    AC_SUBST(SANELIBS,"")
    AC_SUBST(SANEINCL,"")
    if test "$sane_devel" != "no"
    
    then
        SANELIBS="`$sane_devel --libs`"
        SANEINCL="`$sane_devel --cflags`"
        ac_save_CPPFLAGS="$CPPFLAGS"
        ac_save_LIBS="$LIBS"
        CPPFLAGS="$CPPFLAGS $SANEINCL"
        LIBS="$LIBS $SANELIBS"
    
        AC_CHECK_HEADER(sane/sane.h,
                        [AC_CHECK_LIB(sane,sane_open,
                                      [AC_DEFINE(HAVE_SANE, 1, [Define if we have SANE development environment])],
                                      [SANELIBS=""
                                      SANEINCL=""])],
                        [SANELIBS=""
                        SANEINCL=""])
    
        LIBS="$ac_save_LIBS"
        CPPFLAGS="$ac_save_CPPFLAGS"
    fi
    
    
    dnl **** Check for the ICU library ****
    if test "$ac_cv_header_unicode_ubidi_h" = "yes"
    then
    
        saved_libs="$LIBS"
        ICU_LIB_DIR="${ICU_LIB_DIR-/usr/lib}"
    
        ICUUC_LIB="${ICUUC_LIB-$ICU_LIB_DIR/libsicuuc.a}"
        ICUDATA_LIB="${ICUDATA_LIB-$ICU_LIB_DIR/libsicudata.a}"
        AC_MSG_CHECKING(whether can link with ICU libraries $ICUUC_LIB and $ICUDATA_LIB)
    
        LIBS="$LIBS $ICUUC_LIB $ICUDATA_LIB -lstdc++ -lgcc_s"
        AC_TRY_LINK([#include <unicode/ubidi.h>],[ubidi_open()],
                    [AC_DEFINE(HAVE_ICU,1,[Define to 1 if the ICU libraries are installed])
    
                     AC_SUBST(ICULIBS,"$ICUUC_LIB $ICUDATA_LIB -lstdc++ -lgcc_s")
                     AC_MSG_RESULT(yes)],
                    [AC_MSG_RESULT(no)])
    
    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
    
    
    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,
            [$LDAPLIBS $LIBPTHREAD])
    
    dnl **** Check for FreeType 2 ****
    
    AC_SUBST(FREETYPELIBS,"")
    AC_SUBST(FREETYPEINCL,"")
    
    AC_CHECK_LIB(freetype,FT_Init_FreeType,ft_lib=yes,ft_lib=no,$X_LIBS)
    
    if test "$ft_lib" = "no"
    then
        wine_cv_msg_freetype=no
    else
    
        AC_CHECK_PROG(ft_devel,freetype-config,freetype-config,no)
        if test "$ft_devel" = "no"
        then
            AC_CHECK_PROG(ft_devel2,freetype2-config,freetype2-config,no)
            if test "$ft_devel2" = "freetype2-config"
    	then
    		ft_devel=$ft_devel2
    	fi
        fi
    
        if test "$ft_devel" = "no"
        then
    	wine_cv_msg_freetype=yes
        else
    
    	FREETYPELIBS=`$ft_devel --libs`
    
    	ac_save_CPPFLAGS="$CPPFLAGS"
    	CPPFLAGS="$FREETYPEINCL $CPPFLAGS"
    
    	AC_CHECK_HEADERS(ft2build.h \
                             freetype/freetype.h \
    
                             freetype/ftglyph.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_TRY_CPP([#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>])
    
    	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])
    	    wine_cv_msg_freetype=no
    	else
    
    	    FREETYPEINCL=""
    	    wine_cv_msg_freetype=yes
    	fi
    
    dnl Only build the fonts dir if we have both freetype and fontforge
    if test "$FONTFORGE" != "false" -a -n "$FREETYPELIBS"
    then
      AC_SUBST(FONTSSUBDIRS,"fonts")
    
      wine_cv_msg_fonts=no
    else
      wine_cv_msg_fonts=yes
    
    dnl **** Check for parport (currently Linux only) ****
    
    AC_CACHE_CHECK([for parport header/ppdev.h], ac_cv_c_ppdev,
    
     AC_TRY_COMPILE(
       [#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_TRY_LINK(
       [#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_TRY_LINK(
       [#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_TRY_LINK(
       [#include <setjmp.h>],
       [sigjmp_buf buf;
        sigsetjmp( buf, 1 );
        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_getattr_np \
            pthread_get_stackaddr_np \
    
            pthread_get_stacksize_np,
            [$LIBPTHREAD])
    
    Chris Morgan's avatar
    Chris Morgan committed
    dnl **** Check for aRts Sound Server ****
    AC_PATH_PROG(ARTSCCONFIG, artsc-config)
    
    if test x$ARTSCCONFIG != x -a x$ARTSCCONFIG != x'"$ARTSCCONFIG"';
    
    Chris Morgan's avatar
    Chris Morgan committed
    then
    
        ARTSC_CFLAGS=""
        for i in `$ARTSCCONFIG --cflags`
        do
          case "$i" in
            -I*) ARTSC_CFLAGS="$ARTSC_CFLAGS $i";;
          esac
        done
    
        ARTSC_LIBS=""
        for i in `$ARTSCCONFIG --libs`
        do
          case "$i" in
            -L/usr/lib|-L/usr/lib64) ;;
            -L*|-l*) ARTSC_LIBS="$ARTSC_LIBS $i";;
          esac
        done
    
        save_CFLAGS="$CFLAGS"
        CFLAGS="$CFLAGS $ARTSC_CFLAGS"
    
        AC_CHECK_LIB(artsc,arts_init,
            [AC_TRY_COMPILE([#include <artsc.h>],[arts_stream_t stream;],
                [AC_SUBST(ARTSLIBS, $ARTSC_LIBS)
                AC_SUBST(ARTSINCL, $ARTSC_CFLAGS)
    
    Vitaliy Margolen's avatar
    Vitaliy Margolen committed
                AC_DEFINE(HAVE_ARTS, 1, [Define if you have ARTS sound server])])],,
                $ARTSC_LIBS)
    
        CFLAGS="$save_CFLAGS"
    
    Chris Morgan's avatar
    Chris Morgan committed
    fi
    
    
    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"
        AC_CHECK_LIB(esd,esd_open_sound,
            [AC_SUBST(ESDLIBS, $ESD_LIBS)
             AC_SUBST(ESDINCL, $ESD_CFLAGS)
             AC_DEFINE(HAVE_ESD, 1, [Define if you have EsounD sound server])])
        CFLAGS="$save_CFLAGS"
    fi
    
    
    dnl **** Check for ALSA 1.x ****
    
    AC_SUBST(ALSALIBS,"")
    
    if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes"
    
        AC_CHECK_LIB(asound,snd_pcm_hw_params_get_access,
            [AC_TRY_COMPILE([#ifdef HAVE_ALSA_ASOUNDLIB_H
    #include <alsa/asoundlib.h>
    #elif defined(HAVE_SYS_ASOUNDLIB_H)
    #include <sys/asoundlib.h>
    #endif],
                            [int ret = snd_pcm_hw_params_get_access(NULL, NULL)],
                            [AC_DEFINE(HAVE_ALSA,1,[Define if you have ALSA 1.x including devel headers])
                             ALSALIBS="-lasound"])])
    
    dnl **** Check for libaudioio (which can be used to get solaris audio support) ****
    
    AC_SUBST(AUDIOIOLIBS,"")
    
    if test "$ac_cv_header_libaudioio_h" = "yes"
    then
        AC_CHECK_LIB(audioio,AudioIOGetVersion,
    
                      [AUDIOIOLIBS="-laudioio"
    
                       AC_DEFINE(HAVE_LIBAUDIOIO, 1, [Define if you have libaudioIO])])
    fi
    
    dnl **** Check for capi4linux ****
    
    
    if test "$ac_cv_header_capi20_h" = "yes" -a "$ac_cv_header_linux_capi_h" = "yes"
    then
        AC_CHECK_LIB(capi20,capi20_register,[AC_DEFINE(HAVE_CAPI4LINUX,1,[Define if you have capi4linux libs and headers])])
    fi
    
    dnl **** Check for gcc specific options ****
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    if test "x${GCC}" = "xyes"
    then
    
      EXTRACFLAGS="-Wall -pipe"
    
      AC_CACHE_CHECK( [for gcc strength-reduce bug], ac_cv_c_gcc_strength_bug,
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
                      AC_TRY_RUN([
    
    int	L[[4]] = {0,1,2,3};
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    int main(void) {
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
      static int Array[[3]];
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
      unsigned int B = 3;
      int i;
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
      for(i=0; i<B; i++) Array[[i]] = i - 3;
    
      for(i=0; i<4 - 1; i++) L[[i]] = L[[i + 1]];
      L[[i]] = 4;
    
      exit( Array[[1]] != -2 || L[[2]] != 3);
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    }],
        ac_cv_c_gcc_strength_bug="no",
        ac_cv_c_gcc_strength_bug="yes",
        ac_cv_c_gcc_strength_bug="yes") )
      if test "$ac_cv_c_gcc_strength_bug" = "yes"
      then
    
        EXTRACFLAGS="$EXTRACFLAGS -fno-strength-reduce"
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
      fi
    
      dnl Check for -fshort-wchar
      AC_CACHE_CHECK([for gcc -fshort-wchar support], ac_cv_c_gcc_fshort_wchar,
          [WINE_TRY_CFLAGS([-fshort-wchar],
                          ac_cv_c_gcc_fshort_wchar="yes",ac_cv_c_gcc_fshort_wchar="no")])
      if test "$ac_cv_c_gcc_fshort_wchar" = "yes"
      then
          AC_DEFINE(CC_FLAG_SHORT_WCHAR, "-fshort-wchar", [Specifies the compiler flag that forces a short wchar_t])
      fi
    
    
      dnl Check for -fno-strict-aliasing
      AC_CACHE_CHECK([for gcc -fno-strict-aliasing support], ac_cv_c_gcc_no_strict_aliasing,
          [WINE_TRY_CFLAGS([-fno-strict-aliasing],
                          ac_cv_c_gcc_no_strict_aliasing="yes",ac_cv_c_gcc_no_strict_aliasing="no")])
      if test "$ac_cv_c_gcc_no_strict_aliasing" = "yes"
      then
        EXTRACFLAGS="$EXTRACFLAGS -fno-strict-aliasing"
      fi
    
    
      dnl Check for -gstabs+ option
      AC_CACHE_CHECK([for gcc -gstabs+ support], ac_cv_c_gcc_gstabs,
          [WINE_TRY_CFLAGS([-gstabs+],ac_cv_c_gcc_gstabs="yes", ac_cv_c_gcc_gstabs="no")])
      if test "$ac_cv_c_gcc_gstabs" = "yes"
      then
    
      dnl Check for -Wdeclaration-after-statement option
      AC_CACHE_CHECK([for gcc -Wdeclaration-after-statement support], ac_cv_c_gcc_decl_after_statement,
          [WINE_TRY_CFLAGS([-Wdeclaration-after-statement],ac_cv_c_gcc_decl_after_statement="yes", ac_cv_c_gcc_decl_after_statement="no")])
      if test "$ac_cv_c_gcc_decl_after_statement" = "yes"
      then
        EXTRACFLAGS="$EXTRACFLAGS -Wdeclaration-after-statement"
      fi
    
    
      CFLAGS="$CFLAGS -Wpointer-arith -Werror"
      AC_CACHE_CHECK([for broken string.h that generates warnings], ac_cv_c_string_h_warnings,
          AC_TRY_COMPILE([#include <string.h>],[],
                         [ac_cv_c_string_h_warnings=no],[ac_cv_c_string_h_warnings=yes]))
    
      if test "$ac_cv_c_string_h_warnings" = "no"
      then
    
        EXTRACFLAGS="$EXTRACFLAGS -Wpointer-arith"
    
    
      AC_SUBST(BUILTINFLAG,"")
      saved_CFLAGS="$CFLAGS"
      CFLAGS="$CFLAGS -Werror"
      AC_CACHE_CHECK([for builtin wchar inlines], ac_cv_c_builtin_wchar_ctype,
          AC_TRY_COMPILE([],
                         [int iswlower(unsigned short);],
                         [ac_cv_c_builtin_wchar_ctype=no],[ac_cv_c_builtin_wchar_ctype=yes]))
      CFLAGS="$saved_CFLAGS"
      if test "$ac_cv_c_builtin_wchar_ctype" = "yes"
      then
        BUILTINFLAG=""
        for builtin in \
          iswalnum iswalpha iswcntrl iswdigit iswgraph iswlower \
          iswprint iswpunct iswspace iswupper iswxdigit towlower towupper
        do
          BUILTINFLAG="$BUILTINFLAG -fno-builtin-$builtin"
        done
      fi
    
    dnl **** Check how to define a function in assembly code ****
    
    AC_CACHE_CHECK([how to define a function in assembly code], ac_cv_asm_func_def,
      WINE_TRY_ASM_LINK(
          ["\t.globl _ac_test\n\t.def _ac_test; .scl 2; .type 32; .endef\n_ac_test:\t.long 0"],,,
          ac_cv_asm_func_def=".def",
        [WINE_TRY_ASM_LINK(["\t.globl _ac_test\n\t.type _ac_test,@function\n_ac_test:\t.long 0"],,,
          ac_cv_asm_func_def=".type @function",
        [WINE_TRY_ASM_LINK(["\t.globl _ac_test\n\t.type _ac_test,2\n_ac_test:\t.long 0"],,,
          ac_cv_asm_func_def=".type 2",
          ac_cv_asm_func_def="unknown")])]))
    
    AH_TEMPLATE(__ASM_FUNC,[Define to a macro to generate an assembly function directive])
    case "$ac_cv_asm_func_def" in
      ".def")
         AC_DEFINE([__ASM_FUNC(name)], [".def " __ASM_NAME(name) "; .scl 2; .type 32; .endef"]) ;;
      ".type @function")
         AC_DEFINE([__ASM_FUNC(name)], [".type " __ASM_NAME(name) ",@function"]) ;;
      ".type 2")
         AC_DEFINE([__ASM_FUNC(name)], [".type " __ASM_NAME(name) ",2"]) ;;
      *)
         AC_DEFINE([__ASM_FUNC(name)], [""]) ;;
    esac
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    dnl **** Check for underscore on external symbols ****
    
    
    AC_CACHE_CHECK([whether external symbols need an underscore prefix], ac_cv_c_extern_prefix,
    
        WINE_TRY_ASM_LINK([".globl _ac_test\n_ac_test:\t.long 0"],
                          [extern int ac_test;],
                          [if (ac_test) return 1],
                          ac_cv_c_extern_prefix="yes",ac_cv_c_extern_prefix="no"))
    
    AH_TEMPLATE(__ASM_NAME,[Define to a macro to generate an assembly name from a C symbol])
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    if test "$ac_cv_c_extern_prefix" = "yes"
    then
    
      AC_DEFINE([__ASM_NAME(name)], ["_" name])
    else
      AC_DEFINE([__ASM_NAME(name)], [name])
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    dnl **** Check for working dll ****
    
    
    AC_SUBST(DLLIBS,"")
    AC_SUBST(LDSHARED,"")
    
    AC_SUBST(LIBEXT,"so")
    AC_SUBST(IMPLIBEXT,"def")
    
    case $host_os in
      cygwin*|mingw32*)
    
        AC_CHECK_TOOL(DLLTOOL,dlltool,false)
    
        AC_CHECK_TOOL(DLLWRAP,dllwrap,false)
        if test "$DLLWRAP" = "false"; then
          LIBEXT="a"
        else
    
          dnl FIXME - check whether dllwrap works correctly...
          LIBEXT="dll"
        fi
    
        dnl We can't build 16-bit NE dlls
        WIN16_FILES=""
        WIN16_INSTALL=""
    
        if test "$ac_cv_header_dlfcn_h" = "yes"
        then
            AC_CHECK_FUNCS(dlopen,,
    
                [AC_CHECK_LIB(dl,dlopen,
                             [AC_DEFINE(HAVE_DLOPEN,1,[Define if you have dlopen])
                              DLLIBS="-ldl"],