dnl Process this file with autoconf to produce a configure script. dnl Author: Michael Patra dnl AC_REVISION([configure.in 1.00]) AC_INIT(controls/edit.c) AC_CONFIG_HEADER(include/config.h) AC_CONFIG_AUX_DIR(tools) # We want these before the checks, so the checks can modify their values. test -z "$PROGEXT" && PROGEXT="" AC_SUBST(PROGEXT) dnl **** Command-line arguments **** dnl Default values MAIN_TARGET=emu LIB_TARGET=libwine.a ALT_LINK="-L\$(TOPOBJDIR) -lwine" TRACE_MSGS=yes # the TRACE() macro DEBUG_MSGS=yes # the TRACE(), WARN(), and FIXME() macros. AC_ARG_ENABLE(emulator, [ --disable-emulator build only the Wine library, not the emulator], [if test "$enableval" = "no"; then MAIN_TARGET="lib"; fi]) AC_ARG_ENABLE(dll, [ --enable-dll build the Wine library as a DLL], [if test "$enableval" = "no"; then : ; else LIB_TARGET="libwine.so.1.0"; fi]) AC_ARG_ENABLE(lib, [ --disable-lib build the Wine without building libwine.a], [if test "$enableval" = "no"; then ALT_LINK="\$(LIBOBJS) \$(X11OBJS)"; LIB_TARGET=""; fi]) AC_ARG_ENABLE(debug, [ --disable-debug compile out all debugging messages], [if test "$enableval" = "no"; then DEBUG_MSGS="no"; fi]) AC_ARG_ENABLE(trace, [ --disable-trace compile out TRACE messages], [if test "$enableval" = "no"; then TRACE_MSGS="no"; fi]) AC_ARG_WITH(reentrant-x, [ --without-reentrant-x compile for use with non-reentrant X libraries]) AC_SUBST(MAIN_TARGET) AC_SUBST(LIB_TARGET) AC_SUBST(ALT_LINK) AC_SUBST(OPTIONS) if test "$DEBUG_MSGS" = "no" then AC_DEFINE(NO_DEBUG_MSGS) AC_DEFINE(NO_TRACE_MSGS) else if test "$TRACE_MSGS" = "no" then AC_DEFINE(NO_TRACE_MSGS) fi fi dnl **** Check for some programs **** AC_PROG_MAKE_SET AC_PROG_CC AC_PROG_CPP AC_PATH_XTRA AC_PROG_YACC AC_PROG_LEX AC_PROG_RANLIB AC_PROG_INSTALL AC_PROG_LN_S AC_CHECK_PROG(C2MAN,c2man,c2man,true) AC_PATH_PROG(LDCONFIG, ldconfig, false, /sbin:/usr/sbin:$PATH) 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 some libraries **** dnl Check for -lm for BeOS AC_CHECK_LIB(m,sqrt) 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_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 -lxpg4 for FreeBSD AC_CHECK_LIB(xpg4,setrunelocale) dnl Check for -lmmap for OS/2 AC_CHECK_LIB(mmap,mmap) AC_CHECK_HEADERS(dlfcn.h, AC_CHECK_FUNCS(dlopen, AC_DEFINE(HAVE_DL_API), AC_CHECK_LIB(dl,dlopen, AC_DEFINE(HAVE_DL_API) LIBS="$LIBS -ldl" ) ) ) AC_SUBST(XLIB) if test "$have_x" = "yes" then XLIB="-lXext -lX11" ac_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $X_CFLAGS" dnl Check for -lXpm AC_CHECK_HEADERS(X11/xpm.h) if test "$ac_cv_header_X11_xpm_h" = "yes" then AC_CHECK_LIB(Xpm,XpmCreatePixmapFromData,AC_DEFINE(HAVE_LIBXXPM) X_PRE_LIBS="$X_PRE_LIBS -lXpm",,$X_LIBS -lXext -lX11) fi dnl Check for X Shm extension AC_CHECK_HEADERS(X11/Xlib.h X11/extensions/XShm.h) if test "$ac_cv_header_X11_Xlib_h" = "yes" -a "$ac_cv_header_X11_extensions_XShm_h" = "yes" then AC_CHECK_LIB(Xext,XShmQueryExtension,AC_DEFINE(HAVE_LIBXXSHM),,$X_LIBS -lXext -lX11) fi dnl Check for XFree86 DGA extension AC_CHECK_HEADERS(X11/Xlib.h X11/extensions/xf86dga.h) if test "$ac_cv_header_X11_Xlib_h" = "yes" -a "$ac_cv_header_X11_extensions_xf86dga_h" = "yes" then AC_CHECK_LIB(Xxf86dga,XF86DGAQueryExtension,AC_DEFINE(HAVE_LIBXXF86DGA) X_PRE_LIBS="$X_PRE_LIBS -lXxf86dga",,$X_LIBS -lXext -lX11) fi dnl Check for XFree86 VMODE extension AC_CHECK_HEADERS(X11/Xlib.h X11/extensions/xf86vmode.h) if test "$ac_cv_header_X11_Xlib_h" = "yes" -a "$ac_cv_header_X11_extensions_xf86vmode_h" = "yes" then AC_CHECK_LIB(Xxf86vm,XF86VidModeQueryExtension,AC_DEFINE(HAVE_LIBXXF86VM) X_PRE_LIBS="$X_PRE_LIBS -lXxf86vm",,$X_LIBS -lXext -lX11) fi dnl Check for the presence of Mesa AC_CHECK_HEADERS(GL/gl.h GL/glx.h GL/osmesa.h) if test "$ac_cv_header_GL_gl_h" = "yes" -a "$ac_cv_header_GL_glx_h" = "yes" then dnl Check for some problems due to old Mesa versions AC_CACHE_CHECK("for up-to-date Mesa version", wine_cv_mesa_version_OK, AC_TRY_COMPILE( [#include ], [GLenum test = GL_UNSIGNED_SHORT_5_6_5;], [wine_cv_mesa_version_OK="yes"], [wine_cv_mesa_version_OK="no"] ) ) if test "$wine_cv_mesa_version_OK" = "yes" then dnl Check for the presense of the library AC_CHECK_LIB(GL,glXCreateContext,AC_DEFINE(HAVE_LIBMESAGL) X_PRE_LIBS="$X_PRE_LIBS -lGL",,$X_LIBS -lXext -lX11 -lm) if test "$ac_cv_lib_GL_glXCreateContext" = "no" then AC_CHECK_LIB(MesaGL,glXCreateContext,AC_DEFINE(HAVE_LIBMESAGL) X_PRE_LIBS="$X_PRE_LIBS -lMesaGL",,$X_LIBS -lXext -lX11 -lm) fi fi fi CPPFLAGS="$ac_save_CPPFLAGS" else XLIB="" X_CFLAGS="" X_LIBS="" fi dnl **** Check which curses lib to use *** AC_CHECK_HEADERS(ncurses.h) if test "$ac_cv_header_ncurses_h" = "yes" then AC_CHECK_LIB(ncurses,waddch) fi if test "$ac_cv_lib_ncurses_waddch" = "yes" then AC_CHECK_LIB(ncurses,resizeterm,AC_DEFINE(HAVE_RESIZETERM)) AC_CHECK_LIB(ncurses,getbkgd,AC_DEFINE(HAVE_GETBKGD)) else AC_CHECK_HEADERS(curses.h) if test "$ac_cv_header_curses_h" = "yes" then AC_CHECK_LIB(curses,waddch) AC_CHECK_LIB(curses,resizeterm,AC_DEFINE(HAVE_RESIZETERM)) AC_CHECK_LIB(curses,getbkgd,AC_DEFINE(HAVE_GETBKGD)) fi fi dnl **** Check for IPX (currently Linux only) **** AC_CACHE_CHECK("for GNU style IPX support", ac_cv_c_ipx_gnu, AC_TRY_COMPILE( [#include #include ], [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX], [AC_DEFINE(HAVE_IPX_GNU) ac_cv_c_ipx_gnu="yes"], [ac_cv_c_ipx_gnu="no"]) ) 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 #include #include ], [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX], [AC_DEFINE(HAVE_IPX_LINUX) ac_cv_c_ipx_linux="yes"], [ac_cv_c_ipx_linux="no"]) ) fi 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 #elif defined(HAVE_MACHINE_SOUNDCARD_H) #include #elif defined(HAVE_SOUNDCARD_H) #include #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) 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 #elif defined(HAVE_MACHINE_SOUNDCARD_H) #include #elif defined(HAVE_SOUNDCARD_H) #include #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) fi dnl **** If ln -s doesn't work, use cp instead **** if test "$ac_cv_prog_LN_S" = "ln -s"; then : ; else LN_S=cp ; fi 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, AC_TRY_RUN([ int main(void) { static int Array[[3]]; unsigned int B = 3; int i; for(i=0; i conftest_asm.s < conftest_asm.s </dev/null 2>&1 then wine_cv_x_reentrant=yes else wine_cv_x_reentrant=no fi else wine_cv_x_reentrant=unknown fi fi ] ) else wine_cv_x_reentrant=no fi if test "$wine_cv_x_reentrant" = "no" then AC_DEFINE(NO_REENTRANT_X11) fi dnl **** Check for functions **** AC_FUNC_ALLOCA() AC_CHECK_FUNCS(\ _lwp_create \ clone \ getpagesize \ memmove \ rfork \ sendmsg \ sigaltstack \ strerror \ stricmp \ tcgetattr \ timegm \ usleep \ vfscanf \ wait4 \ waitpid \ ) dnl **** Check for header files **** AC_CHECK_HEADERS(\ arpa/nameser.h \ curses.h \ elf.h \ float.h \ libio.h \ linux/cdrom.h \ linux/ucdrom.h \ ncurses.h \ net/if.h \ netinet/in.h \ resolv.h \ strings.h \ sys/cdio.h \ sys/errno.h \ sys/file.h \ sys/filio.h \ sys/lwp.h \ sys/mman.h \ sys/modem.h \ sys/mount.h \ sys/param.h \ sys/signal.h \ sys/sockio.h \ sys/statfs.h \ sys/strtio.h \ sys/syscall.h \ sys/vfs.h \ syscall.h \ ucontext.h \ unistd.h \ wctype.h \ ) AC_HEADER_STAT() dnl **** Check for types **** AC_C_CONST() AC_C_INLINE() AC_TYPE_SIZE_T() AC_CHECK_SIZEOF(long long,0) 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 #ifdef HAVE_SYS_PARAM_H # include #endif #include ],[ 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) 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 #ifdef HAVE_SYS_PARAM_H # include #endif #include ],[ 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) 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 #ifdef HAVE_SYS_PARAM_H # include #endif #include ],[ 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) fi fi dnl **** FIXME: what about mixed cases, where we need two of them? *** AC_CACHE_CHECK( "for statfs.f_bfree", wine_cv_statfs_bfree, [ if test "x$statfs_bfree" = "xno" then wine_cv_statfs_bfree=no else AC_TRY_COMPILE([ #include #ifdef HAVE_SYS_PARAM_H # include #endif #ifdef STATFS_DEFINED_BY_SYS_MOUNT # include #else # ifdef STATFS_DEFINED_BY_SYS_VFS # include # else # ifdef STATFS_DEFINED_BY_SYS_STATFS # include # endif # endif #endif ],[ struct statfs stfs; stfs.f_bfree++; ],wine_cv_statfs_bfree=yes,wine_cv_statfs_bfree=no ) fi ] ) if test "$wine_cv_statfs_bfree" = "yes" then AC_DEFINE(STATFS_HAS_BFREE) fi AC_CACHE_CHECK( "for statfs.f_bavail", wine_cv_statfs_bavail, [ if test "x$statfs_bavail" = "xno" then wine_cv_statfs_bavail=no else AC_TRY_COMPILE([ #include #ifdef HAVE_SYS_PARAM_H # include #endif #ifdef STATFS_DEFINED_BY_SYS_MOUNT # include #else # ifdef STATFS_DEFINED_BY_SYS_VFS # include # else # ifdef STATFS_DEFINED_BY_SYS_STATFS # include # endif # endif #endif ],[ struct statfs stfs; stfs.f_bavail++; ],wine_cv_statfs_bavail=yes,wine_cv_statfs_bavail=no ) fi ] ) if test "$wine_cv_statfs_bavail" = "yes" then AC_DEFINE(STATFS_HAS_BAVAIL) fi dnl *** check for working sigaltstack dnl glibc 2.0x defines it, but it always fails... so it is useless for us. AC_CACHE_CHECK("for working sigaltstack", ac_cv_c_working_sigaltstack, AC_TRY_RUN([ #include #include /* ? bad magic without end */ #include #include #ifdef HAVE_SYS_PARAM_H # include #endif #ifdef HAVE_SYSCALL_H # include #else # ifdef HAVE_SYS_SYSCALL_H # include # endif #endif unsigned char *xaltstack; int main(int argc,char **argv) { struct sigaltstack ss; xaltstack = malloc(16384); ss.ss_sp = xaltstack; ss.ss_size = 16384; ss.ss_flags = 0; if (sigaltstack(&ss, NULL) < 0) { /* this catches the glibc case */ perror("sigaltstack"); return (1); /* aka exit(1) aka fail */ } /* assume it works. */ return 0; /* OK */ } ], ac_cv_c_working_sigaltstack="yes", ac_cv_c_working_sigaltstack="no", ac_cv_c_working_sigaltstack="no" )) if test "$ac_cv_c_working_sigaltstack" = "yes" then AC_DEFINE(HAVE_WORKING_SIGALTSTACK) fi dnl *** check for file descriptor passing with msg_accrights AC_CACHE_CHECK("for msg_accrights in struct msghdr", ac_cv_c_msg_accrights, AC_TRY_COMPILE([#include #include ],[struct msghdr hdr; hdr.msg_accrights=0], ac_cv_c_msg_accrights="yes", ac_cv_c_msg_accrights="no")) if test "$ac_cv_c_msg_accrights" = "yes" then AC_DEFINE(HAVE_MSGHDR_ACCRIGHTS) fi dnl *** check for the need to define __i386__ AC_CACHE_CHECK("whether we need to define __i386__",ac_cv_cpp_def_i386, AC_EGREP_CPP(yes,[#if (defined(i386) || defined(__i386)) && !defined(__i386__) yes #endif], ac_cv_cpp_def_i386="yes", ac_cv_cpp_def_i386="no")) if test "$ac_cv_cpp_def_i386" = "yes" then CFLAGS="$CFLAGS -D__i386__" LINTFLAGS="$LINTFLAGS -D__i386__" fi dnl $GCC is set by autoconf GCC_NO_BUILTIN="" if test "$GCC" = "yes" then GCC_NO_BUILTIN="-fno-builtin" fi AC_SUBST(GCC_NO_BUILTIN) dnl **** Generate output files **** MAKE_RULES=Make.rules AC_SUBST_FILE(MAKE_RULES) AC_OUTPUT([ Make.rules Makefile console/Makefile controls/Makefile debugger/Makefile dlls/Makefile dlls/advapi32/Makefile dlls/avifil32/Makefile dlls/comctl32/Makefile dlls/commdlg/Makefile dlls/imagehlp/Makefile dlls/msacm/Makefile dlls/msacm32/Makefile dlls/ntdll/Makefile dlls/psapi/Makefile dlls/rasapi32/Makefile dlls/shell32/Makefile dlls/tapi32/Makefile dlls/ver/Makefile dlls/version/Makefile dlls/win87em/Makefile dlls/winaspi/Makefile dlls/winspool/Makefile dlls/wnaspi32/Makefile documentation/Makefile documentation/wine.conf.man documentation/wine.man files/Makefile graphics/Makefile graphics/enhmetafiledrv/Makefile graphics/metafiledrv/Makefile graphics/psdrv/Makefile graphics/ttydrv/Makefile graphics/win16drv/Makefile graphics/x11drv/Makefile if1632/Makefile include/Makefile library/Makefile libtest/Makefile loader/Makefile loader/ne/Makefile loader/dos/Makefile memory/Makefile misc/Makefile miscemu/Makefile msdos/Makefile multimedia/Makefile objects/Makefile ole/Makefile programs/Makefile programs/clock/Makefile programs/cmdlgtst/Makefile programs/control/Makefile programs/avitools/Makefile programs/notepad/Makefile programs/progman/Makefile programs/regtest/Makefile programs/regapi/Makefile programs/view/Makefile programs/wcmd/Makefile programs/winhelp/Makefile programs/winver/Makefile rc/Makefile relay32/Makefile resources/Makefile scheduler/Makefile server/Makefile tools/Makefile tools/wrc/Makefile tsx11/Makefile win32/Makefile windows/Makefile windows/ttydrv/Makefile windows/x11drv/Makefile ]) 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 and Xpm at the very least." elif test "$ac_cv_lib_Xpm_XpmCreatePixmapFromData" = "no" then echo echo "*** Warning: Xpm development files not found. Wine will be built without" echo "*** Xpm support, which currently does not work. You will need to install" echo "*** devel packages of Xpm." fi if test "$ac_cv_lib_ncurses_resizeterm" = "no" -a "$ac_cv_lib_ncurses_waddch" = "yes" then echo echo "*** Warning: resizeterm not found in ncurses. Wine will be built without" echo "*** terminal resize support. Consider upgrading ncurses." fi if test "$wine_cv_libc_reentrant" = "no" then echo echo "*** Warning: non-reentrant libc detected. Wine will be build without" echo "*** thread support. Consider upgrading libc to a more recent" echo "*** reentrant version of libc." fi if test "$wine_cv_mesa_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 echo echo "Configure finished. Do 'make depend && 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: