Newer
Older
dnl Process this file with autoconf to produce a configure script.
dnl Original author: Michael Patra
dnl For detailed change history, see the git commit logs.
m4_define(WINE_VERSION,regexp(m4_include(VERSION),[version \([-.0-9A-Za-z]+\)],[\1]))

Alexandre Julliard
committed
dnl autoconf versions before 2.62 don't handle source dir symlinks correctly
AC_PREREQ(2.62)
AC_INIT([Wine],[WINE_VERSION],[wine-devel@winehq.org],[wine],[http://www.winehq.org])
AC_CONFIG_SRCDIR(server/atom.c)
AC_CONFIG_HEADERS(include/config.h)
dnl autoconf versions before 2.63b don't have AS_VAR_APPEND or AS_VAR_IF

Alexandre Julliard
committed
m4_ifdef([AS_VAR_APPEND],,[as_fn_append () { eval $[1]=\$$[1]\$[2]; }
AC_DEFUN([AS_VAR_APPEND],[as_fn_append $1 $2])])dnl
m4_ifdef([AS_VAR_IF],,[AC_DEFUN([AS_VAR_IF],
[AS_LITERAL_IF([$1],
[AS_IF([test "x$$1" = x""$2], [$3], [$4])],
[eval as_val=\$$1
AS_IF([test "x$as_val" = x""$2], [$3], [$4])])])])dnl
Andrew Nguyen
committed
dnl autoconf versions before 2.64 don't have AC_PACKAGE_URL
m4_ifdef([AC_PACKAGE_URL],,
[AC_DEFINE([PACKAGE_URL], ["http://www.winehq.org"], [Define to the home page for this package.])
AC_SUBST([PACKAGE_URL], ["http://www.winehq.org"])])dnl

Alexandre Julliard
committed
AC_ARG_ENABLE(win16, AS_HELP_STRING([--disable-win16],[do not include Win16 support]))
AC_ARG_ENABLE(win64, AS_HELP_STRING([--enable-win64],[build a Win64 emulator on AMD64 (won't run Win32 binaries)]))

Alexandre Julliard
committed
AC_ARG_ENABLE(tests, AS_HELP_STRING([--disable-tests],[do not build the regression tests]))
AC_ARG_ENABLE(maintainer-mode, AS_HELP_STRING([--enable-maintainer-mode],[enable maintainer-specific build rules]))
AC_ARG_WITH(alsa, AS_HELP_STRING([--without-alsa],[do not use the Alsa sound support]),
[if test "x$withval" = "xno"; then ac_cv_header_sys_asoundlib_h=no; ac_cv_header_alsa_asoundlib_h=no; fi])
AC_ARG_WITH(capi, AS_HELP_STRING([--without-capi],[do not use CAPI (ISDN support)]))
AC_ARG_WITH(cms, AS_HELP_STRING([--without-cms],[do not use CMS (color management support)]))
AC_ARG_WITH(coreaudio, AS_HELP_STRING([--without-coreaudio],[do not use the CoreAudio sound support]),
[if test "x$withval" = "xno"; then ac_cv_header_CoreAudio_CoreAudio_h=no; fi])
AC_ARG_WITH(cups, AS_HELP_STRING([--without-cups],[do not use CUPS]))
AC_ARG_WITH(curses, AS_HELP_STRING([--without-curses],[do not use (n)curses]),
[if test "x$withval" = "xno"; then ac_cv_header_ncurses_h=no; ac_cv_header_curses_h=no; fi])
AC_ARG_WITH(dbus, AS_HELP_STRING([--without-dbus],[do not use DBus (dynamic device support)]))
Ken Thomases
committed
AC_ARG_WITH(fontconfig,AS_HELP_STRING([--without-fontconfig],[do not use fontconfig]))

Alexandre Julliard
committed
AC_ARG_WITH(freetype, AS_HELP_STRING([--without-freetype],[do not use the FreeType library]))
AC_ARG_WITH(gettext, AS_HELP_STRING([--without-gettext],[do not use gettext]))

Alexandre Julliard
committed
AC_ARG_WITH(gettextpo, AS_HELP_STRING([--with-gettextpo],[use the GetTextPO library to rebuild po files]),
[if test "x$withval" = "xno"; then ac_cv_header_gettext_po_h=no; fi])
AC_ARG_WITH(gphoto, AS_HELP_STRING([--without-gphoto],[do not use gphoto (Digital Camera support)]))
AC_ARG_WITH(glu, AS_HELP_STRING([--without-glu],[do not use the GLU library]))
AC_ARG_WITH(gnutls, AS_HELP_STRING([--without-gnutls],[do not use GnuTLS (schannel support)]))

Alexandre Julliard
committed
AC_ARG_WITH(gsm, AS_HELP_STRING([--without-gsm],[do not use libgsm (GSM 06.10 codec support)]),
[if test "x$withval" = "xno"; then ac_cv_header_gsm_h=no; ac_cv_header_gsm_gsm_h=no; fi])
AC_ARG_WITH(gstreamer, AS_HELP_STRING([--without-gstreamer],[do not use GStreamer (codecs support)]))
AC_ARG_WITH(hal, AS_HELP_STRING([--without-hal],[do not use HAL (dynamic device support)]))
AC_ARG_WITH(jpeg, AS_HELP_STRING([--without-jpeg],[do not use JPEG]))
AC_ARG_WITH(ldap, AS_HELP_STRING([--without-ldap],[do not use LDAP]),
[if test "x$withval" = "xno"; then ac_cv_header_ldap_h=no; ac_cv_header_lber_h=no; fi])
AC_ARG_WITH(mpg123, AS_HELP_STRING([--without-mpg123],[do not use the mpg123 library]))
AC_ARG_WITH(openal, AS_HELP_STRING([--without-openal],[do not use OpenAL]),
[if test "x$withval" = "xno"; then ac_cv_header_AL_al_h=no; ac_cv_header_OpenAL_al_h=no; fi])
AC_ARG_WITH(opencl, AS_HELP_STRING([--without-opencl],[do not use OpenCL]),
[if test "x$withval" = "xno"; then ac_cv_header_CL_cl_h=no; ac_cv_header_OpenCL_opencl_h=no; fi])
AC_ARG_WITH(opengl, AS_HELP_STRING([--without-opengl],[do not use OpenGL]))
AC_ARG_WITH(osmesa, AS_HELP_STRING([--without-osmesa],[do not use the OSMesa library]))
AC_ARG_WITH(oss, AS_HELP_STRING([--without-oss],[do not use the OSS sound support]))
AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]))
AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]),
[if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi])
AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)]))
AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]))
AC_ARG_WITH(v4l, AS_HELP_STRING([--without-v4l],[do not use v4l1 (v4l support)]))
AC_ARG_WITH(xcomposite,AS_HELP_STRING([--without-xcomposite],[do not use the Xcomposite extension]),
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xcomposite_h=no; fi])
AC_ARG_WITH(xcursor, AS_HELP_STRING([--without-xcursor],[do not use the Xcursor extension]),
[if test "x$withval" = "xno"; then ac_cv_header_X11_Xcursor_Xcursor_h=no; fi])
AC_ARG_WITH(xinerama, AS_HELP_STRING([--without-xinerama],[do not use Xinerama (multi-monitor support)]),
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xinerama_h=no; fi])
AC_ARG_WITH(xinput, AS_HELP_STRING([--without-xinput],[do not use the Xinput extension]),
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_XInput_h=no; fi])
AC_ARG_WITH(xinput2, AS_HELP_STRING([--without-xinput2],[do not use the Xinput 2 extension]),
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_XInput2_h=no; fi])
AC_ARG_WITH(xml, AS_HELP_STRING([--without-xml],[do not use XML]))
AC_ARG_WITH(xrandr, AS_HELP_STRING([--without-xrandr],[do not use Xrandr (resolution changes)]),
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xrandr_h=no; fi])
AC_ARG_WITH(xrender, AS_HELP_STRING([--without-xrender],[do not use the Xrender extension]),
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xrender_h=no; fi])
AC_ARG_WITH(xshape, AS_HELP_STRING([--without-xshape],[do not use the Xshape extension]),
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_shape_h=no; fi])
AC_ARG_WITH(xshm, AS_HELP_STRING([--without-xshm],[do not use XShm (shared memory extension)]),
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_XShm_h=no; fi])
AC_ARG_WITH(xslt, AS_HELP_STRING([--without-xslt],[do not use XSLT]))
AC_ARG_WITH(xxf86vm, AS_HELP_STRING([--without-xxf86vm],[do not use XFree video mode extension]),
[if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_xf86vmode_h=no; ac_cv_header_X11_extensions_xf86vmproto_h=no; fi])
AC_ARG_WITH(zlib, AS_HELP_STRING([--without-zlib],[do not use Zlib (data compression)]),
[if test "x$withval" = "xno"; then ac_cv_header_zlib_h=no; fi])
AC_ARG_WITH(wine-tools,AS_HELP_STRING([--with-wine-tools=DIR],[use Wine tools from directory DIR]))
AC_ARG_WITH(wine64, AS_HELP_STRING([--with-wine64=DIR],[use the 64-bit Wine in DIR for a Wow64 build]))
AC_CANONICAL_HOST

