fix locating of pythonXX.so, with thanks to Ricardo
[claws.git] / configure.ac
index 42f5db82e45870fa9f17c7398fd9066e03cc6864..56dd35a759bee5533d1572d7e5dad17d8b4fc108 100644 (file)
@@ -7,19 +7,38 @@ AC_CONFIG_MACRO_DIR([m4])
 PACKAGE=claws-mail
 
 dnl version number
-MAJOR_VERSION=3
-MINOR_VERSION=9
-MICRO_VERSION=0
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=113
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
-if test \( $EXTRA_VERSION -eq 0 \) -o \( "x$EXTRA_RELEASE" != "x" \); then
-    VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}${EXTRA_RELEASE}${EXTRA_GTK2_VERSION}
+if test \( -d .git \); then
+    AC_CHECK_PROG([GIT], [git], [yes], [no], [$PATH])
+    if test \( "$GIT" = "no" \); then
+       AC_MSG_ERROR([*** git not found. See http://git-scm.com/])
+    else
+       GIT_VERSION=`git describe --abbrev=6 --dirty --always`
+    fi
+else
+    GIT_VERSION=`sh -c '. ./version'`
+fi
+MAJOR_VERSION=${GIT_VERSION%%.*}
+MINOR_VERSION=${GIT_VERSION#*.}
+MINOR_VERSION=${MINOR_VERSION%%.*}
+MICRO_VERSION=${GIT_VERSION##*.}
+MICRO_VERSION=${MICRO_VERSION%%-*}
+EXTRA_VERSION=${GIT_VERSION#*-}
+EXTRA_VERSION=${EXTRA_VERSION%%-*}
+
+if test \( "x$EXTRA_VERSION" != "x" -a `echo -n $EXTRA_VERSION | wc -c` -lt 5 \); then
+    VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}git${EXTRA_VERSION}
 else
-    VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}cvs${EXTRA_VERSION}${EXTRA_GTK2_VERSION}
+    VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}
+    EXTRA_VERSION=0
+fi
+
+if test \( "x$EXTRA_RELEASE" != "x" \); then
+    VERSION=${VERSION}${EXTRA_RELEASE}${EXTRA_GTK2_VERSION}
 fi
 
 dnl set $target
@@ -35,6 +54,7 @@ AC_SUBST(MAJOR_VERSION)
 AC_SUBST(MINOR_VERSION)
 AC_SUBST(MICRO_VERSION)
 AC_SUBST(EXTRA_VERSION)
+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)
@@ -86,7 +106,7 @@ AC_SYS_LARGEFILE
 
 dnl ******************************
 dnl Checks for host
-dnl Not needed anymore because we 
+dnl Not needed anymore because we
 dnl do AC_CANONICAL_SYSTEM above
 dnl ******************************
 dnl AC_CANONICAL_HOST
@@ -148,7 +168,7 @@ fi
 CFLAGS="$CFLAGS -Wall"
 
 if test $USE_MAINTAINER_MODE = yes; then
-       CFLAGS="-g -Wall -Wno-pointer-sign"
+       CFLAGS="-g -Wall -Wno-pointer-sign -DUSE_MAINTAINER_MODE"
 fi
 
 pthread_name=
@@ -169,7 +189,7 @@ case "$target" in
        CFLAGS="$CFLAGS -std=gnu99 -DSOLARIS"
        ;;
 esac
-  
+
 dnl Checks for iconv
 AM_ICONV
 
@@ -364,7 +384,7 @@ 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 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 <stdlib.h>
                #include <fnmatch.h>],
@@ -412,7 +432,7 @@ 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)
-      
+
 GLIB_GENMARSHAL=`pkg-config --variable=glib_genmarshal glib-2.0`
 AC_SUBST(GLIB_GENMARSHAL)
 
@@ -497,7 +517,7 @@ AC_ARG_WITH(config-dir,    [  --with-config-dir=RCDIR      Local configuration d
              ac_cv_with_config_dir="$withval", ac_cv_with_config_dir=".claws-mail")
 if test x"$ac_cv_with_config_dir" = x""; then
        ac_cv_with_config_dir=".claws-mail"
-fi 
+fi
 AC_DEFINE_UNQUOTED(CFG_RC_DIR, "$ac_cv_with_config_dir", Configuration directory)
 
 dnl ************************
@@ -592,7 +612,7 @@ dnl Check for X-Face support
 AC_MSG_CHECKING([whether to use compface])
 if test x"$enable_compface" = xyes; then
        AC_MSG_RESULT(yes)
-       AC_CHECK_LIB(compface, uncompface, 
+       AC_CHECK_LIB(compface, uncompface,
                [AC_DEFINE(HAVE_LIBCOMPFACE, 1, Define if you want compface support.)],
                [enable_compface=no])
        if test x"$enable_compface" = xyes; then
@@ -978,6 +998,10 @@ 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(mailmbox-plugin,
                [  --disable-mailmbox-plugin       Do not build mailmbox plugin],
                [enable_mailmbox_plugin=$enableval], [enable_mailmbox_plugin=auto])
@@ -1052,8 +1076,9 @@ dnl During this dependancy check we do the checks themselves, define HAVE_X to
 dnl either yes or no, and do the AC_SUBST calls.
 
 dnl Archive:           libarchive
-dnl Fancy:             Webkit, curl, optionally libsoup-gnome, gtkprintunix
+dnl Fancy:             Webkit, curl, optionally libsoup-gnome
 dnl Gdata:             libgdata
+dnl Geolocation                libchamplain, libsoup
 dnl Notification:      optionally libnotify libindicate libcanberra_gtk hotkey
 dnl Pdf-Viewer:                libpoppler
 dnl Perl:              sed perl
@@ -1077,26 +1102,26 @@ AC_SUBST(LIBXML_LIBS)
 AC_SUBST(LIBXML_CFLAGS)
 
 dnl webkit *********************************************************************
-PKG_CHECK_MODULES(WEBKIT, webkit-1.0, HAVE_WEBKIT=yes, HAVE_WEBKIT=no)
+PKG_CHECK_MODULES(WEBKIT, webkit-1.0 >= 1.1.14, HAVE_WEBKIT=yes, HAVE_WEBKIT=no)
 AC_SUBST(WEBKIT_LIBS)
 AC_SUBST(WEBKIT_CFLAGS)
 
+dnl libsoup ********************************************************************
+PKG_CHECK_MODULES(LIBSOUP, libsoup-2.4, HAVE_LIBSOUP=yes, HAVE_LIBSOUP=no)
+if test x"$HAVE_LIBSOUP" = xyes; then
+       AC_DEFINE(HAVE_LIBSOUP, 1, [Define if libsoup is available])
+fi
+AC_SUBST(LIBSOUP_CFLAGS)
+AC_SUBST(LIBSOUP_LIBS)
+
 dnl libsoup-gnome **************************************************************
 PKG_CHECK_MODULES(LIBSOUP_GNOME, libsoup-gnome-2.4 >= 2.26, HAVE_LIBSOUP_GNOME=yes, HAVE_LIBSOUP_GNOME=no)
 if test x"$HAVE_LIBSOUP_GNOME" = xyes; then
-       AC_DEFINE(HAVE_LIBSOUP_GNOME, 1, [Define if libsoup is available])
+       AC_DEFINE(HAVE_LIBSOUP_GNOME, 1, [Define if libsoup_gnome is available])
 fi
 AC_SUBST(LIBSOUP_GNOME_CFLAGS)
 AC_SUBST(LIBSOUP_GNOME_LIBS)
 
-dnl gtkprintunix ***************************************************************
-PKG_CHECK_MODULES(GTKPRINTUNIX, gtk+-unix-print-2.0, HAVE_GTKPRINTUNIX=yes, HAVE_GTKPRINTUNIX=no)
-if test x"$HAVE_GTKPRINTUNIX" = xyes; then
-       AC_DEFINE(HAVE_GTKPRINTUNIX, 1, [Define if GtkPrintUnix is available])
-fi
-AC_SUBST(GTKPRINTUNIX_CFLAGS)
-AC_SUBST(GTKPRINTUNIX_LIBS)
-
 dnl libarchive *****************************************************************
 AC_SEARCH_LIBS([archive_read_new], [archive],
                       ARCHIVE_LIBS=-larchive
@@ -1143,9 +1168,6 @@ if test x"$HAVE_POPPLER" = xyes; then
        CFLAGS=$OLD_CFLAGS
 fi
 
-dnl sed ************************************************************************
-AC_CHECK_PROG(HAVE_SED, sed, yes, no)
-
 dnl perl ***********************************************************************
 AC_CHECK_PROG(HAVE_PERL, perl, yes, no)
 if test x"$HAVE_PERL" = xyes; then
@@ -1160,17 +1182,29 @@ if test x"$HAVE_PERL" = xyes; then
 fi
 if test x"$HAVE_PERL" = xyes; then
        AC_MSG_CHECKING(for Perl compile flags)
-       if test x"$HAVE_SED" = xno; then
-               AC_MSG_RESULT(no - missing sed)
-               HAVE_PERL=no
-       else
-               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//'`
-               AC_MSG_RESULT(ok)
+       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//'`
+       AC_MSG_RESULT(ok)
+       AC_MSG_NOTICE([Adding perl LIBS ${PERL_CFLAGS}])
+       
+       if test x"$HAVE_PERL" = xyes; then
+               AC_CHECK_LIB(perl,perl_alloc,[AC_DEFINE(HAVE_LIBPERL, 1, Check for libperl.)], 
+                                            [ HAVE_LIBPERL=no ])
+       fi
+       if test x"$HAVE_LIBPERL" = xno; then
+               LIBPERL_PREFIX=`perl -MExtUtils::Embed -e perl_inc`
+               LIBPERL_PREFIX=`echo $LIBPERL_PREFIX |sed 's/-I//'`
+               AC_MSG_CHECKING([for libperl.so])
+               if test -f "$LIBPERL_PREFIX/libperl.so"; then
+                       AC_MSG_RESULT(yes)
+                       HAVE_LIBPERL=yes
+               else
+                       AC_MSG_RESULT(no)
+               fi      
        fi
        PERL="perl"
        AC_SUBST(PERL)
@@ -1203,15 +1237,12 @@ AM_PATH_PYTHON([2.5], [
 
        if test x"$HAVE_PYTHON" = xyes; then
                # libpython.so
+               PYTHON_SO_FILE_LOCATION=`python-config --ldflags|sed 's/-L//'|awk '{print $1}'`
                PYTHON_SO_FILE="libpython${PYTHON_VERSION}.so"
                found_libpython_so="no"
-               if test -f "$PYTHON_PREFIX/lib/$PYTHON_SO_FILE"; then
+               if test -f "$PYTHON_SO_FILE_LOCATION/$PYTHON_SO_FILE"; then
                        found_libpython_so="yes"
-                       PYTHON_SHARED_LIB=`python -c "import os,sys; print os.path.basename(os.path.realpath(\"$PYTHON_PREFIX/lib/$PYTHON_SO_FILE\"))"`
-               fi
-               if test -f "$PYTHON_PREFIX/lib64/$PYTHON_SO_FILE"; then
-                       found_libpython_so="yes"
-                       PYTHON_SHARED_LIB=`python -c "import os,sys; print os.path.basename(os.path.realpath(\"$PYTHON_PREFIX/lib64/$PYTHON_SO_FILE\"))"`
+                       PYTHON_SHARED_LIB=`python -c "import os,sys; print os.path.basename(os.path.realpath(\"$PYTHON_SO_FILE_LOCATION/$PYTHON_SO_FILE\"))"`
                fi
                if test x"$found_libpython_so" != x"yes"; then
                        AC_MSG_WARN(Could not find Python shared libary: $PYTHON_SO_FILE does not exist. Maybe you need to install development packages for Python.)
@@ -1265,6 +1296,16 @@ 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 Third, we now cross the requested plugins and the available dependencies
 dnl If some dependencies are missing and the plugin was explicitely enabled,
@@ -1429,6 +1470,31 @@ 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 mailmbox plugin])
 if test x"$enable_mailmbox_plugin" != xno; then
        PLUGINS="$PLUGINS mailmbox"
@@ -1518,8 +1584,8 @@ AC_MSG_CHECKING([whether to build perl plugin])
 if test x"$enable_perl_plugin" != xno; then
        dependencies_missing=""
 
-       if test x"$HAVE_PERL" = xno; then
-               dependencies_missing="perl $dependencies_missing"
+       if test x"$HAVE_LIBPERL" = xno; then
+               dependencies_missing="libperl $dependencies_missing"
        fi
 
        if test x"$dependencies_missing" = x; then
@@ -1788,6 +1854,7 @@ AM_CONDITIONAL(BUILD_DEMO_PLUGIN,         test x"$enable_demo_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_MAILMBOX_PLUGIN,          test x"$enable_mailmbox_plugin" != xno)
 AM_CONDITIONAL(BUILD_NEWMAIL_PLUGIN,           test x"$enable_newmail_plugin" != xno)
 AM_CONDITIONAL(BUILD_NOTIFICATION_PLUGIN,      test x"$enable_notification_plugin" != xno)
@@ -1834,6 +1901,7 @@ src/plugins/demo/Makefile
 src/plugins/fancy/Makefile
 src/plugins/fetchinfo/Makefile
 src/plugins/gdata/Makefile
+src/plugins/geolocation/Makefile
 src/plugins/mailmbox/Makefile
 src/plugins/newmail/Makefile
 src/plugins/notification/Makefile
@@ -1842,6 +1910,7 @@ src/plugins/pdf_viewer/Makefile
 src/plugins/perl/Makefile
 src/plugins/perl/tools/Makefile
 src/plugins/python/Makefile
+src/plugins/python/examples/Makefile
 src/plugins/pgpcore/Makefile
 src/plugins/pgpmime/Makefile
 src/plugins/pgpinline/Makefile
@@ -1892,6 +1961,7 @@ manual/de/dist/ps/Makefile
 manual/de/dist/html/Makefile
 manual/de/dist/txt/Makefile
 claws-mail.pc
+version
 ])
 
 dnl Output the configuration summary