Don't call strncpy with mismatching length
[claws.git] / configure.ac
index a5f1bc95d3e871a386b8fe6739e72a5e1238e084..412a3f01414265da747004c2e6213677def0c2da 100644 (file)
@@ -110,6 +110,16 @@ AC_LIBTOOL_RC
 AC_PROG_LIBTOOL
 AC_PROG_AWK
 
+dnl AC_PROG_CXX will set CXX=g++ even if it finds no useable C++
+dnl compiler, so we have to check whether the program named by
+dnl CXX exists.
+AC_PROG_CXX
+AC_PATH_PROG(REAL_CXX, $CXX)
+HAVE_CXX=no
+if test -n "$REAL_CXX"; then
+       HAVE_CXX=yes
+fi
+
 AC_SYS_LARGEFILE
 
 dnl ******************************
@@ -220,7 +230,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 hu id_ID it ja nb nl pl pt_BR ro 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 pt_PT 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.])
@@ -296,16 +306,12 @@ 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                   Build unit tests],
                                [enable_tests=$enableval], [enable_tests=no])
 
 manualdir='${docdir}/manual'
@@ -423,7 +429,7 @@ AC_CHECK_SIZEOF(unsigned long, 4)
 
 dnl Checks for library functions.
 AC_FUNC_ALLOCA
-AC_CHECK_FUNCS(gethostname mkdir mktime socket strstr strchr \
+AC_CHECK_FUNCS(gethostname mkdir mktime socket strstr strchr strcasestr \
               uname flock lockf inet_aton inet_addr \
               fchmod mkstemp truncate getuid regcomp)
 
@@ -434,7 +440,7 @@ dnl ** common code **
 dnl *****************
 
 dnl check for glib
-PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.28 gmodule-2.0 >= 2.28 gobject-2.0 >= 2.28 gthread-2.0 >= 2.28)
+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)
@@ -442,6 +448,8 @@ AC_SUBST(GLIB_GENMARSHAL)
 AC_SUBST(GLIB_CFLAGS)
 AC_SUBST(GLIB_LIBS)
 
+PKG_CHECK_MODULES(GDK_PIXBUF, [gdk-pixbuf-2.0 >= 2.26])
+
 dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
 syl_save_LIBS=$LIBS
 LIBS="$LIBS $GTK_LIBS"
@@ -568,15 +576,7 @@ 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.24)
-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"], [])
@@ -1051,6 +1051,10 @@ AC_ARG_ENABLE(libravatar-plugin,
                [  --disable-libravatar-plugin     Do not build libravatar  plugin],
                [enable_libravatar_plugin=$enableval], [enable_libravatar_plugin=auto])
 
+AC_ARG_ENABLE(litehtml_viewer-plugin,
+               [  --disable-litehtml_viewer-plugin       Do not build litehtml_viewer plugin],
+               [enable_litehtml_viewer_plugin=$enableval], [enable_litehtml_viewer_plugin=auto])
+
 AC_ARG_ENABLE(mailmbox-plugin,
                [  --disable-mailmbox-plugin       Do not build mailmbox plugin],
                [enable_mailmbox_plugin=$enableval], [enable_mailmbox_plugin=auto])
@@ -1131,6 +1135,7 @@ 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 Litehtml           a C++ compiler, >=glib-2.36, cairo, fontconfig, gumbo, curl
 dnl Libravatar:                libcurl
 dnl Notification:      optionally libnotify  unity/messaging-menu
 dnl                               libcanberra_gtk hotkey
@@ -1204,6 +1209,21 @@ PKG_CHECK_MODULES(GDATA, libgdata >= 0.17.2, HAVE_GDATA=yes, HAVE_GDATA=no)
 AC_SUBST(GDATA_CFLAGS)
 AC_SUBST(GDATA_LIBS)
 
+dnl cairo **********************************************************************
+PKG_CHECK_MODULES(CAIRO, cairo, HAVE_CAIRO=yes, HAVE_CAIRO=no)
+AC_SUBST(CAIRO_CFLAGS)
+AC_SUBST(CAIRO_LIBS)
+
+dnl fontconfig *****************************************************************
+PKG_CHECK_MODULES(FONTCONFIG, fontconfig, HAVE_FONTCONFIG=yes, HAVE_FONTCONFIG=no)
+AC_SUBST(FONTCONFIG_CFLAGS)
+AC_SUBST(FONTCONFIG_LIBS)
+
+dnl gumbo **********************************************************************
+PKG_CHECK_MODULES(LIBGUMBO, gumbo >= 0.10, HAVE_LIBGUMBO=yes, HAVE_LIBGUMBO=no)
+AC_SUBST(LIBGUMBO_CFLAGS)
+AC_SUBST(LIBGUMBO_LIBS)
+
 dnl libical ********************************************************************
 PKG_CHECK_MODULES(LIBICAL, libical >= 2.0, HAVE_LIBICAL=yes, HAVE_LIBICAL=no)
 AC_SUBST(LIBICAL_CFLAGS)
@@ -1279,6 +1299,7 @@ if test x"$HAVE_GPGME" = xyes; then
 fi
 
 dnl Python *********************************************************************
