Newer
Older
${notice_platform}development packages of Xlib/Xfree86 at the very least.])
dnl **** Check for libxml2 ****
AC_SUBST(XML2LIBS,"")
AC_SUBST(XML2INCL,"")
if test "x$with_xml" != "xno"
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
ac_save_CPPFLAGS="$CPPFLAGS"
if test "$PKG_CONFIG" != "false"
then
ac_xml_libs="`$PKG_CONFIG --libs libxml-2.0 2>/dev/null`"
ac_xml_cflags="`$PKG_CONFIG --cflags libxml-2.0 2>/dev/null`"
else
ac_xml_libs="`xml2-config --libs 2>/dev/null`"
ac_xml_cflags="`xml2-config --cflags 2>/dev/null`"
fi
CPPFLAGS="$CPPFLAGS $ac_xml_cflags"
AC_CHECK_HEADERS(libxml/parser.h,
[AC_CHECK_LIB(xml2, xmlParseMemory,
[AC_DEFINE(HAVE_LIBXML2, 1, [Define if you have the libxml2 library])
XML2LIBS="$ac_xml_libs"
XML2INCL="$ac_xml_cflags"],,$ac_xml_libs)
AC_CHECK_LIB(xml2, xmlReadMemory,
[AC_DEFINE(HAVE_XMLREADMEMORY,1,[Define if libxml2 has the xmlReadMemory function])],,$ac_xml_libs)
AC_CHECK_LIB(xml2, xmlNewDocPI,
[AC_DEFINE(HAVE_XMLNEWDOCPI,1,[Define if libxml2 has the xmlNewDocPI function])],,$ac_xml_libs)
])
CPPFLAGS="$ac_save_CPPFLAGS"
WINE_WARNING_WITH(xml,[test "$ac_cv_lib_xml2_xmlParseMemory" != "yes"],

Alexandre Julliard
committed
[libxml2 ${notice_platform}development files not found, XML won't be supported.])
if test "x$with_xslt" != "xno"
if test "$PKG_CONFIG" != "false"
then
ac_xslt_libs="`$PKG_CONFIG --libs libxslt 2>/dev/null`"
ac_xslt_cflags="`$PKG_CONFIG --cflags libxslt 2>/dev/null`"
else
ac_xslt_libs="`xslt-config --libs 2>/dev/null`"
ac_xslt_cflags="`xslt-config --cflags 2>/dev/null`"
fi
CPPFLAGS="$CPPFLAGS $ac_xslt_cflags"
AC_CHECK_HEADERS([libxslt/pattern.h libxslt/transform.h],,,
[#ifdef HAVE_LIBXSLT_PATTERN_H
# include <libxslt/pattern.h>
#endif])
CPPFLAGS="$ac_save_CPPFLAGS"
if test "$ac_cv_header_libxslt_transform_h" = "yes"
then
WINE_CHECK_SONAME(xslt,xsltCompilePattern,
[XSLTINCL="$ac_xslt_cflags"],,[$ac_xslt_libs])
fi
WINE_WARNING_WITH(xslt,[test "x$ac_cv_lib_soname_xslt" = "x"],

Alexandre Julliard
committed
[libxslt ${notice_platform}development files not found, xslt won't be supported.])
dnl **** Check for libhal ****
AC_SUBST(HALINCL,"")
if test "x$with_hal" != "xno"
then
ac_save_CPPFLAGS="$CPPFLAGS"
if test "$PKG_CONFIG" != "false"
then
ac_hal_libs="`$PKG_CONFIG --libs hal 2>/dev/null`"
ac_hal_cflags="`$PKG_CONFIG --cflags hal 2>/dev/null`"
CPPFLAGS="$CPPFLAGS $ac_hal_cflags"
fi
AC_CHECK_HEADERS([dbus/dbus.h hal/libhal.h])
if test "$ac_cv_header_dbus_dbus_h" = "yes" -a "$ac_cv_header_hal_libhal_h" = "yes"
then
AC_CHECK_LIB(dbus-1, dbus_connection_close,
[WINE_CHECK_SONAME(hal, libhal_ctx_new,
[HALINCL="$ac_hal_cflags"],,[$ac_hal_libs])],,[$ac_hal_libs])
fi
CPPFLAGS="$ac_save_CPPFLAGS"
fi
WINE_NOTICE_WITH(hal,[test "x$ac_cv_lib_soname_hal" = "x"],
[libhal/libdbus ${notice_platform}development files not found, no dynamic device support.])
dnl **** Check for libgnutls ****
if test "x$with_gnutls" != "xno"
then
ac_save_CPPFLAGS="$CPPFLAGS"
if test "$PKG_CONFIG" != "false"
then
ac_gnutls_libs="`$PKG_CONFIG --libs gnutls 2>/dev/null`"
ac_gnutls_cflags="`$PKG_CONFIG --cflags gnutls 2>/dev/null`"
CPPFLAGS="$CPPFLAGS $ac_gnutls_cflags"
fi
Henri Verbeet
committed
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <gnutls/gnutls.h>]], [[typeof(gnutls_mac_get_key_size) *pfunc;]])],
[WINE_CHECK_SONAME(gnutls,gnutls_global_init,
[AC_SUBST(GNUTLSINCL,"$ac_gnutls_cflags")],,[$ac_gnutls_libs])])])
CPPFLAGS="$ac_save_CPPFLAGS"
fi
WINE_NOTICE_WITH(gnutls,[test "x$ac_cv_lib_soname_gnutls" = "x"],

Alexandre Julliard
committed
[libgnutls ${notice_platform}development files not found, no schannel support.])
dnl **** Check which curses lib to use ***
CURSESLIBS=""
if test "$ac_cv_header_ncurses_h" = "yes"
WINE_CHECK_SONAME(ncurses,waddch,[CURSESLIBS="-lncurses"])
elif test "$ac_cv_header_curses_h" = "yes"
then
WINE_CHECK_SONAME(curses,waddch,[CURSESLIBS="-lcurses"])
fi
ac_save_LIBS="$LIBS"
LIBS="$LIBS $CURSESLIBS"
AC_CHECK_FUNCS(mousemask)
LIBS="$ac_save_LIBS"
WINE_NOTICE_WITH(curses,[test "x$ac_cv_lib_soname_curses$ac_cv_lib_soname_ncurses" = "x"],

Alexandre Julliard
committed
[lib(n)curses ${notice_platform}development files not found, curses won't be supported.])
Francois Gouget
committed
if test "x$with_sane" != "xno"
Francois Gouget
committed
AC_CHECK_PROG(sane_devel,sane-config,sane-config,no)
if test "$sane_devel" != "no"
then
ac_sane_incl="`$sane_devel --cflags`"
ac_sane_libs="`$sane_devel --ldflags`"
CPPFLAGS="$CPPFLAGS $ac_sane_incl"
fi
[WINE_CHECK_SONAME(sane,sane_init,[AC_SUBST(SANEINCL,"$ac_sane_incl")],,[$ac_sane_libs])])
WINE_NOTICE_WITH(sane,[test "x$ac_cv_lib_soname_sane" = "x"],

Alexandre Julliard
committed
[libsane ${notice_platform}development files not found, scanners won't be supported.])
Marcus Meissner
committed
dnl **** Check for libgphoto2 ****
Francois Gouget
committed
if test "x$with_gphoto" != "xno"
Marcus Meissner
committed
then
ac_save_CPPFLAGS="$CPPFLAGS"
Francois Gouget
committed
AC_CHECK_PROG(gphoto2_devel,gphoto2-config,gphoto2-config,no)
AC_CHECK_PROG(gphoto2port_devel,gphoto2-port-config,gphoto2-port-config,no)
if test "$gphoto2_devel" != "no" -a "$gphoto2port_devel" != "no"
then
ac_gphoto2_incl="`$gphoto2_devel --cflags` `$gphoto2port_devel --cflags`"
ac_gphoto2_libs=""
for i in `$gphoto2_devel --libs` `$gphoto2port_devel --libs`
do
case "$i" in
-L/usr/lib|-L/usr/lib64) ;;
-L*|-l*) ac_gphoto2_libs="$ac_gphoto2_libs $i";;
esac
done
CPPFLAGS="$CPPFLAGS $ac_gphoto2_incl"
fi
ac_gphoto2_libs=${ac_gphoto2_libs:-"-lgphoto2"}
Marcus Meissner
committed
AC_CHECK_HEADER(gphoto2-camera.h,
[AC_CHECK_LIB(gphoto2,gp_camera_new,

Alexandre Julliard
committed
[AC_DEFINE(HAVE_GPHOTO2, 1, [Define if we have libgphoto2 development environment])
AC_SUBST(GPHOTO2LIBS,"$ac_gphoto2_libs")
AC_SUBST(GPHOTO2INCL,"$ac_gphoto2_incl")],,
[$ac_gphoto2_libs])])
Marcus Meissner
committed
CPPFLAGS="$ac_save_CPPFLAGS"
fi
WINE_NOTICE_WITH(gphoto,[test "$ac_cv_lib_gphoto2_gp_camera_new" != "yes"],

Alexandre Julliard
committed
[libgphoto2 ${notice_platform}development files not found, digital cameras won't be supported.])

Alexandre Julliard
committed
Marcus Meissner
committed
dnl **** Check for resolver library ***
AC_SUBST(RESOLVLIBS,"")
if test "$ac_cv_header_resolv_h" = "yes"
then
ac_save_LIBS="$LIBS"
LIBS="$LIBS -lresolv"
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#include <resolv.h>]],[[res_init();]])],
[AC_DEFINE(HAVE_RESOLV, 1, [Define if you have the resolver library and header])
RESOLVLIBS="-lresolv"])
fi
dnl **** Check for LittleCMS ***
AC_SUBST(LCMSLIBS,"")
if test "$ac_cv_header_lcms_h" = "yes" -o "$ac_cv_header_lcms_lcms_h" = "yes"
then
AC_CHECK_LIB(lcms, cmsOpenProfileFromFile,
[AC_DEFINE(HAVE_LCMS, 1, [Define if you have the LittleCMS development environment])
LCMSLIBS="-llcms"])
fi
WINE_NOTICE_WITH(cms,[test "$ac_cv_lib_lcms_cmsOpenProfileFromFile" != "yes"],

Alexandre Julliard
committed
[liblcms ${notice_platform}development files not found, Color Management won't be supported.])
Francois Gouget
committed
if test "x$with_freetype" != "xno"
Francois Gouget
committed
AC_CHECK_PROGS(ft_devel,[freetype-config freetype2-config],no)
if test "$ft_devel" != "no"
then
ac_freetype_incl=`$ft_devel --cflags`
ac_freetype_libs=`$ft_devel --libs`
fi
ac_freetype_libs=${ac_freetype_libs:-"-lfreetype"}

Alexandre Julliard
committed
WINE_CHECK_SONAME(freetype,FT_Init_FreeType,[ft_lib=yes],[ft_lib=no],[$ac_freetype_libs])
if test "$ft_lib" = "yes"
then
ac_save_CPPFLAGS="$CPPFLAGS"

Alexandre Julliard
committed
CPPFLAGS="$ac_freetype_incl $CPPFLAGS"
AC_CHECK_HEADERS(ft2build.h \
freetype/freetype.h \
freetype/ftglyph.h \
freetype/tttables.h \
freetype/ftsnames.h \
freetype/ttnameid.h \
freetype/ftlcdfil.h \
freetype/internal/sfnt.h,,,
[#ifdef HAVE_FT2BUILD_H
# include <ft2build.h>
#endif])
AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <ft2build.h>
#include <freetype/fttrigon.h>]])],[AC_DEFINE(HAVE_FREETYPE_FTTRIGON_H, 1,
[Define if you have the <freetype/fttrigon.h> header file.])
wine_cv_fttrigon=yes],[wine_cv_fttrigon=no])
AC_CHECK_TYPES(FT_TrueTypeEngineType,,,[#include <freetype/ftmodapi.h>])
ac_save_CFLAGS="$CFLAGS"

Alexandre Julliard
committed
CFLAGS="$CFLAGS $ac_freetype_libs"
AC_CHECK_FUNCS(FT_Load_Sfnt_Table)
CFLAGS="$ac_save_CFLAGS"
CPPFLAGS="$ac_save_CPPFLAGS"
dnl Check that we have at least freetype/freetype.h
if test "$ac_cv_header_freetype_freetype_h" = "yes" -a "$wine_cv_fttrigon" = "yes"
then
AC_DEFINE(HAVE_FREETYPE, 1, [Define if FreeType 2 is installed])

Alexandre Julliard
committed
AC_SUBST(FREETYPELIBS,"$ac_freetype_libs")
AC_SUBST(FREETYPEINCL,"$ac_freetype_incl")
WINE_ERROR_WITH(freetype,[test "x$FREETYPELIBS" = "x"],[FreeType ${notice_platform}development files not found. Fonts will not be built.])
test "x$FREETYPELIBS" = "x" && enable_fonts=${enable_fonts:-no}
dnl **** Check for parport (currently Linux only) ****
AC_CACHE_CHECK([for parport header/ppdev.h], ac_cv_c_ppdev,
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/ppdev.h>]], [[ioctl (1,PPCLAIM,0)]])],
[ac_cv_c_ppdev="yes"],[ac_cv_c_ppdev="no"]))
if test "$ac_cv_c_ppdev" = "yes"
then
AC_DEFINE(HAVE_PPDEV, 1, [Define if we can use ppdev.h for parallel port access])
dnl **** Check for pthread functions ****
WINE_CHECK_LIB_FUNCS(\
pthread_attr_get_np \
pthread_getattr_np \
pthread_get_stackaddr_np \
pthread_get_stacksize_np,
[$LIBPTHREAD])
dnl **** Check for zlib ****
if test "$ac_cv_header_zlib_h" = "yes"
then
AC_CHECK_LIB(z,inflate,[AC_DEFINE(HAVE_ZLIB,1,[Define to 1 if you have the `z' library (-lz).])
AC_SUBST(ZLIB,"-lz")])
fi
Francois Gouget
committed
if test "x$with_esd" != xno
Francois Gouget
committed
AC_PATH_PROG(ESDCONFIG, esd-config, no)
if test "x$ESDCONFIG" != "xno"
then
ac_esd_incl=""
for i in `$ESDCONFIG --cflags`
do
case "$i" in
-I*) ac_esd_incl="$ac_esd_incl $i";;
esac
done
ac_esd_libs=`$ESDCONFIG --libs`
CFLAGS="$CFLAGS $ac_esd_incl"
fi
ac_esd_libs=${ac_esd_libs:-"-lesd"}
Francois Gouget
committed
AC_CHECK_HEADER(esd.h,
[AC_CHECK_LIB(esd,esd_open_sound,
[AC_SUBST(ESDINCL, "$ac_esd_incl")
AC_SUBST(ESDLIBS, "$ac_esd_libs")
AC_DEFINE(HAVE_ESD, 1, [Define if you have EsounD sound server])],,
[$ac_esd_libs])])
if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes"
AC_CHECK_LIB(asound,snd_pcm_hw_params_get_access,
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef HAVE_ALSA_ASOUNDLIB_H
#include <alsa/asoundlib.h>
#elif defined(HAVE_SYS_ASOUNDLIB_H)
#include <sys/asoundlib.h>
#endif]], [[int ret = snd_pcm_hw_params_get_access(NULL, NULL)]])],
[AC_DEFINE(HAVE_ALSA,1,[Define if you have ALSA 1.x including devel headers])
ALSALIBS="-lasound"],[])])
dnl **** Check for libaudioio (which can be used to get solaris audio support) ****
AC_SUBST(AUDIOIOLIBS,"")
if test "$ac_cv_header_libaudioio_h" = "yes"
then
AC_CHECK_LIB(audioio,AudioIOGetVersion,
[AUDIOIOLIBS="-laudioio"
AC_DEFINE(HAVE_LIBAUDIOIO, 1, [Define if you have libaudioIO])])
fi
dnl **** Check for capi4linux ****
if test "$ac_cv_header_capi20_h" = "yes" -a "$ac_cv_header_linux_capi_h" = "yes"
then
WINE_CHECK_SONAME(capi20,capi20_register)
fi
WINE_NOTICE_WITH(capi,[test "x$ac_cv_lib_soname_capi20" = "x"],

Alexandre Julliard
committed
[libcapi20 ${notice_platform}development files not found, ISDN won't be supported.])
dnl **** Check for cups ****
AC_SUBST(CUPSINCL,"")
if test "x$with_cups" != "xno"
then
ac_save_CPPFLAGS="$CPPFLAGS"
ac_cups_cflags=`cups-config --cflags 2>/dev/null`
ac_cups_libs=`cups-config --ldflags 2>/dev/null`
CPPFLAGS="$CPPFLAGS $ac_cups_cflags"
AC_CHECK_HEADERS(cups/cups.h,
[WINE_CHECK_SONAME(cups,cupsGetDefault,
[CUPSINCL="$ac_cups_cflags"],,
[$ac_cups_libs])])
CPPFLAGS="$ac_save_CPPFLAGS"
fi
WINE_NOTICE_WITH(cups,[test "x$ac_cv_lib_soname_cups" = "x"],

Alexandre Julliard
committed
[libcups ${notice_platform}development files not found, CUPS won't be supported.])
dnl **** Check for jack ****
if test "$ac_cv_header_jack_jack_h" = "yes"
then
WINE_CHECK_SONAME(jack,jack_client_new,,,,[[libjack-*[[0-9.]]*]])
fi

Alexandre Julliard
committed
dnl **** Check for fontconfig ****
if test "$ac_cv_header_fontconfig_fontconfig_h" = "yes"
then
WINE_CHECK_SONAME(fontconfig,FcInit)
elif test -n "$X_CFLAGS" -a "x$with_fontconfig" != "xno"

Alexandre Julliard
committed
then
dnl fontconfig is in the X directory on Mac OS X
ac_save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
$as_unset ac_cv_header_fontconfig_fontconfig_h
AC_CHECK_HEADERS([fontconfig/fontconfig.h])
CPPFLAGS="$ac_save_CPPFLAGS"
if test "$ac_cv_header_fontconfig_fontconfig_h" = "yes"
then
AC_SUBST(FONTCONFIGINCL,"$X_CFLAGS")
WINE_CHECK_SONAME(fontconfig,FcInit,,,[$X_LIBS])
fi

Alexandre Julliard
committed
fi
WINE_NOTICE_WITH(fontconfig,[test "x$ac_cv_lib_soname_fontconfig" = "x"],

Alexandre Julliard
committed
[fontconfig ${notice_platform}development files not found, fontconfig won't be supported.])

Alexandre Julliard
committed
dnl **** Check for SSL ****
if test "$ac_cv_header_openssl_err_h" = "yes" -a "$ac_cv_header_openssl_ssl_h" = "yes"
then
WINE_CHECK_SONAME(ssl,SSL_library_init)
WINE_CHECK_SONAME(crypto,BIO_new_socket)
fi
WINE_WARNING_WITH(openssl,[test "x$ac_cv_lib_soname_ssl" = "x" -o "x$ac_cv_lib_soname_crypto" = "x"],

Alexandre Julliard
committed
[OpenSSL ${notice_platform}development files not found, SSL won't be supported.])
dnl **** Check for gsm codec ****
if test "$ac_cv_header_gsm_h" = "yes" -o "$ac_cv_header_gsm_gsm_h" = "yes"
then
WINE_CHECK_SONAME(gsm,gsm_create)
fi

Alexandre Julliard
committed
WINE_NOTICE_WITH(gsm,[test "x$ac_cv_lib_soname_gsm" = "x"],
[libgsm ${notice_platform}development files not found, gsm 06.10 codec won't be supported.])
dnl **** Check for libjpeg ****
if test "$ac_cv_header_jpeglib_h" = "yes"
then
WINE_CHECK_SONAME(jpeg,jpeg_start_decompress)
fi
WINE_WARNING_WITH(jpeg,[test "x$ac_cv_lib_soname_jpeg" = "x"],

Alexandre Julliard
committed
[libjpeg ${notice_platform}development files not found, JPEG won't be supported.])
dnl **** Check for libpng ****
if test "$ac_cv_header_png_h" = "yes"
then
WINE_CHECK_SONAME(png,png_create_read_struct,,,-lm -lz,[[libpng[[0-9]]*]])
elif test -n "$X_CFLAGS" -a "x$with_png" != "xno"
then
dnl libpng is in the X directory on Mac OS X
ac_save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
$as_unset ac_cv_header_png_h
AC_CHECK_HEADERS([png.h])
CPPFLAGS="$ac_save_CPPFLAGS"
if test "$ac_cv_header_png_h" = "yes"
then
AC_SUBST(PNGINCL,"$X_CFLAGS")
WINE_CHECK_SONAME(png,png_create_read_struct,,,[$X_LIBS -lm -lz],[[libpng[[0-9]]*]])
fi
WINE_WARNING_WITH(png,[test "x$ac_cv_lib_soname_png" = "x"],

Alexandre Julliard
committed
[libpng ${notice_platform}development files not found, PNG won't be supported.])
dnl **** Check for mpg123 ****
if test "$ac_cv_header_mpg123_h" = "yes"
then
AC_CHECK_LIB(mpg123,mpg123_feed,[AC_SUBST(LIBMPG123,"-lmpg123")])
WINE_NOTICE_WITH(mpg123,[test "x$ac_cv_lib_mpg123_mpg123_feed" != xyes],
[libmpg123 ${notice_platform}development files not found (or too old), mp3 codec won't be supported.])
test "x$ac_cv_lib_mpg123_mpg123_feed" = xyes || enable_winemp3_acm=${enable_winemp3_acm:-no}
dnl **** Check for OpenAL 1.1 ****
if test "$ac_cv_header_AL_al_h" = "yes"
then
AC_CHECK_LIB(openal,alGetSource3i,[AC_SUBST(LIBOPENAL,"-lopenal")])
fi
WINE_NOTICE_WITH(openal,[test "x$ac_cv_lib_openal_alGetSource3i" != xyes],
[libopenal ${notice_platform}development files not found (or too old), OpenAL won't be supported.])
test "x$ac_cv_lib_openal_alGetSource3i" = xyes || enable_openal32=${enable_openal32:-no}
dnl **** Check for libkstat ****
if test "$ac_cv_header_kstat_h" = "yes"
then
AC_CHECK_LIB(kstat,kstat_open,
[AC_DEFINE(HAVE_LIBKSTAT, 1, [Define to 1 if you have the `kstat' library (-lkstat).])
AC_SUBST(LIBKSTAT,"-lkstat")])
fi
dnl **** Check for libodbc ****
WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc.$LIBEXT"])])

Alexandre Julliard
committed
dnl **** Check for any sound system ****
if test "x$ALSALIBS$AUDIOIOLIBS$COREAUDIO$NASLIBS$ESDLIBS$ac_cv_lib_soname_jack" = "x" -a \
"$ac_cv_header_sys_soundcard_h" != "yes" -a \
"$ac_cv_header_machine_soundcard_h" != "yes" -a \
"$ac_cv_header_soundcard_h" != "yes" -a \
"x$with_alsa$with_audioio$with_coreaudio$with_nas$with_esd$with_jack$with_oss" != xnonononononono
then
WINE_WARNING([No sound system was found. Windows applications will be silent.])
fi

Alexandre Julliard
committed
dnl **** Check for gcc specific options ****
AC_SUBST(EXTRACFLAGS,"")
EXTRACFLAGS="-Wall -pipe"
dnl Check for strength-reduce bug
AC_CACHE_CHECK( [for gcc strength-reduce bug], ac_cv_c_gcc_strength_bug,
AC_RUN_IFELSE([AC_LANG_PROGRAM([[int L[[4]] = {0,1,2,3};]],
[[static int Array[[3]];
for(i=0; i<4 - 1; i++) L[[i]] = L[[i + 1]];
L[[i]] = 4;

Alexandre Julliard
committed
return (Array[[1]] != -2 || L[[2]] != 3)]])],
[ac_cv_c_gcc_strength_bug="no"],[ac_cv_c_gcc_strength_bug="yes"],[ac_cv_c_gcc_strength_bug="yes"]) )
if test "$ac_cv_c_gcc_strength_bug" = "yes"
then
EXTRACFLAGS="$EXTRACFLAGS -fno-strength-reduce"
dnl Check for some compiler flags

Alexandre Julliard
committed
WINE_TRY_CFLAGS([-fno-builtin],[AC_SUBST(BUILTINFLAG,"-fno-builtin")])
WINE_TRY_CFLAGS([-fno-strict-aliasing])
WINE_TRY_CFLAGS([-Wdeclaration-after-statement])
WINE_TRY_CFLAGS([-Wwrite-strings])
WINE_TRY_CFLAGS([-Wtype-limits])
dnl Check for noisy string.h
saved_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -Wpointer-arith -Werror"
AC_CACHE_CHECK([for broken string.h that generates warnings], ac_cv_c_string_h_warnings,
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <string.h>]], [[]])],[ac_cv_c_string_h_warnings=no],[ac_cv_c_string_h_warnings=yes]))
CFLAGS="$saved_CFLAGS"
if test "$ac_cv_c_string_h_warnings" = "no"
then
EXTRACFLAGS="$EXTRACFLAGS -Wpointer-arith"
fi

