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)
libwine_version="1.0"
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(netapi, AS_HELP_STRING([--without-netapi],[do not use the Samba NetAPI 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"
AC_SUBST(TARGETFLAGS,"-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
enable_fonts=${enable_fonts:-no}
enable_server=${enable_server:-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" ;;
enable_tools=${enable_tools:-no}
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_CHECK_TOOL(STRIP,strip,strip)
AC_PATH_PROG(LDCONFIG, ldconfig, true, [/sbin /usr/sbin $PATH])
AC_CHECK_PROGS(MSGFMT, msgfmt, false)
if test "x$enable_maintainer_mode" != "xyes"
FONTFORGE=""
RSVG=""
CONVERT=""
ICOTOOL=""
else
test "$srcdir" = . || AC_MSG_ERROR([Maintainer mode cannot work out of tree.])
AC_CHECK_PROGS(FONTFORGE, fontforge, false)
AC_CHECK_PROGS(RSVG, rsvg, false)
AC_CHECK_PROGS(CONVERT, convert, false)
AC_CHECK_PROGS(ICOTOOL, icotool, false)
test "$FONTFORGE" != "false" || AC_MSG_ERROR([You need fontforge to rebuild fonts in maintainer mode.])
test "$RSVG" != "false" || AC_MSG_ERROR([You need rsvg to rebuild icons in maintainer mode.])
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(OPENGL_LIBS,"")
dnl **** Check for header files ****
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 \
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 linux/rtnetlink.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])
AC_CHECK_HEADERS([libprocstat.h],,,
[#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif
#ifdef HAVE_SYS_QUEUE_H
#include <sys/queue.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif])

Alexandre Julliard
committed
dnl **** Check for working dll ****
AC_SUBST(dlldir,"\${libdir}/wine")

Alexandre Julliard
committed
AC_SUBST(DLLPREFIX,"")

Alexandre Julliard
committed
AC_SUBST(DLLFLAGS,"-D_REENTRANT")
AC_SUBST(LDRPATH_INSTALL,"")
AC_SUBST(LDRPATH_LOCAL,"")

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

Alexandre Julliard
committed
wine_binary="wine"
test "x$enable_win64" != "xyes" || wine_binary="wine64"
loader_programs="$wine_binary wine-installed"
libwine_soversion=`expr $libwine_version : '\([[0-9]]*\)\..*'`
AC_SUBST(LOADER_RULES,["
install install-lib:: wine-installed
\$(INSTALL_PROGRAM) wine-installed \$(DESTDIR)\$(bindir)/$wine_binary
uninstall::
\$(RM) \$(DESTDIR)\$(bindir)/$wine_binary
"])

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

Alexandre Julliard
committed
LIBEXT="dll"
DLLEXT=""

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"

Alexandre Julliard
committed
AC_SUBST(SOCKET_LIBS,"-L\$(top_builddir)/dlls/ws2_32 -lws2_32") ;;

Alexandre Julliard
committed
esac
libwine_targets="libwine.dll libwine.a"

Alexandre Julliard
committed
AC_SUBST(LIBWINE_RULES,["
OBJS = \$(C_SRCS:.c=.o) \$(EXTRA_OBJS)

Alexandre Julliard
committed
all: libwine.dll libwine.a
libwine.a: \$(srcdir)/wine.def

Alexandre Julliard
committed
\$(DLLTOOL) -l \$@ -d \$(srcdir)/wine.def
libwine.dll: \$(OBJS) \$(srcdir)/wine.def
\$(CC) -shared \$(srcdir)/wine.def -o \$@ \$(OBJS) $crtlibs \$(EXTRALIBS)

Alexandre Julliard
committed
install install-lib:: libwine.dll

Alexandre Julliard
committed
\$(INSTALL_DATA) libwine.dll \$(DESTDIR)\$(libdir)/libwine.dll
install install-dev:: libwine.a

Alexandre Julliard
committed
\$(INSTALL_DATA) libwine.a \$(DESTDIR)\$(libdir)/libwine.a
uninstall::
-cd \$(DESTDIR)\$(libdir) && \$(RM) libwine.a libwine.dll
"])

Alexandre Julliard
committed
;;

Alexandre Julliard
committed

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

Alexandre Julliard
committed
dnl declare needed frameworks

Alexandre Julliard
committed
AC_SUBST(COREFOUNDATION_LIBS,"-framework CoreFoundation")
AC_SUBST(IOKIT_LIBS,"-framework IOKit -framework CoreFoundation")
AC_SUBST(FORCEFEEDBACK_LIBS,"-framework ForceFeedback -framework CoreFoundation")
AC_SUBST(APPLICATIONSERVICES_LIBS,"-framework ApplicationServices")
AC_SUBST(CORESERVICES_LIBS,"-framework CoreServices")
AC_SUBST(APPKIT_LIBS,"-framework AppKit")
LDEXECFLAGS="-image_base 0x7bf00000 -Wl,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000,-sectcreate,__TEXT,__info_plist,wine_info.plist"
darwin11*) LDEXECFLAGS="-Wl,-macosx_version_min,10.6 $LDEXECFLAGS" ;;

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

Alexandre Julliard
committed
AC_SUBST(DISKARBITRATION_LIBS,"-framework DiskArbitration -framework CoreFoundation")

Alexandre Julliard
committed
fi

Alexandre Julliard
committed
if test "$ac_cv_header_Security_Security_h" = "yes"
then

Alexandre Julliard
committed
AC_SUBST(SECURITY_LIBS,"-framework Security -framework CoreFoundation")
dnl Check for the SSLCopyPeerCertificates function
ac_save_LIBS="$LIBS"

Alexandre Julliard
committed
LIBS="$LIBS $SECURITY_LIBS"
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

Alexandre Julliard
committed
AC_SUBST(COREAUDIO_LIBS,"-framework CoreFoundation -framework CoreAudio -framework AudioUnit -framework AudioToolbox -framework CoreMIDI")
else
dnl CoreServices needed by AudioUnit

Alexandre Julliard
committed
AC_SUBST(COREAUDIO_LIBS,"-framework CoreAudio -framework AudioUnit -framework CoreServices -framework AudioToolbox -framework CoreMIDI")
dnl Check for the AUGraphAddNode function
ac_save_LIBS="$LIBS"

Alexandre Julliard
committed
LIBS="$LIBS $COREAUDIO_LIBS"
AC_CHECK_FUNCS(AUGraphAddNode)
LIBS="$ac_save_LIBS"

Alexandre Julliard
committed
fi
if test "$ac_cv_header_OpenAL_al_h" = "yes"
then

Alexandre Julliard
committed
AC_SUBST(OPENAL_LIBS,"-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

Alexandre Julliard
committed
AC_SUBST(OPENCL_LIBS,"-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"

Alexandre Julliard
committed
LIBS="$LIBS $IOKIT_LIBS"

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

Alexandre Julliard
committed
AC_SUBST(QUICKTIME_LIBS,"-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

Alexandre Julliard
committed
AC_SUBST(CARBON_LIBS,"-framework Carbon")

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

Alexandre Julliard
committed
LIBS="$LIBS $APPLICATIONSERVICES_LIBS"
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
libwine_targets="libwine.dylib libwine.$libwine_soversion.dylib libwine.$libwine_version.dylib"

Alexandre Julliard
committed
AC_SUBST(LIBWINE_RULES,["
OBJS = \$(C_SRCS:.c=.o) \$(EXTRA_OBJS)

Alexandre Julliard
committed
all: libwine.dylib
libwine.$libwine_version.dylib: \$(OBJS)
\$(CC) -dynamiclib -install_name @rpath/libwine.$libwine_soversion.dylib -Wl,-rpath,@loader_path/ -compatibility_version $libwine_soversion -current_version $libwine_version \$(OBJS) \$(EXTRALIBS) \$(LDFLAGS) \$(LIBS) -o \$@

Alexandre Julliard
committed
libwine.$libwine_soversion.dylib: libwine.$libwine_version.dylib
\$(RM) \$@ && \$(LN_S) libwine.$libwine_version.dylib \$@

Alexandre Julliard
committed
libwine.dylib: libwine.$libwine_soversion.dylib
\$(RM) \$@ && \$(LN_S) libwine.$libwine_soversion.dylib \$@

Alexandre Julliard
committed
install install-lib:: libwine.$libwine_version.dylib
\$(INSTALL_PROGRAM) libwine.$libwine_version.dylib \$(DESTDIR)\$(libdir)/libwine.$libwine_version.dylib
cd \$(DESTDIR)\$(libdir) && \$(RM) libwine.$libwine_soversion.dylib && \$(LN_S) libwine.$libwine_version.dylib libwine.$libwine_soversion.dylib

Alexandre Julliard
committed
install install-dev::
cd \$(DESTDIR)\$(libdir) && \$(RM) libwine.dylib && \$(LN_S) libwine.$libwine_version.dylib libwine.dylib

Alexandre Julliard
committed
uninstall::
-cd \$(DESTDIR)\$(libdir) && \$(RM) libwine.dylib libwine.$libwine_soversion.dylib libwine.$libwine_version.dylib

Alexandre Julliard
committed
"])
AS_VAR_APPEND([LOADER_RULES],["
$wine_binary: main.o wine_info.plist
\$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_LOCAL)
wine-installed: main.o wine_info.plist
\$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_INSTALL)
"])

Alexandre Julliard
committed
;;

Alexandre Julliard
committed
linux-android*)
DLLFLAGS="$DLLFLAGS -fPIC"
DLLPREFIX="lib"
LDEXECFLAGS=""
dlldir="\${libdir}"
WINE_TRY_CFLAGS([-fPIC -Wl,--export-dynamic],
[LDEXECFLAGS="-Wl,--export-dynamic"])
WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,\$ORIGIN/../lib],
[LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \$(bindir) \$(libdir)\`"
LDRPATH_LOCAL="-Wl,--rpath,\\\$\$ORIGIN/\$(top_builddir)/libs/wine"],
[WINE_TRY_CFLAGS([-fPIC -Wl,-R,\$ORIGIN/../lib],
[LDRPATH_INSTALL="-Wl,-R,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \$(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
libwine_targets="libwine.so"
AC_SUBST(LIBWINE_RULES,["
OBJS = \$(C_SRCS:.c=.o) \$(EXTRA_OBJS)
all: libwine.so
libwine.so: \$(OBJS)
\$(CC) -shared \$(OBJS) \$(EXTRALIBS) \$(LDFLAGS) \$(LIBS) -o \$@
install install-lib:: libwine.so
\$(INSTALL_PROGRAM) libwine.so \$(DESTDIR)\$(libdir)/libwine.so
uninstall::
\$(RM) \$(DESTDIR)\$(libdir)/libwine.so
"])
AS_VAR_APPEND([LOADER_RULES],["
$wine_binary: main.o
\$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_LOCAL)
wine-installed: main.o
\$(CC) -o \$@ $LDEXECFLAGS main.o \$(LIBWINE) \$(LIBPORT) \$(EXTRALIBS) \$(LDFLAGS) \$(LDRPATH_INSTALL)
"])
;;

Alexandre Julliard
committed
*)
DLLFLAGS="$DLLFLAGS -fPIC"
LDEXECFLAGS=""

Alexandre Julliard
committed
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"
WINE_TRY_CFLAGS([-fPIC -shared -Wl,-soname,confest.so.1],
[LDSHARED="\$(CC) -shared -Wl,-soname,libwine.so.$libwine_soversion"],

Alexandre Julliard
committed
[WINE_TRY_CFLAGS([-fPIC -shared -Wl,-h,confest.so.1],
[LDSHARED="\$(CC) -shared -Wl,-h,libwine.so.$libwine_soversion"])])

Alexandre Julliard
committed
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],
[LDEXECFLAGS="-Wl,--export-dynamic"])

Alexandre Julliard
committed
WINE_TRY_CFLAGS([-fPIC -Wl,--rpath,\$ORIGIN/../lib],
[LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \$(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/\`\$(MAKEDEP) -R \$(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
LDSHARED="\$(CC) -Wl,-G,-h,libwine.so.$libwine_soversion"

Alexandre Julliard
committed
fi
fi
libwine_targets="libwine.so libwine.so.$libwine_soversion libwine.so.$libwine_version"

Alexandre Julliard
committed
AC_SUBST(LIBWINE_RULES,["
OBJS = \$(C_SRCS:.c=.o) \$(EXTRA_OBJS)

Alexandre Julliard
committed
all: libwine.so
libwine.so.$libwine_version: \$(OBJS) \$(srcdir)/wine.map

Alexandre Julliard
committed
$LDSHARED \$(OBJS) \$(EXTRALIBS) \$(LDFLAGS) \$(LIBS) -o \$@
libwine.so.$libwine_soversion: libwine.so.$libwine_version
\$(RM) \$@ && \$(LN_S) libwine.so.$libwine_version \$@

Alexandre Julliard
committed
libwine.so: libwine.so.$libwine_soversion
\$(RM) \$@ && \$(LN_S) libwine.so.$libwine_soversion \$@