X-Git-Url: http://git.claws-mail.org/?p=claws.git;a=blobdiff_plain;f=configure.ac;h=a5f1bc95d3e871a386b8fe6739e72a5e1238e084;hp=b711cbcf4a8da62e80f1477a9799d7dfd9f53e22;hb=bfc95529975d50e8cda7a85b439aab23f2021c53;hpb=57e2da0859f4fcea4fd1d352ed09d67f5cc8111e diff --git a/configure.ac b/configure.ac index b711cbcf4..a5f1bc95d 100644 --- a/configure.ac +++ b/configure.ac @@ -21,8 +21,13 @@ if test \( -d .git \); then echo "echo ${GIT_VERSION}" > ./version fi else - GIT_VERSION=`sh -c ". ./$srcdir/version"` + GIT_VERSION=`sh -c ". $srcdir/version"` fi + +if test \( -z "$GIT_VERSION" \); then + AC_MSG_ERROR([*** could not determine program version]) +fi + MAJOR_VERSION=${GIT_VERSION%%.*} MINOR_VERSION=${GIT_VERSION#*.} MINOR_VERSION=${MINOR_VERSION%%.*} @@ -60,14 +65,15 @@ AC_SUBST(GIT_VERSION) AC_CHECK_PROG(HAVE_GTK_ICON_CACHE, gtk-update-icon-cache, yes, no) AM_CONDITIONAL(UPDATE_GTK_ICON_CACHE, test x"$HAVE_GTK_ICON_CACHE" = xyes) -AC_PATH_PROG(PKG_CONFIG, pkg-config, no) -if test x$PKG_CONFIG = xno ; then - AC_MSG_ERROR([*** pkg-config not found. See http://www.freedesktop.org/software/pkgconfig/]) -fi - -dnl GNOME 2.x installed? -PKG_CHECK_MODULES(GNOME2, libgnome-2.0 >= 2.0, ac_enable_gnome2=yes, ac_enable_gnome2=no) -AM_CONDITIONAL(CLAWS_GNOME2, test x"$ac_enable_gnome2" = x"yes") +dnl Require pkg-config +m4_ifndef([PKG_PROG_PKG_CONFIG], + [m4_fatal([Could not locate the pkg-config autoconf macros. These +are usually located in /usr/share/aclocal/pkg.m4. If your macros +are in a different location, try setting the environment variable +ACLOCAL_FLAGS before running ./autogen.sh or autoreconf again. E.g.: +export ACLOCAL_FLAGS="-I/other/macro/dir"]) +]) +PKG_PROG_PKG_CONFIG dnl libtool versioning LT_RELEASE=$MAJOR_VERSION.$MINOR_VERSION @@ -102,6 +108,7 @@ LT_INIT LT_AC_PROG_RC AC_LIBTOOL_RC AC_PROG_LIBTOOL +AC_PROG_AWK AC_SYS_LARGEFILE @@ -113,18 +120,25 @@ dnl ****************************** dnl AC_CANONICAL_HOST dnl Copied from the official gtk+-2 configure.in -AC_MSG_CHECKING([for some Win32 platform]) +AC_MSG_CHECKING([for host platform]) case "$host" in *-*-mingw*|*-*-cygwin*) platform_win32=yes - LDFLAGS="$LDFLAGS -mwindows" + LDFLAGS="$LDFLAGS -mwindows -Wl,--export-all-symbols" ;; + *-apple-*) + platform_osx=yes + LDFLAGS="$LDFLAGS -Wl,-export_dynamic" + ;; *) platform_win32=no + platform_osx=no + LDFLAGS="$LDFLAGS -Wl,--export-dynamic" ;; esac -AC_MSG_RESULT([$platform_win32]) AM_CONDITIONAL(PLATFORM_WIN32, test x"$platform_win32" = x"yes") +AM_CONDITIONAL(PLATFORM_OSX, test x"$platform_osx" = x"yes") +AC_MSG_RESULT([$host]) AC_MSG_CHECKING([for native Win32]) case "$host" in @@ -166,10 +180,10 @@ if test x"$_gcc_psign" = xyes ; then CFLAGS="$CFLAGS -Wno-pointer-sign" fi -CFLAGS="$CFLAGS -Wall" +CFLAGS="$CFLAGS -Wall -D_GNU_SOURCE" if test $USE_MAINTAINER_MODE = yes; then - CFLAGS="-g -Wall -Wno-pointer-sign -DUSE_MAINTAINER_MODE" + CFLAGS="$CFLAGS -g -Wno-pointer-sign -DUSE_MAINTAINER_MODE" fi pthread_name= @@ -178,10 +192,10 @@ case "$target" in CFLAGS="$CFLAGS -no-cpp-precomp -fno-common" ;; *-*-mingw*) - # Note that we need to link to pthreadGC2 in all cases. This + # Note that we need to link to pthread in all cases. This # is because some locking is used even when pthread support is # disabled. - pthread_name=pthreadGC2 + pthread_name=pthread CFLAGS="$CFLAGS -mms-bitfields" LIBS="$LIBS -l${pthread_name} -lws2_32 -lregex" ;; @@ -206,7 +220,7 @@ AC_CHECK_FUNCS(bind_textdomain_codeset) LIBS=$syl_save_LIBS dnl for gettext -ALL_LINGUAS="bg ca cs de en_GB eo es fi fr he hu id_ID it ja lt nl pl pt_BR pt_PT ru sk sv uk zh_CN zh_TW" +ALL_LINGUAS="ca cs da de en_GB es fi fr hu id_ID it ja nb nl pl pt_BR ro ru sk sv tr zh_TW" GETTEXT_PACKAGE=claws-mail AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Define text domain.]) @@ -278,17 +292,21 @@ AC_ARG_ENABLE(valgrind, [ --disable-valgrind Do not build valgrind support for debugging], [enable_valgrind=$enableval], [enable_valgrind=yes]) -AC_ARG_ENABLE(new-addrbook, - [ --enable-new-addrbook Build new external address book support], - [enable_new_addrbook=$enableval], [enable_new_addrbook=no]) +AC_ARG_ENABLE(alternate-addressbook, + [ --enable-alternate-addressbook Build alternate external address book support], + [enable_alternate_addressbook=$enableval], [enable_alternate_addressbook=no]) AC_ARG_ENABLE(gtk3, [ --enable-gtk3 Build GTK3 support], [enable_gtk3=$enableval], [enable_gtk3=no]) -AC_ARG_ENABLE(deprecated, - [ --disable-deprecated Disable deprecated GTK functions], - [GTK_CFLAGS="$GTK_CFLAGS -DG_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED"], []) +AC_ARG_ENABLE(svg, + [ --disable-svg Do not build SVG support], + [enable_svg=$enableval], [enable_svg=yes]) + +AC_ARG_ENABLE(tests, + [ --enable-tests Build unit tests], + [enable_tests=$enableval], [enable_tests=no]) manualdir='${docdir}/manual' AC_ARG_WITH(manualdir, @@ -381,18 +399,6 @@ AC_CHECK_HEADERS(fcntl.h sys/file.h unistd.h paths.h \ AC_CHECK_HEADER([execinfo.h], [AC_DEFINE(HAVE_BACKTRACE,1,[Has backtrace*() needed for retrieving stack traces])]) AC_SEARCH_LIBS(backtrace_symbols, [execinfo]) -dnl alf - Check for apache installation f*ck up. apache may also install an -dnl fnmatch, which includes their own regex stuff if USE_HSREGEX is defined -AC_TRY_COMPILE([#include - #include ], - [int x = USE_HSREGEX;], - ac_cv_have_apache_fnmatch=yes, ac_cv_have_apache_fnmatch=no) -if test $ac_cv_have_apache_fnmatch = yes; then - AC_DEFINE(HAVE_APACHE_FNMATCH, 1, Define if you need to work around apache regex/fnmatch !KLUDGE!) -fi -AC_MSG_CHECKING([whether to use Apache regex header kludge]) -AC_MSG_RESULT($ac_cv_have_apache_fnmatch) - dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_OFF_T @@ -421,16 +427,16 @@ AC_CHECK_FUNCS(gethostname mkdir mktime socket strstr strchr \ uname flock lockf inet_aton inet_addr \ fchmod mkstemp truncate getuid regcomp) -AC_CHECK_FUNCS(fgets_unlocked fwrite_unlocked) +AC_CHECK_FUNCS(fgets_unlocked fgetc_unlocked fputs_unlocked fputc_unlocked fread_unlocked fwrite_unlocked feof_unlocked ferror_unlocked fmemopen) dnl ***************** dnl ** common code ** dnl ***************** dnl check for glib -PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.6 gmodule-2.0 >= 2.6 gobject-2.0 >= 2.6 gthread-2.0 >= 2.6) +PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.28 gmodule-2.0 >= 2.28 gobject-2.0 >= 2.28 gthread-2.0 >= 2.28) -GLIB_GENMARSHAL=`pkg-config --variable=glib_genmarshal glib-2.0` +GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0` AC_SUBST(GLIB_GENMARSHAL) AC_SUBST(GLIB_CFLAGS) @@ -448,13 +454,23 @@ AC_MSG_CHECKING([whether to use IPv6]) if test x"$enable_ipv6" = xyes; then AC_MSG_RESULT(yes) AC_MSG_CHECKING([for IPv6 support]) - AC_CACHE_VAL(ac_cv_ipv6,[ - AC_TRY_COMPILE([#define INET6 - #include - #include ], - [int x = IPPROTO_IPV6; struct in6_addr a;], - ac_cv_ipv6=yes, ac_cv_ipv6=no) - ]) + if test x"$platform_win32" = xyes; then + AC_CACHE_VAL(ac_cv_ipv6,[ + AC_TRY_COMPILE([ + #include + ], [struct in6_addr a;], + ac_cv_ipv6=yes, ac_cv_ipv6=no) + ]) + else + AC_CACHE_VAL(ac_cv_ipv6,[ + AC_TRY_COMPILE([ + #define INET6 + #include + #include + ], [int x = IPPROTO_IPV6; struct in6_addr a;], + ac_cv_ipv6=yes, ac_cv_ipv6=no) + ]) + fi AC_MSG_RESULT($ac_cv_ipv6) if test $ac_cv_ipv6 = yes; then AC_DEFINE(INET6, 1, Define if you want IPv6 support.) @@ -474,36 +490,27 @@ if test "x$enable_gnutls" != "xno"; then [ AC_DEFINE(USE_GNUTLS, 1, gnutls) echo "Building with GnuTLS" + PKG_CHECK_MODULES(GNUTLS, gnutls >= 2.11, + [ + dnl No linking against libgcrypt needed + ], + [ + dnl linking against libgcrypt *is* needed + GNUTLS_LIBS="$GNUTLS_LIBS -lgcrypt" + ]) ], [ - echo "Building without gnutls" - ]) - PKG_CHECK_MODULES(GNUTLS, gnutls >= 2.11, - [ - dnl No linking against libgcrypt needed - ], - [ - dnl linking against libgcrypt *is* needed - GNUTLS_LIBS="$GNUTLS_LIBS -lgcrypt" + echo "Building without GnuTLS" + AC_MSG_RESULT([*** GnuTLS support is recommended ]) + AC_MSG_RESULT([*** You can use --disable-gnutls if you don't need it.]) + AC_MSG_ERROR([GnuTLS not found]) ]) AC_SUBST(GNUTLS_LIBS) AC_SUBST(GNUTLS_CFLAGS) fi -dnl password encryption -OLDLIBS=$LIBS -LIBS= -case $host_os in - *dragonfly*) - AC_SEARCH_LIBS(encrypt, cipher, [], AC_MSG_ERROR(['encrypt'-function not found.])) - ;; - *) - AC_SEARCH_LIBS(encrypt, crypt, [], AC_MSG_ERROR(['encrypt'-function not found.])) - ;; -esac -CRYPT_LIBS=$LIBS -AC_SUBST(CRYPT_LIBS) -LIBS=$OLDLIBS +PKG_CHECK_MODULES(NETTLE, nettle) +AC_SUBST(NETTLE_LIBS) AC_ARG_WITH(passcrypt-key, [ --with-passcrypt-key=KEY Key used to encode passwords (8 byte string)], with_passcrypt_key="$withval", with_passcrypt_key="passkey0") @@ -511,12 +518,51 @@ AC_SUBST(PASSCRYPT_KEY, $with_passcrypt_key) dnl RC dir (will be default at a certain point in time) AC_ARG_WITH(config-dir, [ --with-config-dir=RCDIR Local configuration dir (default: .claws-mail)], - ac_cv_with_config_dir="$withval", ac_cv_with_config_dir=".claws-mail") + ac_cv_with_config_dir="$withval", ac_cv_with_config_dir="") + +dnl Set correct default value based on platform if test x"$ac_cv_with_config_dir" = x""; then - ac_cv_with_config_dir=".claws-mail" + if test x"$platform_win32" = xyes; then + ac_cv_with_config_dir="Claws-mail" + else + ac_cv_with_config_dir=".claws-mail" + fi fi AC_DEFINE_UNQUOTED(CFG_RC_DIR, "$ac_cv_with_config_dir", Configuration directory) +AC_ARG_WITH(password-encryption, [ --with-password-encryption=PROVIDER Which cryptographic library to use for encrypting stored passwords (gnutls, old, default)], + pwd_crypto="$withval", pwd_crypto="default") + +if test x"$pwd_crypto" = xdefault; then + if test x"$enable_gnutls" = xyes; then + if `$PKG_CONFIG --atleast-version=3.0 gnutls`; then + pwd_crypto="gnutls" + fi + fi +fi +if test x"$pwd_crypto" = xdefault; then + pwd_crypto="old" +fi + +case $pwd_crypto in + gnutls) + if test x"$enable_gnutls" = xno; then + AC_MSG_ERROR([GnuTLS password encryption requested but GnuTLS is not available.]) + fi + if ! `$PKG_CONFIG --atleast-version=3.0 gnutls`; then + AC_MSG_ERROR([GnuTLS version at least 3.0 is required for password encryption.]) + fi + AC_DEFINE(PASSWORD_CRYPTO_GNUTLS, 1, Use GnuTLS for stored password encryption) + ;; + old) + AC_DEFINE(PASSWORD_CRYPTO_OLD, 1, Use old insecure method for stored password encryption) + ;; + *) + AC_MSG_ERROR([Unknown password encryption provider requested.]) + ;; +esac + + dnl ************************ dnl ** GTK user interface ** dnl ************************ @@ -529,8 +575,15 @@ if test x"$enable_gtk3" = x"yes"; then AM_CONDITIONAL(GTK3, true) AM_CONDITIONAL(GTK2, false) else - PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.16) + PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.24) fi +AC_ARG_ENABLE(deprecated, + [ --disable-deprecated Disable deprecated GTK functions], + [GTK_CFLAGS="$GTK_CFLAGS -DG_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED"], []) + +dnl Make sure the code does not regress to using deprecated GTK stuff... +GTK_CFLAGS="$GTK_CFLAGS -DGTK_DISABLE_SINGLE_INCLUDES -DGSEAL_ENABLE" + AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) @@ -538,16 +591,23 @@ dnl enchant is used for spell checking AC_MSG_CHECKING([whether to use enchant]) AC_MSG_RESULT($enable_enchant) if test $enable_enchant = yes; then - PKG_CHECK_MODULES(ENCHANT, enchant >= 1.0.0, + PKG_CHECK_MODULES(ENCHANT, enchant >= 1.4.0, [ AC_DEFINE(USE_ENCHANT, 1, enchant) echo "Building with enchant" enable_enchant=yes - CFLAGS="$CFLAGS `$PKG_CONFIG --cflags enchant`" ], [ - echo "Building without enchant-notification" - enable_enchant=no + PKG_CHECK_MODULES(ENCHANT, enchant-2 >= 2.0.0, + [ + AC_DEFINE(USE_ENCHANT, 1, enchant-2) + echo "Building with enchant-2" + enable_enchant=yes + ], + [ + echo "Building without enchant-notification" + enable_enchant=no + ]) ]) AC_SUBST(ENCHANT_CFLAGS) AC_SUBST(ENCHANT_LIBS) @@ -670,11 +730,11 @@ if test "x$enable_dbus" = "xyes"; then PKG_CHECK_MODULES(DBUS, [dbus-1 >= 0.60, dbus-glib-1 >= 0.60], [ AC_DEFINE(HAVE_DBUS_GLIB, 1, [Define if glib bindings of D-Bus are available]) - enable_dbus_glib=yes + enable_dbus=yes ], [ echo "D-Bus requirements not met. D-Bus support not activated." - enable_dbus_glib=no + enable_dbus=no ]) AC_SUBST(DBUS_CFLAGS) AC_SUBST(DBUS_LIBS) @@ -685,37 +745,37 @@ dnl # Configure address book support dnl ####################################################################### dnl ####################################################################### -dnl # Check for new address book support +dnl # Check for alternate address book support dnl ####################################################################### -AC_MSG_CHECKING([whether DBUS support for new address book is present]) -if test x"$enable_dbus_glib" = xyes; then +AC_MSG_CHECKING([whether DBUS support for alternate address book is present]) +if test x"$enable_dbus" = xyes; then AC_MSG_RESULT([yes]) - AC_MSG_CHECKING([whether to enable new address book]) - if test x"$enable_new_addrbook" = xyes; then + AC_MSG_CHECKING([whether to enable alternate address book]) + if test x"$enable_alternate_addressbook" = xyes; then AC_MSG_RESULT([yes]) PKG_CHECK_MODULES(CONTACTS, [claws-contacts], [ - AC_DEFINE(USE_NEW_ADDRBOOK, 1, [Define if new address book is to be activated.]) - enable_new_addrbook=yes + AC_DEFINE(USE_ALT_ADDRBOOK, 1, [Define if alternate address book is to be activated.]) + enable_alternate_addressbook=yes AC_SUBST(CONTACTS_CFLAGS) AC_SUBST(CONTACTS_LIBS) ], [ - enable_new_addrbook=no + enable_alternate_addressbook=no ]) else AC_MSG_RESULT([no]) - enable_new_addrbook=no + enable_alternate_addressbook=no fi else AC_MSG_RESULT([no]) - enable_new_addrbook=no + enable_alternate_addressbook=no fi dnl ####################################################################### dnl # Check for old address book support dnl ####################################################################### -if test x"$enable_new_addrbook" = xno; then +if test x"$enable_alternate_addressbook" = xno; then dnl for LDAP support in addressbook dnl no check for libraries; dynamically loaded AC_MSG_CHECKING([whether to use LDAP]) @@ -821,14 +881,14 @@ if test x"$enable_new_addrbook" = xno; then fi fi -AM_CONDITIONAL(BUILD_NEWADDRBOOK, test x"$enable_new_addrbook" = x"yes") +AM_CONDITIONAL(BUILD_ALTADDRBOOK, test x"$enable_alternate_addressbook" = x"yes") dnl ####################################################################### dnl # Check for NetworkManager support dnl ####################################################################### -if test x"$enable_dbus_glib" = xyes; then +if test x"$enable_dbus" = xyes; then if test x"$enable_networkmanager" = xyes; then - PKG_CHECK_MODULES(NETWORKMANAGER_SUPPORT, NetworkManager >= 0.6.2, + PKG_CHECK_MODULES(NETWORKMANAGER_SUPPORT, libnm, [ AC_DEFINE(HAVE_NETWORKMANAGER_SUPPORT, 1, [Define if NetworkManager support is to be included.]) echo "Building with NetworkManager support" @@ -864,12 +924,8 @@ if test x"$enable_libetpan" = xyes; then if test "x$libetpan_result" = "xyes"; then LIBETPAN_CPPFLAGS="`$libetpanconfig --cflags`" LIBETPAN_LIBS="`$libetpanconfig --libs`" - LIBETPAN_STABLE=`$libetpanconfig --version | grep -v ^0` - LIBETPAN_VERSION=`$libetpanconfig --version | sed "s/\.//g" | sed "s/-.*$//"` - if test x"$LIBETPAN_STABLE" != "x"; then - LIBETPAN_VERSION="100" - fi - if test "$LIBETPAN_VERSION" -lt "057"; then + LIBETPAN_VERSION=`$libetpanconfig --version | $AWK -F. '{printf "%d", ($1 * 100) + $2}'` + if test "$LIBETPAN_VERSION" -lt "57"; then AC_MSG_RESULT([*** Claws Mail requires libetpan 0.57 or newer. See http://www.etpan.org/]) AC_MSG_RESULT([*** You can use --disable-libetpan if you don't need IMAP4 and/or NNTP support.]) AC_MSG_ERROR([libetpan 0.57 not found]) @@ -887,6 +943,25 @@ else fi AM_CONDITIONAL(CLAWS_LIBETPAN, test "x$libetpan_result" = "xyes") +dnl librsvg +AC_MSG_CHECKING([whether to use librsvg]) +if test x"$enable_svg" = xyes; then + AC_MSG_RESULT(yes) + PKG_CHECK_MODULES([SVG], [librsvg-2.0 >= 2.39.0 cairo >= 1.0.0], + [ + AC_SUBST(SVG_CFLAGS) + AC_SUBST(SVG_LIBS) + AC_DEFINE(HAVE_SVG, 1, [Define if librsvg2 is available for SVG support]) + enable_svg=yes + ], + [ + AC_MSG_NOTICE([SVG support deactivated as librsvg2 >= 2.39.0 was not found]) + enable_svg=no + ]) +else + AC_MSG_RESULT(no) +fi + AC_MSG_CHECKING([whether to use valgrind]) if test x$enable_valgrind = xyes; then AC_MSG_RESULT(yes) @@ -902,6 +977,14 @@ else fi AM_CONDITIONAL(CLAWS_VALGRIND, test x"$enable_valgrind" = x"yes") +AC_MSG_CHECKING([whether to build unit tests]) +if test x$enable_tests = xyes; then + AC_MSG_RESULT(yes) +else + AC_MSG_RESULT(no) +fi +AM_CONDITIONAL(BUILD_TESTS, test "x$enable_tests" = "xyes") + dnl ************************* dnl ** section for plugins ** dnl ************************* @@ -948,6 +1031,10 @@ AC_ARG_ENABLE(clamd-plugin, [ --disable-clamd-plugin Do not build clamd plugin], [enable_clamd_plugin=$enableval], [enable_clamd_plugin=auto]) +AC_ARG_ENABLE(dillo-plugin, + [ --disable-dillo-plugin Do not build dillo plugin], + [enable_dillo_plugin=$enableval], [enable_dillo_plugin=auto]) + AC_ARG_ENABLE(fancy-plugin, [ --disable-fancy-plugin Do not build fancy plugin], [enable_fancy_plugin=$enableval], [enable_fancy_plugin=auto]) @@ -960,10 +1047,6 @@ AC_ARG_ENABLE(gdata-plugin, [ --disable-gdata-plugin Do not build gdata plugin], [enable_gdata_plugin=$enableval], [enable_gdata_plugin=auto]) -AC_ARG_ENABLE(geolocation-plugin, - [ --disable-geolocation-plugin Do not build geolocation plugin], - [enable_geolocation_plugin=$enableval], [enable_geolocation_plugin=auto]) - AC_ARG_ENABLE(libravatar-plugin, [ --disable-libravatar-plugin Do not build libravatar plugin], [enable_libravatar_plugin=$enableval], [enable_libravatar_plugin=auto]) @@ -972,6 +1055,10 @@ AC_ARG_ENABLE(mailmbox-plugin, [ --disable-mailmbox-plugin Do not build mailmbox plugin], [enable_mailmbox_plugin=$enableval], [enable_mailmbox_plugin=auto]) +AC_ARG_ENABLE(managesieve-plugin, + [ --disable-managesieve-plugin Do not build managesieve plugin], + [enable_managesieve_plugin=$enableval], [enable_managesieve_plugin=auto]) + AC_ARG_ENABLE(newmail-plugin, [ --disable-newmail-plugin Do not build newmail plugin], [enable_newmail_plugin=$enableval], [enable_newmail_plugin=auto]) @@ -1030,12 +1117,12 @@ AC_ARG_ENABLE(vcalendar-plugin, dnl disabled by default AC_ARG_ENABLE(demo-plugin, - [ --enable-demo-plugin Build demo plugin], + [ --enable-demo-plugin Build demo plugin], [enable_demo_plugin=$enableval], [enable_demo_plugin=no]) dnl Then we check (unconditionnaly) for plugins dependencies -dnl Some dependencies are optional, some mandatories. This is taken care of +dnl Some dependencies are optional, some mandatory. This is taken care of dnl later. dnl dnl During this dependancy check we do the checks themselves, define HAVE_X to @@ -1044,9 +1131,9 @@ dnl either yes or no, and do the AC_SUBST calls. dnl Archive: libarchive dnl Fancy: Webkit, curl, optionally libsoup-gnome dnl Gdata: libgdata -dnl Geolocation: libchamplain, libsoup -dbl Libravatar: libcurl -dnl Notification: optionally libnotify libindicate libcanberra_gtk hotkey +dnl Libravatar: libcurl +dnl Notification: optionally libnotify unity/messaging-menu +dnl libcanberra_gtk hotkey dnl Pdf-Viewer: libpoppler dnl Perl: sed perl dnl PGP/Core: libgpgme @@ -1054,22 +1141,34 @@ dnl PGP/Mime: pgpcore libgpgme dnl PGP/Inline: pgpcore libgpgme dnl S/Mime: pgpcore libgpgme dnl Python: Python -dnl RSSyl: libxml2 libcurl +dnl RSSyl: expat libcurl dnl SpamReport: libcurl -dnl vCalendar: libcurl +dnl vCalendar: libcurl, libical +dnl tnef_parse: libytnef dnl libcurl ******************************************************************** PKG_CHECK_MODULES(CURL, libcurl, HAVE_CURL=yes, HAVE_CURL=no) AC_SUBST(CURL_LIBS) AC_SUBST(CURL_CFLAGS) -dnl libxml2 ******************************************************************** -PKG_CHECK_MODULES(LIBXML, libxml-2.0, HAVE_LIBXML=yes, HAVE_LIBXML=no) -AC_SUBST(LIBXML_LIBS) -AC_SUBST(LIBXML_CFLAGS) +dnl expat ********************************************************************** +PKG_CHECK_MODULES(EXPAT, expat, HAVE_EXPAT=yes, HAVE_EXPAT=no) + +if test x"$HAVE_EXPAT" = xno; then + AC_CHECK_HEADER(expat.h, [expat_header=yes], [expat_header=no]) + AC_CHECK_LIB(expat, XML_ParserCreate, [expat_lib=yes], [expat_lib=no]) + if test x"$expat_header" = xyes -a x"$expat_lib"=xyes; then + HAVE_EXPAT=yes + EXPAT_CFLAGS="" + EXPAT_LIBS="-lexpat" + fi +fi + +AC_SUBST(EXPAT_CFLAGS) +AC_SUBST(EXPAT_LIBS) dnl webkit ********************************************************************* -PKG_CHECK_MODULES(WEBKIT, webkit-1.0 >= 1.1.14, HAVE_WEBKIT=yes, HAVE_WEBKIT=no) +PKG_CHECK_MODULES(WEBKIT, webkit-1.0 >= 1.10.0, HAVE_WEBKIT=yes, HAVE_WEBKIT=no) AC_SUBST(WEBKIT_LIBS) AC_SUBST(WEBKIT_CFLAGS) @@ -1090,33 +1189,26 @@ AC_SUBST(LIBSOUP_GNOME_CFLAGS) AC_SUBST(LIBSOUP_GNOME_LIBS) dnl libarchive ***************************************************************** -AC_SEARCH_LIBS([archive_read_new], [archive], +PKG_CHECK_MODULES(LIBARCHIVE, libarchive, HAVE_ARCHIVE=yes, HAVE_ARCHIVE=no) +AC_SUBST(ARCHIVE_LIBS) +AC_SUBST(ARCHIVE_CFLAGS) +AC_CHECK_LIB([archive], [archive_read_new], ARCHIVE_LIBS=-larchive HAVE_ARCHIVE=yes - AC_SUBST(ARCHIVE_LIBS), + AC_SUBST(ARCHIVE_LIBS,$ARCHIVE_CFLAGS), HAVE_ARCHIVE=no ) dnl libgdata ******************************************************************* -dnl Plugin handles compatibility back to 0.6.4 so there are multiple checks. -PKG_CHECK_MODULES(GDATA, libgdata >= 0.9.1, HAVE_GDATA=yes, HAVE_GDATA=no) -if test x"$HAVE_GDATA" = xyes; then - AC_DEFINE(HAVE_GDATA_VERSION_0_9_1, 1, [at least version 0.9.1 of libgdata is available]) - AC_DEFINE(HAVE_GDATA_VERSION_0_9, 1, [at least version 0.9 of libgdata is available]) -else - PKG_CHECK_MODULES(GDATA, libgdata >= 0.9, HAVE_GDATA=yes, HAVE_GDATA=no) -fi -if test x"$HAVE_GDATA" = xyes; then - AC_DEFINE(HAVE_GDATA_VERSION_0_9, 1, [at least version 0.9 of libgdata is available]) -else - PKG_CHECK_MODULES(GDATA, libgdata >= 0.6.4, HAVE_GDATA=yes, HAVE_GDATA=no) -fi -if test x"$HAVE_GDATA" = xyes; then - AC_DEFINE(CM_GDATA_CLIENT_ID, ["Claws Mail GData plugin"], [client id]) -fi +PKG_CHECK_MODULES(GDATA, libgdata >= 0.17.2, HAVE_GDATA=yes, HAVE_GDATA=no) AC_SUBST(GDATA_CFLAGS) AC_SUBST(GDATA_LIBS) +dnl libical ******************************************************************** +PKG_CHECK_MODULES(LIBICAL, libical >= 2.0, HAVE_LIBICAL=yes, HAVE_LIBICAL=no) +AC_SUBST(LIBICAL_CFLAGS) +AC_SUBST(LIBICAL_LIBS) + dnl Poppler ******************************************************************** PKG_CHECK_MODULES(POPPLER, poppler-glib >= 0.12.0, HAVE_POPPLER=yes, HAVE_POPPLER=no) AC_SUBST(POPPLER_LIBS) @@ -1151,10 +1243,10 @@ if test x"$HAVE_PERL" = xyes; then AC_MSG_CHECKING(for Perl compile flags) PERL_CFLAGS=`perl -MExtUtils::Embed -e ccopts` PERL_CFLAGS=`echo $PERL_CFLAGS | sed 's/-D_FILE_OFFSET_BITS=[[0-9]]*//'` - PERL_LDFLAGS=`perl -MExtUtils::Embed -e ldopts |sed 's/-lgdbm//'` - PERL_LDFLAGS=`echo $PERL_LDFLAGS |sed 's/-ldb//'` - PERL_LDFLAGS=`echo $PERL_LDFLAGS |sed 's/-lndbm//'` - PERL_LDFLAGS=`echo $PERL_LDFLAGS |sed 's/-lc//'` + PERL_LDFLAGS=`perl -MExtUtils::Embed -e ldopts |sed 's/-lgdbm\>//'` + PERL_LDFLAGS=`echo $PERL_LDFLAGS |sed 's/-ldb\>//'` + PERL_LDFLAGS=`echo $PERL_LDFLAGS |sed 's/-lndbm\>//'` + PERL_LDFLAGS=`echo $PERL_LDFLAGS |sed 's/-lc\>//'` AC_MSG_RESULT(ok) AC_MSG_NOTICE([Adding perl LIBS ${PERL_CFLAGS}]) @@ -1207,7 +1299,7 @@ AM_PATH_PYTHON([2.5], [ if test x"$platform_win32" = xno; then # libpython.so PYTHON_SHARED_LIB="libpython${PYTHON_VERSION}.so" - LIBS="-ldl" + AC_CHECK_LIB(dl, dlopen, [LIBS="-ldl"]) AC_MSG_CHECKING([whether to dlopen $PYTHON_SHARED_LIB works]) AC_RUN_IFELSE( [AC_LANG_PROGRAM( @@ -1255,18 +1347,13 @@ fi AC_SUBST(libcanberra_gtk_CFLAGS) AC_SUBST(libcanberra_gtk_LIBS) -dnl libindicate **************************************************************** -dnl We support either 0.3+ or 0.5+ -LIBINDICATE_MODULE=indicate -LIBINDICATE_REQUIRED=0.3.0 - -PKG_CHECK_EXISTS(indicate-0.5 >= 0.5.0, LIBINDICATE_MODULE=indicate-0.5) -PKG_CHECK_MODULES(libindicate, $LIBINDICATE_MODULE >= $LIBINDICATE_REQUIRED, HAVE_LIBINDICATE=yes, HAVE_LIBINDICATE=no) -if test x"$HAVE_LIBINDICATE" = xyes; then - AC_DEFINE(NOTIFICATION_INDICATOR, 1, [Activate support for indicators]) +dnl unity/messaging-menu ******************************************************* +PKG_CHECK_MODULES(unity, unity messaging-menu, HAVE_UNITY=yes, HAVE_UNITY=no) +if test x"$HAVE_UNITY" = xyes; then + AC_DEFINE(NOTIFICATION_INDICATOR, 1, [Activate support for unity and messaging-menu]) fi -AC_SUBST(libindicate_CFLAGS) -AC_SUBST(libindicate_LIBS) +AC_SUBST(unity_CFLAGS) +AC_SUBST(unity_LIBS) dnl hotkeys ******************************************************************** PKG_CHECK_MODULES(CM_NP_HOTKEY, [gio-2.0 >= 2.15.6 gio-unix-2.0 >= 2.15.6], HAVE_HOTKEYS=yes, HAVE_HOTKEYS=no) @@ -1276,16 +1363,50 @@ fi AC_SUBST(CM_NP_HOTKEY_CFLAGS) AC_SUBST(CM_NP_HOTKEY_LIBS) -dnl libchamplain *************************************************************** -CHAMPLAIN_MODULE=champlain-gtk-0.4 -CHAMPLAIN_VERSION=0.4.0 -PKG_CHECK_EXISTS(champlain-gtk-0.6 > 0.6.0,[CHAMPLAIN_MODULE=champlain-gtk-0.6 - CHAMPLAIN_VERSION=0.6.0], []) -PKG_CHECK_EXISTS(champlain-gtk-0.8 > 0.8.0,[CHAMPLAIN_MODULE=champlain-gtk-0.8 - CHAMPLAIN_VERSION=0.8.0], []) -PKG_CHECK_MODULES(CHAMPLAIN, [$CHAMPLAIN_MODULE >= $CHAMPLAIN_VERSION clutter-gtk-0.10], HAVE_CHAMPLAIN=yes, HAVE_CHAMPLAIN=no) -AC_SUBST(CHAMPLAIN_CFLAGS) -AC_SUBST(CHAMPLAIN_LIBS) +dnl libytnef ******************************************************************* +YTNEF_CFLAGS="" +YTNEF_LIBS="" +have_ytnef=0 +# Check both ytnef.h and libytnef/ytnef.h, and adjust YTNEF_CFLAGS +# accordingly +AC_CHECK_HEADER(ytnef.h, [have_ytnef=1], [have_ytnef=0]) +if test $have_ytnef -eq 0; then + AC_CHECK_HEADER(libytnef/ytnef.h, + [have_ytnef=1; + YTNEF_CFLAGS="${YTNEF_CFLAGS} -DYTNEF_H_SUBDIR"], + [have_ytnef=0]) +fi +if test $have_ytnef -eq 1; then + AC_MSG_CHECKING([how libytnef's SwapDDWord() should be called]) + # Now we have to figure out which libytnef version we're using, + # based on whether SwapDDWord takes one argument or two. + if test "x${YTNEF_CFLAGS}" = "x"; then + ytnef_include="#include " + else + ytnef_include="#include " + fi + AC_TRY_COMPILE([#include + ${ytnef_include}], + [SwapDDWord(0, 0);], + [have_ytnef=1], + [have_ytnef=0]) + if test $have_ytnef -eq 0; then + AC_TRY_COMPILE([#include + ${ytnef_include}], + [SwapDDWord(0);], + [have_ytnef=1; + YTNEF_CFLAGS="${YTNEF_CFLAGS} -DYTNEF_OLD_SWAPDDWORD"], + [have_ytnef=0]) + fi + if test $have_ytnef -eq 1; then + YTNEF_LIBS="-lytnef" + AC_MSG_RESULT(ok) + else + AC_MSG_RESULT(no idea, unsupported libytnef version?) + fi +fi +AC_SUBST(YTNEF_CFLAGS) +AC_SUBST(YTNEF_LIBS) dnl Third, we now cross the requested plugins and the available dependencies dnl If some dependencies are missing and the plugin was explicitely enabled, @@ -1388,6 +1509,15 @@ else AC_MSG_RESULT(no) fi +AC_MSG_CHECKING([whether to build Dillo plugin]) +if test x"$enable_dillo_plugin" != xno; then + PLUGINS="$PLUGINS dillo" + AC_MSG_RESULT(yes) +else + DISABLED_PLUGINS="$DISABLED_PLUGINS dillo" + AC_MSG_RESULT(no) +fi + AC_MSG_CHECKING([whether to build fancy plugin]) if test x"$enable_fancy_plugin" != xno; then dependencies_missing="" @@ -1450,31 +1580,6 @@ else AC_MSG_RESULT(no) fi -AC_MSG_CHECKING([whether to build geolocation plugin]) -if test x"$enable_geolocation_plugin" != xno; then - dependencies_missing="" - - if test x"$HAVE_CHAMPLAIN" = xno; then - dependencies_missing="libchamplain $dependencies_missing" - fi - - if test x"$dependencies_missing" = x; then - PLUGINS="$PLUGINS geolocation" - AC_MSG_RESULT(yes) - elif test x"$enable_geolocation_plugin" = xauto; then - AC_MSG_RESULT(no) - AC_MSG_WARN("Plugin geolocation will not be built; missing $dependencies_missing") - enable_geolocation_plugin=no - MISSING_DEPS_PLUGINS="$MISSING_DEPS_PLUGINS geolocation" - else - AC_MSG_RESULT(no) - AC_MSG_ERROR("Plugin geolocation cannot be built; missing $dependencies_missing") - fi -else - DISABLED_PLUGINS="$DISABLED_PLUGINS geolocation" - AC_MSG_RESULT(no) -fi - AC_MSG_CHECKING([whether to build libravatar plugin]) if test x"$enable_libravatar_plugin" != xno; then dependencies_missing="" @@ -1509,6 +1614,15 @@ else AC_MSG_RESULT(no) fi +AC_MSG_CHECKING([whether to build managesieve plugin]) +if test x"$enable_managesieve_plugin" != xno; then + PLUGINS="$PLUGINS managesieve" + AC_MSG_RESULT(yes) +else + DISABLED_PLUGINS="$DISABLED_PLUGINS managesieve" + AC_MSG_RESULT(no) +fi + AC_MSG_CHECKING([whether to build newmail plugin]) if test x"$enable_newmail_plugin" != xno; then PLUGINS="$PLUGINS newmail" @@ -1539,10 +1653,10 @@ if test x"$enable_notification_plugin" != xno; then notification_missing_dependencies="$notification_missing_dependencies hotkeys" fi notification_features="$notification_features lcdproc" - if test x"$HAVE_LIBINDICATE" = xyes; then - notification_features="$notification_features libindicate" + if test x"$HAVE_UNITY" = xyes; then + notification_features="$notification_features unity/messaging-menu" else - notification_missing_dependencies="$notification_missing_dependencies libindicate" + notification_missing_dependencies="$notification_missing_dependencies unity/messaging-menu" fi if test x"$HAVE_LIBNOTIFY" = xyes; then notification_features="$notification_features libnotify" @@ -1720,8 +1834,8 @@ AC_MSG_CHECKING([whether to build rssyl plugin]) if test x"$enable_rssyl_plugin" != xno; then dependencies_missing="" - if test x"$HAVE_LIBXML" = xno; then - dependencies_missing="libxml2 $dependencies_missing" + if test x"$HAVE_EXPAT" = xno; then + dependencies_missing="expat $dependencies_missing" fi if test x"$HAVE_CURL" = xno; then dependencies_missing="libcurl $dependencies_missing" @@ -1749,6 +1863,28 @@ if test x"$enable_spamassassin_plugin" != xno; then PLUGINS="$PLUGINS spamassassin" AC_MSG_RESULT(yes) AC_SPAMASSASSIN + + dnl check for zlib (optional) + spamassassin_zlib=0 + SPAMASSASSIN_CFLAGS="" + SPAMASSASSIN_LIBS="" + AC_CHECK_HEADER([zlib.h], + [AC_DEFINE(HAVE_ZLIB_H,1,[optional zlib support for spamassassin plugin])] + [spamassassin_zlib=1], + [spamassassin_zlib=0]) + if test $spamassassin_zlib -eq 1; then + AC_CHECK_LIB(z, deflate, [spamassassin_zlib=1], [spamassassin_zlib=0]) + AC_MSG_CHECKING([whether to build spamassassin plugin with zlib support]) + if test $spamassassin_zlib -eq 1; then + AC_MSG_RESULT(yes) + SPAMASSASSIN_CFLAGS="-DHAVE_LIBZ" + SPAMASSASSIN_LIBS="-lz" + else + AC_MSG_RESULT(no) + fi + fi + AC_SUBST(SPAMASSASSIN_CFLAGS) + AC_SUBST(SPAMASSASSIN_LIBS) else DISABLED_PLUGINS="$DISABLED_PLUGINS spamassassin" AC_MSG_RESULT(no) @@ -1809,13 +1945,30 @@ fi AC_MSG_CHECKING([whether to build tnef_parse plugin]) if test x"$enable_tnef_parse_plugin" != xno; then - PLUGINS="$PLUGINS tnef_parse" - AC_MSG_RESULT(yes) + dependencies_missing="" + + if test $have_ytnef -eq 0; then + dependencies_missing="libytnef" + fi + + if test x"$dependencies_missing" = x; then + PLUGINS="$PLUGINS tnef_parse" + AC_MSG_RESULT(yes) + elif test x"$enable_tnef_parse_plugin" = xauto; then + AC_MSG_RESULT(no) + AC_MSG_WARN(Plugin tnef_parse will not be built; missing $dependencies_missing") + enable_tnef_parse_plugin=no + MISSING_DEPS_PLUGINS="$MISSING_DEPS_PLUGINS tnef_parse" + else + AC_MSG_RESULT(no) + AC_MSG_ERROR(Plugin tnef_parse will not be built; missing $dependencies_missing") + fi else DISABLED_PLUGINS="$DISABLED_PLUGINS tnef_parse" AC_MSG_RESULT(no) fi + AC_MSG_CHECKING([whether to build vcalendar plugin]) if test x"$enable_vcalendar_plugin" != xno; then dependencies_missing="" @@ -1824,6 +1977,10 @@ if test x"$enable_vcalendar_plugin" != xno; then dependencies_missing="libcurl $dependencies_missing" fi + if test x"$HAVE_LIBICAL" = xno; then + dependencies_missing="libical $dependencies_missing" + fi + if test x"$HAVE_PERL" = xno; then dependencies_missing="perl $dependencies_missing" fi @@ -1856,12 +2013,13 @@ AM_CONDITIONAL(BUILD_BOGOFILTER_PLUGIN, test x"$enable_bogofilter_plugin" != xn AM_CONDITIONAL(BUILD_BSFILTER_PLUGIN, test x"$enable_bsfilter_plugin" != xno) AM_CONDITIONAL(BUILD_CLAMD_PLUGIN, test x"$enable_clamd_plugin" != xno) AM_CONDITIONAL(BUILD_DEMO_PLUGIN, test x"$enable_demo_plugin" != xno) +AM_CONDITIONAL(BUILD_DILLO_PLUGIN, test x"$enable_dillo_plugin" != xno) AM_CONDITIONAL(BUILD_FANCY_PLUGIN, test x"$enable_fancy_plugin" != xno) AM_CONDITIONAL(BUILD_FETCHINFO_PLUGIN, test x"$enable_fetchinfo_plugin" != xno) AM_CONDITIONAL(BUILD_GDATA_PLUGIN, test x"$enable_gdata_plugin" != xno) -AM_CONDITIONAL(BUILD_GEOLOCATION_PLUGIN, test x"$enable_geolocation_plugin" != xno) AM_CONDITIONAL(BUILD_LIBRAVATAR_PLUGIN, test x"$enable_libravatar_plugin" != xno) AM_CONDITIONAL(BUILD_MAILMBOX_PLUGIN, test x"$enable_mailmbox_plugin" != xno) +AM_CONDITIONAL(BUILD_MANAGESIEVE_PLUGIN, test x"$enable_managesieve_plugin" != xno) AM_CONDITIONAL(BUILD_NEWMAIL_PLUGIN, test x"$enable_newmail_plugin" != xno) AM_CONDITIONAL(BUILD_NOTIFICATION_PLUGIN, test x"$enable_notification_plugin" != xno) AM_CONDITIONAL(BUILD_HOTKEYS, test x"$enable_notification_plugin" != xno -a x"$HAVE_HOTKEYS" = xyes) @@ -1891,6 +2049,7 @@ src/common/version.h src/Makefile src/common/Makefile src/common/passcrypt.h +src/common/tests/Makefile src/gtk/Makefile src/etpan/Makefile src/plugins/Makefile @@ -1904,12 +2063,13 @@ src/plugins/bsfilter/Makefile src/plugins/clamd/Makefile src/plugins/clamd/libclamd/Makefile src/plugins/demo/Makefile +src/plugins/dillo/Makefile src/plugins/fancy/Makefile src/plugins/fetchinfo/Makefile src/plugins/gdata/Makefile -src/plugins/geolocation/Makefile src/plugins/libravatar/Makefile src/plugins/mailmbox/Makefile +src/plugins/managesieve/Makefile src/plugins/newmail/Makefile src/plugins/notification/Makefile src/plugins/notification/gtkhotkey/Makefile @@ -1922,16 +2082,15 @@ src/plugins/pgpcore/Makefile src/plugins/pgpmime/Makefile src/plugins/pgpinline/Makefile src/plugins/rssyl/Makefile +src/plugins/rssyl/tests/Makefile +src/plugins/rssyl/libfeed/Makefile +src/plugins/rssyl/libfeed/tests/Makefile src/plugins/smime/Makefile src/plugins/spamassassin/Makefile src/plugins/spam_report/Makefile src/plugins/tnef_parse/Makefile src/plugins/vcalendar/Makefile -src/plugins/vcalendar/libical/Makefile -src/plugins/vcalendar/libical/libical/icalversion.h -src/plugins/vcalendar/libical/libical/Makefile -src/plugins/vcalendar/libical/design-data/Makefile -src/plugins/vcalendar/libical/scripts/Makefile +src/tests/Makefile doc/Makefile doc/man/Makefile tools/Makefile @@ -1949,24 +2108,12 @@ manual/fr/dist/pdf/Makefile manual/fr/dist/ps/Makefile manual/fr/dist/html/Makefile manual/fr/dist/txt/Makefile -manual/pl/Makefile -manual/pl/dist/Makefile -manual/pl/dist/pdf/Makefile -manual/pl/dist/ps/Makefile -manual/pl/dist/html/Makefile -manual/pl/dist/txt/Makefile manual/es/Makefile manual/es/dist/Makefile manual/es/dist/pdf/Makefile manual/es/dist/ps/Makefile manual/es/dist/html/Makefile manual/es/dist/txt/Makefile -manual/de/Makefile -manual/de/dist/Makefile -manual/de/dist/pdf/Makefile -manual/de/dist/ps/Makefile -manual/de/dist/html/Makefile -manual/de/dist/txt/Makefile claws-mail.pc ]) @@ -1974,10 +2121,10 @@ dnl Output the configuration summary echo "" echo "$PACKAGE $VERSION" echo "" -if test x"$enable_new_addrbook" = xyes; then - echo "Using Address Book : New experimental interface" +if test x"$enable_alternate_addressbook" = xyes; then + echo "Using Address Book : Alternate experimental interface" else - echo "Using Address Book : Old stable interface" + echo "Using Address Book : Original stable interface" echo "JPilot : $enable_jpilot" echo "LDAP : $enable_ldap" fi @@ -1994,7 +2141,10 @@ echo "DBUS : $enable_dbus" echo "NetworkManager : $enable_networkmanager" echo "Manual : $enable_manual" echo "Generic UMPC code : $enable_generic_umpc" +echo "SVG support : $enable_svg" echo "Config dir : $ac_cv_with_config_dir" +echo "Password crypto : $pwd_crypto" +echo "Unit tests : $enable_tests" echo "Plugins" echo " Built:"