Alexandre Julliard
committed
dnl **** Check for underscore on external symbols ****
AC_CACHE_CHECK([whether external symbols need an underscore prefix], ac_cv_c_extern_prefix,
WINE_TRY_ASM_LINK([".globl _ac_test\n_ac_test:\t.long 0"],
[extern int ac_test;],
[if (ac_test) return 1],
ac_cv_c_extern_prefix="yes",ac_cv_c_extern_prefix="no"))
case $host_cpu in
*i[[3456789]]86*)
AC_CACHE_CHECK([whether external symbols need stdcall decoration], ac_cv_c_stdcall_suffix,
WINE_TRY_ASM_LINK(["jmp _ac_test@4"],
[#ifndef _MSC_VER
#define __stdcall __attribute__((__stdcall__))
#endif
int __stdcall ac_test(int i) { return i; }],
[if (ac_test(1)) return 1],
ac_cv_c_stdcall_suffix="yes",ac_cv_c_stdcall_suffix="no")) ;;
*) ac_cv_c_stdcall_suffix="no" ;;
esac

Alexandre Julliard
committed
AH_TEMPLATE(__ASM_NAME,[Define to a macro to generate an assembly name from a C symbol])
if test "$ac_cv_c_extern_prefix" = "yes"
then
AC_DEFINE([__ASM_NAME(name)], ["_" name])
asm_name_prefix="_"
else
AC_DEFINE([__ASM_NAME(name)], [name])
asm_name_prefix=""
fi
AH_TEMPLATE(__ASM_STDCALL,[Define to a macro to generate an stdcall suffix])
if test "$ac_cv_c_stdcall_suffix" = "yes"
then
AC_DEFINE([__ASM_STDCALL(args)],["@" #args])
else
AC_DEFINE([__ASM_STDCALL(args)],[""])
fi
dnl **** Check how to define a function in assembly code ****
AC_CACHE_CHECK([how to define a function in assembly code], ac_cv_asm_func_def,
WINE_TRY_ASM_LINK(
["\t.globl _ac_test\n\t.def _ac_test; .scl 2; .type 32; .endef\n_ac_test:\t.long 0"],,,
ac_cv_asm_func_def=".def",
[WINE_TRY_ASM_LINK(["\t.globl _ac_test\n\t.type _ac_test,@function\n_ac_test:\t.long 0"],,,
ac_cv_asm_func_def=".type @function",
[WINE_TRY_ASM_LINK(["\t.globl _ac_test\n\t.type _ac_test,2\n_ac_test:\t.long 0"],,,
ac_cv_asm_func_def=".type 2",
ac_cv_asm_func_def="unknown")])]))
AH_TEMPLATE(__ASM_FUNC,[Define to a macro to generate an assembly function directive])
case "$ac_cv_asm_func_def" in
".def")

Alexandre Julliard
committed
AC_DEFINE([__ASM_FUNC(name)], [".def " __ASM_NAME(name) "; .scl 2; .type 32; .endef"])
asm_func_header=".def $asm_name_prefix\" #name suffix \"; .scl 2; .type 32; .endef" ;;
".type @function")

