Skip to content
Snippets Groups Projects
configure.ac 44.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_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 ****
    
    
    dnl Library type .so or .a
    AC_SUBST(LIBEXT,"so")
    
    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(opengl,AC_HELP_STRING([--enable-opengl],[force usage of OpenGL even if the latter is thread-safe via pthread]))
    
    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
    AC_SUBST(OPTIONS)
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    then
    
        AC_DEFINE(NO_DEBUG_MSGS,1,[Define to disable all debug messages.])
    
    if test "x$enable_trace" = "xno" -o "x$enable_debug" = "xno"
    
        AC_DEFINE(NO_TRACE_MSGS,1,[Define to disable trace messages.])
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    fi
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    dnl **** Check for some programs ****
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    AC_PROG_MAKE_SET
    AC_PROG_CC
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    AC_PROG_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_YACC
    AC_PROG_LEX
    
    
    dnl **** Just additional warning checks, since AC_PROG just sets 'yacc' even
    dnl **** without one present.
    AC_CHECK_PROGS(XYACC,$YACC bison yacc,none)
    if test "$XYACC" = "none"
    then
    
      AC_MSG_ERROR([no suitable bison/yacc found. Please install the 'bison' package.])
    
    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.])
    
    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_INSTALL
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    AC_PROG_LN_S
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    WINE_PROG_LN
    
    AC_CHECK_PROG(C2MAN,c2man,c2man,\$(TOPSRCDIR)/tools/c2man.pl)
    
    AC_PATH_PROG(LDCONFIG, ldconfig, true, [/sbin /usr/sbin $PATH])
    
    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)
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    dnl **** Check for some libraries ****
    
    
    dnl Check for -lm
    
    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 -lmmap for OS/2
    AC_CHECK_LIB(mmap,mmap)
    
    JPEGLIB=""
    AC_SUBST(JPEGLIB)
    AC_CHECK_HEADERS(jpeglib.h,
        AC_CHECK_LIB(jpeg,jpeg_start_decompress,
        	AC_DEFINE(HAVE_LIBJPEG,1,[Define if you have libjpeg including devel headers])
    	JPEGLIB="-ljpeg"
        )
    )
    
    
    
    AC_SUBST(XFILES)
    XFILES=""
    
    Lionel Ulmer's avatar
    Lionel Ulmer committed
    AC_SUBST(OPENGLFILES)
    OPENGLFILES=""
    
    AC_SUBST(GLU32FILES)
    
        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,
          [
    
            dnl *** Check for X keyboard extension
            AC_CHECK_HEADERS(X11/XKBlib.h,
                [ dnl *** If X11/XKBlib.h exists...
                  AC_CHECK_LIB(X11, XkbQueryExtension,
    
                  AC_DEFINE(HAVE_XKB, 1, [Define if you have the XKB extension]),,
    
                  $X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
                ],
    
                AC_MSG_WARN([[Xkb extension not found, Wine will be built without it]]),
                [#include <X11/Xlib.h>])
    
            dnl *** Check for X Shm extension
            AC_CHECK_HEADERS(X11/extensions/XShm.h,
                [ dnl *** If X11/extensions/XShm.h exists...
                  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)
                ],
    
                AC_MSG_WARN([[XShm extension not found, Wine will be built without it]]),
                [#include <X11/Xlib.h>])
    
            dnl *** Check for Xutil
            AC_CHECK_HEADERS(X11/Xutil.h,,,
                [#include <X11/Xlib.h>])
    
    
            dnl *** Check for X shape extension
    
            AC_CHECK_HEADERS(X11/extensions/shape.h,
    
                [ dnl *** If X11/extensions/shape.h exists...
                  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)
    	    ],
    
    	    AC_MSG_WARN([[XShape extension not found, Wine will be built without it]]),
    
                [#include <X11/Xlib.h>
                 #ifdef HAVE_X11_XUTIL_H
                 # include <X11/Xutil.h>
                 #endif])
    
            dnl *** Check for XFree86 DGA / DGA 2.0 extension
            AC_CHECK_HEADERS(X11/extensions/xf86dga.h,
    
                [ dnl *** If X11/extensions/xf86dga.h exists, check
    
                  dnl *** for XDGAQueryExtension()...
                  AC_CHECK_LIB(Xxf86dga, XDGAQueryExtension,
                    [ dnl *** If found...
    
                      AC_DEFINE(HAVE_LIBXXF86DGA2, 1,
                                [Define if you have the Xxf86dga library version 2])
    
                      X_PRE_LIBS="$X_PRE_LIBS -lXxf86dga"
                   ],
                    [ dnl *** If not found, look for XF86DGAQueryExtension()
                      dnl *** instead (DGA 2.0 not found)...
                      AC_CHECK_LIB(Xxf86dga, XF86DGAQueryExtension,
    
                        [ AC_DEFINE(HAVE_LIBXXF86DGA, 1,
                                    [Define if you have the Xxf86dga library version 1])
    
                          X_PRE_LIBS="$X_PRE_LIBS -lXxf86dga"
                        ],,
                        $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
                      )
                    ],
                    $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
                  )
                ],
    
                AC_MSG_WARN([[DGA extension not found, Wine will be built without it]]),
                [#include <X11/Xlib.h>])
    
    
            dnl *** Check for XFree86 VMODE extension
            AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,
                [ dnl *** If X11/extensions/xf86vmode.h exists...
                    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
                    )
                ],
    
                AC_MSG_WARN([[XFree86 VMODE extension not found, Wine will be built without it]]),
                [#include <X11/Xlib.h>])
    
    
            dnl *** Check for XVideo extension supporting XvImages
            AC_CHECK_HEADERS(X11/extensions/Xvlib.h,
                [ dnl *** If X11/extensions/Xvlib.h exists...
                    AC_CHECK_LIB(Xv, XvShmCreateImage,
    
                      [ AC_DEFINE(HAVE_XVIDEO, 1, [Define if the X libraries support XVideo])
    
                         X_PRE_LIBS="$X_PRE_LIBS -lXv"
                      ],,
                      $X_LIBS -lXext -lX11 $X_EXTRA_LIBS
                    )
                ],
    
                AC_MSG_WARN([[XVideo extension not found, Wine will be built without it]]),
                [#include <X11/Xlib.h>])
    
            dnl *** Check for XRender include file
            AC_CHECK_HEADERS(X11/extensions/Xrender.h,,,[#include <X11/Xlib.h>])
    
          ]
        ) dnl *** End of X11/Xlib.h check
    
    Lionel Ulmer's avatar
    Lionel Ulmer committed
        dnl Check for the presence of OpenGL
    
            if test -f /usr/X11R6/lib/libGL.a -a ! -f /usr/X11R6/lib/libGL.so
    
            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
    
    
    	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"]
    
                )
    
    	    dnl Check for the thread-safety of the OpenGL library
    
    	    AC_CACHE_CHECK([for thread-safe OpenGL version],
    
    Lionel Ulmer's avatar
    Lionel Ulmer committed
    			   wine_cv_opengl_version_threadsafe,
    
                  [saved_libs=$LIBS
    	       LIBS="$X_LIBS -lGL"
    	       AC_TRY_LINK([],[pthread_getspecific();],
    
    Lionel Ulmer's avatar
    Lionel Ulmer committed
    			      [wine_cv_opengl_version_threadsafe="yes"],
    			      [wine_cv_opengl_version_threadsafe="no"])
    
    	    if test "$wine_cv_opengl_version_OK" = "yes" -a \( "$wine_cv_opengl_version_threadsafe" = "no" -o "x$enable_opengl" = "xyes" \)
    
    		dnl Check for the presence of the library
    
    		AC_CHECK_LIB(GL,glXCreateContext,
    			     X_PRE_LIBS="$X_PRE_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])
    
    			AC_CHECK_LIB(GL,glXGetProcAddressARB,
                                         AC_DEFINE(HAVE_GLX_GETPROCADDRESS, 1,
                                                   [Define if the OpenGL library supports the glXGetProcAddressARB call]),,
                                         $X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS)
    
    			if test "$ac_cv_lib_GL_glXGetProcAddressARB" = "yes"
    
    Lionel Ulmer's avatar
    Lionel Ulmer committed
    			then
    
    			       AC_CACHE_CHECK([for OpenGL extension functions prototypes], wine_cv_extension_prototypes,
    			          [AC_TRY_COMPILE([#include <GL/gl.h>
    
    				  		  #ifdef HAVE_GL_GLEXT_H
    						  # include <GL/glext.h>
    						  #endif
    						  ],
    
    						 [PFNGLCOLORTABLEEXTPROC test_proc;],
    
    						 [wine_cv_extension_prototypes="yes"],
    
    						 [wine_cv_extension_prototypes="no"]
    
    				if test "$wine_cv_extension_prototypes" = "yes"
    
    				    AC_DEFINE(HAVE_GLEXT_PROTOTYPES, 1,
                                                  [Define if the OpenGL headers define extension typedefs])
    
    	        dnl Check for GLU32 library.
    
    			     [X_PRE_LIBS="$X_PRE_LIBS -lGLU"
    			     GLU32FILES='$(GLU32FILES)']
    
    			     ,,
    			     $X_LIBS $X_PRE_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS
    		)
    
    
        CPPFLAGS="$ac_save_CPPFLAGS"
    
        XFILES='$(XFILES)'
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    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"])])])])
    
        saved_libs="$LIBS"
        LIBS="$CURSESLIBS $LIBS"
    
    CUPSLIBS=""
    dnl **** Check for CUPS ****
    
    AC_CHECK_LIB(cups,cupsGetPPD,
    
    	[AC_CHECK_HEADER(cups/cups.h,
    	    [AC_DEFINE(HAVE_CUPS, 1, [Define if we have CUPS])
    	    CUPSLIBS="-lcups"],
                wine_cv_warn_cups_h=yes)]
    
    )
    AC_SUBST(CUPSLIBS)
    
    
    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 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
    
    	ac_save_CPPFLAGS="$CPPFLAGS"
    	CPPFLAGS="$FREETYPEINCL $CPPFLAGS"
    	AC_CHECK_HEADERS(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/internal/sfnt.h)
    
    	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
    
        fi
    fi
    AC_SUBST(FREETYPEINCL)
    
    
    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 IPX (currently Linux only) ****
    
    AC_CACHE_CHECK([for GNU style IPX support], ac_cv_c_ipx_gnu,
    
     AC_TRY_COMPILE(
       [#include <sys/socket.h>
        #include <netipx/ipx.h>],
       [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
    
    Aaron Hope's avatar
    Aaron Hope committed
       [ac_cv_c_ipx_gnu="yes"],
    
    Aaron Hope's avatar
    Aaron Hope committed
    if test "$ac_cv_c_ipx_gnu" = "yes"
    then
    
        AC_DEFINE(HAVE_IPX_GNU, 1, [Define if IPX should use netipx/ipx.h from libc])
    
    Aaron Hope's avatar
    Aaron Hope committed
    fi
    
     AC_CACHE_CHECK([for linux style IPX support], ac_cv_c_ipx_linux,
    
      AC_TRY_COMPILE(
        [#include <sys/socket.h>
         #include <asm/types.h>
         #include <linux/ipx.h>],
        [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
    
    Aaron Hope's avatar
    Aaron Hope committed
        [ac_cv_c_ipx_linux="yes"],
    
    Aaron Hope's avatar
    Aaron Hope committed
      if test "$ac_cv_c_ipx_linux" = "yes"
      then
    
          AC_DEFINE(HAVE_IPX_LINUX, 1, [Define if IPX includes are taken from Linux kernel])
    
    Aaron Hope's avatar
    Aaron Hope committed
      fi
    
    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)
    AC_CACHE_CHECK([for aRts Sound server],
            ac_cv_c_artsserver,
            if test x$ARTSCCONFIG = x -o x$ARTSCCONFIG = x'"$ARTSCCONFIG"';
            then
                ac_cv_c_artsserver=no
            else
                ARTSC_CFLAGS=`$ARTSCCONFIG --cflags`
                ARTSC_LIBS=`$ARTSCCONFIG --libs`
                ac_cv_c_artsserver=no
                save_CFLAGS="$CFLAGS"
                CFLAGS="$CFLAGS $ARTSC_CFLAGS"
                AC_TRY_COMPILE([
                 #include <artsc.h>
                ],[
                 arts_stream_t stream;
                ],[
                ac_cv_c_artsserver=yes
                ])
                CFLAGS="$save_CFLAGS"
            fi)
    
    if test "$ac_cv_c_artsserver" = "yes"
    then
        AC_SUBST(ARTSLIBS, $ARTSC_LIBS)
        AC_SUBST(ARTSINCL, $ARTSC_CFLAGS)
    
        AC_DEFINE(HAVE_ARTS, 1, [Define if you have ARTS sound server])
    fi
    
    
    dnl **** Check for ALSA ****
    AC_SUBST(ALSALIBS,"")
    AC_CHECK_HEADERS(sys/asoundlib.h)
    if test "$ac_cv_header_sys_asoundlib_h" = "yes"
    then
        AC_CHECK_LIB(asound,snd_pcm_open,
        	AC_DEFINE(HAVE_ALSA,1,[Define if you have ALSA including devel headers])
    	ALSALIBS="-lasound")
    fi
    
    
    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) \$(XLIB)"],,
                       [-lXt $X_LIBS -lXext -lX11 $X_EXTRA_LIBS])])
    
    
    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 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
    
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    dnl **** Check for gcc strength-reduce bug ****
    
    if test "x${GCC}" = "xyes"
    then
      CFLAGS="$CFLAGS -Wall"
    
      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
        CFLAGS="$CFLAGS -fno-strength-reduce"
      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
        CFLAGS="$CFLAGS -mpreferred-stack-boundary=2"
      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])
    
    dnl **** Check whether stdcall symbols need to be decorated ****
    
    
    AC_CACHE_CHECK([whether stdcall symbols need to be decorated], ac_cv_c_stdcall_decoration,
    
        WINE_TRY_ASM_LINK(["\t.globl _ac_test@0\n_ac_test@0:\n\t.globl ac_test@0\nac_test@0:"],
                          [extern void __attribute__((__stdcall__)) ac_test(void);],
                          [ac_test()],
                          ac_cv_c_stdcall_decoration="yes",ac_cv_c_stdcall_decoration="no"))
    
    if test "$ac_cv_c_stdcall_decoration" = "yes"
    then
    
      AC_DEFINE(NEED_STDCALL_DECORATION, 1, [Define if stdcall symbols need to be decorated])
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    dnl **** Check for .string in assembler ****
    
    
    AC_CACHE_CHECK([whether assembler accepts .string], ac_cv_c_asm_string,
    
        WINE_TRY_ASM_LINK([".string \"test\""],,,ac_cv_c_asm_string="yes",ac_cv_c_asm_string="no"))
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    if test "$ac_cv_c_asm_string" = "yes"
    then
    
      AC_DEFINE(HAVE_ASM_STRING, 1, [Define to use .string instead of .ascii])
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    dnl **** Check for working dll ****
    
    
    AC_SUBST(DLLEXT,"")
    AC_SUBST(DLLFLAGS,"")
    AC_SUBST(DLLIBS,"")
    AC_SUBST(LDDLLFLAGS,"")
    AC_SUBST(LDSHARED,"")
    
    case $host_os in
      cygwin*|mingw32*)
        AC_CHECK_TOOL(DLLWRAP,dllwrap,false)
        if test "$DLLWRAP" = "false"; then
          LIBEXT="a"
        else
    
          dnl FIXME - check whether dllwrap works correctly...
          LIBEXT="dll"
        fi
        ;;
      *)
        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_CFLAGS([-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="-Wl,-Bsymbolic"
          else
    
            AC_CACHE_CHECK(whether we can build a UnixWare (Solaris) dll, ac_cv_c_dll_unixware,
                [WINE_TRY_CFLAGS([-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,-B,symbolic"
            fi
          fi
    
    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.]
    )
    
    case $build_os in
      cygwin*|mingw32*)
    
        AC_SUBST(LDPATH,"PATH=\"\$(TOOLSDIR)/library:\$(TOOLSDIR)/unicode:\$\$PATH\"") ;;
    
        AC_SUBST(LDPATH,"LD_LIBRARY_PATH=\"\$(TOOLSDIR)/library:\$(TOOLSDIR)/unicode:\$\$LD_LIBRARY_PATH\"") ;;
    
    dnl Mingw needs explicit msvcrt for linking libwine
    AC_SUBST(CRTLIBS,"")
    case $host_os in
      mingw32*)
        CRTLIBS="-lmsvcrt" ;;
    esac
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    dnl **** Get the soname for libraries that we load dynamically ****
    
    if test "$LIBEXT" = "so"
    
      WINE_GET_SONAME(X11,XCreateWindow,[$X_LIBS $X_EXTRA_LIBS])
      WINE_GET_SONAME(Xext,XextCreateExtension,[$X_LIBS -lX11 $X_EXTRA_LIBS])
      WINE_GET_SONAME(Xrender,XRenderQueryExtension,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
      WINE_GET_SONAME(freetype,FT_Init_FreeType,[$X_LIBS])
    
    wine_cv_libc_reentrant=no
    
    dnl Linux style errno location
    
    WINE_CHECK_ERRNO([__errno_location], [wine_cv_libc_reentrant=__errno_location],
      dnl FreeBSD style errno location
      WINE_CHECK_ERRNO([__error], [wine_cv_libc_reentrant=__error],
        dnl Solaris style errno location
        WINE_CHECK_ERRNO([___errno], [wine_cv_libc_reentrant=___errno],
          dnl UnixWare style errno location
          WINE_CHECK_ERRNO([__thr_errno], [wine_cv_libc_reentrant=__thr_errno],
            dnl NetBSD style errno location
            WINE_CHECK_ERRNO([__errno], [wine_cv_libc_reentrant=__errno])
    ))))
    
    if test "$wine_cv_libc_reentrant" != "no"
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    then
    
      AC_DEFINE_UNQUOTED(ERRNO_LOCATION,$wine_cv_libc_reentrant,
    	             [Define to the name of the function returning errno for reentrant libc])
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    dnl **** Check for reentrant X libraries ****
    dnl
    dnl This may fail to determine whether X libraries are reentrant if
    
    dnl AC_PATH_XTRA does not set x_libraries.
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    
    
    if test "$have_x" = "yes"
    
    AC_CACHE_CHECK( [for reentrant X libraries], wine_cv_x_reentrant,
    
        [libX11_check=none
        for dir in "$x_libraries" /usr/lib /usr/local/lib /lib; do
            if test -r $dir/libX11.so; then
                libX11_check="-D $dir/libX11.so"
                break
            fi
            if test -r $dir/libX11.a; then
                libX11_check="$dir/libX11.a"
                break
            fi
        done
        if test "$libX11_check" != "none"; then
            if nm $libX11_check | grep $wine_cv_libc_reentrant >/dev/null 2>&1
            then
                wine_cv_x_reentrant=yes
            else
                wine_cv_x_reentrant=no
            fi
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
        else
    
            wine_cv_x_reentrant=unknown
        fi])
    
    dnl **** Check for functions ****
    
    
    Patrik Stridvall's avatar
    Patrik Stridvall committed
    AC_FUNC_ALLOCA()
    
    	ftruncate64 \
    
    	getnetbyaddr \
    	getnetbyname \
    
    	getprotobyname \
    	getprotobynumber \
    
    	getservbyport \
    	getsockopt \
    	inet_network \
    
    	mmap \
    
    	tcgetattr \
    	timegm \
    	usleep \
    	vfscanf \
    	wait4 \
    	waitpid \
    )
    
    dnl **** Check for header files ****
    
    AC_CHECK_HEADERS(\
    
    	netdb.h \
    
    	netinet/in_systm.h \
    
    Steven Edwards's avatar
    Steven Edwards committed
    	pwd.h \
    
    	sys/file.h \
    	sys/filio.h \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	sys/ioctl.h \
    
    Eric Pouech's avatar
    Eric Pouech committed
    	sys/link.h \
    
    	sys/modem.h \
    	sys/mount.h \
    
    	sys/reg.h \
    
    	sys/sockio.h \
    	sys/statfs.h \
    	sys/strtio.h \
    	sys/syscall.h \
    
    	sys/sysctl.h \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    	termios.h \
    
    Alexandre Julliard's avatar
    Alexandre Julliard committed
    AC_HEADER_STAT()
    
    dnl *** Check for net/if.h
    AC_CHECK_HEADERS(net/if.h,,,
    
        [#if HAVE_SYS_TYPES_H
         # include <sys/types.h>
         #endif
         #if HAVE_SYS_SOCKET_H
    
         # include <sys/socket.h>
         #endif])
    
    dnl *** Check for netinet/ip.h
    AC_CHECK_HEADERS(netinet/ip.h,,,
        [#if HAVE_SYS_SOCKET_H
         # include <sys/socket.h>
         #endif