Skip to content
Snippets Groups Projects
configure.ac 50.8 KiB
Newer Older
  WINE_GET_SONAME(freetype,FT_Init_FreeType,[$X_LIBS])
  WINE_GET_SONAME(GL,glXQueryExtension,[$X_LIBS $X_EXTRA_LIBS])
  WINE_GET_SONAME(cups,cupsGetDefault)
  WINE_GET_SONAME(jack,jack_client_new)
  WINE_GET_SONAME(fontconfig,FcInit)
  WINE_GET_SONAME(ssl,SSL_library_init)
  WINE_GET_SONAME(crypto,BIO_new_socket)
  WINE_GET_SONAME(ncurses,waddch)
  WINE_GET_SONAME(curses,waddch)
dnl **** Check for functions ****

Patrik Stridvall's avatar
Patrik Stridvall committed
AC_FUNC_ALLOCA()
AC_CHECK_FUNCS(\
	_lwp_create \
	fstatfs \
	fstatvfs \
	ftruncate64 \
	getnetbyaddr \
	getnetbyname \
	getprotobyname \
	getprotobynumber \
Alexandre Julliard's avatar
Alexandre Julliard committed
	gettimeofday \
	tcgetattr \
	timegm \
	usleep \
	vfscanf \
	wait4 \
	waitpid \
)

dnl **** Check for header files ****