Alexandre Julliard
committed
AC_DEFINE([__ASM_FUNC(name)], [".type " __ASM_NAME(name) ",@function"])
asm_func_header=".type $asm_name_prefix\" #name suffix \",@function" ;;
".type 2")

Alexandre Julliard
committed
AC_DEFINE([__ASM_FUNC(name)], [".type " __ASM_NAME(name) ",2"])
asm_func_header=".type $asm_name_prefix\" #name suffix \",2" ;;

Alexandre Julliard
committed
AC_DEFINE([__ASM_FUNC(name)], [""])
asm_func_header="" ;;

Alexandre Julliard
committed
AC_CACHE_CHECK([whether asm() works outside of functions], ac_cv_c_asm_outside_funcs,
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[asm(".text\n\t.long 0");]],)],
ac_cv_c_asm_outside_funcs="yes",ac_cv_c_asm_outside_funcs="no"))

Alexandre Julliard
committed
AC_CACHE_CHECK([whether .previous is supported in assembly code], ac_cv_c_dot_previous,
WINE_TRY_ASM_LINK([".text\nac_test:\t.long 0\n\t.previous"],,,
ac_cv_c_dot_previous="yes",ac_cv_c_dot_previous="no"))

Alexandre Julliard
committed
AC_CACHE_CHECK([whether CFI directives are supported in assembly code], ac_cv_c_cfi_support,
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[asm(".text\nac_test:\t.cfi_startproc\n\t.long 0\n\t.cfi_endproc");]])],
ac_cv_c_cfi_support="yes",ac_cv_c_cfi_support="no"))
asm_func_header=".globl $asm_name_prefix\" #name suffix \"\\n\\t$asm_func_header\\n$asm_name_prefix\" #name suffix \":\\n\\t"