Alexandre Julliard
committed
dnl check for out of tree build with unclean source tree
case "$srcdir" in
.) ;;
*) if test -f "$srcdir/Makefile" -o -f "$srcdir/include/config.h"; then
AC_MSG_ERROR([you are building out of the source tree, but the source tree contains object files.
You need to run 'make distclean' in the source tree first.])
fi ;;
esac
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)

Alexandre Julliard
committed
AC_DEFINE_UNQUOTED(EXEEXT,["$ac_exeext"],[Define to the file extension for executables.])

Alexandre Julliard
committed
case $host in
*-darwin*)
if test "x$enable_win64" = "xyes"
then
CC="$CC -m64"
CXX="$CXX -m64"
host_cpu="x86_64"
notice_platform="64-bit "
AC_SUBST(TARGETFLAGS,"-m64")
else
CC="$CC -m32"
CXX="$CXX -m32"
host_cpu="i386"
notice_platform="32-bit "
AC_SUBST(TARGETFLAGS,"-m32")
enable_win16=${enable_win16:-yes}
fi
Ken Thomases
committed
with_fontconfig=${with_fontconfig:-no}
;;

Alexandre Julliard
committed
x86_64*)
if test "x$enable_win64" != "xyes" -a "$cross_compiling" != "yes"
then

Alexandre Julliard
committed
CC="$CC -m32"
CXX="$CXX -m32"
AC_MSG_CHECKING([whether $CC works])
AC_LINK_IFELSE([AC_LANG_PROGRAM()],AC_MSG_RESULT([yes]),

Alexandre Julliard
committed
[AC_MSG_RESULT([no])
AC_MSG_ERROR([Cannot build a 32-bit program, you need to install 32-bit development libraries.])])

Alexandre Julliard
committed
notice_platform="32-bit "
AC_SUBST(TARGETFLAGS,"-m32")
enable_win16=${enable_win16:-yes}
else