+missing_python=""
 AM_PATH_PYTHON([2.5], [
        AC_PATH_PROG(PYTHON_CONFIG, python$PYTHON_VERSION-config)
        if test x"$PYTHON_CONFIG" = x"" ; then
@@ -1292,6 +1313,7 @@ AM_PATH_PYTHON([2.5], [
        else
                AC_MSG_WARN(python-config not found. Maybe you need to install development packages for Python.)
                HAVE_PYTHON=no
+               missing_python="python-config"
        fi
 
        if test x"$HAVE_PYTHON" = xyes; then
@@ -1316,6 +1338,7 @@ AM_PATH_PYTHON([2.5], [
                        AC_MSG_RESULT(no)
                        AC_MSG_WARN(Could not find Python shared libary: ${PYTHON_SHARED_LIB}. Maybe you need to install development packages for Python.)
                        HAVE_PYTHON=no
+                       missing_python="libpython"
                else
                        AC_MSG_RESULT(yes)
                fi
@@ -1323,7 +1346,13 @@ AM_PATH_PYTHON([2.5], [
        fi
        if test x"$HAVE_PYTHON" = xyes; then
                PKG_CHECK_MODULES(PYGTK, pygtk-2.0 >= 2.10.3, [AC_DEFINE(ENABLE_PYTHON, [1], [Enable Python support])], HAVE_PYTHON=no)
+               if test x"$HAVE_PYTHON" = xno; then
+                       missing_python="pygtk-2.0 >= 2.10.3"
+               fi
        fi
+], [
+               HAVE_PYTHON=no
+               missing_python="python interpreter"
 ])
 AC_SUBST(PYTHON_SHARED_LIB)
 AC_SUBST(PYTHON_CFLAGS)
@@ -1605,6 +1634,46 @@ else
        AC_MSG_RESULT(no)
 fi
 
+AC_MSG_CHECKING([whether to build litehtml_viewer plugin])
+if test x"$enable_litehtml_viewer_plugin" != xno; then
+        dependencies_missing=""
+
+        if test x"$HAVE_CXX" = xno; then
+                dependencies_missing="C++ compiler $dependencies_missing"
+        fi
+        PKG_CHECK_EXISTS([glib-2.0 >= 2.36], [],
+                [dependencies_missing="glib-2.0 >= 2.36 $dependencies_missing"])
+        if test x"$HAVE_CAIRO" = xno; then
+                dependencies_missing="cairo $dependencies_missing"
+        fi
+        if test x"$HAVE_FONTCONFIG" = xno; then
+                dependencies_missing="fontconfig $dependencies_missing"
+        fi
+       if test x"$HAVE_LIBGUMBO" = xno; then
+               dependencies_missing="libgumbo $dependencies_missing"
+       fi
+        if test x"$HAVE_CURL" = xno; then
+                dependencies_missing="libcurl $dependencies_missing"
+        fi
+
+
+        if test x"$dependencies_missing" = x; then
+                PLUGINS="$PLUGINS litehtml_viewer"
+                AC_MSG_RESULT(yes)
+        elif test x"$enable_litehtml_viewer_plugin" = xauto; then
+                AC_MSG_RESULT(no)
+                AC_MSG_WARN("Plugin litehtml_viewer will not be built; missing $dependencies_missing")
+                enable_litehtml_viewer_plugin=no
+                MISSING_DEPS_PLUGINS="$MISSING_DEPS_PLUGINS litehtml_viewer"
+        else
+                AC_MSG_RESULT(no)
+                AC_MSG_ERROR("Plugin litehtml_viewer cannot be built; missing $dependencies_missing")
+        fi
+else
+        DISABLED_PLUGINS="$DISABLED_PLUGINS litehtml_viewer"
+        AC_MSG_RESULT(no)
+fi
+
 AC_MSG_CHECKING([whether to build mailmbox plugin])
 if test x"$enable_mailmbox_plugin" != xno; then
        PLUGINS="$PLUGINS mailmbox"
@@ -1729,7 +1798,7 @@ if test x"$enable_python_plugin" != xno; then
        dependencies_missing=""
 
        if test x"$HAVE_PYTHON" = xno; then
-               dependencies_missing="python $dependencies_missing"
+               dependencies_missing="$missing_python $dependencies_missing"
        fi
 
        if test x"$dependencies_missing" = x; then
@@ -2018,8 +2087,9 @@ 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_LIBRAVATAR_PLUGIN,                test x"$enable_libravatar_plugin" != xno)
+AM_CONDITIONAL(BUILD_LITEHTML_VIEWER_PLUGIN,   test x"$enable_litehtml_viewer_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_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)
@@ -2067,6 +2137,8 @@ src/plugins/dillo/Makefile
 src/plugins/fancy/Makefile
 src/plugins/fetchinfo/Makefile
 src/plugins/gdata/Makefile
+src/plugins/litehtml_viewer/Makefile
+src/plugins/litehtml_viewer/litehtml/Makefile
 src/plugins/libravatar/Makefile
 src/plugins/mailmbox/Makefile
 src/plugins/managesieve/Makefile
@@ -2079,6 +2151,7 @@ src/plugins/perl/tools/Makefile
 src/plugins/python/Makefile
 src/plugins/python/examples/Makefile
 src/plugins/pgpcore/Makefile
+src/plugins/pgpcore/tests/Makefile
 src/plugins/pgpmime/Makefile
 src/plugins/pgpinline/Makefile
 src/plugins/rssyl/Makefile