Alexandre Julliard
committed
asm_func_trailer=""
if test "$ac_cv_c_dot_previous" = "yes"
then
asm_func_trailer="\\n\\t.previous"
fi

Alexandre Julliard
committed
if test "$ac_cv_c_cfi_support" = "yes"
then
asm_func_header="$asm_func_header.cfi_startproc\\n\\t"
asm_func_trailer="\\n\\t.cfi_endproc$asm_func_trailer"
AC_DEFINE([__ASM_CFI(str)],[str],[Define to a macro to output a .cfi assembly pseudo-op])
else
AC_DEFINE([__ASM_CFI(str)],[""])

Alexandre Julliard
committed
fi

Alexandre Julliard
committed
asm_func_code="$asm_func_header\" code \"$asm_func_trailer"
AH_TEMPLATE(__ASM_DEFINE_FUNC,[Define to a macro to define an assembly function])

Alexandre Julliard
committed
if test "$ac_cv_c_asm_outside_funcs" = "yes"
AC_DEFINE_UNQUOTED([__ASM_DEFINE_FUNC(name,suffix,code)],[asm(".text\n\t.align 4\n\t$asm_func_code");])
AC_DEFINE_UNQUOTED([__ASM_DEFINE_FUNC(name,suffix,code)],[void __asm_dummy_##name(void) { asm(".text\n\t.align 4\n\t$asm_func_code"); }])
AC_DEFINE([__ASM_GLOBAL_FUNC(name,code)],[__ASM_DEFINE_FUNC(name,"",code)],
[Define to a macro to generate an assembly function with C calling convention])
AC_DEFINE([__ASM_STDCALL_FUNC(name,args,code)],[__ASM_DEFINE_FUNC(name,__ASM_STDCALL(args),code)],
[Define to a macro to generate an assembly function with stdcall calling convention])

Alexandre Julliard
committed
dnl **** Platform-specific checks ****
case $build_os in
cygwin*|mingw32*)

Alexandre Julliard
committed
AC_SUBST(TOOLSEXT,".exe")
LDPATH="PATH=\"\$(TOOLSDIR)/libs/wine:\$\$PATH\""
;;
LDPATH="LD_LIBRARY_PATH=\"\$(TOOLSDIR)/libs/wine:\$\$LD_LIBRARY_PATH\""
;;
dnl Mingw needs explicit msvcrt for linking libwine and winsock for wininet
case $host_os in
mingw32*)
AC_SUBST(CRTLIBS,"-lmsvcrt")
AC_SUBST(SOCKETLIBS,"-L\$(TOPOBJDIR)/dlls/ws2_32 -lws2_32")
esac
AC_SUBST(MAIN_BINARY,"wine")
test -z "$with_wine64" || MAIN_BINARY="wine32"
case $host_cpu in
*i[[3456789]]86*)
case $host_os in
linux* | k*bsd*-gnu)