AC_CHECK_HEADERS(\
	fontconfig/fontconfig.h \
	jack/jack.h \
	machine/cpu.h \
	netdb.h \
	netinet/in_systm.h \
	openssl/ssl.h \
Steven Edwards's avatar
Steven Edwards committed
	pwd.h \
	scsi/scsi_ioctl.h \
	sys/exec_elf.h \
Alexandre Julliard's avatar
Alexandre Julliard committed
	sys/ioctl.h \
Eric Pouech's avatar
Eric Pouech committed
	sys/link.h \
	sys/poll.h \
	sys/sockio.h \
	sys/statfs.h \
	sys/strtio.h \
	sys/syscall.h \
	sys/sysctl.h \
	sys/times.h \
Steven Edwards's avatar
Steven Edwards committed
	sys/uio.h \
	sys/un.h \
Alexandre Julliard's avatar
Alexandre Julliard committed
	termios.h \
	utime.h \
Alexandre Julliard's avatar
Alexandre Julliard committed
AC_HEADER_STAT()
dnl **** Checks for headers that depend on other ones ****

AC_CHECK_HEADERS(sys/mount.h sys/user.h,,,
    [#include <sys/types.h>
     #if HAVE_SYS_PARAM_H
     # include <sys/param.h>
AC_CHECK_HEADERS([net/if.h net/if_arp.h net/if_dl.h net/if_types.h net/route.h],,,
     #if HAVE_SYS_SOCKET_H
     # include <sys/socket.h>
     #endif])

AC_CHECK_HEADERS([resolv.h],,,
    [#include <sys/types.h>
     #if HAVE_SYS_SOCKET_H
     # include <sys/socket.h>
     #endif
     #if HAVE_NETINET_IN_H
     # include <netinet/in.h>
     #endif
     #if HAVE_ARPA_NAMESER_H
     # include <arpa/nameser.h>
AC_CHECK_HEADERS(netinet/ip.h,,,
    [#include <sys/types.h>
     #if HAVE_SYS_SOCKET_H
     # include <sys/socket.h>
     #endif
     #if HAVE_NETINET_IN_SYSTM_H
     # include <netinet/in_systm.h>
     #endif])

AC_CHECK_HEADERS(ucontext.h,,,[#include <signal.h>])

dnl **** Check for IPX headers (currently Linux only) ****

AC_CACHE_CHECK([for GNU style IPX support], ac_cv_c_ipx_gnu,
 AC_TRY_COMPILE(
   [#include <sys/types.h>
    #ifdef HAVE_SYS_SOCKET_H
    # include <sys/socket.h>
    #endif
    #include <netipx/ipx.h>],
   [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
   [ac_cv_c_ipx_gnu="yes"],
   [ac_cv_c_ipx_gnu="no"])
 )
if test "$ac_cv_c_ipx_gnu" = "yes"
then
    AC_DEFINE(HAVE_IPX_GNU, 1, [Define if IPX should use netipx/ipx.h from libc])
fi

if test "$ac_cv_c_ipx_gnu" = "no"
then
 AC_CACHE_CHECK([for linux style IPX support], ac_cv_c_ipx_linux,
  AC_TRY_COMPILE(
    [#include <sys/types.h>
     #ifdef HAVE_SYS_SOCKET_H
     # include <sys/socket.h>
     #endif
     #include <asm/types.h>
     #include <linux/ipx.h>],
    [((struct sockaddr_ipx *)0)->sipx_family == AF_IPX],
    [ac_cv_c_ipx_linux="yes"],
    [ac_cv_c_ipx_linux="no"])
  )
  if test "$ac_cv_c_ipx_linux" = "yes"
  then
      AC_DEFINE(HAVE_IPX_LINUX, 1, [Define if IPX includes are taken from Linux kernel])
  fi
fi

dnl **** Check for types ****

AC_CHECK_TYPES([mode_t, off_t, pid_t, size_t, ssize_t, long long, fsblkcnt_t, fsfilcnt_t])
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, 1,
                  [Define if we have linux/input.h AND it contains the INPUT event API])
AC_CACHE_CHECK([whether we can use re-entrant gethostbyname_r Linux style],
   	wine_cv_linux_gethostbyname_r_6,
#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, 1,
                [Define if Linux-style gethostbyname_r and gethostbyaddr_r are available])
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"
      AC_DEFINE(HAVE_LINUX_22_JOYSTICK_API, 1,
                [Define if <linux/joystick.h> defines the Linux 2.2 joystick API])
Alexandre Julliard's avatar
Alexandre Julliard committed
dnl **** statfs checks ****

if test "$ac_cv_header_sys_vfs_h" = "yes"
then
    AC_CACHE_CHECK( [whether sys/vfs.h defines statfs],
Alexandre Julliard's avatar
Alexandre Julliard committed
		    wine_cv_sys_vfs_has_statfs,
	AC_TRY_COMPILE([
Alexandre Julliard's avatar
Alexandre Julliard committed
	#include <sys/types.h>
Alexandre Julliard's avatar
Alexandre Julliard committed
	#ifdef HAVE_SYS_PARAM_H
	# include <sys/param.h>
	#endif
Alexandre Julliard's avatar
Alexandre Julliard committed
	#include <sys/vfs.h>
Alexandre Julliard's avatar
Alexandre Julliard committed
	],[
		struct statfs stfs;

Alexandre Julliard's avatar
Alexandre Julliard committed
		memset(&stfs,0,sizeof(stfs));
	],wine_cv_sys_vfs_has_statfs=yes,wine_cv_sys_vfs_has_statfs=no
Alexandre Julliard's avatar
Alexandre Julliard committed
	)
Alexandre Julliard's avatar
Alexandre Julliard committed
    )
    if test "$wine_cv_sys_vfs_has_statfs" = "yes"
    then
      AC_DEFINE(STATFS_DEFINED_BY_SYS_VFS, 1,
                [Define if the struct statfs is defined by <sys/vfs.h>])
Alexandre Julliard's avatar
Alexandre Julliard committed
    fi
fi

if test "$ac_cv_header_sys_statfs_h" = "yes"
Alexandre Julliard's avatar
Alexandre Julliard committed
then
    AC_CACHE_CHECK( [whether sys/statfs.h defines statfs],
Alexandre Julliard's avatar
Alexandre Julliard committed
		    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, 1,
                [Define if the struct statfs is defined by <sys/statfs.h>])
Alexandre Julliard's avatar
Alexandre Julliard committed
    fi
fi

if test "$ac_cv_header_sys_mount_h" = "yes"
then
    AC_CACHE_CHECK( [whether sys/mount.h defines statfs],
Alexandre Julliard's avatar
Alexandre Julliard committed
		    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, 1,
                [Define if the struct statfs is defined by <sys/mount.h>])
Alexandre Julliard's avatar
Alexandre Julliard committed
    fi
dnl **** FIXME: what about mixed cases, where we need two of them? ***
AC_CHECK_MEMBERS([struct statfs.f_bfree, struct statfs.f_bavail, struct statfs.f_frsize, struct statfs.f_ffree, struct statfs.f_favail, struct statfs.f_namelen],,,
[#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

AC_CHECK_MEMBERS([struct statvfs.f_blocks],,,
[#ifdef HAVE_SYS_STATVFS_H
#include <sys/statvfs.h>
#endif])
dnl Check for socket structure members
AC_CHECK_MEMBERS([struct msghdr.msg_accrights, struct sockaddr.sa_len, struct sockaddr_un.sun_len],,,
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
#ifdef HAVE_SYS_UN_H
# include <sys/un.h>
#endif])

dnl Check for siginfo_t members
AC_CHECK_MEMBERS([siginfo_t.si_fd],,,[#include <signal.h>])
dnl Check for struct option
AC_CHECK_MEMBERS([struct option.name],,,
[#ifdef HAVE_GETOPT_H
#include <getopt.h>
#endif])

dnl Check for stat.st_blocks
AC_CHECK_MEMBERS([struct stat.st_blocks])

dnl *** check for the need to define platform-specific symbols
  *i[[3456789]]86*) WINE_CHECK_DEFINE([__i386__]) ;;
  *alpha*)          WINE_CHECK_DEFINE([__ALPHA__]) ;;
  *sparc*)          WINE_CHECK_DEFINE([__sparc__]) ;;
  *powerpc*)        WINE_CHECK_DEFINE([__powerpc__]) ;;
  *sun*) WINE_CHECK_DEFINE([__sun__]) ;;
Alexandre Julliard's avatar
Alexandre Julliard committed
dnl **** Generate output files ****
WINE_CONFIG_EXTRA_DIR(dlls/ddraw/d3ddevice)
WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dclipper)
WINE_CONFIG_EXTRA_DIR(dlls/ddraw/ddraw)
WINE_CONFIG_EXTRA_DIR(dlls/ddraw/direct3d)
WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dpalette)
WINE_CONFIG_EXTRA_DIR(dlls/ddraw/dsurface)
WINE_CONFIG_EXTRA_DIR(dlls/gdi/enhmfdrv)
WINE_CONFIG_EXTRA_DIR(dlls/gdi/mfdrv)
WINE_CONFIG_EXTRA_DIR(dlls/kernel/messages)
WINE_CONFIG_EXTRA_DIR(dlls/user/dde)
WINE_CONFIG_EXTRA_DIR(dlls/user/resources)
WINE_CONFIG_EXTRA_DIR(dlls/wineps/data)
WINE_CONFIG_EXTRA_DIR(include/wine)
WINE_CONFIG_EXTRA_DIR(misc)
WINE_CONFIG_EXTRA_DIR(objects)
WINE_CONFIG_EXTRA_DIR(programs/regedit/tests)
Alexandre Julliard's avatar
Alexandre Julliard committed
MAKE_RULES=Make.rules
Alexandre Julliard's avatar
Alexandre Julliard committed
AC_SUBST_FILE(MAKE_RULES)
MAKE_DLL_RULES=dlls/Makedll.rules
AC_SUBST_FILE(MAKE_DLL_RULES)

MAKE_TEST_RULES=dlls/Maketest.rules
AC_SUBST_FILE(MAKE_TEST_RULES)

MAKE_LIB_RULES=libs/Makelib.rules
AC_SUBST_FILE(MAKE_LIB_RULES)

MAKE_PROG_RULES=programs/Makeprog.rules
AC_SUBST_FILE(MAKE_PROG_RULES)

Alexandre Julliard's avatar
Alexandre Julliard committed
Make.rules
Alexandre Julliard's avatar
Alexandre Julliard committed
Makefile
Alexandre Julliard's avatar
Alexandre Julliard committed
dlls/Makefile
dlls/advapi32/Makefile
dlls/cabinet/Makefile
dlls/capi2032/Makefile
dlls/cards/Makefile
dlls/cfgmgr32/Makefile
Alexandre Julliard's avatar
Alexandre Julliard committed
dlls/comctl32/Makefile
dlls/comctl32/tests/Makefile
dlls/crtdll/Makefile
dlls/crypt32/Makefile
dlls/d3d8/Makefile
Alexandre Julliard's avatar
Alexandre Julliard committed
dlls/d3d9/Makefile
Enrico Horn's avatar
Enrico Horn committed
dlls/d3dim/Makefile
Raphael Junqueira's avatar
Raphael Junqueira committed
dlls/d3dx8/Makefile
dlls/dbghelp/Makefile
dlls/dciman32/Makefile
dlls/ddraw/Makefile
dlls/dinput/Makefile
dlls/dinput8/Makefile
dlls/dmband/Makefile
dlls/dmcompos/Makefile
dlls/dmime/Makefile
dlls/dmloader/Makefile
dlls/dmscript/Makefile
dlls/dmstyle/Makefile
dlls/dmsynth/Makefile
dlls/dmusic/Makefile
dlls/dmusic32/Makefile
dlls/dpnet/Makefile
dlls/dpnhpast/Makefile
dlls/dsound/tests/Makefile
Rok Mandeljc's avatar
Rok Mandeljc committed
dlls/dswave/Makefile
dlls/dxerr8/Makefile
dlls/dxerr9/Makefile
dlls/gdi/tests/Makefile
dlls/glu32/Makefile
Jacek Caban's avatar
Jacek Caban committed
dlls/glut32/Makefile
dlls/icmp/Makefile
dlls/imm32/Makefile
dlls/kernel/Makefile
dlls/lzexpand/Makefile
dlls/mapi32/tests/Makefile
dlls/mmdevldr.vxd/Makefile
dlls/monodebg.vxd/Makefile
dlls/msacm/imaadp32/Makefile
dlls/msacm/msadp32/Makefile
dlls/msacm/msg711/Makefile
dlls/msacm/winemp3/Makefile
dlls/msacm/tests/Makefile
dlls/msimg32/Makefile
dlls/msisys/Makefile
dlls/msnet32/Makefile
dlls/msrle32/Makefile
dlls/msvcrt/Makefile
dlls/msvcrt/tests/Makefile
dlls/msvcrt20/Makefile
dlls/msvideo/Makefile
dlls/mswsock/Makefile
dlls/netapi32/Makefile
dlls/newdev/Makefile
dlls/ntdll/tests/Makefile
Alexandre Julliard's avatar
Alexandre Julliard committed
dlls/odbc32/Makefile
dlls/oleacc/Makefile
dlls/olecli/Makefile
dlls/oledlg/Makefile
Sean Langley's avatar
Sean Langley committed
dlls/olepro32/Makefile
Lionel Ulmer's avatar
Lionel Ulmer committed
dlls/opengl32/Makefile
Alexandre Julliard's avatar
Alexandre Julliard committed
dlls/psapi/Makefile
dlls/quartz/Makefile
dlls/rasapi32/Makefile
dlls/richedit/Makefile
Huw D. M. Davies's avatar
Huw D. M. Davies committed
dlls/rpcrt4/Makefile
dlls/shdocvw/Makefile
Alexandre Julliard's avatar
Alexandre Julliard committed
dlls/shell32/Makefile
dlls/shfolder/Makefile
dlls/shlwapi/Makefile
dlls/snmpapi/Makefile
dlls/tapi32/Makefile
dlls/twain/Makefile
dlls/urlmon/tests/Makefile
dlls/version/Makefile
dlls/version/tests/Makefile
dlls/vnetbios.vxd/Makefile
dlls/vtdapi.vxd/Makefile
dlls/vwin32.vxd/Makefile
dlls/win32s/Makefile
Alexandre Julliard's avatar
Alexandre Julliard committed
dlls/winaspi/Makefile
dlls/wineps/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
Chris Morgan's avatar
Chris Morgan committed
dlls/winmm/winearts/Makefile
dlls/winmm/wineaudioio/Makefile
dlls/winmm/winejack/Makefile
dlls/winmm/wineoss/Makefile
dlls/winnls/Makefile
dlls/winsock/Makefile
dlls/winspool/tests/Makefile
dlls/wow32/Makefile
dlls/wsock32/Makefile
Alexandre Julliard's avatar
Alexandre Julliard committed
documentation/Makefile
libs/unicode/Makefile
libs/wine/Makefile
Alexandre Julliard's avatar
Alexandre Julliard committed
programs/Makefile
programs/avitools/Makefile
Alexandre Julliard's avatar
Alexandre Julliard committed
programs/clock/Makefile
programs/cmdlgtst/Makefile
Alexandre Julliard's avatar
Alexandre Julliard committed
programs/control/Makefile
programs/expand/Makefile
Alexandre Julliard's avatar
Alexandre Julliard committed
programs/notepad/Makefile
Alexandre Julliard's avatar
Alexandre Julliard committed
programs/progman/Makefile
programs/regedit/Makefile
Alberto Massari's avatar
Alberto Massari committed
programs/rundll32/Makefile
programs/start/Makefile
programs/taskmgr/Makefile
programs/uninstaller/Makefile
Alexandre Julliard's avatar
Alexandre Julliard committed
programs/view/Makefile
programs/wcmd/Makefile
programs/winebrowser/Makefile
programs/wineconsole/Makefile
programs/winemenubuilder/Makefile
Joshua Thielen's avatar
Joshua Thielen committed
programs/winemine/Makefile
Alexandre Julliard's avatar
Alexandre Julliard committed
programs/winhelp/Makefile
Alexandre Julliard's avatar
Alexandre Julliard committed
programs/winver/Makefile
Alexandre Julliard's avatar
Alexandre Julliard committed
server/Makefile
Alexandre Julliard's avatar
Alexandre Julliard committed
tools/Makefile
tools/winapi/Makefile
tools/winebuild/Makefile
tools/wmc/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 at the very least."
Lionel Ulmer's avatar
Lionel Ulmer committed
if test "$wine_cv_opengl_version_OK" = "no"
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_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."
Alexandre Julliard's avatar
Alexandre Julliard committed
echo
echo "Configure finished.  Do 'make depend && make' to compile Wine."
Alexandre Julliard's avatar
Alexandre Julliard committed
echo

dnl Local Variables:
dnl comment-start: "dnl "
dnl comment-end: ""
dnl comment-start-skip: "\\bdnl\\b\\s *"
Alexandre Julliard's avatar
Alexandre Julliard committed
dnl compile-command: "autoconf"
Alexandre Julliard's avatar
Alexandre Julliard committed
dnl End: