Newer
Older
dnl **** Check for types ****
AC_C_CONST
AC_C_INLINE
AC_TYPE_MODE_T
AC_TYPE_OFF_T
AC_TYPE_PID_T
AC_TYPE_SIZE_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],
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
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, 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"
then
AC_DEFINE(HAVE_LINUX_22_JOYSTICK_API, 1,
[Define if <linux/joystick.h> defines the Linux 2.2 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],
#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, 1,
[Define if the struct statfs is defined by <sys/vfs.h>])
fi
fi
if test "$ac_cv_header_sys_statfs_h" = "yes"
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, 1,
[Define if the struct statfs is defined by <sys/statfs.h>])
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, 1,
[Define if the struct statfs is defined by <sys/mount.h>])
dnl *** Check for some structure members
dnl Macro to check if a structure contains a specified member
dnl Usage: WINE_CHECK_STRUCT_MEMBER(struct,member,[includes,[action-if-found,[action-if-not-found]]])
AC_DEFUN([WINE_CHECK_STRUCT_MEMBER],
[AC_CACHE_CHECK([for $2 in struct $1], ac_cv_c_$1_$2,
AC_TRY_COMPILE([$3],[struct $1 s; s.$2 = 0],ac_cv_c_$1_$2="yes",ac_cv_c_$1_$2="no"))
AS_IF([ test "x$ac_cv_c_$1_$2" = "xyes"],[$4],[$5])
])
dnl **** FIXME: what about mixed cases, where we need two of them? ***
WINE_CHECK_STRUCT_MEMBER(statfs,f_bfree,
[#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],
[AC_DEFINE(STATFS_HAS_BFREE, 1, [Define if the struct statfs has the member bfree])])
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
WINE_CHECK_STRUCT_MEMBER(statfs,f_bavail,
[#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],
[AC_DEFINE(STATFS_HAS_BAVAIL, 1, [Define if the struct statfs has the member bavail])])
dnl Check for file descriptor passing with msg_accrights
WINE_CHECK_STRUCT_MEMBER(msghdr,msg_accrights,
[#include <sys/types.h>
#include <sys/socket.h>],
[AC_DEFINE(HAVE_MSGHDR_ACCRIGHTS, 1, [Define if struct msghdr contains msg_accrights])])
dnl Check for the sa_len member in struct sockaddr
WINE_CHECK_STRUCT_MEMBER(sockaddr,sa_len,
[#include <sys/types.h>
#include <sys/socket.h>],
[AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if struct sockaddr contains sa_len])])
dnl Check for the sun_len member in struct sockaddr_un
WINE_CHECK_STRUCT_MEMBER(sockaddr_un,sun_len,
[#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>],
[AC_DEFINE(HAVE_SOCKADDR_SUN_LEN, 1, [Define if struct sockaddr_un contains sun_len])])
dnl *** check for the need to define __i386__
case $target_cpu in
*i[3456789]86* )
AC_CACHE_CHECK([whether we need to define __i386__],ac_cv_cpp_def_i386,
AC_EGREP_CPP(yes,[#ifndef __i386__
yes
#endif],
ac_cv_cpp_def_i386="yes", ac_cv_cpp_def_i386="no"))
;;
esac
if test "$ac_cv_cpp_def_i386" = "yes"
then
CFLAGS="$CFLAGS -D__i386__"
dnl Macro to create non-existent directories from config.status
dnl Usage: WINE_CONFIG_EXTRA_DIR(dirname)
AC_DEFUN([WINE_CONFIG_EXTRA_DIR],
[AC_CONFIG_COMMANDS([$1],[test -d "$1" || (AC_MSG_NOTICE([creating $1]) && mkdir "$1")])])
AH_TOP([#define __WINE_CONFIG_H])
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/dinput/joystick)
WINE_CONFIG_EXTRA_DIR(dlls/dinput/keyboard)
WINE_CONFIG_EXTRA_DIR(dlls/dinput/mouse)
WINE_CONFIG_EXTRA_DIR(dlls/gdi/enhmfdrv)
WINE_CONFIG_EXTRA_DIR(dlls/gdi/mfdrv)
WINE_CONFIG_EXTRA_DIR(dlls/gdi/win16drv)
WINE_CONFIG_EXTRA_DIR(dlls/kernel/messages)
WINE_CONFIG_EXTRA_DIR(dlls/kernel/tests)
WINE_CONFIG_EXTRA_DIR(dlls/oleaut32/tests)
WINE_CONFIG_EXTRA_DIR(dlls/user/dde)
WINE_CONFIG_EXTRA_DIR(dlls/user/resources)
WINE_CONFIG_EXTRA_DIR(dlls/user/tests)
WINE_CONFIG_EXTRA_DIR(dlls/wineps/data)
WINE_CONFIG_EXTRA_DIR(include/wine)
WINE_CONFIG_EXTRA_DIR(programs/regapi/tests)
WINE_CONFIG_EXTRA_DIR(programs/winetest/tests)
AC_CONFIG_COMMANDS([include/wine/version.h],
[AC_MSG_NOTICE([creating include/wine/version.h])
cat >$tmp/version.h <<CEOF
/* Generated automatically by configure; DO NOT EDIT! */
#define WINE_RELEASE_INFO "Wine version $wine_version"
CEOF
if cmp -s $tmp/version.h include/wine/version.h 2>/dev/null; then
AC_MSG_NOTICE([include/wine/version.h is unchanged])
rm -f $tmp/version.h
else
rm -f include/wine/version.h
mv $tmp/version.h include/wine/version.h
fi],
[wine_version=$PACKAGE_VERSION])
MAKE_DLL_RULES=dlls/Makedll.rules
AC_SUBST_FILE(MAKE_DLL_RULES)
MAKE_PROG_RULES=programs/Makeprog.rules
AC_SUBST_FILE(MAKE_PROG_RULES)
AC_CONFIG_FILES([
dlls/Makedll.rules
programs/Makeprog.rules
dlls/avicap32/Makefile
dlls/avifil32/Makefile
dlls/commdlg/Makefile
dlls/devenum/Makefile
dlls/dplay/Makefile
dlls/dplayx/Makefile
dlls/dsound/Makefile
dlls/gdi/Makefile
dlls/imagehlp/Makefile
dlls/mapi32/Makefile
dlls/mpr/Makefile
dlls/msacm/Makefile
dlls/msdmo/Makefile
dlls/msimg32/Makefile
dlls/msrle32/Makefile
dlls/ntdll/Makefile
dlls/ole32/Makefile
dlls/oleaut32/Makefile
dlls/olecli/Makefile
dlls/oledlg/Makefile
dlls/olesvr/Makefile
dlls/qcap/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
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/winebuild/Makefile
tools/winedump/Makefile
unicode/Makefile
windows/Makefile
windows/x11drv/Makefile ])
AC_OUTPUT
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."
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 built without"
echo "*** threading support. Consider upgrading libc to a more recent"
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 "x$enable_opengl" = "x"
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 "x$enable_opengl" = "xyes"
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."
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 *"