Alexandre Julliard
committed
AC_SUBST(EXTRA_BINARIES,"wine-preloader") ;;
esac
;;
dnl **** Check for functions ****

Alexandre Julliard
committed
ac_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $BUILTINFLAG"
_pclose \
_popen \
_snprintf \
_strdup \
_stricmp \
_strnicmp \
_strtoi64 \
_strtoui64 \
_vsnprintf \

Alexandre Julliard
committed
asctime_r \

Alexandre Julliard
committed
dlopen \
epoll_create \
futimes \

Alexandre Julliard
committed
getdirentries \
getopt_long \
gettid \
getuid \

Alexandre Julliard
committed
kqueue \
pclose \

Alexandre Julliard
committed
pipe2 \
poll \
popen \
prctl \
sched_yield \
setproctitle \
sigprocmask \
snprintf \
statvfs \
strtoll \
strtoull \
thr_kill2 \
timegm \
usleep \
vsnprintf \
wait4 \
waitpid \
)

Alexandre Julliard
committed
CFLAGS="$ac_save_CFLAGS"

Alexandre Julliard
committed
dnl Check for -ldl
if test "$ac_cv_func_dlopen" = no
then
AC_CHECK_LIB(dl,dlopen,[AC_DEFINE(HAVE_DLOPEN,1) AC_SUBST(LIBDL,"-ldl")])
fi
WINE_CHECK_LIB_FUNCS(dladdr,[$LIBDL])
dnl Check for -lpoll for Mac OS X/Darwin
if test "$ac_cv_func_poll" = no
then
AC_CHECK_LIB(poll,poll,[AC_DEFINE(HAVE_POLL,1) AC_SUBST(LIBPOLL,"-lpoll")])
fi

