Simplify Tools section in README
[claws.git] / configure.ac
index 67c2a56d871d8f8185f604fca7322cc231c1ceac..b8ecfd009dea8a895ad1e90408c7b707e40d6e11 100644 (file)
@@ -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,10 +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 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
@@ -170,7 +180,7 @@ 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="$CFLAGS -g -Wno-pointer-sign -DUSE_MAINTAINER_MODE"
@@ -210,7 +220,7 @@ AC_CHECK_FUNCS(bind_textdomain_codeset)
 LIBS=$syl_save_LIBS
 
 dnl for gettext
-ALL_LINGUAS="ca cs da de en_GB es fi fr he hu id_ID it nb nl pt_BR ru sk sv tr 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.])
@@ -286,14 +296,14 @@ 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(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,
        [  --with-manualdir=DIR    Manual directory],
@@ -413,16 +423,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.20 gmodule-2.0 >= 2.20 gobject-2.0 >= 2.20 gthread-2.0 >= 2.20)
+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)
@@ -486,29 +496,17 @@ if test "x$enable_gnutls" != "xno"; then
                ])
         ],
         [
-                echo "Building without gnutls"
-               enable_gnutls=no
+                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.]))
-       ;;
-       freebsd*)
-       ;; # not used
-       *)
-               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")
@@ -566,18 +564,14 @@ dnl ** GTK user interface **
 dnl ************************
 
 dnl Checks for GTK
-AM_CONDITIONAL(GTK3, false)
-AM_CONDITIONAL(GTK2, true)
-if test x"$enable_gtk3" = x"yes"; then
-       PKG_CHECK_MODULES(GTK, gtk+-3.0 >= 3.0 cairo)
-       AM_CONDITIONAL(GTK3, true)
-       AM_CONDITIONAL(GTK2, false)
-else
-       PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.16)
-fi
+PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.24)
 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)
 
@@ -590,11 +584,18 @@ if test $enable_enchant = yes; then
                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)
@@ -875,7 +876,7 @@ dnl # Check for NetworkManager support
 dnl #######################################################################
 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"
@@ -964,6 +965,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 *************************
@@ -1096,7 +1105,7 @@ 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])
 
 
@@ -1147,7 +1156,7 @@ 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)
 
@@ -1842,6 +1851,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)
@@ -2006,6 +2037,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
@@ -2038,12 +2070,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/tests/Makefile
 doc/Makefile
 doc/man/Makefile
 tools/Makefile
@@ -2097,6 +2132,7 @@ 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:"