Configure support for libsecret
[moonshot-ui.git] / configure.ac
index 0330bc1..55cf276 100644 (file)
@@ -1,13 +1,18 @@
-AC_PREREQ([2.65])
+AC_PREREQ([2.63])
 AC_INIT([Moonshot-ui],
-        [0.1],
+        [1.0.5],
         [moonshot-community@jiscmail.ac.uk],
-        [moonshot-ui])
+        [moonshot-ui],
+        [http://www.project-moonshot.org/])
 
+# Remove this when we can depend on autoconf >= 2.64
+AC_SUBST(PACKAGE_URL, [http://www.project-moonshot.org/])
+AC_DEFINE(PACKAGE_URL,["http://www.project-moonshot.org"],[package URL])
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_SRCDIR([configure.ac])
 AC_CONFIG_MACRO_DIR([m4])
 AC_CONFIG_AUX_DIR([build-aux])
+AC_SUBST([KEYRING_VALAFLAGS],[])
 
 AM_INIT_AUTOMAKE([1.11 -Wall foreign subdir-objects tar-pax no-dist-gzip dist-xz])
 AM_SILENT_RULES([yes])
@@ -15,6 +20,7 @@ AM_MAINTAINER_MODE([enable])
 
 LT_PREREQ([2.2])
 LT_INIT([win32-dll])
+AC_CHECK_FUNCS_ONCE(geteuid getpwuid)
 
 # Checks for programs.
 PKG_PROG_PKG_CONFIG([0.23])
@@ -32,10 +38,6 @@ case "$host" in
     linux=no
     SERVER_IPC_MODULE="msrpc-glib2-1.0"
     CLIENT_IPC_MODULE="msrpc-mingw-1.0"
-    PKG_CHECK_MODULES([GTK],
-            [gtk+-2.0 >= 2.18],
-            [GTK_VERSION="gtk+-2.0"]
-    )
     ;;
     
   *darwin*) 
@@ -48,30 +50,29 @@ case "$host" in
     # because Vala drops support for it, but as it ships with DBus there is very
     # little danger of it being dropped by distros any time soon.
     CLIENT_IPC_MODULE="dbus-glib-1"
-    PKG_CHECK_MODULES([GDBUS],
-            [gio-2.0 >= 2.26],
-            [SERVER_IPC_MODULE="gio-2.0"],
-            [SERVER_IPC_MODULE="dbus-glib-1"]
-    )
+       SERVER_IPC_MODULE="dbus-glib-1"   
        
        PKG_CHECK_MODULES([MAC], 
                        [gtk-mac-integration >= 1.0.1]
        )
 
-# TODO: Move to GTK+-3
-#            [gtk+-3.0 >= 2.0],
-#            [GTK_VERSION="gtk+-3.0"]
-    PKG_CHECK_MODULES([GTK],
-            [gtk+-2.0 >= 2.18],
-            [GTK_VERSION="gtk+-2.0"]
-    )
-
     ;;
   *)
     macos=no
     win32=no
     linux=yes
 
+    PKG_CHECK_MODULES([KEYRING],
+       [libsecret-1],
+       [KEYRING_VALAFLAGS=" --pkg libsecret-1 --define LIBSECRET_KEYRING"],
+       [
+               PKG_CHECK_MODULES([KEYRING], [gnome-keyring-1],
+               [KEYRING_VALAFLAGS="--pkg moonshot-gnome-keyring --define GNOME_KEYRING"],
+               [AC_ERROR(["Neither gnome-keyring not libsecret is found])
+               ])
+    ])
+       
+       
     # We require dbus-glib for the client library even if we are using GDBus
     # in the server. The reason we can't always use dbus-glib in the server is
     # because Vala drops support for it, but as it ships with DBus there is very
@@ -82,17 +83,60 @@ case "$host" in
             [SERVER_IPC_MODULE="gio-2.0"],
             [SERVER_IPC_MODULE="dbus-glib-1"]
     )
-# TODO: Move to GTK+-3
-#            [gtk+-3.0 >= 2.0],
-#            [GTK_VERSION="gtk+-3.0"]
-    PKG_CHECK_MODULES([GTK],
-            [gtk+-2.0 >= 2.18],
-            [GTK_VERSION="gtk+-2.0"]
-    )
 
     ;;
 esac
 
+
+# For all platforms: Use Gtk+3.0 if available; else revert to Gtk+2.0
+PKG_CHECK_MODULES([GTK],
+        [gtk+-3.0 >= 3.1],
+        [GTK_VERSION="gtk+-3.0"],
+            [PKG_CHECK_MODULES([GTK],
+                        [gtk+-2.0 >= 2.18],
+                        [GTK_VERSION="gtk+-2.0"]
+            )]                            
+)
+AC_SUBST(GTK_VERSION)
+
+
+# For all platforms: If Log4Vala is enabled, then Use Log4Vala 0.2 if available; else revert to 0.1
+if [test x$log4vala = xtrue]; then
+PKG_CHECK_MODULES([LOG4VALA],
+        [log4vala-0.2],
+        [LOG4VALA_VERSION="log4vala-0.2"],
+            [PKG_CHECK_MODULES([LOG4VALA],
+                        [log4vala-0.1],
+                        [LOG4VALA_VERSION="log4vala-0.1"]
+            )]                            
+)
+AC_SUBST(LOG4VALA_VERSION)
+fi
+
+
+# For all platforms: Use gee-0.8 if available; else revert to gee-1.0
+# (yes, gee-0.8 is an upgrade from gee-1.0!)
+PKG_CHECK_MODULES([LIB_GEE],
+        [gee-0.8 >= 0.10.5],
+        [GEE_VERSION="gee-0.8"],
+            [PKG_CHECK_MODULES([LIB_GEE],
+                        [gee-1.0 >= 0.5],
+                        [GEE_VERSION="gee-1.0"]
+            )]                            
+)
+AC_SUBST(GEE_VERSION)
+
+#enable the optional use of Log4Vala (Must have the package installed!)
+AC_ARG_ENABLE([log4vala],
+[  --enable-log4vala    Enable use of log4vala for logging],
+[case "${enableval}" in
+  yes) log4vala=true ;;
+  no)  log4vala=false ;;
+  *) AC_MSG_ERROR([bad value ${enableval} for --enable-log4vala]) ;;
+esac],[log4vala=false])
+AM_CONDITIONAL([LOG4VALA], [test x$log4vala = xtrue])
+
+
 AM_CONDITIONAL([OS_LINUX], [test "$linux" = "yes"])
 AM_CONDITIONAL([OS_WIN32], [test "$win32" = "yes"])
 AM_CONDITIONAL([OS_MACOS], [test "$macos" = "yes"])
@@ -102,9 +146,14 @@ AM_CONDITIONAL([IPC_DBUS], [test "$SERVER_IPC_MODULE" != "msrpc-glib2-1.0"])
 AM_CONDITIONAL([IPC_DBUS_GLIB], [test "$SERVER_IPC_MODULE" = "dbus-glib-1"])
 AM_CONDITIONAL([IPC_GDBUS], [test "$SERVER_IPC_MODULE" = "gio-2.0"])
 
+vala_version=`$VALAC --version | sed 's/Vala  *//'`
+AS_VERSION_COMPARE(["$vala_version"], [0.11.1],
+  [gio_vapi_uses_arrays="no"],
+  [gio_vapi_uses_arrays="yes"],
+  [gio_vapi_uses_arrays="yes"])
+AM_CONDITIONAL([GIO_VAPI_USES_ARRAYS], [test "$gio_vapi_uses_arrays" = "yes"])
 if test "$SERVER_IPC_MODULE" = "dbus-glib-1"; then
   AC_MSG_CHECKING([$VALAC is no greater than 0.12.1])
-  vala_version=`$VALAC --version | sed 's/Vala  *//'`
   AS_VERSION_COMPARE([0.12.2], ["$vala_version"],
     [vala_supports_dbus_glib="no"],
     [vala_supports_dbus_glib="no"],
@@ -213,8 +262,9 @@ PKG_CHECK_MODULES(moonshot,[
         atk >= 1.20
         glib-2.0 >= 2.22
         gobject-2.0 >= 2.22
+        libssl
         $GTK_VERSION
-        gee-1.0 >= 0.5
+        $GEE_VERSION
         $SERVER_IPC_MODULE
                $MAC
 ])