Alexandre Julliard
committed
dnl Check for -lnsl for Solaris

Alexandre Julliard
committed
AC_SEARCH_LIBS(gethostbyname, nsl)

Alexandre Julliard
committed
dnl Check for -lsocket for Solaris

Alexandre Julliard
committed
AC_SEARCH_LIBS(connect, socket)

Alexandre Julliard
committed
dnl Check for -lresolv for Solaris

Alexandre Julliard
committed
AC_SEARCH_LIBS(inet_aton, resolv)

Alexandre Julliard
committed
dnl **** Check for functions which may rely on -lsocket on Solaris.
AC_CHECK_FUNCS(\
getaddrinfo \
getnameinfo \
getnetbyname \
getprotobyname \
getprotobynumber \
getservbyport \
inet_network \
inet_ntop \
inet_pton \
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
dnl **** Check for OpenLDAP ***
AC_SUBST(LDAPLIBS,"")
if test "$ac_cv_header_ldap_h" = "yes" -a "$ac_cv_header_lber_h" = "yes"
then
AC_CHECK_TYPE(LDAPSortKey,
[AC_CHECK_LIB(ldap_r, ldap_initialize,
[AC_CHECK_LIB(lber, ber_init,
[AC_DEFINE(HAVE_LDAP, 1, [Define if you have the OpenLDAP development environment])
LDAPLIBS="-lldap_r -llber"],,
[$LIBPTHREAD])],,
[$LIBPTHREAD])],,
[#include <ldap.h>])
WINE_CHECK_LIB_FUNCS(\
ldap_count_references \
ldap_first_reference \
ldap_next_reference \
ldap_parse_reference \
ldap_parse_sort_control \
ldap_parse_sortresponse_control \
ldap_parse_vlv_control \
ldap_parse_vlvresponse_control,
[$LDAPLIBS $LIBPTHREAD])
fi
WINE_NOTICE_WITH(ldap,[test "x$LDAPLIBS" = "x"],

Alexandre Julliard
committed
[libldap (OpenLDAP) ${notice_platform}development files not found, LDAP won't be supported.])
AC_CACHE_CHECK([whether mkdir takes only one argument],
wine_cv_one_arg_mkdir,
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/stat.h>]],[[mkdir("foo");]])],
[wine_cv_one_arg_mkdir=yes],[wine_cv_one_arg_mkdir=no]))
if test "$wine_cv_one_arg_mkdir" = "yes"
then
AC_DEFINE(HAVE_ONE_ARG_MKDIR, 1, [Define if mkdir takes only one argument])
fi
dnl **** Check for types ****
AC_C_CONST
AC_C_INLINE
AC_CHECK_TYPES([mode_t, off_t, pid_t, size_t, ssize_t, long long, fsblkcnt_t, fsfilcnt_t])
AC_CHECK_TYPES([sigset_t],,,[#include <sys/types.h>
#include <signal.h>])
AC_CHECK_TYPES([request_sense],,,[#include <linux/cdrom.h>])
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
AC_CHECK_TYPES([struct xinpgen],,,
[#include <sys/types.h>
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#ifdef HAVE_SYS_SOCKETVAR_H
#include <sys/socketvar.h>
#endif
#ifdef HAVE_NET_ROUTE_H
#include <net/route.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_IN_PCB_H
#include <netinet/in_pcb.h>
#endif])
AC_CHECK_MEMBERS([struct ff_effect.direction],,,
[#ifdef HAVE_LINUX_INPUT_H
#include <linux/input.h>
#endif])
AC_CACHE_CHECK([for sigaddset],wine_cv_have_sigaddset,
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <signal.h>]], [[sigset_t set; sigaddset(&set,SIGTERM);]])],[wine_cv_have_sigaddset=yes],[wine_cv_have_sigaddset=no]))
if test "$wine_cv_have_sigaddset" = "yes"
then
AC_DEFINE(HAVE_SIGADDSET, 1, [Define if sigaddset is supported])
fi
AC_CACHE_CHECK([whether we can use re-entrant gethostbyname_r Linux style],
wine_cv_linux_gethostbyname_r_6,
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netdb.h>]],[[
char *name=0;
struct hostent he;
struct hostent *result;
char *buf=0;
int bufsize=0;
int res,errnr;
char *addr=0;
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_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <sys/ioctl.h>
#include <sys/types.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])
)
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 **** FIXME: what about mixed cases, where we need two of them? ***
dnl Check for statfs members
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 HAVE_SYS_MOUNT_H
# include <sys/mount.h>
#endif
#ifdef HAVE_SYS_VFS_H
# include <sys/vfs.h>
#endif
#ifdef HAVE_SYS_STATFS_H
# include <sys/statfs.h>
#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],,,
[#include <sys/types.h>
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
#ifdef HAVE_SYS_UN_H
# include <sys/un.h>
#endif])
dnl Check for scsireq_t and sg_io_hdr_t members
AC_CHECK_MEMBERS([scsireq_t.cmd, sg_io_hdr_t.interface_id],,,
[#include <sys/types.h>
#ifdef HAVE_SCSI_SG_H
#include <scsi/sg.h>
#endif])
dnl Check for siginfo_t members
AC_CHECK_MEMBERS([siginfo_t.si_fd],,,[#include <signal.h>])
dnl Check for struct mtget members
AC_CHECK_MEMBERS([struct mtget.mt_blksiz, struct mtget.mt_gstat, struct mtget.mt_blkno],,,
[#include <sys/types.h>
#ifdef HAVE_SYS_MTIO_H
#include <sys/mtio.h>
#endif])
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 and ns-resolved times
AC_CHECK_MEMBERS([struct stat.st_blocks,struct stat.st_mtim,struct stat.st_ctim,struct stat.st_atim])
dnl Check for sin6_scope_id
AC_CHECK_MEMBERS([struct sockaddr_in6.sin6_scope_id],,,
[#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif])
dnl Check for ns_msg ptr member
AC_CHECK_MEMBERS([ns_msg._msg_ptr],,,
[#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
#ifdef HAVE_ARPA_NAMESER_H
# include <arpa/nameser.h>
#endif])
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
dnl Check for struct icmpstat.icps_outhist
AC_CHECK_MEMBERS([struct icmpstat.icps_outhist],,,
[#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#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_ICMP_VAR
#include <netinet/icmp_var.h>
#endif])