Post-release version bump
[platform/upstream/folks.git] / configure.ac
index fc7ab65..c77c047 100644 (file)
@@ -2,18 +2,18 @@
 m4_define([folks_released], [0])
 
 m4_define([folks_major_version], [0])
-m4_define([folks_minor_version], [7])
-m4_define([folks_micro_version], [4])
-m4_define([folks_nano_version], [0])
+m4_define([folks_minor_version], [9])
+m4_define([folks_micro_version], [3])
+m4_define([folks_nano_version], [1])
 
 # If library source has changed since last release, increment revision
 # If public symbols have been added, removed or changed since last release,
 #  increment current and set revision to 0
 # If public symbols have been added since last release, increment age
 # If public symbols have been removed since last release, set age to 0
-m4_define([folks_lt_current], [36])
-m4_define([folks_lt_revision], [0])
-m4_define([folks_lt_age], [11])
+m4_define([folks_lt_current], [39])
+m4_define([folks_lt_revision], [1])
+m4_define([folks_lt_age], [14])
 
 # Display the nano_version only if it's not '0'
 m4_define([folks_base_version],
@@ -53,6 +53,11 @@ LT_INIT
 PKG_PROG_PKG_CONFIG([0.21])
 GLIB_GSETTINGS
 
+# Always look for .pc files in /folks so backend support libraries can be
+# introspected properly
+PKG_CONFIG_PATH=$(pwd)/folks:$PKG_CONFIG_PATH
+AC_SUBST([PKG_CONFIG_PATH])
+
 AC_SUBST([CFLAGS])
 AC_SUBST([CPPFLAGS])
 AC_SUBST([LDFLAGS])
@@ -67,8 +72,12 @@ AC_SUBST([LT_AGE])
 FOLKS_MAJOR_MINOR_VERSION=folks_major_minor_version
 AC_SUBST([FOLKS_MAJOR_MINOR_VERSION])
 
-API_VERSION=0.6
-AC_SUBST([API_VERSION])
+API_VERSION_MAJOR=0
+AC_SUBST([API_VERSION_MAJOR])
+API_VERSION_MINOR=6
+AC_SUBST([API_VERSION_MINOR])
+API_VERSION_DOT=$API_VERSION_MAJOR.$API_VERSION_MINOR
+AC_SUBST([API_VERSION_DOT])
 
 AC_ARG_ENABLE(tracker-backend,
         AC_HELP_STRING([--enable-tracker-backend],
@@ -100,6 +109,20 @@ AS_IF([test "x$enable_eds_backend" = "xyes"], [
 
 AM_CONDITIONAL([ENABLE_EDS], [test "x$enable_eds_backend" = "xyes"])
 
+AC_ARG_ENABLE(ofono-backend,
+       AC_HELP_STRING([--enable-ofono-backend],
+                      [ build the ofono backend]),
+       enable_ofono_backend=$enableval,
+       enable_ofono_backend=yes )
+
+AS_IF([test "x$enable_ofono_backend" = "xyes"], [
+        AC_DEFINE(HAVE_OFONO, [1], [Define as 1 if you have the ofono backend])
+], [
+        AC_DEFINE(HAVE_OFONO, [0], [Define as 1 if you have the ofono backend])
+])
+
+AM_CONDITIONAL([ENABLE_OFONO], [test "x$enable_ofono_backend" = "xyes"])
+
 AC_ARG_ENABLE(telepathy-backend,
         AC_HELP_STRING([--enable-telepathy-backend],
                        [ build the Telepathy backend]),
@@ -112,7 +135,13 @@ AS_IF([test "x$enable_telepathy_backend" = "xyes"], [
         AC_DEFINE(HAVE_TELEPATHY, [0], [Define as 1 if you have the Telepathy backend])
 ])
 
-AM_CONDITIONAL([ENABLE_TELEPATHY], [test "x$enable_eds_backend" = "xyes"])
+AM_CONDITIONAL([ENABLE_TELEPATHY], [test "x$enable_telepathy_backend" = "xyes"])
+
+AC_ARG_ENABLE(zeitgeist,
+        AC_HELP_STRING([--enable-zeitgeist],
+                       [ build Zeitgeist support in the Telepathy backend]),
+        enable_zeitgeist=$enableval,
+        enable_zeitgeist=auto)
 
 # Automatically check the dependencies for the libsocialweb backend
 SW_CLIENT_REQUIRED=0.25.20
@@ -132,7 +161,7 @@ AS_IF([test "x$enable_libsocialweb_backend" != "xno"], [
           "x$enable_vala" = "xyes"], [
     VALA_CHECK_PACKAGES([telepathy-glib
                          gio-2.0
-                         gee-1.0
+                         gee-0.8
                          libsocialweb-client],
         ,
         have_libsocialweb_backend="no")
@@ -158,14 +187,15 @@ AM_CONDITIONAL([ENABLE_LIBSOCIALWEB],
 # Dependencies
 # -----------------------------------------------------------
 
-GLIB_REQUIRED=2.26.0
-VALA_REQUIRED=0.15.2
+GLIB_REQUIRED=2.32.0
+VALA_REQUIRED=0.17.6
 VALADOC_REQUIRED=0.3.1
-TRACKER_SPARQL_MAJOR=0.14
-TRACKER_SPARQL_REQUIRED=0.13.1
-EBOOK_REQUIRED=3.5.3
+TRACKER_SPARQL_MAJOR=0.16
+TRACKER_SPARQL_REQUIRED=0.15.2
+EBOOK_REQUIRED=3.8.1
 EDATASERVER_REQUIRED=3.5.3.1
-ZEITGEIST_REQUIRED=0.3.14
+ZEITGEIST_REQUIRED=0.9.14
+GEE_REQUIRED=0.8.4
 
 AC_SUBST([TRACKER_SPARQL_MAJOR])
 
@@ -174,25 +204,41 @@ PKG_CHECK_MODULES([GLIB],
                    gobject-2.0 >= $GLIB_REQUIRED])
 PKG_CHECK_MODULES([GMODULE], [gmodule-no-export-2.0])
 PKG_CHECK_MODULES([GIO], [gio-2.0 >= $GLIB_REQUIRED])
-PKG_CHECK_MODULES([DBUS_GLIB], [dbus-glib-1])
-
-# FIXME: We depend on libgee < 0.7 because 0.7 breaks API. bgo#627746
-PKG_CHECK_MODULES([GEE], [gee-1.0 < 0.7],
-                  have_gee_0_6_x="yes",
-                  have_gee_0_6_x="no")
+# FIXME: get rid of this when our dependencies stop using dbus-1 (GNOME#696177)
+PKG_CHECK_MODULES([DBUS_GLIB], [dbus-glib-1 dbus-1])
 
-AS_IF([test "x$have_gee_0_6_x" != "xyes"], [
-    AC_MSG_ERROR([
-Gee 0.6.x required but not installed.
-
-Note that Gee 0.8.x provides gee-0.8 (but gee-1.0 is, confusingly, provided by
-Gee 0.6.x)])
-])
+PKG_CHECK_MODULES([GEE], [gee-0.8 >= $GEE_REQUIRED])
 
 TP_GLIB_REQUIRED=0.19.0
+
 AS_IF([test x$enable_telepathy_backend = xyes], [
-        PKG_CHECK_MODULES([TP_GLIB], [telepathy-glib >= $TP_GLIB_REQUIRED])
-        PKG_CHECK_MODULES([ZEITGEIST], [zeitgeist-1.0 >= $ZEITGEIST_REQUIRED])
+        PKG_CHECK_MODULES([TP_GLIB], [telepathy-glib >= $TP_GLIB_REQUIRED])])
+case "x$enable_zeitgeist" in
+  xyes)
+    AS_IF([test x$enable_telepathy_backend = xyes],
+          [PKG_CHECK_MODULES([ZEITGEIST], [zeitgeist-2.0 >= $ZEITGEIST_REQUIRED],
+           ,
+           [AC_MSG_ERROR([Zeitgeist support requires Zeitgeist development package])])])
+    have_zeitgeist=yes
+    ;;
+  xauto)
+    AS_IF([test x$enable_telepathy_backend = xyes],
+          [PKG_CHECK_MODULES([ZEITGEIST], [zeitgeist-2.0 >= $ZEITGEIST_REQUIRED],
+                             have_zeitgeist="yes",have_zeitgeist="no")],
+          [have_zeitgeist=no])
+    ;;
+  xno)
+    have_zeitgeist=no
+    ;;
+  x*)
+    AC_MSG_ERROR([Unknown --enable-zeitgeist argument: $enable_zeitgeist])
+esac
+
+AS_IF([test "x$have_zeitgeist" == "xyes"], [
+   ZEITGEIST_VALAFLAGS="-D HAVE_ZEITGEIST"
+   AC_SUBST([ZEITGEIST_VALAFLAGS])
+   ZEITGEIST_PKG="--pkg zeitgeist-2.0"
+   AC_SUBST([ZEITGEIST_PKG])
 ])
 
 # Ignore post 0.20 deprecations
@@ -207,10 +253,15 @@ AS_IF([test x$enable_tracker_backend = xyes], [
 ])
 
 AS_IF([test x$enable_eds_backend = xyes], [
-        PKG_CHECK_MODULES([EBOOK], [libebook-1.2 >= $EBOOK_REQUIRED])
+        PKG_CHECK_MODULES([EBOOK], [libebook-1.2 >= $EBOOK_REQUIRED
+                                    libebook-contacts-1.2 >= $EBOOK_REQUIRED])
         PKG_CHECK_MODULES([EDATASERVER], [libedataserver-1.2 >= $EDATASERVER_REQUIRED])
 ])
 
+AS_IF([test x$enable_ofono_backend = xyes], [
+        PKG_CHECK_MODULES([EBOOK], [libebook-1.2 >= $EBOOK_REQUIRED])
+])
+
 #
 # Vala building options -- allows tarball builds without installing Vala
 #
@@ -278,16 +329,21 @@ AS_IF([test "x$enable_vala" = "xyes"], [
 
         # require GLib >= 2.24 so GLib.Array, etc. reffing is handled
         # automatically
-        VALAFLAGS="$VALAFLAGS --target-glib=2.24"
-        AC_SUBST([VALAFLAGS])
+        AM_VALAFLAGS="--target-glib=2.24"
+        # within the libfolks tree, select inline code paths
+        AM_VALAFLAGS="$AM_VALAFLAGS -D FOLKS_COMPILATION"
+        AC_SUBST([AM_VALAFLAGS])
         AC_SUBST([VAPIGENFLAGS])
         AC_SUBST([VAPIDIR])
 
         VALA_CHECK_PACKAGES([gio-2.0
-                             gee-1.0])
+                             gee-0.8])
 
         AS_IF([test x$enable_telepathy_backend = xyes], [
-          VALA_CHECK_PACKAGES([telepathy-glib zeitgeist-1.0])
+          VALA_CHECK_PACKAGES([telepathy-glib])
+         AS_IF([test "x$have_zeitgeist" == "xyes"], [
+             VALA_CHECK_PACKAGES([zeitgeist-2.0])
+         ])
         ])
 
         AS_IF([test x$enable_tracker_backend = xyes], [
@@ -295,7 +351,11 @@ AS_IF([test "x$enable_vala" = "xyes"], [
         ])
 
         AS_IF([test x$enable_eds_backend = xyes], [
-          VALA_CHECK_PACKAGES([libebook-1.2 libedataserver-1.2 libxml-2.0])
+          VALA_CHECK_PACKAGES([libebook-1.2 libebook-contacts-1.2 libedataserver-1.2 libxml-2.0])
+        ])
+
+        AS_IF([test x$enable_ofono_backend = xyes], [
+          VALA_CHECK_PACKAGES([libebook-1.2])
         ])
 ])
 
@@ -321,42 +381,6 @@ AC_DEFINE([MODULE_VERSION], "folks_module_version", [Module interface version])
 BACKEND_DIR='$(libdir)/folks/$(FOLKS_MODULE_VERSION)/backends'
 AC_SUBST([BACKEND_DIR])
 
-BACKEND_KF='$(top_builddir)/backends/key-file/.libs/key-file.so'
-AC_SUBST([BACKEND_KF])
-BACKEND_TP='$(top_builddir)/backends/telepathy/.libs/telepathy.so'
-AC_SUBST([BACKEND_TP])
-
-AS_IF([test x$have_libsocialweb_backend = xyes], [
-  BACKEND_LIBSOCIALWEB='$(top_builddir)/backends/libsocialweb/.libs/libsocialweb.so'
-  AC_SUBST([BACKEND_LIBSOCIALWEB])
-])
-
-AS_IF([test x$enable_tracker_backend = xyes], [
-  BACKEND_TRACKER='$(top_builddir)/backends/tracker/.libs/tracker.so'
-  AC_SUBST([BACKEND_TRACKER])
-])
-
-AS_IF([test x$enable_eds_backend = xyes], [
-  BACKEND_EDS='$(top_builddir)/backends/eds/.libs/eds.so'
-  AC_SUBST([BACKEND_EDS])
-])
-
-# All of the backend libraries in our tree; to be used by the tests
-BACKEND_UNINST_PATH='$(BACKEND_KF):$(BACKEND_TP)'
-AS_IF([test x$have_libsocialweb_backend = xyes], [
-  LIBSOCIALWEB_BACKEND_UNINST_PATH='$(BACKEND_LIBSOCIALWEB)'
-  BACKEND_UNINST_PATH="$BACKEND_UNINST_PATH:$LIBSOCIALWEB_BACKEND_UNINST_PATH"
-])
-AS_IF([test x$enable_tracker_backend = xyes], [
-  TRACKER_BACKEND_UNINST_PATH='$(BACKEND_TRACKER)'
-  BACKEND_UNINST_PATH="$BACKEND_UNINST_PATH:$TRACKER_BACKEND_UNINST_PATH"
-])
-AS_IF([test x$enable_eds_backend = xyes], [
-  EDS_BACKEND_UNINST_PATH='$(BACKEND_EDS)'
-  BACKEND_UNINST_PATH="$BACKEND_UNINST_PATH:$EDS_BACKEND_UNINST_PATH"
-])
-AC_SUBST([BACKEND_UNINST_PATH])
-
 # -----------------------------------------------------------
 # Tools
 # -----------------------------------------------------------
@@ -406,8 +430,6 @@ AM_CONDITIONAL([ENABLE_INSPECT_TOOL], [test "$with_inspect_tool" = "yes"])
 AC_ARG_ENABLE([tests],
               AS_HELP_STRING([--enable-tests],[Enable building of tests]),
               [enable_tests=$enableval], [enable_tests=yes])
-AS_IF([test "$enable_tests" = "yes" -a "$enable_telepathy_backend" = "no"],
-      [AC_MSG_ERROR([The Telepathy backend must be enabled to build tests])])
 AM_CONDITIONAL([ENABLE_TESTS], [test x$enable_tests = xyes])
 
 # -----------------------------------------------------------
@@ -449,7 +471,38 @@ IT_PROG_INTLTOOL([0.50.0])
 # but we need it for dbus-glib. Porting to GDBus will solve this (#653198)
 AC_DEFINE(GLIB_DISABLE_DEPRECATION_WARNINGS, 1, [Build with GLib deprecated])
 
-AS_COMPILER_FLAG([-Wall], [ERROR_CFLAGS="-Wall"], [ERROR_CFLAGS=""])
+# C_ERROR_CFLAGS are only used for C code from telepathy-glib for now,
+# while ERROR_CFLAGS are used for everything.
+
+ERROR_CFLAGS=
+
+AC_ARG_ENABLE([fatal-warnings],
+              AS_HELP_STRING([--disable-fatal-warnings],
+                             [Make various warnings non-fatal]),
+              [enable_fatal_warnings=$enableval], [enable_fatal_warnings=yes])
+
+AC_DEFUN([FOLKS_ADD_WARNING],
+  [
+    AS_COMPILER_FLAG([-Werror=$2],
+      [
+        AS_IF([test "x$enable_fatal_warnings" = xyes],
+          [$1="[$]$1 -Werror=$2"],
+         [$1="[$]$1 -W$2"])
+      ])
+  ])
+
+# It isn't 1970 any more. Require that we write proper ISO C with declarations,
+# avoiding hard-to-trace bugs on platforms where sizeof(int) != sizeof(void *).
+FOLKS_ADD_WARNING([ERROR_CFLAGS], [implicit])
+FOLKS_ADD_WARNING([ERROR_CFLAGS], [missing-declarations])
+FOLKS_ADD_WARNING([ERROR_CFLAGS], [missing-parameter-type])
+FOLKS_ADD_WARNING([ERROR_CFLAGS], [missing-prototypes])
+FOLKS_ADD_WARNING([ERROR_CFLAGS], [nested-externs])
+FOLKS_ADD_WARNING([ERROR_CFLAGS], [old-style-declaration])
+FOLKS_ADD_WARNING([ERROR_CFLAGS], [old-style-definition])
+FOLKS_ADD_WARNING([ERROR_CFLAGS], [strict-prototypes])
+
+AS_COMPILER_FLAG([-Wall], [C_ERROR_CFLAGS="-Wall"], [C_ERROR_CFLAGS=""])
 AS_COMPILER_FLAG([-Werror], [werror=yes], [werror=no])
 
 AC_ARG_ENABLE([debug],
@@ -497,7 +550,7 @@ m4_if(folks_released, [1], [],
             -a x$winit_self = xyes -a x$wformat = xyes -a \
             x$wmissing_include_dirs = xyes -a x$waggregate_return = xyes -a \
             x$wdeclaration_after_statement = xyes; then
-            ERROR_CFLAGS="$ERROR_CFLAGS -Wextra \
+            C_ERROR_CFLAGS="$C_ERROR_CFLAGS -Wextra \
                 -Wno-missing-field-initializers \
                 -Wno-unused-parameter ${flag}strict-prototypes \
                 ${flag}missing-prototypes ${flag}implicit-function-declaration \
@@ -507,17 +560,18 @@ m4_if(folks_released, [1], [],
         fi
     ])
 
-AS_COMPILER_FLAG([-D_POSIX_SOURCE], [ERROR_CFLAGS="$ERROR_CFLAGS -D_POSIX_SOURCE"])
-AS_COMPILER_FLAG([-std=c99], [ERROR_CFLAGS="$ERROR_CFLAGS -std=c99"])
-AS_COMPILER_FLAG([-Wshadow], [ERROR_CFLAGS="$ERROR_CFLAGS -Wshadow"])
-AS_COMPILER_FLAG([-Wmissing-prototypes], [ERROR_CFLAGS="$ERROR_CFLAGS \
+AS_COMPILER_FLAG([-D_POSIX_SOURCE], [C_ERROR_CFLAGS="$C_ERROR_CFLAGS -D_POSIX_SOURCE"])
+AS_COMPILER_FLAG([-std=c99], [C_ERROR_CFLAGS="$C_ERROR_CFLAGS -std=c99"])
+AS_COMPILER_FLAG([-Wshadow], [C_ERROR_CFLAGS="$C_ERROR_CFLAGS -Wshadow"])
+AS_COMPILER_FLAG([-Wmissing-prototypes], [C_ERROR_CFLAGS="$C_ERROR_CFLAGS \
                                           -Wmissing-prototypes"])
-AS_COMPILER_FLAG([-Wmissing-declarations], [ERROR_CFLAGS="$ERROR_CFLAGS \
+AS_COMPILER_FLAG([-Wmissing-declarations], [C_ERROR_CFLAGS="$C_ERROR_CFLAGS \
                                             -Wmissing-declarations"])
-AS_COMPILER_FLAG([-Wstrict-prototypes], [ERROR_CFLAGS="$ERROR_CFLAGS \
+AS_COMPILER_FLAG([-Wstrict-prototypes], [C_ERROR_CFLAGS="$C_ERROR_CFLAGS \
                                          -Wstrict-prototypes"])
 
 AC_SUBST([ERROR_CFLAGS])
+AC_SUBST([C_ERROR_CFLAGS])
 
 # -----------------------------------------------------------
 # Code coverage flags
@@ -543,10 +597,6 @@ AC_SUBST([CODE_COVERAGE_CFLAGS])
 AC_SUBST([CODE_COVERAGE_LDFLAGS])
 
 # Vala-related flags
-AC_ARG_ENABLE([fatal-warnings],
-              AS_HELP_STRING([--disable-fatal-warnings],
-                             [Make warnings from valac and g-ir-scanner non-fatal]),
-              [enable_fatal_warnings=$enableval], [enable_fatal_warnings=yes])
 AS_IF([test "x$enable_vala" = "xyes" && test "x$enable_fatal_warnings" = "xyes"],
       [ERROR_INTROSPECTION_SCANNER_ARGS="\
                         $ERROR_INTROSPECTION_SCANNER_ARGS --warn-error"
@@ -605,6 +655,7 @@ AC_CONFIG_FILES([
     backends/tracker/lib/Makefile
     backends/eds/Makefile
     backends/eds/lib/Makefile
+    backends/ofono/Makefile
     folks/Makefile
     docs/Makefile
     po/Makefile.in
@@ -621,11 +672,9 @@ AC_CONFIG_FILES([
     tests/lib/eds/Makefile
     tests/lib/key-file/Makefile
     tests/lib/libsocialweb/Makefile
-    tests/lib/libsocialweb/session.conf
     tests/lib/telepathy/Makefile
     tests/lib/tracker/Makefile
     tests/lib/telepathy/contactlist/Makefile
-    tests/lib/telepathy/contactlist/session.conf
     tests/tools/Makefile
     tools/Makefile
     tools/inspect/Makefile
@@ -649,5 +698,7 @@ Configure summary:
         Tracker backend.............:  ${enable_tracker_backend}
         Libsocialweb backend........:  ${have_libsocialweb_backend}
         E-D-S backend...............:  ${enable_eds_backend}
+        Ofono backend...............:  ${enable_ofono_backend}
+        Zeitgeist support...........:  ${have_zeitgeist}
         Build tests.................:  ${enable_tests}
 "