Skip to content
Snippets Groups Projects
configure.ac 53.2 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)
    
    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)
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    dnl Check for -lw for Solaris
    
    AC_CHECK_FUNCS(iswalnum,,AC_CHECK_LIB(w,iswalnum))
    
    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(XFILES)
    XFILES=""
    
    Lionel Ulmer's avatar
    Lionel Ulmer committed
    AC_SUBST(OPENGLFILES)
    OPENGLFILES=""
    
    AC_SUBST(GLU32FILES)
    
    AC_SUBST(OPENGL_LIBS)
    OPENGL_LIBS=""
    
    
    dnl **** Check for header files ****
    
    AC_CHECK_HEADERS(\
    
    	asm/types.h \
    
    	cups/cups.h \
    	direct.h \
    	elf.h \
    	float.h \
    	fontconfig/fontconfig.h \
    	getopt.h \
    	gif_lib.h \
    	ieeefp.h \
    	io.h \
    	jack/jack.h \
    	jpeglib.h \
    
    	lcms/lcms.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 \
    
    	mntent.h \
    	netdb.h \
    	netinet/in.h \
    	netinet/in_systm.h \
    	netinet/tcp.h \
    	netinet/tcp_fsm.h \
    	openssl/ssl.h \
    
    	poll.h \
    
    	process.h \
    	pthread.h \
    	pwd.h \
    	regex.h \
    	sched.h \
    	scsi/sg.h \
    	scsi/scsi.h \
    	scsi/scsi_ioctl.h \
    	stdint.h \
    	strings.h \
    	sys/cdio.h \
    	sys/elf32.h \
    	sys/errno.h \
    	sys/epoll.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/param.h \
    	sys/poll.h \
    	sys/ptrace.h \
    	sys/reg.h \
    	sys/scsiio.h \
    	sys/shm.h \
    	sys/signal.h \
    	sys/socket.h \
    	sys/sockio.h \
    	sys/statfs.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/vfs.h \
    	sys/vm86.h \
    	sys/wait.h \
    	syscall.h \
    	termios.h \
    	unistd.h \
    	utime.h \
    	valgrind/memcheck.h
    )
    AC_HEADER_STAT()
    
    dnl **** Check for X11 ****
    
    
        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,
          [
    
            AC_CHECK_HEADERS([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],,,
                             [#include <X11/Xlib.h>
                              #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
    
          ]
        ) dnl *** End of X11/Xlib.h check
    
    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)
    
    	if test "$ac_cv_header_GL_gl_h" = "yes" -a "$ac_cv_header_GL_glx_h" = "yes"
    
                AC_CHECK_HEADERS(GL/glext.h,,,[#include <GL/glx.h>])
    
    	    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_save_CPPFLAGS="$CPPFLAGS"
    CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
    AC_CHECK_HEADERS(libxml/parser.h,
        [AC_CHECK_LIB(xml2, xmlReadIO,
            [AC_DEFINE(HAVE_LIBXML2, 1, [Define if you have the libxml2 library])
             XML2LIBS="-lxml2"
             XML2INCL="-I/usr/include/libxml2"])])
    CPPFLAGS="$ac_save_CPPFLAGS"
    
    
    dnl **** Check which curses lib to use ***
    
            [AC_CHECK_LIB(ncurses,waddch,
    
                [AC_DEFINE(HAVE_LIBNCURSES, 1, [Define if you have the ncurses library (-lncurses)])
                 CURSESLIBS="-lncurses"],
                 [AC_CHECK_HEADERS(curses.h,
                     [AC_CHECK_LIB(curses,waddch,
                         [AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have the curses library (-lcurses)])
    
                          CURSESLIBS="-lcurses"])])])])
    
    dnl **** Check for SANE ****
    AC_CHECK_PROG(sane_devel,sane-config,sane-config,no)
    if test "$sane_devel" = "no"
    then
        SANELIBS=""
        SANEINCL=""
    else
        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
    AC_SUBST(SANELIBS)
    AC_SUBST(SANEINCL)
    
    
    dnl **** Check for the ICU library ****
    AC_CHECK_HEADERS(unicode/ubidi.h)
    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 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, ldap_init,
            [AC_CHECK_LIB(lber, ber_init,
                [AC_DEFINE(HAVE_LDAP, 1, [Define if you have the OpenLDAP development environment])
                 LDAPLIBS="-lldap -llber"])])
    fi
    
    
    dnl **** Check for FreeType 2 ****
    
    AC_CHECK_LIB(freetype,FT_Init_FreeType,ft_lib=yes,ft_lib=no,$X_LIBS)
    
    if test "$ft_lib" = "no"
    then
    
        FREETYPEINCL=""
        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
    
    	FREETYPEINCL=""
    	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/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)
    
    	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
    
    AC_SUBST(FREETYPEINCL)
    
    
    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")
    fi
    
    
    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 ****
    
    ac_save_LIBS="$LIBS"
    LIBS="$LIBS $LIBPTHREAD"
    
    AC_CHECK_FUNCS(\
            pthread_getattr_np \
            pthread_get_stackaddr_np \
            pthread_get_stacksize_np \
    )
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    dnl **** Check for Open Sound System ****
    
    AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h soundcard.h, break)
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    AC_CACHE_CHECK([for Open Sound System],
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	ac_cv_c_opensoundsystem,
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	AC_TRY_COMPILE([
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    		#include <sys/soundcard.h>
    
    	#elif defined(HAVE_MACHINE_SOUNDCARD_H)
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    		#include <machine/soundcard.h>
    
    	#elif defined(HAVE_SOUNDCARD_H)
    		#include <soundcard.h>
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	#endif
    	],[
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    /* check for one of the Open Sound System specific SNDCTL_ defines */
    #if !defined(SNDCTL_DSP_STEREO)
    #error No open sound system
    #endif
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    ],ac_cv_c_opensoundsystem="yes",ac_cv_c_opensoundsystem="no"))
    
    if test "$ac_cv_c_opensoundsystem" = "yes"
    then
    
        AC_DEFINE(HAVE_OSS, 1, [Define if you have the Open Sound system])
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    fi
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    AC_CACHE_CHECK([for Open Sound System/MIDI interface],
    
    	ac_cv_c_opensoundsystem_midi,
    	AC_TRY_COMPILE([
    	#if defined(HAVE_SYS_SOUNDCARD_H)
    		#include <sys/soundcard.h>
    	#elif defined(HAVE_MACHINE_SOUNDCARD_H)
    		#include <machine/soundcard.h>
    	#elif defined(HAVE_SOUNDCARD_H)
    		#include <soundcard.h>
    	#endif
    	],[
    
    /* check for one of the Open Sound System specific SNDCTL_SEQ defines */
    #if !defined(SNDCTL_SEQ_SYNC)
    #error No open sound system MIDI interface
    #endif
    ],ac_cv_c_opensoundsystem_midi="yes",ac_cv_c_opensoundsystem_midi="no"))
    
    if test "$ac_cv_c_opensoundsystem_midi" = "yes"
    then
    
        AC_DEFINE(HAVE_OSS_MIDI, 1, [Define if you have the Open Sound system (MIDI interface)])
    
    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=`$ARTSCCONFIG --libs`
        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 ALSA 1.x ****
    
    AC_SUBST(ALSALIBS,"")
    
    AC_CHECK_HEADERS(alsa/asoundlib.h sys/asoundlib.h, break)
    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,"")
    AC_CHECK_HEADERS(libaudioio.h,
        [AC_CHECK_LIB(audioio,AudioIOGetVersion,
                      [AUDIOIOLIBS="-laudioio"
                       AC_DEFINE(HAVE_LIBAUDIOIO, 1, [Define if you have libaudioIO])])])
    
    
    dnl **** Check for capi4linux ****
    
    AC_CHECK_HEADERS(capi20.h,[
    	AC_CHECK_HEADERS(linux/capi.h,[
    		AC_CHECK_LIB(capi20,capi20_register,[
    			AC_DEFINE(HAVE_CAPI4LINUX,1,[Define if you have capi4linux libs and headers])
    		])
    	])
    ])
    
    
    dnl **** Check for broken glibc mmap64 ****
    
    
    AC_CACHE_CHECK( [whether mmap64 works defined as mmap], ac_cv_mmap64_works,
    
    	AC_TRY_RUN([
    		#define _FILE_OFFSET_BITS 64
    		#include <stdio.h>
    		#include <unistd.h>
    		#include <fcntl.h>
    		#include <sys/mman.h>
    		#include <errno.h>
    
    		int main(int argc,char **argv) {
    			int fd = open("conftest.map",O_CREAT|O_RDWR,0600);
    			if (fd == -1) exit(1);
    
    			unlink("conftest.map");
    
    			write(fd,"test",4);
    
    			if ((-1 == mmap(0,4,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0)) &&
    			    (errno == EINVAL)
    			) {
    				exit(1);
    			}
    			close(fd);
    			fprintf(stderr,"success!\n");
    			exit(0);
    		}
    
    	],
        ac_cv_mmap64_works="yes",
        ac_cv_mmap64_works="no",
        ac_cv_mmap64_works="no") )
    
    if test "$ac_cv_mmap64_works" = "yes"
    then
        AC_DEFINE(_FILE_OFFSET_BITS, 64, [Set this to 64 to enable 64-bit file support on Linux])
    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 -mpreferred-stack-boundary
    
      AC_CACHE_CHECK([for gcc -mpreferred-stack-boundary=2 support], ac_cv_c_gcc_stack_boundary,
          [WINE_TRY_CFLAGS([-mpreferred-stack-boundary=2],
                          ac_cv_c_gcc_stack_boundary="yes",ac_cv_c_gcc_stack_boundary="no")])
    
      if test "$ac_cv_c_gcc_stack_boundary" = "yes"
      then
    
        EXTRACFLAGS="$EXTRACFLAGS -mpreferred-stack-boundary=2"
    
      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
    
      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"
    
    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=""
    
        ;;
      *)
        AC_CHECK_HEADERS(dlfcn.h,
            [AC_CHECK_FUNCS(dlopen,,
                [AC_CHECK_LIB(dl,dlopen,
                             [AC_DEFINE(HAVE_DLOPEN,1,[Define if you have dlopen])
                              DLLIBS="-ldl"],
                             [LIBEXT="a"])])],
            [LIBEXT="a"])
    
        if test "$LIBEXT" = "so"
        then
    
          AC_CACHE_CHECK([whether we can build a GNU style ELF dll], ac_cv_c_dll_gnuelf,
    
              [WINE_TRY_SHLIB_FLAGS([-fPIC -shared -Wl,-soname,conftest.so.1.0,-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 \$(SONAME:%=-Wl,-soname,%)"
    
            LDDLLFLAGS="-shared -Wl,-Bsymbolic"
    
            AC_CACHE_CHECK([whether the linker accepts -z defs], ac_cv_c_dll_zdefs,
              [WINE_TRY_CFLAGS([-fPIC -shared -Wl,-Bsymbolic,-z,defs],
                               ac_cv_c_dll_zdefs="yes",ac_cv_c_dll_zdefs="no")])
            if test "$ac_cv_c_dll_zdefs" = "yes"
            then
    
              LDDLLFLAGS="$LDDLLFLAGS,-z,defs"
    
            AC_CACHE_CHECK([whether the linker accepts -init and -fini], ac_cv_c_dll_init_fini,
              [WINE_TRY_CFLAGS([-fPIC -shared -Wl,-Bsymbolic,-init,__wine_spec_init,-fini,__wine_spec_fini],
                               ac_cv_c_dll_init_fini="yes",ac_cv_c_dll_init_fini="no")])
            if test "$ac_cv_c_dll_init_fini" = "yes"
            then
    
              LDDLLFLAGS="$LDDLLFLAGS,-init,__wine_spec_init,-fini,__wine_spec_fini"
    
            AC_CACHE_CHECK([whether the linker accepts version scripts], ac_cv_c_ld_version_scripts,
              [echo '{ global: *; };' >conftest.map
               WINE_TRY_CFLAGS([-fPIC -shared -Wl,--version-script=conftest.map],
                               ac_cv_c_ld_version_scripts="yes",ac_cv_c_ld_version_scripts="no")
               rm -f conftest.map])
            if test "$ac_cv_c_ld_version_scripts" = "yes"
            then
              LDSHARED="$LDSHARED \$(VERSCRIPT:%=-Wl,--version-script=%)"
            fi
    
    
            AC_CACHE_CHECK([whether the linker accepts --export-dynamic], ac_cv_c_export_dynamic,
              [WINE_TRY_CFLAGS([-fPIC -Wl,--export-dynamic],
                               ac_cv_c_export_dynamic="yes",ac_cv_c_export_dynamic="no")])
            if test "$ac_cv_c_export_dynamic" = "yes"
            then
    
              AC_SUBST(LDEXECFLAGS,["-Wl,--export-dynamic"])
    
                AC_CACHE_CHECK([whether we can relocate the executable to 0x7bf00000], ac_cv_ld_reloc_exec,
                  [WINE_TRY_CFLAGS([-Wl,--section-start,.interp=0x7bf00400],