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)
AC_CONFIG_SRCDIR(server/atom.c)
AC_CONFIG_HEADERS(include/config.h)
AC_CONFIG_AUX_DIR(tools)
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=
],[use Wine tools from directory ]))
AC_SUBST(OPTIONS)
if test "x$enable_debug" = "xno"
then
AC_DEFINE(NO_DEBUG_MSGS,1,[Define to disable all debug messages.])
fi
if test "x$enable_trace" = "xno" -o "x$enable_debug" = "xno"
then
AC_DEFINE(NO_TRACE_MSGS,1,[Define to disable trace messages.])
fi
dnl **** Check for some programs ****
AC_CANONICAL_HOST
AC_PROG_MAKE_SET
AC_PROG_CC
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)
AC_PATH_XTRA
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.])
fi
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
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_INSTALL
AC_PROG_LN_S
WINE_PROG_LN
AC_CHECK_PROG(C2MAN,c2man,c2man,\$(TOPSRCDIR)/tools/c2man.pl)
AC_PATH_PROG(LDCONFIG, ldconfig, true, [/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
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_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 -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(XLIB)
AC_SUBST(XFILES)
XFILES=""
AC_SUBST(OPENGLFILES)
OPENGLFILES=""
AC_SUBST(GLU32FILES)
GLU32FILES=""
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,
[
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 ])
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 ])
dnl *** Check for Xutil
AC_CHECK_HEADERS(X11/Xutil.h,,,
[#include ])
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
#ifdef HAVE_X11_XUTIL_H
# include
#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 ])
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 ])
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 ])
dnl *** Check for XRender include file
AC_CHECK_HEADERS(X11/extensions/Xrender.h,,,[#include ])
]
) dnl *** End of X11/Xlib.h check
dnl Check for the presence of OpenGL
if test "x$enable_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 ])
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"]
)
)
dnl Check for the thread-safety of the OpenGL library
AC_CACHE_CHECK([for thread-safe OpenGL version],
wine_cv_opengl_version_threadsafe,
[saved_libs=$LIBS
LIBS="$X_LIBS -lGL"
AC_TRY_LINK([],[pthread_getspecific();],
[wine_cv_opengl_version_threadsafe="yes"],
[wine_cv_opengl_version_threadsafe="no"])
LIBS=$saved_libs]
)
if test "$wine_cv_opengl_version_OK" = "yes" -a \( "$wine_cv_opengl_version_threadsafe" = "no" -o "x$enable_opengl" = "xyes" \)
then
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"
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
#ifdef HAVE_GL_GLEXT_H
# include
#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,
[X_PRE_LIBS="$X_PRE_LIBS -lGLU"
GLU32FILES='$(GLU32FILES)']
,,
$X_LIBS $X_PRE_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS
)
fi
fi
fi
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)
CUPSLIBS=""
dnl **** Check for CUPS ****
wine_cv_warn_cups_h=no
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
FREETYPEINCL=`$ft_devel --cflags`
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 \
freetype/ttnameid.h \
freetype/ftoutln.h \
freetype/internal/sfnt.h)
AC_TRY_CPP([#include
#include ],
[AC_DEFINE(HAVE_FREETYPE_FTTRIGON_H, 1,
[Define if you have the 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 ],
[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 ],
[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 ],
[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 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_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
#include
#include ],
[((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 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, 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
#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, 1, [Define if you have the Open Sound system (MIDI interface)])
fi
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
],[
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