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=],[use Wine tools from directory ])) 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 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" host_cpu="i386" fi ;; esac dnl enable_win16 defaults to yes on x86, to no on other CPUs case $host_cpu in *i[[3456789]]86*) if test "x$enable_win16" != "xno" then enable_win16="yes" fi ;; esac AC_SUBST(WIN16_FILES,"\$(WIN16_FILES)") AC_SUBST(WIN16_INSTALL,"\$(WIN16_INSTALL)") if test "x$enable_win16" != "xyes" then WIN16_FILES="" WIN16_INSTALL="" fi dnl **** Check for some programs **** 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(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 -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,"") AC_SUBST(OPENGLFILES,"") AC_SUBST(GLU32FILES,"") AC_SUBST(OPENGL_LIBS,"") dnl **** Check for header files **** AC_CHECK_HEADERS(\ IOKit/IOKitLib.h \ alsa/asoundlib.h \ arpa/inet.h \ arpa/nameser.h \ asm/types.h \ capi20.h \ cups/cups.h \ curses.h \ direct.h \ dlfcn.h \ elf.h \ float.h \ fontconfig/fontconfig.h \ getopt.h \ gif_lib.h \ ieeefp.h \ io.h \ jack/jack.h \ jpeglib.h \ lber.h \ lcms.h \ lcms/lcms.h \ ldap.h \ libaudioio.h \ link.h \ linux/capi.h \ linux/cdrom.h \ linux/compiler.h \ linux/hdreg.h \ linux/input.h \ linux/ioctl.h \ linux/joystick.h \ linux/major.h \ linux/param.h \ linux/serial.h \ linux/ucdrom.h \ mach/machine.h \ machine/cpu.h \ machine/limits.h \ machine/soundcard.h \ mntent.h \ ncurses.h \ netdb.h \ netinet/in.h \ netinet/in_systm.h \ netinet/tcp.h \ netinet/tcp_fsm.h \ openssl/ssl.h \ poll.h \ process.h \ pthread.h \ pwd.h \ regex.h \ sched.h \ scsi/scsi.h \ scsi/scsi_ioctl.h \ scsi/sg.h \ soundcard.h \ stdint.h \ strings.h \ sys/asoundlib.h \ sys/cdio.h \ sys/elf32.h \ sys/epoll.h \ sys/errno.h \ sys/exec_elf.h \ sys/filio.h \ sys/ioctl.h \ sys/ipc.h \ sys/link.h \ sys/lwp.h \ sys/mman.h \ sys/modem.h \ sys/msg.h \ sys/param.h \ sys/poll.h \ sys/ptrace.h \ sys/reg.h \ sys/scsiio.h \ sys/shm.h \ sys/signal.h \ sys/socket.h \ sys/sockio.h \ sys/soundcard.h \ sys/statvfs.h \ sys/strtio.h \ sys/syscall.h \ sys/sysctl.h \ sys/time.h \ sys/times.h \ sys/uio.h \ sys/un.h \ sys/vm86.h \ sys/wait.h \ syscall.h \ termios.h \ unicode/ubidi.h \ unistd.h \ utime.h \ valgrind/memcheck.h ) AC_HEADER_STAT() dnl **** Check for X11 **** 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 \ X11/XKBlib.h \ X11/Xutil.h \ X11/extensions/shape.h \ X11/extensions/XInput.h \ X11/extensions/XShm.h \ X11/extensions/Xrandr.h \ X11/extensions/Xrender.h \ X11/extensions/xf86dga.h \ X11/extensions/xf86vmode.h],,, [#ifdef HAVE_X11_XLIB_H # include #endif #ifdef HAVE_X11_XUTIL_H # include #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, [ AC_DEFINE(HAVE_LIBXXF86DGA2, 1, [Define if you have the Xxf86dga library version 2]) X_PRE_LIBS="$X_PRE_LIBS -lXxf86dga" ],, $X_LIBS -lXext -lX11 $X_EXTRA_LIBS) fi dnl *** Check for XFree86 VMODE extension if test "$ac_cv_header_X11_extensions_xf86vmode_h" = "yes" then AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryExtension, [ AC_DEFINE(HAVE_LIBXXF86VM, 1, [Define if you have the Xxf86vm library]) X_PRE_LIBS="$X_PRE_LIBS -lXxf86vm" ],, $X_LIBS -lXext -lX11 $X_EXTRA_LIBS) fi dnl *** Check for X RandR extension if test "$ac_cv_header_X11_extensions_Xrandr_h" = "yes" then AC_TRY_COMPILE([#include #include ],[static typeof(XRRSetScreenConfigAndRate) * func;], [AC_DEFINE(HAVE_LIBXRANDR, 1, [Define if you have the Xrandr library])]) fi dnl *** Check for Transform functions in Xrender if test "$ac_cv_header_X11_extensions_Xrender_h" = "yes" then AC_CHECK_LIB(Xrender, XRenderSetPictureTransform, [AC_DEFINE(HAVE_XRENDERSETPICTURETRANSFORM, 1, [Define if Xrender has the XRenderSetPictureTransform function])],, $X_LIBS -lXext -lX11 $X_EXTRA_LIBS) fi dnl *** End of X11/Xlib.h check dnl Check for the presence of OpenGL if test "x$with_opengl" != "xno" then AC_CHECK_HEADERS(GL/gl.h GL/glx.h GL/glext.h,,, [#ifdef HAVE_GL_GLX_H # include #endif]) if test "$ac_cv_header_GL_gl_h" = "yes" -a "$ac_cv_header_GL_glx_h" = "yes" then dnl Check for some problems due to old Mesa versions AC_CACHE_CHECK([for up-to-date OpenGL version], wine_cv_opengl_version_OK, AC_TRY_COMPILE( [#include ], [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]) else if test -f /usr/X11R6/lib/libGL.a then AC_MSG_ERROR([/usr/X11R6/lib/libGL.a is present on your system. This prevents linking to OpenGL. Delete the file and restart configure.]) fi 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