Newer
Older
dnl Process this file with autoconf to produce a configure script.
dnl Author: Michael Patra <micky@marie.physik.tu-berlin.de>
dnl <patra@itp1.physik.tu-berlin.de>
AC_REVISION([configure.in 1.00])
AC_INIT(controls/edit.c)
LIBEXT=so # library type .so or .a
TRACE_MSGS=yes # the TRACE() macro
DEBUG_MSGS=yes # the TRACE(), WARN(), and FIXME() macros.
OPENGL=normal
AC_ARG_ENABLE(debug,
[ --disable-debug compile out all debugging messages],
[if test "$enableval" = "no"; then DEBUG_MSGS="no"; fi])
AC_ARG_ENABLE(opengl,
[ --enable-opengl force usage of OpenGL even if the latter is thread-safe via pthread],
[if test "$enableval" = "no"; then OPENGL="no"; elif test "$enableval" = "yes"; then OPENGL="yes"; fi])
AC_ARG_ENABLE(trace,
[ --disable-trace compile out TRACE messages],
[if test "$enableval" = "no"; then TRACE_MSGS="no"; fi])
AC_ARG_WITH(curses,
[ --without-curses do not use curses],
[if test "$withval" = "no"; then CURSES="no"; fi])
[ --without-reentrant-x compile for use with non-reentrant X libraries])
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
AC_CHECK_PROGS(XLEX,$LEX flex lex,none)
if test "$XLEX" = "none"
then
echo "*** Error: No suitable lex found. ***"
echo " Please install the 'flex' package."
exit 1
fi
AC_DECL_YYTEXT
AC_CHECK_PROG(C2MAN,c2man,c2man,\$(TOPSRCDIR)/tools/c2man.pl)
AC_PATH_PROG(LDCONFIG, ldconfig, true, /sbin:/usr/sbin:$PATH)
AC_CHECK_PROG(DLLWRAP,dllwrap,dllwrap,false)
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)
if test "$CYGWIN" = "yes"
then
LDCOMBINE="ld -r --enable-stdcall-fixup"
else
LDCOMBINE="ld -r"
fi
AC_SUBST(LDCOMBINE)
AC_CHECK_LIB(m,sqrt)
dnl Check for -lossaudio for NetBSD
AC_CHECK_LIB(ossaudio,_oss_ioctl)
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 -lmmap for OS/2
AC_CHECK_LIB(mmap,mmap)
dnl Check for openpty
AC_CHECK_FUNCS(openpty,,
AC_CHECK_LIB(util,openpty,
AC_DEFINE(HAVE_OPENPTY)
LIBS="$LIBS -lutil"
))
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",
LIBEXT="a"
),
LIBEXT="a"
AC_SUBST(XLIB)
AC_SUBST(X_DLLS)
X_DLLS=""
AC_SUBST(XFILES)
XFILES=""
AC_SUBST(OPENGL32_DLL)
OPENGL32_DLL=""
GLU32FILES=""
AC_SUBST(GLU32FILES)
GLU32_DLL=""
AC_SUBST(GLU32_DLL)
if test "$have_x" = "yes"
then
ac_save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
dnl *** Check for -lXpm
AC_CHECK_HEADERS(X11/xpm.h,
[ dnl *** If X11/xpm.h exists...
AC_CHECK_LIB(Xpm, XpmCreatePixmapFromData,
[ AC_DEFINE(HAVE_LIBXXPM) X_PRE_LIBS="$X_PRE_LIBS -lXpm"],,
$X_LIBS -lXext -lX11 $X_EXTRA_LIBS
)
],
[ dnl *** If X11/xpm.h does not exist...
dnl NOTE: autoconf does not allow commas inside the third
dnl parameter to AC_CHECK_HEADERS, due to some quoting
dnl magic it does.
echo "Redhat : xpm xpm-devel"
echo "Caldera OpenLinux : xpm xpm-devel xpm-devel-static"
echo "SuSE : xpm"
echo "Debian/Corel Linux: xpm4g xpm4g-dev"
echo
echo "Or get the sources from ftp.x.org and all its mirror sites from "
echo "the directory /contrib/libraries."
echo
exit 1
]
)
dnl *** All three 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),,
$X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
],
AC_MSG_WARN([XKB extension not found!!])
)
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),,
$X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
],
AC_MSG_WARN([Xshm extension not found!!])
)
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),,
$X_LIBS -lXext -lX11 $X_EXTRA_LIBS)
],
AC_MSG_WARN([XShape extension not found!!])
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
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)
AC_DEFINE(HAVE_LIBXXF86DGA)
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)
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!!])
)
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)
X_PRE_LIBS="$X_PRE_LIBS -lXxf86vm"
],,
$X_LIBS -lXext -lX11 $X_EXTRA_LIBS
)
],
AC_MSG_WARN([XFree86 VMODE extension not found!!])
)
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)
X_PRE_LIBS="$X_PRE_LIBS -lXv"
],,
$X_LIBS -lXext -lX11 $X_EXTRA_LIBS
)
],
AC_MSG_WARN([XVideo extension not found !!])
)
]
) dnl *** End of X11/Xlib.h check
if test $OPENGL = "yes" -o $OPENGL = "normal"
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 <GL/gl.h>],
[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",
[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 $OPENGL = "yes" \)
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)
OPENGLFILES='$(OPENGLFILES)'
AC_DEFINE(HAVE_OPENGL)
AC_CHECK_LIB(GL,glXGetProcAddressARB,AC_DEFINE(HAVE_GLX_GETPROCADDRESS),,$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
],
[wine_cv_extension_prototypes="yes"],
[wine_cv_extension_prototypes="no"]
)
)
if test $wine_cv_extension_prototypes = "yes"
then
AC_DEFINE(HAVE_GLEXT_PROTOTYPES)
fi
OPENGL32_DLL=opengl32
AC_CHECK_HEADERS(GL/osmesa.h,
[ dnl *** If GL/osmesa.h exists...
AC_CHECK_LIB(GL, OSMesaCreateContext,
AC_DEFINE(HAVE_OSMESA),
AC_CHECK_LIB(OSMesa, OSMesaCreateContext,
[ AC_DEFINE(HAVE_OSMESA)
X_PRE_LIBS="$X_PRE_LIBS -lOSMesa"
],,-lGL $X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS),
$X_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS
)
]
)
dnl Check for GLU32 library.
AC_CHECK_LIB(GLU,glBegin,
X_PRE_LIBS="$X_PRE_LIBS -lGLU"
GLU32FILES='$(GLU32FILES)'
GLU32_DLL=glu32
,,
$X_LIBS $X_PRE_LIBS -lXext -lX11 -lm $X_EXTRA_LIBS
)
fi
fi
X_DLLS='$(X_DLLS)'
XFILES='$(XFILES)'
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)
if test "$ac_cv_lib_curses_waddch" = "yes"
then
AC_CHECK_LIB(curses,resizeterm,AC_DEFINE(HAVE_RESIZETERM))
AC_CHECK_LIB(curses,getbkgd,AC_DEFINE(HAVE_GETBKGD))
fi
fi
fi
CUPSLIBS=""
dnl **** Check for CUPS ****
wine_cv_warn_cups_h=no
AC_CHECK_HEADER(cups/cups.h,
AC_DEFINE(HAVE_CUPS)
CUPSLIBS="-lcups",
wine_cv_warn_cups_h=yes)
dnl **** Check for FreeType 2 ****
AC_CHECK_LIB(freetype,FT_Init_FreeType,ft_lib=yes,ft_lib=no)
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
AC_DEFINE(HAVE_FREETYPE)
FREETYPELIBS=`$ft_devel --libs`
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)
CPPFLAGS="$ac_save_CPPFLAGS"
wine_cv_msg_freetype=no
fi
fi
AC_SUBST(FREETYPELIBS)
AC_SUBST(FREETYPEINCL)
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],
[ac_cv_c_ipx_gnu="no"])
)
if test "$ac_cv_c_ipx_gnu" = "yes"
then
AC_DEFINE(HAVE_IPX_GNU)
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/socket.h>
#include <asm/types.h>
#include <linux/ipx.h>],
[((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
[ac_cv_c_ipx_linux="no"])
)
if test "$ac_cv_c_ipx_linux" = "yes"
then
AC_DEFINE(HAVE_IPX_LINUX)
fi
fi
AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h soundcard.h, break)
AC_CACHE_CHECK("for Open Sound System",
ac_cv_c_opensoundsystem,
#if defined(HAVE_SYS_SOUNDCARD_H)
#elif defined(HAVE_MACHINE_SOUNDCARD_H)
#elif defined(HAVE_SOUNDCARD_H)
#include <soundcard.h>
/* 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 <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)
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 L[[4]] = {0,1,2,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
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,
[saved_cflags=$CFLAGS
CFLAGS="$CFLAGS -mpreferred-stack-boundary=2"
AC_TRY_COMPILE(,[return 0],ac_cv_c_gcc_stack_boundary="yes",ac_cv_c_gcc_stack_boundary="no")
CFLAGS=$saved_cflags
])
if test "$ac_cv_c_gcc_stack_boundary" = "yes"
then
CFLAGS="$CFLAGS -mpreferred-stack-boundary=2"
fi
dnl **** Check if we need to place .type inside a .def directive ****
AC_CACHE_CHECK("whether .type must sit inside a .def directive",
ac_cv_c_type_in_def,
[saved_libs=$LIBS
LIBS="conftest_asm.s $LIBS"
cat > conftest_asm.s <<EOF
.globl _ac_test
.def _ac_test; .scl 2; .type 32; .endef
_ac_test:
.long 0
EOF
AC_TRY_LINK(,,ac_cv_c_type_in_def="yes",ac_cv_c_type_in_def="no")
LIBS=$saved_libs])
if test "$ac_cv_c_type_in_def" = "yes"
then
AC_DEFINE(NEED_TYPE_IN_DEF)
fi
dnl **** Check for underscore on external symbols ****
AC_CACHE_CHECK("whether external symbols need an underscore prefix",
ac_cv_c_extern_prefix,
[saved_libs=$LIBS
LIBS="conftest_asm.s $LIBS"
cat > conftest_asm.s <<EOF
.globl _ac_test
_ac_test:
.long 0
EOF
AC_TRY_LINK([extern int ac_test;],[if (ac_test) return 1],
ac_cv_c_extern_prefix="yes",ac_cv_c_extern_prefix="no")
LIBS=$saved_libs])
if test "$ac_cv_c_extern_prefix" = "yes"
then
AC_DEFINE(NEED_UNDERSCORE_PREFIX)
fi
dnl **** Check for .string in assembler ****
AC_CACHE_CHECK("whether assembler accepts .string",
ac_cv_c_asm_string,
[saved_libs=$LIBS
LIBS="conftest_asm.s $LIBS"
cat > conftest_asm.s <<EOF
.string "test"
EOF
AC_TRY_LINK(,,ac_cv_c_asm_string="yes",ac_cv_c_asm_string="no")
LIBS=$saved_libs])
if test "$ac_cv_c_asm_string" = "yes"
then
AC_DEFINE(HAVE_ASM_STRING)
fi
Todd Vierling
committed
LDSHARED=""
if test "$LIBEXT" = "so"
AC_CACHE_CHECK("whether we can build a GNU style ELF dll",
ac_cv_c_dll_gnuelf,
CFLAGS="$CFLAGS -fPIC -shared -Wl,-soname,conftest.so.1.0,-Bsymbolic"
AC_TRY_LINK(,[return 1],ac_cv_c_dll_gnuelf="yes",ac_cv_c_dll_gnuelf="no")
if test "$ac_cv_c_dll_gnuelf" = "yes"
LDSHARED="\$(CC) -shared \$(SONAME:%=-Wl,-soname,%) -Wl,-rpath,\$(libdir)"
LDDLLFLAGS="-Wl,-Bsymbolic"
AC_CACHE_CHECK(whether we can build a UnixWare (Solaris) dll,
ac_cv_c_dll_unixware,
Todd Vierling
committed
[saved_cflags=$CFLAGS
CFLAGS="$CFLAGS -fPIC -Wl,-G,-h,conftest.so.1.0,-B,symbolic"
AC_TRY_LINK(,[return 1],ac_cv_c_dll_unixware="yes",ac_cv_c_dll_unixware="no")
Todd Vierling
committed
CFLAGS=$saved_cflags
])
if test "$ac_cv_c_dll_unixware" = "yes"
Todd Vierling
committed
then
LDSHARED="\$(CC) -Wl,-G \$(SONAME:%=-Wl,-h,\$(libdir)/%)"
Todd Vierling
committed
fi
fi
if test "$ac_cv_c_dll_gnuelf" = "no" -a "$ac_cv_c_dll_unixware" = "no"
Todd Vierling
committed
then
LIBEXT="a"
if test "$DLLWRAP" = "dllwrap"; then
dnl FIXME - check whether dllwrap works correctly...
if test "$CYGWIN" = "yes"; then
echo "*** use dllwrap for building shared library."
LIBEXT="dll"
fi
fi
if test "$LIBEXT" = "a"; then
echo "*** It is currently not possible to build WINE without shared"
echo "*** library (.so) support to allow transparent switch between .so"
echo "*** and .dll files."
echo "*** If you are using Linux, you will need a newer binutils."
exit 1
fi
if test "$LIBEXT" = "so"; then
DLLFLAGS="-fPIC"
DLL_LINK="-L\$(DLLDIR) \$(IMPORTS:%=-l%) \$(LIBWINE) \$(LIBUNICODE)"
LDPATH="LD_LIBRARY_PATH=\"\$(TOPOBJDIR)/unicode:\$\$LD_LIBRARY_PATH\""
elif test "$LIBEXT" = "dll"; then
#DLLFLAGS="-fPIC" # -fPIC doesn't work(at least in cygwin-b20) - FIXME
DLL_LINK="-L\$(DLLDIR) \$(IMPORTS:%=-l%) \$(LIBWINE) \$(LIBUNICODE)"
LDPATH="PATH=\"\$(TOPOBJDIR)/unicode:\$\$PATH\""
DLL_LINK="-L\$(DLLDIR) \$(DLLS:%=-l%) \$(LIBWINE) \$(LIBUNICODE) \$(X_LIBS) \$(XLIB)"
AC_CACHE_CHECK([whether the linker supports --[[no]]-whole-archive (Linux)],
ac_cv_c_whole_archive,
[saved_cflags=$CFLAGS
CFLAGS="$CFLAGS -Wl,--whole-archive -Wl,--no-whole-archive"
AC_TRY_LINK(,[return 1],ac_cv_c_whole_archive="yes",ac_cv_c_whole_archive="no")
CFLAGS=$saved_cflags
])
if test "$ac_cv_c_whole_archive" = "yes"
then
DLL_LINK="-Wl,--whole-archive $DLL_LINK -Wl,--no-whole-archive"
else
AC_CACHE_CHECK([whether the linker supports -z {all,default}extract (Linux)],
ac_cv_c_allextract,
[saved_cflags=$CFLAGS
CFLAGS="$CFLAGS -Wl,-z,allextract -Wl,-z,defaultextract"
AC_TRY_LINK(,[return 1],ac_cv_c_allextract="yes",ac_cv_c_allextract="no")
CFLAGS=$saved_cflags
])
if test "$ac_cv_c_allextract" = "yes"
then
DLL_LINK="-Wl,-z,allextract $DLL_LINK -Wl,-z,defaultextract"
Todd Vierling
committed
AC_SUBST(LDSHARED)
AC_SUBST(LDPATH)
dnl **** Check for reentrant libc ****
dnl
dnl For cross-compiling we blindly assume that libc is reentrant. This is
dnl ok since non-reentrant libc is quite rare (mostly old libc5 versions).
AC_DEFUN(WINE_CHECK_ERRNO,
[
AC_CACHE_CHECK(for reentrant libc: $1, wine_cv_libc_r_$1,
int *$1(){return &myerrno;}
wine_cv_libc_r_$1=yes, wine_cv_libc_r_$1=no,
wine_cv_libc_r_$1=yes )
if test "$wine_cv_libc_r_$1" = "yes"
wine_cv_libc_reentrant=$1
wine_cv_libc_reentrant=no
dnl Linux style errno location
WINE_CHECK_ERRNO(__errno_location)
dnl FreeBSD style errno location
WINE_CHECK_ERRNO(__error)
dnl Solaris style errno location
WINE_CHECK_ERRNO(___errno)
dnl UnixWare style errno location
WINE_CHECK_ERRNO(__thr_errno)
dnl NetBSD style errno location
WINE_CHECK_ERRNO(__errno)
if test "$wine_cv_libc_reentrant" != "no"
AC_DEFINE_UNQUOTED(ERRNO_LOCATION,$wine_cv_libc_reentrant)
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. In this case manual configuration
dnl is possible with the --without-reentrant-x option.
if test "$have_x" = "yes" -a "$wine_cv_libc_reentrant" != "no"
AC_CACHE_CHECK( "for reentrant X libraries", wine_cv_x_reentrant,
[ if test "x$with_reentrant_x" = "xno"
for dir in "$x_libraries" /usr/lib /usr/local/lib /lib; do
libX11_check="$dir/libX11.a"
break 1
fi
done
if test "$libX11_check" != "none"; then
if nm $libX11_check | grep $wine_cv_libc_reentrant >/dev/null 2>&1
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 ****
_lwp_create \
clone \
finite \
fpclass \
getnetbyaddr \
getnetbyname \
getprotobyname \
getprotobynumber \
getservbyport \
getsockopt \
inet_network \
tcgetattr \
timegm \
usleep \
vfscanf \
wait4 \
waitpid \
)
dnl **** Check for header files ****
AC_CHECK_HEADERS(\
arpa/nameser.h \
elf.h \
float.h \
linux/input.h \
linux/joystick.h \
linux/ucdrom.h \
net/if.h \
netinet/in_systm.h \
netinet/ip.h \
sched.h \
socket.h \
strings.h \
sys/cdio.h \
sys/errno.h \
sys/file.h \
sys/filio.h \
sys/modem.h \
sys/mount.h \
sys/ptrace.h \
sys/signal.h \
sys/shm.h \
sys/socket.h \
sys/sockio.h \
sys/statfs.h \
sys/strtio.h \
sys/syscall.h \
sys/user.h \
sys/wait.h \
sys/v86.h \
sys/v86intr.h \
dnl **** Check for types ****
AC_C_INLINE()
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)
fi
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
AC_CACHE_CHECK("whether we can use re-entrant gethostbyname_r Linux style",
wine_cv_linux_gethostbyname_r_6,
AC_TRY_COMPILE([
#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)
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)
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([
#ifdef HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
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"
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
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)
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)
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([
#ifdef HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
#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
],[
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
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
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 <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
],[
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 file descriptor passing with msg_accrights
AC_CACHE_CHECK("for msg_accrights in struct msghdr", ac_cv_c_msg_accrights,
AC_TRY_COMPILE([#include <sys/types.h>
#include <sys/socket.h>],[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 sun_len member in struct sockaddr_un
AC_CACHE_CHECK("for sun_len in struct sockaddr_un", ac_cv_c_sun_len,
AC_TRY_COMPILE([#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>], [static struct sockaddr_un addr; addr.sun_len = 1],
ac_cv_c_sun_len="yes", ac_cv_c_sun_len="no"))
if test "$ac_cv_c_sun_len" = "yes"
then
AC_DEFINE(HAVE_SOCKADDR_SUN_LEN)
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__"
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)
AC_OUTPUT_COMMANDS([
extra_subdirs="\
dlls/ddraw/d3ddevice \
dlls/ddraw/dclipper \
dlls/ddraw/ddraw \
dlls/ddraw/direct3d \
dlls/ddraw/dpalette \
dlls/ddraw/dsurface \
dlls/dinput/joystick \
dlls/dinput/keyboard \
dlls/dinput/mouse \
dlls/user/resources \
"
for i in $extra_subdirs; do [ -d $i ] || (echo "creating $i" && mkdir $i); done ])
MAKE_DLL_RULES=dlls/Makedll.rules
AC_SUBST_FILE(MAKE_DLL_RULES)
MAKE_PROG_RULES=programs/Makeprog.rules
AC_SUBST_FILE(MAKE_PROG_RULES)
dlls/Makedll.rules
programs/Makeprog.rules
dlls/avifil32/Makefile
dlls/commdlg/Makefile
dlls/crtdll/Makefile
dlls/dciman32/Makefile
dlls/ddraw/Makefile
dlls/dinput/Makefile
dlls/dplay/Makefile
dlls/dplayx/Makefile
dlls/dsound/Makefile
dlls/gdi/Makefile
dlls/imagehlp/Makefile
dlls/mpr/Makefile
dlls/msacm/Makefile
dlls/ntdll/Makefile
dlls/ole32/Makefile
dlls/oleaut32/Makefile
dlls/olecli/Makefile
dlls/oledlg/Makefile
dlls/olesvr/Makefile
dlls/serialui/Makefile
dlls/setupapi/Makefile
dlls/shdocvw/Makefile
dlls/shfolder/Makefile
dlls/shlwapi/Makefile
dlls/ttydrv/Makefile
dlls/urlmon/Makefile
dlls/user/Makefile
dlls/version/Makefile
dlls/winedos/Makefile
dlls/wininet/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/wavemap/Makefile
dlls/winmm/wineoss/Makefile
dlls/winsock/Makefile
dlls/winspool/Makefile
dlls/wintrust/Makefile
dlls/wow32/Makefile
dlls/wsock32/Makefile
dlls/x11drv/Makefile

Alexandre Julliard
committed
documentation/wine.conf.man
graphics/enhmetafiledrv/Makefile
graphics/win16drv/Makefile
graphics/x11drv/Makefile
include/Makefile
library/Makefile
libtest/Makefile
loader/Makefile
memory/Makefile
misc/Makefile
miscemu/Makefile
programs/avitools/Makefile
programs/osversioncheck/Makefile
programs/regapi/Makefile
programs/regtest/Makefile
programs/uninstaller/Makefile
programs/winetest/Makefile
tools/cvdump/Makefile
tools/winebuild/Makefile
tools/winelauncher
unicode/Makefile
windows/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."
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
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_opengl_version_threadsafe" = "yes" -a $OPENGL = "normal"
then
echo
echo "*** Warning: the OpenGL version you have installed relies on libpthread for"
echo "*** thread-safety. To prevent crashes, OpenGL support has been removed."
echo "*** A fix for glibc 2.1.3 that seems to work is included in this version of Wine,"
echo "*** start configure with '--enable-opengl' to force OpenGL support."
fi
if test "$wine_cv_opengl_version_threadsafe" = "yes" -a $OPENGL = "yes"
then
echo
echo "*** Warning: you explicitly linked in a thread-safe OpenGL version. If you"
echo "*** experience unusual crashes on DirectDraw games, try first to disable OpenGL"
echo "*** support before reporting bugs."
fi
if test "$wine_cv_warn_cups_h" = "yes"
then
echo
echo "*** Note: You have cups runtime libraries, but no development"
echo "*** libraries. Install the cups-devel package or whichever package"
echo "*** contains cups.h to enable CUPS support in WINE."
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 "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 *"