Moved compose_can_autosave() outside of #ifdef G_OS_UNIX.
[claws.git] / configure.ac
index 82c25e111f46b6d776f51499f22dbb99fc8a55fc..9e031c81f63e2071f59b0b3c6b04f86ce48819b3 100644 (file)
@@ -110,18 +110,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,7 +173,7 @@ fi
 CFLAGS="$CFLAGS -Wall"
 
 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=
@@ -203,7 +210,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 it lt nb nl pt_BR sk sv zh_TW"
+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"
 GETTEXT_PACKAGE=claws-mail
 AC_SUBST(GETTEXT_PACKAGE)
 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Define text domain.])
@@ -275,9 +282,9 @@ AC_ARG_ENABLE(valgrind,
                [  --disable-valgrind              Do not build valgrind support for debugging],
                [enable_valgrind=$enableval], [enable_valgrind=yes])
 
-AC_ARG_ENABLE(alternate-addrbook,
-               [  --enable-alternate-addrbook      Build alternate external address book support],
-               [enable_alternate_addrbook=$enableval], [enable_alternate_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],
@@ -493,6 +500,8 @@ 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.]))
        ;;
@@ -507,12 +516,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 ************************
@@ -687,31 +735,31 @@ AC_MSG_CHECKING([whether DBUS support for alternate address book is present])
 if test x"$enable_dbus_glib" = xyes; then
        AC_MSG_RESULT([yes])
        AC_MSG_CHECKING([whether to enable alternate address book])
-       if test x"$enable_alternate_addrbook" = xyes; then
+       if test x"$enable_alternate_addressbook" = xyes; then
                AC_MSG_RESULT([yes])
                PKG_CHECK_MODULES(CONTACTS, [claws-contacts],
                [
                        AC_DEFINE(USE_ALT_ADDRBOOK, 1, [Define if alternate address book is to be activated.])
-                       enable_alternate_addrbook=yes
+                       enable_alternate_addressbook=yes
                        AC_SUBST(CONTACTS_CFLAGS)
                        AC_SUBST(CONTACTS_LIBS)
                ],
                [
-                       enable_alternate_addrbook=no
+                       enable_alternate_addressbook=no
                ])
        else
                AC_MSG_RESULT([no])
-               enable_alternate_addrbook=no
+               enable_alternate_addressbook=no
        fi
 else
        AC_MSG_RESULT([no])
-       enable_alternate_addrbook=no
+       enable_alternate_addressbook=no
 fi
 
 dnl #######################################################################
 dnl # Check for old address book support
 dnl #######################################################################
-if test x"$enable_alternate_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])
@@ -817,7 +865,7 @@ if test x"$enable_alternate_addrbook" = xno; then
        fi
 fi
 
-AM_CONDITIONAL(BUILD_ALTADDRBOOK, test x"$enable_alternate_addrbook" = x"yes")
+AM_CONDITIONAL(BUILD_ALTADDRBOOK, test x"$enable_alternate_addressbook" = x"yes")
 
 dnl #######################################################################
 dnl # Check for NetworkManager support
@@ -961,7 +1009,7 @@ AC_ARG_ENABLE(mailmbox-plugin,
                [enable_mailmbox_plugin=$enableval], [enable_mailmbox_plugin=auto])
 
 AC_ARG_ENABLE(managesieve-plugin,
-               [  --disable-managesieve-plugin       Do not build managesieve plugin],
+               [  --disable-managesieve-plugin    Do not build managesieve plugin],
                [enable_managesieve_plugin=$enableval], [enable_managesieve_plugin=auto])
 
 AC_ARG_ENABLE(newmail-plugin,
@@ -1037,7 +1085,8 @@ dnl Archive:              libarchive
 dnl Fancy:             Webkit, curl, optionally libsoup-gnome
 dnl Gdata:             libgdata
 dnl Libravatar:                libcurl
-dnl Notification:      optionally libnotify libindicate libcanberra_gtk hotkey
+dnl Notification:      optionally libnotify  unity/messaging-menu
+dnl                               libcanberra_gtk hotkey
 dnl Pdf-Viewer:                libpoppler
 dnl Perl:              sed perl
 dnl PGP/Core:          libgpgme
@@ -1194,7 +1243,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(
@@ -1242,20 +1291,13 @@ fi
 AC_SUBST(libcanberra_gtk_CFLAGS)
 AC_SUBST(libcanberra_gtk_LIBS)
 
-dnl libindicate ****************************************************************
-dnl We support either 0.3+ or 0.5+ or 0.6+ or 0.7+
-LIBINDICATE_MODULE=indicate
-LIBINDICATE_REQUIRED=0.3.0
-
-PKG_CHECK_EXISTS(indicate-0.5 >= 0.5.0, LIBINDICATE_MODULE=indicate-0.5)
-PKG_CHECK_EXISTS(indicate-0.6 >= 0.6.0, LIBINDICATE_MODULE=indicate-0.6)
-PKG_CHECK_EXISTS(indicate-0.7 >= 0.7.0, LIBINDICATE_MODULE=indicate-0.7)
-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)
@@ -1501,10 +1543,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"
@@ -1925,7 +1967,7 @@ dnl Output the configuration summary
 echo ""
 echo "$PACKAGE $VERSION"
 echo ""
-if test x"$enable_alternate_addrbook" = xyes; then
+if test x"$enable_alternate_addressbook" = xyes; then
        echo "Using Address Book : Alternate experimental interface"
 else
        echo "Using Address Book : Original stable interface"
@@ -1946,6 +1988,7 @@ echo "NetworkManager     : $enable_networkmanager"
 echo "Manual             : $enable_manual"
 echo "Generic UMPC code  : $enable_generic_umpc"
 echo "Config dir         : $ac_cv_with_config_dir"
+echo "Password crypto    : $pwd_crypto"
 
 echo "Plugins"
 echo "   Built:"