Alexandre Julliard
committed
if test "x${GCC}" = "xyes"
then
AC_MSG_CHECKING([whether $CC supports __builtin_ms_va_list])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdarg.h>]], [[void func(__builtin_ms_va_list *args);]])],
[AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])
AC_MSG_ERROR([You need gcc >= 4.4 to build Wine as 64-bit.])])
fi
AC_SUBST(TARGETFLAGS,"-m64")
fi
;;
AC_MSG_CHECKING([whether $CC supports Thumb])
WINE_TRY_ASM_LINK([".thumb\nblx ac_test\n.arm"],[int ac_test(int i) { return i; }], [if (ac_test(1)) return 1],
[AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])
AC_MSG_ERROR([You need a target with Thumb support to build Wine for ARM.])])
CFLAGS="$CFLAGS -marm"
;;
*-mingw32*|*-cygwin*)
enable_win16=${enable_win16:-no}
CFLAGS="$CFLAGS -D_WIN32"
;;
i[[3456789]]86*)
enable_win16=${enable_win16:-yes}
;;
esac
dnl enable_win16 defaults to yes on x86, to no on other CPUs
enable_win16=${enable_win16:-no}
enable_win64=${enable_win64:-no}

Alexandre Julliard
committed
dnl Disable winetest too if tests are disabled
enable_winetest=${enable_winetest:-$enable_tests}
dnl Some special cases for the wow64 build
if test -n "$with_wine64"
then
if test "x$enable_win64" = "xyes"
then
AC_MSG_ERROR([--enable-win64 and --with-wine64 are mutually exclusive.
--enable-win64 should be used in the 64-bit build tree, --with-wine64 in the 32-bit Wow64 build tree.])
fi

