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_PREREQ(2.53) AC_INIT([Wine],WINE_VERSION,[wine-devel@winehq.org]) AC_CONFIG_SRCDIR(server/atom.c) AC_CONFIG_HEADERS(include/config.h) AC_CONFIG_AUX_DIR(tools) 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>])) AC_SUBST(WIN16_FILES,"\$(WIN16_FILES)") AC_SUBST(WIN16_INSTALL,"\$(WIN16_INSTALL)") if test "x$enable_win16" = "xno" then WIN16_FILES="" WIN16_INSTALL="" fi AC_SUBST(DLLDEFS,"") if test "x$enable_debug" = "xno" then DLLDEFS="$DLLDEFS -DWINE_NO_DEBUG_MSGS" fi if test "x$enable_trace" = "xno" -o "x$enable_debug" = "xno" then DLLDEFS="$DLLDEFS -DWINE_NO_TRACE_MSGS" fi dnl **** Check for some programs **** AC_CANONICAL_HOST 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" fi ;; esac AC_PROG_MAKE_SET AC_PROG_CC AC_PROG_CXX 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) AC_PATH_XTRA 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.]) fi 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 AC_CHECK_TOOLS(AS,[gas as],as) AC_CHECK_TOOL(LD,ld,ld) AC_CHECK_TOOL(AR,ar,ar) AC_PROG_RANLIB AC_CHECK_TOOL(STRIP,strip,strip) AC_CHECK_TOOL(WINDRES,windres,false) AC_PROG_LN_S WINE_PROG_LN AC_PROG_EGREP 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 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(DB2HTML, docbook2html db2html, false) AC_CHECK_PROGS(DB2PDF, docbook2pdf db2pdf, false) AC_CHECK_PROGS(DB2PS, docbook2ps db2ps, false) AC_CHECK_PROGS(DB2TXT, docbook2txt db2txt, false) AC_CHECK_PROGS(FONTFORGE, fontforge, false) dnl **** Check for some libraries **** dnl Check for -li386 for NetBSD and OpenBSD AC_CHECK_LIB(i386,i386_set_ldt) dnl Check for -lossaudio for NetBSD AC_CHECK_LIB(ossaudio,_oss_ioctl) dnl Check for -lw for Solaris AC_CHECK_FUNCS(iswalnum,,AC_CHECK_LIB(w,iswalnum)) dnl Check for -lnsl for Solaris 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)) 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) XFILES="" AC_SUBST(OPENGLFILES) OPENGLFILES="" AC_SUBST(GLU32FILES) GLU32FILES="" AC_SUBST(OPENGL_LIBS) OPENGL_LIBS="" if test "$have_x" = "yes" then 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/Xvlib.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) fi dnl *** Check for X Shm extension if test "$ac_cv_header_X11_extensions_XShm_h" = "yes" then AC_CHECK_LIB(Xext, XShmQueryExtension, AC_DEFINE(HAVE_LIBXXSHM, 1, [Define if you have the X Shm extension]),, $X_LIBS -lXext -lX11 $X_EXTRA_LIBS) fi 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) fi 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, [ 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) 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])]) fi dnl *** Check for XVideo extension supporting XvImages if test "$ac_cv_header_X11_extensions_Xvlib_h" = "yes" then 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) fi ] ) dnl *** End of X11/Xlib.h check dnl Check for the presence of OpenGL if test "x$with_opengl" != "xno" then 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" then 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, AC_TRY_COMPILE( [#include <GL/gl.h>], [GLenum test = GL_UNSIGNED_SHORT_5_6_5;], [wine_cv_opengl_version_OK="yes"], [wine_cv_opengl_version_OK="no"] ) ) if test "$wine_cv_opengl_version_OK" = "yes" then 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" then 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" 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" then AC_DEFINE(HAVE_GLEXT_PROTOTYPES, 1, [Define if the OpenGL headers define extension typedefs]) fi fi fi dnl Check for GLU32 library. AC_CHECK_LIB(GLU,gluLookAt, [OPENGL_LIBS="$OPENGL_LIBS -lGLU" GLU32FILES='$(GLU32FILES)'] ,, $OPENGL_LIBS $X_LIBS $X_PRE_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS ) fi dnl Check for glut32 library. AC_CHECK_LIB(glut,glutMainLoop, [AC_SUBST(GLUT_LIBS,"-lglut -lXmu -lXi") AC_SUBST(GLUT32FILES,'$(GLUT32FILES)')],, $OPENGL_LIBS $X_LIBS $X_PRE_LIBS -lXmu -lXi -lX11 $X_EXTRA_LIBS) fi 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 -lXext -lX11 $X_EXTRA_LIBS"],, [-lXt $X_LIBS -lXext -lX11 $X_EXTRA_LIBS])]) CPPFLAGS="$ac_save_CPPFLAGS" XFILES='$(XFILES)' else XLIB="" X_CFLAGS="" X_LIBS="" fi dnl **** Check which curses lib to use *** CURSESLIBS="" if test "x$with_curses" != "xno" then AC_CHECK_HEADERS(ncurses.h, [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" AC_CHECK_FUNCS(getbkgd resizeterm) LIBS="$saved_libs" fi AC_SUBST(CURSESLIBS) 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)]) LIBS="$saved_libs" 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 FREETYPELIBS="" 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 FREETYPELIBS="" FREETYPEINCL="" wine_cv_msg_freetype=yes else FREETYPELIBS=`$ft_devel --libs` FREETYPEINCL=`$ft_devel --cflags` 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 \ freetype/ttnameid.h \ 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 FREETYPELIBS="" FREETYPEINCL="" wine_cv_msg_freetype=yes fi fi fi AC_SUBST(FREETYPELIBS) 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]) fi 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 \ ) LIBS="$ac_save_LIBS" dnl **** Check for Open Sound System **** AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h soundcard.h, break) AC_CACHE_CHECK([for Open Sound System], ac_cv_c_opensoundsystem, 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_ defines */ #if !defined(SNDCTL_DSP_STEREO) #error No open sound system #endif ],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]) fi 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)]) fi dnl **** Check for aRts Sound Server **** AC_PATH_PROG(ARTSCCONFIG, artsc-config) if test x$ARTSCCONFIG != x -a x$ARTSCCONFIG != x'"$ARTSCCONFIG"'; 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_TRY_COMPILE([#include <artsc.h>],[arts_stream_t stream;], [AC_SUBST(ARTSLIBS, $ARTSC_LIBS) AC_SUBST(ARTSINCL, $ARTSC_CFLAGS) AC_DEFINE(HAVE_ARTS, 1, [Define if you have ARTS sound server])]) CFLAGS="$save_CFLAGS" fi dnl **** Check for ALSA **** 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" 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 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]) AC_SUBST(CAPI4LINUXLIBS,"-lcapi20") ]) ]) ]) 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 **** AC_SUBST(EXTRACFLAGS,"") if test "x${GCC}" = "xyes" then EXTRACFLAGS="-Wall -pipe" dnl Check for strength-reduce bug AC_CACHE_CHECK( [for gcc strength-reduce bug], ac_cv_c_gcc_strength_bug, AC_TRY_RUN([ int L[[4]] = {0,1,2,3}; int main(void) { static int Array[[3]]; unsigned int B = 3; int i; 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); }], 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" 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" 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 EXTRACFLAGS="$EXTRACFLAGS -gstabs+" fi dnl Check for noisy string.h saved_CFLAGS="$CFLAGS" 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])) CFLAGS="$saved_CFLAGS" if test "$ac_cv_c_string_h_warnings" = "no" then EXTRACFLAGS="$EXTRACFLAGS -Wpointer-arith" fi 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 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]) if test "$ac_cv_c_extern_prefix" = "yes" then AC_DEFINE([__ASM_NAME(name)], ["_" name]) else AC_DEFINE([__ASM_NAME(name)], [name]) fi dnl **** Check how to do strings in assembler **** AC_CACHE_CHECK([for assembler keyword for ASCII strings], ac_cv_c_asm_string, WINE_TRY_ASM_LINK([".data\\n\\t.string \\"test\\"\\n\\t.text"],,,ac_cv_c_asm_string=".string", WINE_TRY_ASM_LINK([".data\\n\\t.asciz \\"test\\"\\n\\t.text"],,,ac_cv_c_asm_string=".asciz", WINE_TRY_ASM_LINK([".data\\n\\t.ascii \\"test\\"\\n\\t.text"],,,ac_cv_c_asm_string=".ascii", AC_MSG_ERROR([could not discover how to produce C strings with assembler.]))))) AC_DEFINE_UNQUOTED(__ASM_STRING, ["$ac_cv_c_asm_string"], [Define to the assembler keyword used to specify an ASCII string]) dnl **** Check for .short in assembler **** AC_CACHE_CHECK([for assembler keyword for word values], ac_cv_c_asm_short, WINE_TRY_ASM_LINK([".data\\n\\t.short 1\\n\\t.text"],,,ac_cv_c_asm_short=".short", WINE_TRY_ASM_LINK([".data\\n\\t.half 1\\n\\t.text"],,,ac_cv_c_asm_short=".half", AC_MSG_ERROR([could not discover how to specify word values with assembler.])))) AC_DEFINE_UNQUOTED(__ASM_SHORT, ["$ac_cv_c_asm_short"], [Define to the assembler keyword used to specify a word value]) dnl **** Check for .size in assembler **** AC_CACHE_CHECK([for .size in assembler], ac_cv_c_asm_size, WINE_TRY_ASM_LINK([".globl _ac_test\n.size _ac_test, . - _ac_test"],,, ac_cv_c_asm_size="yes",ac_cv_c_asm_size="no")) if test "$ac_cv_c_asm_size" = "yes" then AC_DEFINE(HAVE_ASM_DOT_SIZE, 1, [Define if the assembler keyword .size is accepted]) fi dnl **** Check for working dll **** AC_SUBST(DLLEXT,"") AC_SUBST(DLLFLAGS,"-D_REENTRANT") AC_SUBST(DLLIBS,"") AC_SUBST(LDSHARED,"") AC_SUBST(LDDLLFLAGS,"") 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 IMPLIBEXT="a" 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 DLLFLAGS="$DLLFLAGS -fPIC" DLLEXT=".so" AC_CACHE_CHECK([whether we can build a GNU style ELF dll], ac_cv_c_dll_gnuelf, [WINE_TRY_SHLIB_FLAGS([-fPIC -shared -Wl,-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" fi 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" fi 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"]) fi case $host_cpu in *i[[3456789]]86*) AC_CACHE_CHECK([whether we can relocate the executable to 0x77f00000], ac_cv_ld_reloc_exec, [WINE_TRY_CFLAGS([-Wl,--section-start,.interp=0x77f00400], ac_cv_ld_reloc_exec="yes", ac_cv_ld_reloc_exec="no")]) if test "$ac_cv_ld_reloc_exec" = "yes" then LDEXECFLAGS="$LDEXECFLAGS -Wl,--section-start,.interp=0x77f00400" fi ;; esac else AC_CACHE_CHECK(whether we can build a UnixWare (Solaris) dll, ac_cv_c_dll_unixware, [WINE_TRY_SHLIB_FLAGS([-fPIC -Wl,-G,-h,conftest.so.1.0,-B,symbolic], ac_cv_c_dll_unixware="yes",ac_cv_c_dll_unixware="no")]) if test "$ac_cv_c_dll_unixware" = "yes" then LDSHARED="\$(CC) -Wl,-G \$(SONAME:%=-Wl,-h,%)" LDDLLFLAGS="-Wl,-G,-B,symbolic" else AC_CACHE_CHECK(whether we can build a Mach-O (Mac OS X/Darwin) dll, ac_cv_c_dll_macho, [WINE_TRY_SHLIB_FLAGS([-bundle], ac_cv_c_dll_macho="yes", ac_cv_c_dll_macho="no")]) if test "$ac_cv_c_dll_macho" = "yes" then LIBEXT="dylib" LDDLLFLAGS="-bundle -flat_namespace -undefined suppress" LDSHARED="\$(CC) -dynamiclib" CFLAGS="$CFLAGS -ffixed-r13 -no-cpp-precomp" STRIP="$STRIP -u -r" dnl Relocate wine executable AC_SUBST(LDEXECFLAGS,"-seg1addr 0x120000") dnl Relocate libwine.dyld too AC_SUBST(LDLIBWINEFLAGS,"-seg1addr 0x140000") dnl declare needed frameworks AC_SUBST(COREFOUNDATIONLIB,"-framework CoreFoundation") AC_SUBST(IOKITLIB,"-framework IOKit") dnl using IOKit imply we use CoreFoundation too IOKITLIB = "$IOKITLIB $COREFOUNDATIONLIB" else AC_CACHE_CHECK(whether we can build an HP-UX dll, ac_cv_c_dll_hpux, [WINE_TRY_SHLIB_FLAGS([-shared], ac_cv_c_dll_hpux="yes", ac_cv_c_dll_hpux="no")]) if test "$ac_cv_c_dll_hpux" = "yes" then LIBEXT="sl" DLLEXT=".sl" LDDLLFLAGS="-shared -fPIC" LDSHARED="\$(CC) -shared" fi fi fi fi fi dnl Check for cross compiler to build test programs AC_SUBST(CROSSTEST,"") if test "$cross_compiling" = "no" then AC_CHECK_PROGS(CROSSCC,i586-mingw32msvc-gcc i386-mingw32msvc-gcc i386-mingw32-gcc mingw-gcc,false) AC_CHECK_PROGS(DLLTOOL,i586-mingw32msvc-dlltool i386-mingw32msvc-dlltool i386-mingw32-dlltool mingw-dlltool,false) AC_CHECK_PROGS(CROSSWINDRES,i586-mingw32msvc-windres i386-mingw32msvc-windres i386-mingw32-windres mingw-windres,false) if test "$CROSSCC" != "false"; then CROSSTEST="\$(CROSSTEST)"; fi fi ;; esac if test "$LIBEXT" = "a"; then AC_MSG_ERROR( [could not find a way to build shared libraries. It is currently not possible to build Wine without shared library (.so) support to allow transparent switch between .so and .dll files. If you are using Linux, you will need a newer binutils.] ) fi case $build_os in cygwin*|mingw32*) AC_SUBST(LDPATH,"PATH=\"\$(TOOLSDIR)/libs/unicode:\$\$PATH\"") ;; darwin*|macosx*) AC_SUBST(LDPATH,"DYLD_LIBRARY_PATH=\"\$(TOOLSDIR)/libs/unicode:\$\$DYLD_LIBRARY_PATH\"") ;; *) AC_SUBST(LDPATH,"LD_LIBRARY_PATH=\"\$(TOOLSDIR)/libs/unicode:\$\$LD_LIBRARY_PATH\"") ;; esac dnl Mingw needs explicit msvcrt for linking libwine and winsock for wininet case $host_os in mingw32*) AC_SUBST(CRTLIBS,"-lmsvcrt") AC_SUBST(SOCKETLIBS,"-lws2_32") ;; esac case $host_os in linux*) case $host_cpu in *i[[3456789]]86*) AC_SUBST(WINE_BINARIES,"wine-glibc wine-kthread wine-pthread wine-preloader") ;; *) AC_SUBST(WINE_BINARIES,"wine-glibc wine-kthread wine-pthread") ;; esac AC_SUBST(MAIN_BINARY,"wine-glibc") ;; darwin*) AC_SUBST(WINE_BINARIES,"wine-pthread") AC_SUBST(MAIN_BINARY,"wine-pthread") ;; *) AC_SUBST(WINE_BINARIES,"wine-kthread") AC_SUBST(MAIN_BINARY,"wine-kthread") ;; esac dnl **** Get the soname for libraries that we load dynamically **** if test "$LIBEXT" = "so" -o "$LIBEXT" = "dylib" then WINE_GET_SONAME(X11,XCreateWindow,[$X_LIBS $X_EXTRA_LIBS]) WINE_GET_SONAME(Xext,XextCreateExtension,[$X_LIBS -lX11 $X_EXTRA_LIBS]) WINE_GET_SONAME(Xi,XOpenDevice,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS]) WINE_GET_SONAME(Xrender,XRenderQueryExtension,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS]) WINE_GET_SONAME(Xrandr,XRRQueryExtension,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS]) WINE_GET_SONAME(freetype,FT_Init_FreeType,[$X_LIBS]) WINE_GET_SONAME(GL,glXQueryExtension,[$X_LIBS $X_EXTRA_LIBS]) WINE_GET_SONAME(txc_dxtn,fetch_2d_texel_rgba_dxt1) WINE_GET_SONAME(cups,cupsGetDefault) WINE_GET_SONAME(jack,jack_client_new) WINE_GET_SONAME(fontconfig,FcInit) WINE_GET_SONAME(ssl,SSL_library_init) WINE_GET_SONAME(crypto,BIO_new_socket) WINE_GET_SONAME(ncurses,waddch) WINE_GET_SONAME(curses,waddch) WINE_GET_SONAME(jpeg,jpeg_start_decompress) WINE_GET_SONAME(ungif,DGifOpen) WINE_GET_SONAME(gif,DGifOpen) WINE_GET_SONAME(lcms,cmsOpenProfileFromFile) fi dnl **** Check for functions **** AC_FUNC_ALLOCA() AC_CHECK_FUNCS(\ _lwp_create \ _lwp_self \ _pclose \ _popen \ _snprintf \ _spawnvp \ _stricmp \ _strnicmp \ _vsnprintf \ chsize \ clone \ epoll_create \ finite \ fork \ fpclass \ fstatfs \ fstatvfs \ ftruncate \ ftruncate64 \ futimes \ getnetbyaddr \ getnetbyname \ getopt_long \ getpagesize \ getprotobyname \ getprotobynumber \ getpwuid \ getservbyport \ gettid \ gettimeofday \ getuid \ inet_network \ lseek64 \ lstat \ memmove \ mmap \ pclose \ popen \ pread \ pwrite \ readlink \ rfork \ sched_yield \ select \ sendmsg \ settimeofday \ sigaltstack \ snprintf \ spawnvp \ statfs \ statvfs \ strcasecmp \ strerror \ strncasecmp \ tcgetattr \ timegm \ usleep \ vfscanf \ vsnprintf \ wait4 \ waitpid \ ) dnl **** Check for header files **** AC_CHECK_HEADERS(\ arpa/inet.h \ arpa/nameser.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.h \ libio.h \ libutil.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 \ machine/cpu.h \ mntent.h \ netdb.h \ netinet/in.h \ netinet/in_systm.h \ netinet/tcp.h \ netinet/tcp_fsm.h \ openssl/ssl.h \ process.h \ pthread.h \ pty.h \ pwd.h \ regex.h \ sched.h \ scsi/sg.h \ scsi/scsi.h \ scsi/scsi_ioctl.h \ socket.h \ stdint.h \ strings.h \ sys/cdio.h \ sys/elf32.h \ sys/errno.h \ sys/epoll.h \ sys/exec_elf.h \ sys/file.h \ sys/filio.h \ sys/inttypes.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/v86.h \ sys/v86intr.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 **** Checks for headers that depend on other ones **** AC_CHECK_HEADERS(sys/mount.h sys/user.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],,, [#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(netinet/ip.h,,, [#include <sys/types.h> #if HAVE_SYS_SOCKET_H # include <sys/socket.h> #endif #if HAVE_NETINET_IN_SYSTM_H # include <netinet/in_systm.h> #endif]) AC_CHECK_HEADERS(ucontext.h,,,[#include <signal.h>]) dnl **** Check for IPX headers (currently Linux only) **** AC_CACHE_CHECK([for GNU style IPX support], ac_cv_c_ipx_gnu, AC_TRY_COMPILE( [#include <sys/types.h> #ifdef HAVE_SYS_SOCKET_H # include <sys/socket.h> #endif #include <netipx/ipx.h>], [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX], [ac_cv_c_ipx_gnu="yes"], [ac_cv_c_ipx_gnu="no"]) ) 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]) fi if test "$ac_cv_c_ipx_gnu" = "no" then AC_CACHE_CHECK([for linux style IPX support], ac_cv_c_ipx_linux, AC_TRY_COMPILE( [#include <sys/types.h> #ifdef HAVE_SYS_SOCKET_H # include <sys/socket.h> #endif #include <asm/types.h> #include <linux/ipx.h>], [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX], [ac_cv_c_ipx_linux="yes"], [ac_cv_c_ipx_linux="no"]) ) if test "$ac_cv_c_ipx_linux" = "yes" then AC_DEFINE(HAVE_IPX_LINUX, 1, [Define if IPX includes are taken from Linux kernel]) fi fi dnl **** Check for types **** AC_C_CONST AC_C_INLINE AC_CHECK_TYPES([mode_t, off_t, pid_t, size_t, ssize_t, long long, fsblkcnt_t, fsfilcnt_t]) AC_CACHE_CHECK([whether linux/input.h is for real], wine_cv_linux_input_h, AC_TRY_COMPILE([ #include <linux/input.h> ] , [ int foo = EVIOCGBIT(EV_ABS,42); int bar = BTN_PINKIE; int fortytwo = 42; ], wine_cv_linux_input_h=yes, wine_cv_linux_input_h=no, no ) ) if test "$wine_cv_linux_input_h" = "yes" then AC_DEFINE(HAVE_CORRECT_LINUXINPUT_H, 1, [Define if we have linux/input.h AND it contains the INPUT event API]) fi AC_CACHE_CHECK([whether we can use re-entrant gethostbyname_r Linux style], wine_cv_linux_gethostbyname_r_6, AC_TRY_LINK([ #include <netdb.h> ], [ char *name=NULL; struct hostent he; struct hostent *result; char *buf=NULL; int bufsize=0; int res,errnr; char *addr=NULL; int addrlen=0; int addrtype=0; res=gethostbyname_r(name,&he,buf,bufsize,&result,&errnr); res=gethostbyaddr_r(addr, addrlen, addrtype,&he,buf,bufsize,&result,&errnr); ], wine_cv_linux_gethostbyname_r_6=yes, wine_cv_linux_gethostbyname_r_6=no ) ) if test "$wine_cv_linux_gethostbyname_r_6" = "yes" then AC_DEFINE(HAVE_LINUX_GETHOSTBYNAME_R_6, 1, [Define if Linux-style gethostbyname_r and gethostbyaddr_r are available]) fi if test "$ac_cv_header_linux_joystick_h" = "yes" then AC_CACHE_CHECK([whether linux/joystick.h uses the Linux 2.2+ API], wine_cv_linux_joystick_22_api, AC_TRY_COMPILE([ #include <sys/ioctl.h> #include <linux/joystick.h> struct js_event blub; #if !defined(JS_EVENT_AXIS) || !defined(JS_EVENT_BUTTON) #error "no 2.2 header" #endif ],/*empty*/, wine_cv_linux_joystick_22_api=yes, wine_cv_linux_joystick_22_api=no, wine_cv_linux_joystick_22_api=no ) ) if test "$wine_cv_linux_joystick_22_api" = "yes" then AC_DEFINE(HAVE_LINUX_22_JOYSTICK_API, 1, [Define if <linux/joystick.h> defines the Linux 2.2 joystick API]) fi fi dnl **** statfs checks **** if test "$ac_cv_header_sys_vfs_h" = "yes" then AC_CACHE_CHECK( [whether sys/vfs.h defines statfs], wine_cv_sys_vfs_has_statfs, AC_TRY_COMPILE([ #include <sys/types.h> #ifdef HAVE_SYS_PARAM_H # include <sys/param.h> #endif #include <sys/vfs.h> ],[ struct statfs stfs; memset(&stfs,0,sizeof(stfs)); ],wine_cv_sys_vfs_has_statfs=yes,wine_cv_sys_vfs_has_statfs=no ) ) if test "$wine_cv_sys_vfs_has_statfs" = "yes" then AC_DEFINE(STATFS_DEFINED_BY_SYS_VFS, 1, [Define if the struct statfs is defined by <sys/vfs.h>]) fi fi if test "$ac_cv_header_sys_statfs_h" = "yes" then AC_CACHE_CHECK( [whether sys/statfs.h defines statfs], wine_cv_sys_statfs_has_statfs, AC_TRY_COMPILE([ #include <sys/types.h> #ifdef HAVE_SYS_PARAM_H # include <sys/param.h> #endif #include <sys/statfs.h> ],[ struct statfs stfs; ],wine_cv_sys_statfs_has_statfs=yes,wine_cv_sys_statfs_has_statfs=no ) ) if test "$wine_cv_sys_statfs_has_statfs" = "yes" then AC_DEFINE(STATFS_DEFINED_BY_SYS_STATFS, 1, [Define if the struct statfs is defined by <sys/statfs.h>]) fi fi if test "$ac_cv_header_sys_mount_h" = "yes" then AC_CACHE_CHECK( [whether sys/mount.h defines statfs], wine_cv_sys_mount_has_statfs, AC_TRY_COMPILE([ #include <sys/types.h> #ifdef HAVE_SYS_PARAM_H # include <sys/param.h> #endif #include <sys/mount.h> ],[ struct statfs stfs; ],wine_cv_sys_mount_has_statfs=yes,wine_cv_sys_mount_has_statfs=no ) ) if test "$wine_cv_sys_mount_has_statfs" = "yes" then AC_DEFINE(STATFS_DEFINED_BY_SYS_MOUNT, 1, [Define if the struct statfs is defined by <sys/mount.h>]) fi fi dnl **** FIXME: what about mixed cases, where we need two of them? *** dnl Check for statfs members AC_CHECK_MEMBERS([struct statfs.f_bfree, struct statfs.f_bavail, struct statfs.f_frsize, struct statfs.f_ffree, struct statfs.f_favail, struct statfs.f_namelen],,, [#include <sys/types.h> #ifdef HAVE_SYS_PARAM_H # include <sys/param.h> #endif #ifdef STATFS_DEFINED_BY_SYS_MOUNT # include <sys/mount.h> #else # ifdef STATFS_DEFINED_BY_SYS_VFS # include <sys/vfs.h> # else # ifdef STATFS_DEFINED_BY_SYS_STATFS # include <sys/statfs.h> # endif # endif #endif]) AC_CHECK_MEMBERS([struct statvfs.f_blocks],,, [#ifdef HAVE_SYS_STATVFS_H #include <sys/statvfs.h> #endif]) dnl Check for socket structure members AC_CHECK_MEMBERS([struct msghdr.msg_accrights, struct sockaddr.sa_len, struct sockaddr_un.sun_len],,, [#include <sys/types.h> #ifdef HAVE_SYS_SOCKET_H # include <sys/socket.h> #endif #ifdef HAVE_SYS_UN_H # include <sys/un.h> #endif]) dnl Check for siginfo_t members AC_CHECK_MEMBERS([siginfo_t.si_fd],,,[#include <signal.h>]) dnl Check for struct option AC_CHECK_MEMBERS([struct option.name],,, [#ifdef HAVE_GETOPT_H #include <getopt.h> #endif]) dnl Check for stat.st_blocks AC_CHECK_MEMBERS([struct stat.st_blocks]) dnl *** check for the need to define platform-specific symbols case $host_cpu in *i[[3456789]]86*) WINE_CHECK_DEFINE([__i386__]) ;; *alpha*) WINE_CHECK_DEFINE([__ALPHA__]) ;; *sparc*) WINE_CHECK_DEFINE([__sparc__]) ;; *powerpc*) WINE_CHECK_DEFINE([__powerpc__]) ;; esac case $host_vendor in *sun*) WINE_CHECK_DEFINE([__sun__]) ;; esac dnl **** Generate output files **** AH_TOP([#define __WINE_CONFIG_H]) WINE_CONFIG_EXTRA_DIR(dlls/ddraw/d3ddevice) WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dclipper) WINE_CONFIG_EXTRA_DIR(dlls/ddraw/ddraw) WINE_CONFIG_EXTRA_DIR(dlls/ddraw/direct3d) WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dpalette) WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dsurface) WINE_CONFIG_EXTRA_DIR(dlls/gdi/enhmfdrv) WINE_CONFIG_EXTRA_DIR(dlls/gdi/mfdrv) WINE_CONFIG_EXTRA_DIR(dlls/kernel/messages) WINE_CONFIG_EXTRA_DIR(dlls/user/dde) WINE_CONFIG_EXTRA_DIR(dlls/user/resources) WINE_CONFIG_EXTRA_DIR(dlls/wineps/data) WINE_CONFIG_EXTRA_DIR(include/wine) WINE_CONFIG_EXTRA_DIR(misc) WINE_CONFIG_EXTRA_DIR(programs/regedit/tests) WINE_CONFIG_EXTRA_DIR(windows) MAKE_RULES=Make.rules AC_SUBST_FILE(MAKE_RULES) MAKE_DLL_RULES=dlls/Makedll.rules AC_SUBST_FILE(MAKE_DLL_RULES) MAKE_TEST_RULES=dlls/Maketest.rules AC_SUBST_FILE(MAKE_TEST_RULES) MAKE_LIB_RULES=libs/Makelib.rules AC_SUBST_FILE(MAKE_LIB_RULES) MAKE_PROG_RULES=programs/Makeprog.rules AC_SUBST_FILE(MAKE_PROG_RULES) AC_CONFIG_FILES([ Make.rules dlls/Makedll.rules dlls/Maketest.rules libs/Makelib.rules programs/Makeprog.rules Makefile dlls/Makefile dlls/advapi32/Makefile dlls/advapi32/tests/Makefile dlls/advpack/Makefile dlls/amstream/Makefile dlls/atl/Makefile dlls/avicap32/Makefile dlls/avifil32/Makefile dlls/cabinet/Makefile dlls/capi2032/Makefile dlls/cards/Makefile dlls/cfgmgr32/Makefile dlls/comcat/Makefile dlls/comctl32/Makefile dlls/comctl32/tests/Makefile dlls/commdlg/Makefile dlls/crtdll/Makefile dlls/crypt32/Makefile dlls/ctl3d/Makefile dlls/d3d8/Makefile dlls/d3d9/Makefile dlls/d3dim/Makefile dlls/d3drm/Makefile dlls/d3dx8/Makefile dlls/d3dxof/Makefile dlls/dbghelp/Makefile dlls/dciman32/Makefile dlls/ddraw/Makefile dlls/ddraw/tests/Makefile dlls/devenum/Makefile dlls/dinput/Makefile dlls/dinput8/Makefile dlls/dmband/Makefile dlls/dmcompos/Makefile dlls/dmime/Makefile dlls/dmloader/Makefile dlls/dmscript/Makefile dlls/dmstyle/Makefile dlls/dmsynth/Makefile dlls/dmusic/Makefile dlls/dmusic32/Makefile dlls/dplay/Makefile dlls/dplayx/Makefile dlls/dpnet/Makefile dlls/dpnhpast/Makefile dlls/dsound/Makefile dlls/dsound/tests/Makefile dlls/dswave/Makefile dlls/dxdiagn/Makefile dlls/dxerr8/Makefile dlls/dxerr9/Makefile dlls/dxguid/Makefile dlls/gdi/Makefile dlls/gdi/tests/Makefile dlls/glu32/Makefile dlls/glut32/Makefile dlls/hhctrl.ocx/Makefile dlls/iccvid/Makefile dlls/icmp/Makefile dlls/ifsmgr.vxd/Makefile dlls/imagehlp/Makefile dlls/imm32/Makefile dlls/iphlpapi/Makefile dlls/iphlpapi/tests/Makefile dlls/itss/Makefile dlls/kernel/Makefile dlls/kernel/tests/Makefile dlls/lzexpand/Makefile dlls/mapi32/Makefile dlls/mapi32/tests/Makefile dlls/mlang/Makefile dlls/mlang/tests/Makefile dlls/mmdevldr.vxd/Makefile dlls/monodebg.vxd/Makefile dlls/mpr/Makefile dlls/msacm/Makefile dlls/msacm/imaadp32/Makefile dlls/msacm/msadp32/Makefile dlls/msacm/msg711/Makefile dlls/msacm/winemp3/Makefile dlls/msacm/tests/Makefile dlls/mscms/Makefile dlls/mscms/tests/Makefile dlls/msdmo/Makefile dlls/mshtml/Makefile dlls/msi/Makefile dlls/msimg32/Makefile dlls/msisys/Makefile dlls/msnet32/Makefile dlls/msrle32/Makefile dlls/msvcrt/Makefile dlls/msvcrt/tests/Makefile dlls/msvcrt20/Makefile dlls/msvcrt40/Makefile dlls/msvcrtd/Makefile dlls/msvcrtd/tests/Makefile dlls/msvidc32/Makefile dlls/msvideo/Makefile dlls/mswsock/Makefile dlls/netapi32/Makefile dlls/netapi32/tests/Makefile dlls/newdev/Makefile dlls/ntdll/Makefile dlls/ntdll/tests/Makefile dlls/odbc32/Makefile dlls/ole32/Makefile dlls/ole32/tests/Makefile dlls/oleacc/Makefile dlls/oleaut32/Makefile dlls/oleaut32/tests/Makefile dlls/olecli/Makefile dlls/oledlg/Makefile dlls/olepro32/Makefile dlls/olesvr/Makefile dlls/opengl32/Makefile dlls/psapi/Makefile dlls/psapi/tests/Makefile dlls/qcap/Makefile dlls/quartz/Makefile dlls/quartz/tests/Makefile dlls/rasapi32/Makefile dlls/richedit/Makefile dlls/rpcrt4/Makefile dlls/rpcrt4/tests/Makefile dlls/rsabase/Makefile dlls/rsabase/tests/Makefile dlls/secur32/Makefile dlls/serialui/Makefile dlls/setupapi/Makefile dlls/shdocvw/Makefile dlls/shell32/Makefile dlls/shell32/tests/Makefile dlls/shfolder/Makefile dlls/shlwapi/Makefile dlls/shlwapi/tests/Makefile dlls/snmpapi/Makefile dlls/sti/Makefile dlls/strmiids/Makefile dlls/tapi32/Makefile dlls/ttydrv/Makefile dlls/twain/Makefile dlls/unicows/Makefile dlls/url/Makefile dlls/urlmon/Makefile dlls/urlmon/tests/Makefile dlls/user/Makefile dlls/user/tests/Makefile dlls/uuid/Makefile dlls/uxtheme/Makefile dlls/vdhcp.vxd/Makefile dlls/vdmdbg/Makefile dlls/version/Makefile dlls/version/tests/Makefile dlls/vmm.vxd/Makefile dlls/vnbt.vxd/Makefile dlls/vnetbios.vxd/Makefile dlls/vtdapi.vxd/Makefile dlls/vwin32.vxd/Makefile dlls/win32s/Makefile dlls/winaspi/Makefile dlls/wined3d/Makefile dlls/winedos/Makefile dlls/wineps/Makefile dlls/wininet/Makefile dlls/wininet/tests/Makefile dlls/winmm/Makefile dlls/winmm/joystick/Makefile dlls/winmm/mcianim/Makefile dlls/winmm/mciavi/Makefile dlls/winmm/mcicda/Makefile dlls/winmm/mciseq/Makefile dlls/winmm/mciwave/Makefile dlls/winmm/midimap/Makefile dlls/winmm/tests/Makefile dlls/winmm/wavemap/Makefile dlls/winmm/winealsa/Makefile dlls/winmm/winearts/Makefile dlls/winmm/wineaudioio/Makefile dlls/winmm/winejack/Makefile dlls/winmm/winenas/Makefile dlls/winmm/wineoss/Makefile dlls/winnls/Makefile dlls/winsock/Makefile dlls/winsock/tests/Makefile dlls/winspool/Makefile dlls/winspool/tests/Makefile dlls/wintab32/Makefile dlls/wintrust/Makefile dlls/wow32/Makefile dlls/wsock32/Makefile dlls/x11drv/Makefile documentation/Makefile fonts/Makefile include/Makefile libs/Makefile libs/port/Makefile libs/unicode/Makefile libs/wine/Makefile libs/wpp/Makefile loader/Makefile programs/Makefile programs/avitools/Makefile programs/clock/Makefile programs/cmdlgtst/Makefile programs/control/Makefile programs/expand/Makefile programs/msiexec/Makefile programs/notepad/Makefile programs/progman/Makefile programs/regedit/Makefile programs/regsvr32/Makefile programs/rpcss/Makefile programs/rundll32/Makefile programs/start/Makefile programs/taskmgr/Makefile programs/uninstaller/Makefile programs/view/Makefile programs/wcmd/Makefile programs/wineboot/Makefile programs/winebrowser/Makefile programs/winecfg/Makefile programs/wineconsole/Makefile programs/winedbg/Makefile programs/winefile/Makefile programs/winemenubuilder/Makefile programs/winemine/Makefile programs/winepath/Makefile programs/winetest/Makefile programs/winevdm/Makefile programs/winhelp/Makefile programs/winver/Makefile server/Makefile tools/Makefile tools/widl/Makefile tools/winapi/Makefile tools/winebuild/Makefile tools/winedump/Makefile tools/winegcc/Makefile tools/wmc/Makefile tools/wrc/Makefile]) AC_OUTPUT if test "$have_x" = "no" then echo echo "*** Warning: X development files not found. Wine will be built without" echo "*** X support, which currently does not work, and would probably not be" echo "*** what you want anyway. You will need to install devel packages of" echo "*** Xlib/Xfree86 at the very least." fi if test "$wine_cv_opengl_version_OK" = "no" then echo echo "*** Warning: old Mesa headers detected. Wine will be built without Direct3D" echo "*** support. Consider upgrading your Mesa libraries (http://www.mesa3d.org/)." fi if test "$wine_cv_msg_freetype" = "yes" then echo echo "*** Note: Your system appears to have the FreeType 2 runtime libraries" echo "*** installed, but 'freetype-config' is not in your PATH. Install the" echo "*** freetype-devel package (or its equivalent on your distribution) to" echo "*** enable Wine to use TrueType fonts." fi echo echo "Configure finished. Do '${ac_make} depend && ${ac_make}' to compile Wine." echo dnl Local Variables: dnl comment-start: "dnl " dnl comment-end: "" dnl comment-start-skip: "\\bdnl\\b\\s *" dnl compile-command: "autoconf" dnl End: