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
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=
LIBS=$syl_save_LIBS
dnl for gettext
-ALL_LINGUAS="ca cs de en_GB es fi fr he hu it nb nl pt_BR ru sk sv 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.])
[ --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])
manualdir='${docdir}/manual'
AC_ARG_WITH(manualdir,
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`
AC_SUBST(GLIB_GENMARSHAL)
*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.]))
;;
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 ************************
else
PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.16)
fi
+AC_ARG_ENABLE(deprecated,
+ [ --disable-deprecated Disable deprecated GTK functions],
+ [GTK_CFLAGS="$GTK_CFLAGS -DG_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED"], [])
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
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"
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)
dnl # Check for alternate address book support
dnl #######################################################################
AC_MSG_CHECKING([whether DBUS support for alternate address book is present])
-if test x"$enable_dbus_glib" = xyes; then
+if test x"$enable_dbus" = xyes; then
AC_MSG_RESULT([yes])
AC_MSG_CHECKING([whether to enable alternate address book])
if test x"$enable_alternate_addressbook" = xyes; then
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,
[
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)
[ --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])
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
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
dnl Python: Python
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(LIBSOUP_GNOME_LIBS)
dnl libarchive *****************************************************************
+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 *******************************************************************
-PKG_CHECK_MODULES(GDATA, libgdata >= 0.17.1, HAVE_GDATA=yes, HAVE_GDATA=no)
+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)
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}])
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(
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)
AC_SUBST(CM_NP_HOTKEY_CFLAGS)
AC_SUBST(CM_NP_HOTKEY_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 <ytnef.h>"
+ else
+ ytnef_include="#include <libytnef/ytnef.h>"
+ fi
+ AC_TRY_COMPILE([#include <stdio.h>
+ ${ytnef_include}],
+ [SwapDDWord(0, 0);],
+ [have_ytnef=1],
+ [have_ytnef=0])
+ if test $have_ytnef -eq 0; then
+ AC_TRY_COMPILE([#include <stdio.h>
+ ${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,
dnl we error out, else we only inform.
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=""
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"
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=""
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
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)
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/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
doc/Makefile
doc/man/Makefile
tools/Makefile
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 "Plugins"
echo " Built:"