Alexandre Julliard
committed
AC_SUBST([WOW64_DISABLE],[\#])
enable_fonts=${enable_fonts:-no}
enable_server=${enable_server:-no}
enable_tools=${enable_tools:-no}

Alexandre Julliard
committed
elif test "x$enable_win64" = "xyes"
then
test "x$libdir" != "x\${exec_prefix}/lib" || libdir="\${exec_prefix}/lib64"
fi
AC_CACHE_CHECK([for the directory containing the Wine tools], wine_cv_toolsdir,
[wine_cv_toolsdir="$with_wine_tools"
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.])
elif test -n "$with_wine64"; then
wine_cv_toolsdir="$with_wine64"
fi
if test -z "$wine_cv_toolsdir"; then

Alexandre Julliard
committed
wine_cv_toolsdir="\$(top_builddir)"
elif test -d "$wine_cv_toolsdir/tools/winebuild"; then
case "$wine_cv_toolsdir" in
/*) ;;

Alexandre Julliard
committed
*) wine_cv_toolsdir="\$(top_builddir)/$wine_cv_toolsdir" ;;
esac
else
AC_MSG_ERROR([could not find Wine tools in $wine_cv_toolsdir])
fi])
AC_SUBST(TOOLSDIR,$wine_cv_toolsdir)
if test -n "$host_alias" -a "$host_alias" != "$build_alias"

Alexandre Julliard
committed
then

Alexandre Julliard
committed
AC_SUBST(TARGETFLAGS,"-b $host_alias $TARGETFLAGS")

Alexandre Julliard
committed
fi

Alexandre Julliard
committed
dnl Check for flex
AC_CHECK_PROGS(FLEX,flex,none)
if test "$FLEX" = "none"

Alexandre Julliard
committed
AC_MSG_ERROR([no suitable flex found. Please install the 'flex' package.])
AC_MSG_CHECKING([whether flex is recent enough])
cat >conftest.l <<EOF
%top{
#include "prediluvian.h"
}
%%
EOF
if $FLEX -t conftest.l >/dev/null 2>&AS_MESSAGE_LOG_FD
then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
AC_MSG_ERROR([Your flex version is too old. Please install flex version 2.5.33 or newer.])
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
Francois Gouget
committed
AC_CHECK_TOOLS(AR,[ar gar],ar)
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

Alexandre Julliard
committed
*) INSTALL="\\\$(top_srcdir)/$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(LINTFLAGS)
dnl Check for various programs
AC_CHECK_PROGS(FONTFORGE, fontforge, false)
AC_CHECK_PROGS(RSVG, rsvg, false)
AC_CHECK_PROGS(CONVERT, convert, false)
AC_CHECK_PROGS(ICOTOOL, icotool, false)
AC_CHECK_PROGS(MSGFMT, msgfmt, false)
if test "x$enable_maintainer_mode" != "xyes"
AC_SUBST([MAINTAINER_MODE],[\#])
else

Alexandre Julliard
committed
if test "$FONTFORGE" = "false"; then AC_MSG_ERROR([You need fontforge to rebuild fonts in maintainer mode.]); fi
if test "$RSVG" = "false"; then AC_MSG_ERROR([You need rsvg to rebuild icons in maintainer mode.]); fi
Joel Holdsworth
committed
dnl Check the imagemagick version
if test "$CONVERT" = false
then

Alexandre Julliard
committed
AC_MSG_ERROR([You need imagemagick to rebuild icons in maintainer mode.])
Joel Holdsworth
committed
else
AC_MSG_CHECKING([for recent enough imagemagick])
convert_version=`convert --version | head -n1`
if test "x$convert_version" != "x"
then
convert_version_major=`expr "$convert_version" : '.* \([[0-9]]*\)\.[[0-9]]*'`
convert_version_minor=`expr "$convert_version" : '.* [[0-9]]*\.\([[0-9]]*\)'`
if test "$convert_version_major" -eq 6 -a "$convert_version_minor" -lt 6
then
CONVERT=false
fi
fi
if test "$CONVERT" = false
then
AC_MSG_RESULT([no ($convert_version_major.$convert_version_minor)])

Alexandre Julliard
committed
AC_MSG_ERROR([You need imagemagick version 6.6 or newer to rebuild icons in maintainer mode.])
Joel Holdsworth
committed
else
AC_MSG_RESULT([yes ($convert_version_major.$convert_version_minor)])
fi
fi
dnl Check the icotool version
if test "$ICOTOOL" = false
then

Alexandre Julliard
committed
AC_MSG_ERROR([You need icotool to rebuild icons in maintainer mode.])
else
AC_MSG_CHECKING([for recent enough icotool])
icotool_version=`icotool --version | head -n1`
if test "x$icotool_version" != "x"
then
icotool_version_major=`expr "$icotool_version" : '.* \([[0-9]]*\)\.[[0-9]]*'`
icotool_version_minor=`expr "$icotool_version" : '.* [[0-9]]*\.\([[0-9]]*\)'`
if test "$icotool_version_major" -eq 0 -a "$icotool_version_minor" -lt 29
then
ICOTOOL=false
WINE_WARNING([icotool version 0.29.0 or newer is needed to rebuild icons.])
fi
fi
if test "$ICOTOOL" = false
then
AC_MSG_RESULT([no ($icotool_version_major.$icotool_version_minor)])

Alexandre Julliard
committed
AC_MSG_ERROR([You need icotool version 0.29.0 or newer to rebuild icons in maintainer mode.])
else
AC_MSG_RESULT([yes ($icotool_version_major.$icotool_version_minor)])
fi
fi
dnl Maintainer mode requires gettext
with_gettext=yes
with_gettextpo=yes
AS_UNSET(ac_cv_header_gettext_po_h)
test "x$with_gettext" != xno || MSGFMT=false
if test "$MSGFMT" != "false"
then
AC_MSG_CHECKING([whether msgfmt supports contexts])
cat >conftest.po <<EOF
# comment
msgctxt "ctxt"
msgid "id"
msgstr "str"
EOF
if $MSGFMT -o /dev/null conftest.po 2>&AS_MESSAGE_LOG_FD
then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
MSGFMT=false
fi
fi
WINE_WARNING_WITH(gettext,[test "$MSGFMT" = false],
[gettext tools not found (or too old), translations won't be built.])
dnl Check for -lossaudio for NetBSD
AC_CHECK_LIB(ossaudio,_oss_ioctl)
AC_SUBST(XLIB,"")
AC_SUBST(OPENGL_LIBS,"")
dnl **** Check for header files ****
Ken Thomases
committed
test "x$with_fontconfig" != "xno" || ac_cv_header_fontconfig_fontconfig_h=no
AC_CHECK_HEADERS(\
ApplicationServices/ApplicationServices.h \
AudioToolbox/AudioConverter.h \
AudioUnit/AudioUnit.h \
AudioUnit/AudioComponent.h \
Carbon/Carbon.h \
CoreAudio/CoreAudio.h \
CoreServices/CoreServices.h \
DiskArbitration/DiskArbitration.h \
IOKit/IOKitLib.h \
QuickTime/ImageCompression.h \
Security/Security.h \
alsa/asoundlib.h \
arpa/inet.h \
arpa/nameser.h \
curses.h \
direct.h \
dlfcn.h \
elf.h \
float.h \
fontconfig/fontconfig.h \
getopt.h \
ieeefp.h \
inet/mib2.h \
io.h \
lber.h \
ldap.h \
link.h \
linux/cdrom.h \
linux/compiler.h \
Erich Hoover
committed
linux/filter.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-o/nlist.h \
mach/mach.h \
machine/cpu.h \
mntent.h \
ncurses.h \
netdb.h \
netinet/in.h \
netinet/in_systm.h \
netinet/tcp.h \
netinet/tcp_fsm.h \
process.h \
pthread.h \
pwd.h \
sched.h \
scsi/scsi.h \
scsi/scsi_ioctl.h \
scsi/sg.h \
stdint.h \
stropts.h \
sys/asoundlib.h \
sys/cdio.h \
sys/elf32.h \
sys/epoll.h \

Alexandre Julliard
committed
sys/event.h \
sys/exec_elf.h \
sys/filio.h \

Alexandre Julliard
committed
sys/inotify.h \
sys/ioctl.h \
sys/ipc.h \
sys/link.h \
sys/mman.h \
sys/modem.h \
sys/msg.h \
sys/param.h \
sys/poll.h \
sys/prctl.h \
sys/ptrace.h \
sys/resource.h \
sys/scsiio.h \
sys/shm.h \
sys/signal.h \
sys/socket.h \
sys/sockio.h \
sys/statvfs.h \
sys/strtio.h \
sys/syscall.h \
sys/tihdr.h \
sys/time.h \
sys/times.h \
sys/uio.h \
sys/utsname.h \
sys/vm86.h \
sys/wait.h \
syscall.h \
termios.h \
unistd.h \
utime.h \
valgrind/valgrind.h \
zlib.h
)
AC_HEADER_STAT()
dnl **** Checks for headers that depend on other ones ****
AC_CHECK_HEADERS([sys/mount.h sys/statfs.h sys/sysctl.h sys/user.h sys/vfs.h],,,
[#include <sys/types.h>
#ifdef HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif])
AC_CHECK_HEADERS(\
netinet/ip.h \
net/if.h \
net/if_arp.h \
net/if_dl.h \
net/if_types.h \
net/route.h \
netinet/if_ether.h \
netinet/in_pcb.h \
netinet/ip_icmp.h \
netinet/ip_var.h \
netinet/udp.h \
netipx/ipx.h \
,,,[#include <sys/types.h>
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
#ifdef HAVE_SYS_SOCKETVAR_H
# include <sys/socketvar.h>
Ken Thomases
committed
#endif
#ifdef HAVE_NET_ROUTE_H
# include <net/route.h>
#endif
#ifdef HAVE_NETINET_IN_H
Ken Thomases
committed
# include <netinet/in.h>
#endif
#ifdef HAVE_NETINET_IN_SYSTM_H
# include <netinet/in_systm.h>
#endif
#ifdef HAVE_NET_IF_H
# include <net/if.h>
#endif
#ifdef HAVE_NETINET_IP_H
# include <netinet/ip.h>
#endif])
AC_CHECK_HEADERS([netinet/tcp_timer.h netinet/udp_var.h netinet/icmp_var.h netinet/tcp_var.h ],,,
[#include <sys/types.h>
#ifdef HAVE_ALIAS_H
# include <alias.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
#ifdef HAVE_SYS_SOCKETVAR_H
# include <sys/socketvar.h>
#endif
#ifdef HAVE_SYS_TIMEOUT_H
# include <sys/timeout.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
#ifdef HAVE_NETINET_IN_SYSTM_H
# include <netinet/in_systm.h>
#endif
#ifdef HAVE_NETINET_IP_H
# include <netinet/ip.h>
#endif
#ifdef HAVE_NETINET_IP_VAR_H
# include <netinet/ip_var.h>
#endif
#ifdef HAVE_NETINET_IP_ICMP_H
# include <netinet/ip_icmp.h>
#endif
#ifdef HAVE_NETINET_UDP_H
# include <netinet/udp.h>
#endif
#ifdef HAVE_NETINET_TCP_H
# include <netinet/tcp.h>
#endif
#ifdef HAVE_NETINET_TCP_TIMER_H
#include <netinet/tcp_timer.h>
AC_CHECK_HEADERS([linux/ipx.h linux/irda.h],,,
[#include <sys/types.h>
#ifdef HAVE_ASM_TYPES_H
# include <asm/types.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
#endif
#ifdef HAVE_LINUX_TYPES_H
# include <linux/types.h>
AC_CHECK_HEADERS([mach-o/dyld_images.h],,,
[#ifdef HAVE_STDBOOL_H
# include <stdbool.h>
#endif
#ifdef HAVE_STDINT_H
# include <stdint.h>
#endif])
AC_CHECK_HEADERS([resolv.h],,,
[#include <sys/types.h>
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
#ifdef HAVE_ARPA_NAMESER_H
# include <arpa/nameser.h>
#endif])
AC_CHECK_HEADERS([ifaddrs.h],,,[#include <sys/types.h>])
AC_CHECK_HEADERS(ucontext.h,,,[#include <signal.h>])
AC_CHECK_HEADERS([sys/thr.h],,,
[#include <sys/types.h>
#ifdef HAVE_UCONTEXT_H
#include <ucontext.h>
#endif])
AC_CHECK_HEADERS([pthread_np.h],,,
[#ifdef HAVE_PTHREAD_H
#include <pthread.h>
#endif])
Damjan Jovanovic
committed
AC_CHECK_HEADERS([linux/videodev.h linux/videodev2.h libv4l1.h],,,
[#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#include <sys/types.h>
#ifdef HAVE_ASM_TYPES_H
#include <asm/types.h>
#endif])

Alexandre Julliard
committed
dnl **** Check for working dll ****
AC_SUBST(DLLEXT,"")
AC_SUBST(DLLFLAGS,"-D_REENTRANT")
AC_SUBST(LDDLLFLAGS,"")
AC_SUBST(IMPLIBEXT,"def")
AC_SUBST(LDRPATH_INSTALL,"")
AC_SUBST(LDRPATH_LOCAL,"")

Alexandre Julliard
committed
LIBEXT="so"
STATIC_IMPLIBEXT="def.a"
WINE_PATH_SONAME_TOOLS

Alexandre Julliard
committed
case $host_os in
cygwin*|mingw32*)
AC_CHECK_TOOL(DLLTOOL,dlltool,false)

Alexandre Julliard
committed
LIBEXT="dll"

Alexandre Julliard
committed
IMPLIBEXT="a"
STATIC_IMPLIBEXT="a"

Alexandre Julliard
committed
dnl Disable modules that can't be used on Windows
enable_iphlpapi=${enable_iphlpapi:-no}
enable_kernel32=${enable_kernel32:-no}
enable_msvcrt=${enable_msvcrt:-no}
enable_ntdll=${enable_ntdll:-no}
enable_ws2_32=${enable_ws2_32:-no}
enable_loader=${enable_loader:-no}
enable_server=${enable_server:-no}

Alexandre Julliard
committed
dnl Disable dependencies that are not useful on Windows
with_x=${with_x:-no}
with_pthread=${with_pthread:-no}

Alexandre Julliard
committed
dnl Mingw needs explicit msvcrt for linking libwine and winsock for wininet
crtlibs=""
case $host_os in
mingw32*)
crtlibs="-lmsvcrt"
AC_SUBST(SOCKETLIBS,"-L\$(top_builddir)/dlls/ws2_32 -lws2_32") ;;
esac
AC_SUBST(LIBWINE_RULES,["
all: libwine.dll libwine.a
libwine.a: wine.def
\$(DLLTOOL) -l \$@ -d \$(srcdir)/wine.def
libwine.dll: \$(OBJS) wine.def Makefile.in
\$(CC) -shared \$(srcdir)/wine.def -o \$@ \$(OBJS) $crtlibs \$(EXTRALIBS)

Alexandre Julliard
committed
install install-lib:: libwine.dll \$(DESTDIR)\$(libdir) dummy
\$(INSTALL_DATA) libwine.dll \$(DESTDIR)\$(libdir)/libwine.dll
install install-dev:: libwine.a \$(DESTDIR)\$(libdir) dummy
\$(INSTALL_DATA) libwine.a \$(DESTDIR)\$(libdir)/libwine.a
uninstall::
-cd \$(DESTDIR)\$(libdir) && \$(RM) libwine.a libwine.dll
clean::
\$(RM) libwine.dll version.c
"])

Alexandre Julliard
committed
;;

Alexandre Julliard
committed

Alexandre Julliard
committed
darwin*|macosx*)
DLLEXT=".so"
LIBEXT="dylib"
DLLFLAGS="$DLLFLAGS -fPIC"
LDDLLFLAGS="-bundle -multiply_defined suppress"
LIBWINE_LDFLAGS="-multiply_defined suppress"
Ken Thomases
committed
LDRPATH_INSTALL="-Wl,-rpath,@loader_path/\`\$(RELPATH) \$(bindir) \$(libdir)\`"
LDRPATH_LOCAL="-Wl,-rpath,@loader_path/\$(top_builddir)/libs/wine"

Alexandre Julliard
committed
dnl declare needed frameworks
AC_SUBST(COREFOUNDATIONLIB,"-framework CoreFoundation")
AC_SUBST(IOKITLIB,"-framework IOKit -framework CoreFoundation")
AC_SUBST(FORCEFEEDBACKLIB,"-framework ForceFeedback -framework CoreFoundation")
AC_SUBST(APPLICATIONSERVICESLIB,"-framework ApplicationServices")
AC_SUBST(CORESERVICESLIB,"-framework CoreServices")
case $host_os in
darwin11*)
AC_SUBST(LDEXECFLAGS,["-image_base 0x7bf00000 -Wl,-macosx_version_min,10.6,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000,-sectcreate,__TEXT,__info_plist,wine_info.plist"]) ;;
AC_SUBST(LDEXECFLAGS,["-image_base 0x7bf00000 -Wl,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000,-sectcreate,__TEXT,__info_plist,wine_info.plist"]) ;;

Alexandre Julliard
committed
if test "$ac_cv_header_DiskArbitration_DiskArbitration_h" = "yes"
then
dnl DiskArbitration API is not public on Darwin < 8.0, use it only if header found
AC_SUBST(DISKARBITRATIONLIB,"-framework DiskArbitration -framework CoreFoundation")
fi

Alexandre Julliard
committed
if test "$ac_cv_header_Security_Security_h" = "yes"
then
AC_SUBST(SECURITYLIB,"-framework Security -framework CoreFoundation")
dnl Check for the SSLCopyPeerCertificates function
ac_save_LIBS="$LIBS"
LIBS="$LIBS $SECURITYLIB"
AC_CHECK_FUNCS(SSLCopyPeerCertificates)
LIBS="$ac_save_LIBS"

Alexandre Julliard
committed
with_gnutls=${with_gnutls:-no}
fi

Alexandre Julliard
committed
if test "$ac_cv_header_CoreAudio_CoreAudio_h" = "yes" -a "$ac_cv_header_AudioUnit_AudioUnit_h" = "yes"
then
if test "$ac_cv_header_AudioUnit_AudioComponent_h" = "yes"
then
AC_SUBST(COREAUDIO,"-framework CoreFoundation -framework CoreAudio -framework AudioUnit -framework AudioToolbox -framework CoreMIDI")
else
dnl CoreServices needed by AudioUnit
AC_SUBST(COREAUDIO,"-framework CoreAudio -framework AudioUnit -framework CoreServices -framework AudioToolbox -framework CoreMIDI")
fi
dnl Check for the AUGraphAddNode function
ac_save_LIBS="$LIBS"
LIBS="$LIBS $COREAUDIO"
AC_CHECK_FUNCS(AUGraphAddNode)
LIBS="$ac_save_LIBS"

Alexandre Julliard
committed
fi
if test "$ac_cv_header_OpenAL_al_h" = "yes"
then
AC_SUBST(FRAMEWORK_OPENAL,"-framework OpenAL")
AC_DEFINE_UNQUOTED(HAVE_OPENAL,1,[Define to 1 if OpenAL is available])
ac_cv_lib_openal=yes
if test "$ac_cv_header_OpenCL_opencl_h" = "yes"
then
AC_SUBST(LIBOPENCL,"-framework OpenCL")
ac_cv_lib_OpenCL_clGetPlatformInfo=yes
fi

Alexandre Julliard
committed
if test "$ac_cv_header_IOKit_hid_IOHIDLib_h" = "yes"
then
ac_save_LIBS="$LIBS"
LIBS="$LIBS $IOKITLIB"
AC_CHECK_FUNCS(IOHIDManagerCreate)
LIBS="$ac_save_LIBS"
fi

Alexandre Julliard
committed
case $host_cpu in
*powerpc*)
LDDLLFLAGS="$LDDLLFLAGS -read_only_relocs warning" dnl FIXME
;;
esac
if test "$ac_cv_header_QuickTime_ImageCompression_h" = "yes"
then
AC_SUBST(QUICKTIMELIB,"-framework QuickTime -framework ApplicationServices -framework CoreVideo")
enable_wineqtdecoder=${enable_wineqtdecoder:-yes}
else
WINE_NOTICE([QuickTime ${notice_platform}development files not found, video decoding won't be supported.])
fi

Alexandre Julliard
committed
if test "$ac_cv_header_Carbon_Carbon_h" = "yes"
then
AC_SUBST(CARBONLIB,"-framework Carbon")
fi
dnl Enable Mac driver on Mac OS X 10.6 or later
if test "$ac_cv_header_ApplicationServices_ApplicationServices_h" = "yes"
then
ac_save_LIBS="$LIBS"
LIBS="$LIBS $APPLICATIONSERVICESLIB"
AC_CHECK_FUNC(CGDisplayModeGetWidth,enable_winemac_drv=${enable_winemac_drv:-yes})
LIBS="$ac_save_LIBS"
fi
dnl Check for Xcode 3.x broken 16-bit support
if test "x$enable_win16" = "xyes"
then
AC_MSG_CHECKING([whether 16-bit code can be built correctly])
AC_RUN_IFELSE([AC_LANG_PROGRAM([[asm(".text\n"
"bad:\tnop;nop\n"
"good:\tnop;nop\n\t"
".globl _testfunc\n"
"_testfunc:\tcallw good");
extern void testfunc();]],
[[unsigned short *p = (unsigned short *)testfunc;
return p[0] != 0xe866 || p[1] != 0xfffa]])],
AC_MSG_RESULT(yes),
[AC_MSG_RESULT(no)
AC_MSG_ERROR([Xcode 3.x cannot build 16-bit code correctly. Use --disable-win16 if you don't need 16-bit support.])],
AC_MSG_RESULT([[cross-compiling, assuming yes]]))
fi

Alexandre Julliard
committed
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
AC_SUBST(LIBWINE_RULES,["
all: libwine.dylib
libwine.\$(VERSION).dylib: \$(OBJS) \$(RELPATH) Makefile.in
\$(CC) -dynamiclib -install_name @rpath/libwine.\$(SOVERSION).dylib -Wl,-rpath,@loader_path/ -compatibility_version \$(SOVERSION) -current_version \$(VERSION) \$(OBJS) \$(EXTRALIBS) \$(LDFLAGS) \$(LIBS) -o \$@
libwine.\$(SOVERSION).dylib: libwine.\$(VERSION).dylib
\$(RM) \$@ && \$(LN_S) libwine.\$(VERSION).dylib \$@
libwine.dylib: libwine.\$(SOVERSION).dylib
\$(RM) \$@ && \$(LN_S) libwine.\$(SOVERSION).dylib \$@
install install-lib:: libwine.\$(VERSION).dylib \$(DESTDIR)\$(libdir) dummy
\$(INSTALL_PROGRAM) libwine.\$(VERSION).dylib \$(DESTDIR)\$(libdir)/libwine.\$(VERSION).dylib
cd \$(DESTDIR)\$(libdir) && \$(RM) libwine.\$(SOVERSION).dylib && \$(LN_S) libwine.\$(VERSION).dylib libwine.\$(SOVERSION).dylib
install install-dev:: \$(DESTDIR)\$(libdir) dummy
cd \$(DESTDIR)\$(libdir) && \$(RM) libwine.dylib && \$(LN_S) libwine.\$(VERSION).dylib libwine.dylib
uninstall::
-cd \$(DESTDIR)\$(libdir) && \$(RM) libwine.dylib libwine.\$(VERSION).dylib libwine.\$(SOVERSION).dylib
clean::
\$(RM) libwine.dylib libwine.\$(VERSION).dylib libwine.\$(SOVERSION).dylib version.c
"])

Alexandre Julliard
committed
;;

Alexandre Julliard
committed
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
linux-android*)
DLLFLAGS="$DLLFLAGS -fPIC"
DLLEXT=".so"
LDDLLFLAGS="-shared -Wl,-Bsymbolic"
WINE_TRY_CFLAGS([-fPIC -shared -Wl,-Bsymbolic,-z,defs],
[LDDLLFLAGS="$LDDLLFLAGS,-z,defs"])
WINE_TRY_CFLAGS([-fPIC -shared -Wl,-Bsymbolic,-init,__wine_spec_init,-fini,__wine_spec_fini],
[LDDLLFLAGS="$LDDLLFLAGS,-init,__wine_spec_init,-fini,__wine_spec_fini"])
WINE_TRY_CFLAGS([-fPIC -Wl,--export-dynamic],
[AC_SUBST(LDEXECFLAGS,["-Wl,--export-dynamic"])])
WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,\$ORIGIN/../lib],
[LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`"
LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(top_builddir)/libs/wine"],
[WINE_TRY_CFLAGS([-fPIC -Wl,-R,\$ORIGIN/../lib],
[LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`"
LDRPATH_LOCAL="-Wl,-R,\\\$\$ORIGIN/\$(top_builddir)/libs/wine"])])
WINE_TRY_CFLAGS([-Wl,--enable-new-dtags],
[LDRPATH_INSTALL="$LDRPATH_INSTALL -Wl,--enable-new-dtags"])
case $host_cpu in
*i[[3456789]]86* | x86_64)
WINE_TRY_CFLAGS([-Wl,--section-start,.interp=0x7bf00400],
[LDEXECFLAGS="$LDEXECFLAGS -Wl,--section-start,.interp=0x7bf00400"])
;;
esac
AC_SUBST(LIBWINE_RULES,["
all: libwine.so
libwine.so: \$(OBJS) Makefile.in
\$(CC) -shared \$(OBJS) \$(EXTRALIBS) \$(LDFLAGS) \$(LIBS) -o \$@
install install-lib:: libwine.so \$(DESTDIR)\$(libdir) dummy
\$(INSTALL_PROGRAM) libwine.so \$(DESTDIR)\$(libdir)/libwine.so
uninstall::
\$(RM) \$(DESTDIR)\$(libdir)/libwine.so
clean::
\$(RM) libwine.so version.c
"])
;;

Alexandre Julliard
committed
*)
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,-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"
LDDLLFLAGS="-shared -Wl,-Bsymbolic"
WINE_TRY_CFLAGS([-fPIC -shared -Wl,-soname,confest.so.1],

Alexandre Julliard
committed
[LDSHARED="\$(CC) -shared -Wl,-soname,libwine.so.\$(SOVERSION)"],

Alexandre Julliard
committed
[WINE_TRY_CFLAGS([-fPIC -shared -Wl,-h,confest.so.1],

Alexandre Julliard
committed
[LDSHARED="\$(CC) -shared -Wl,-h,libwine.so.\$(SOVERSION)"])])

Alexandre Julliard
committed
WINE_TRY_CFLAGS([-fPIC -shared -Wl,-Bsymbolic,-z,defs], [LDDLLFLAGS="$LDDLLFLAGS,-z,defs"])
WINE_TRY_CFLAGS([-fPIC -shared -Wl,-Bsymbolic,-init,__wine_spec_init,-fini,__wine_spec_fini],
[LDDLLFLAGS="$LDDLLFLAGS,-init,__wine_spec_init,-fini,__wine_spec_fini"])
echo '{ global: *; };' >conftest.map
WINE_TRY_CFLAGS([-fPIC -shared -Wl,--version-script=conftest.map],

Alexandre Julliard
committed
[LDSHARED="$LDSHARED -Wl,--version-script=\$(srcdir)/wine.map"])

Alexandre Julliard
committed
rm -f conftest.map
WINE_TRY_CFLAGS([-fPIC -Wl,--export-dynamic],
[AC_SUBST(LDEXECFLAGS,["-Wl,--export-dynamic"])])
WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,\$ORIGIN/../lib],
[LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`"

Alexandre Julliard
committed
LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(top_builddir)/libs/wine"],

Alexandre Julliard
committed
[WINE_TRY_CFLAGS([-fPIC -Wl,-R,\$ORIGIN/../lib],
[LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(RELPATH) \$(bindir) \$(libdir)\`"

Alexandre Julliard
committed
LDRPATH_LOCAL="-Wl,-R,\\\$\$ORIGIN/\$(top_builddir)/libs/wine"])])

Alexandre Julliard
committed
WINE_TRY_CFLAGS([-Wl,--enable-new-dtags],
[LDRPATH_INSTALL="$LDRPATH_INSTALL -Wl,--enable-new-dtags"])

Alexandre Julliard
committed
case $host_cpu in
*i[[3456789]]86* | x86_64)
WINE_TRY_CFLAGS([-Wl,--section-start,.interp=0x7bf00400],
Francois Gouget
committed
[case $host_os in
freebsd* | kfreebsd*-gnu) LDEXECFLAGS="$LDEXECFLAGS -Wl,--section-start,.interp=0x60000400" ;;
Francois Gouget
committed
*) LDEXECFLAGS="$LDEXECFLAGS -Wl,--section-start,.interp=0x7bf00400" ;;
esac
])
AC_PATH_PROG(PRELINK, prelink, false, [/sbin /usr/sbin $PATH])
if test "x$PRELINK" = xfalse
then
WINE_WARNING([prelink not found, base address of core dlls won't be set correctly.])
fi

Alexandre Julliard
committed
;;
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

Alexandre Julliard
committed
LDSHARED="\$(CC) -Wl,-G,-h,libwine.so.\$(SOVERSION)"

Alexandre Julliard
committed
LDDLLFLAGS="-Wl,-G,-B,symbolic"
fi
fi

Alexandre Julliard
committed
AC_SUBST(LIBWINE_RULES,["
all: libwine.so
libwine.so.\$(VERSION): \$(OBJS) wine.map Makefile.in
$LDSHARED \$(OBJS) \$(EXTRALIBS) \$(LDFLAGS) \$(LIBS) -o \$@
libwine.so.\$(SOVERSION): libwine.so.\$(VERSION)
\$(RM) \$@ && \$(LN_S) libwine.so.\$(VERSION) \$@
libwine.so: libwine.so.\$(SOVERSION)
\$(RM) \$@ && \$(LN_S) libwine.so.\$(SOVERSION) \$@
install install-lib:: libwine.so.\$(VERSION) \$(DESTDIR)\$(libdir) dummy
\$(INSTALL_PROGRAM) libwine.so.\$(VERSION) \$(DESTDIR)\$(libdir)/libwine.so.\$(VERSION)
cd \$(DESTDIR)\$(libdir) && \$(RM) libwine.so.\$(SOVERSION) && \$(LN_S) libwine.so.\$(VERSION) libwine.so.\$(SOVERSION)
install install-dev:: \$(DESTDIR)\$(libdir) dummy
cd \$(DESTDIR)\$(libdir) && \$(RM) libwine.so && \$(LN_S) libwine.so.\$(VERSION) libwine.so
uninstall::
-cd \$(DESTDIR)\$(libdir) && \$(RM) libwine.so libwine.so.\$(VERSION) libwine.so.\$(SOVERSION)
clean::
\$(RM) libwine.so.\$(SOVERSION) libwine.so.\$(VERSION) version.c
"])

Alexandre Julliard
committed
;;
esac
Aric Stewart
committed
enable_wineqtdecoder=${enable_wineqtdecoder:-no}
enable_winemac_drv=${enable_winemac_drv:-no}