# If not 1, append datestamp to the version number
-m4_define([folks_released], [0])
+m4_define([folks_released], [1])
m4_define([folks_major_version], [0])
-m4_define([folks_minor_version], [6])
+m4_define([folks_minor_version], [7])
m4_define([folks_micro_version], [1])
-m4_define([folks_nano_version], [1])
+m4_define([folks_nano_version], [0])
# If library source has changed since last release, increment revision
-# If interfaces have been added, removed or changed since last release,
+# If public symbols have been added, removed or changed since last release,
# increment current and set revision to 0
-# If interfaces have been added since last release, increment age
-# If interfaces have been removed since last release, set age to 0
-m4_define([folks_lt_current], [25])
-m4_define([folks_lt_revision], [1])
-m4_define([folks_lt_age], [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], [34])
+m4_define([folks_lt_revision], [0])
+m4_define([folks_lt_age], [9])
# Display the nano_version only if it's not '0'
m4_define([folks_base_version],
AC_CONFIG_SRCDIR([configure.ac])
AM_INIT_AUTOMAKE([1.11 dist-bzip2 no-define
no-dist-gzip tar-ustar -Wno-portability])
-AM_MAINTAINER_MODE
+AM_MAINTAINER_MODE([enable])
AC_PROG_CC
AM_PROG_CC_C_O
AC_DISABLE_STATIC
LT_INIT
PKG_PROG_PKG_CONFIG([0.21])
+GLIB_GSETTINGS
AC_SUBST([CFLAGS])
AC_SUBST([CPPFLAGS])
AM_CONDITIONAL([ENABLE_TRACKER], [test "x$enable_tracker_backend" = "xyes"])
+if test "x$enable_tracker_backend" = "xyes"; then
+ AC_DEFINE(HAVE_TRACKER, [1],
+ [Define as 1 if you have the Tracker backend])
+else
+ AC_DEFINE(HAVE_TRACKER, [0],
+ [Define as 1 if you have the Tracker backend])
+fi
+
AC_ARG_ENABLE(eds-backend,
AC_HELP_STRING([--enable-eds-backend],
[ build the E-D-S backend]),
enable_eds_backend=$enableval,
enable_eds_backend=yes )
+if test "x$enable_eds_backend" = "xyes"; then
+ AC_DEFINE(HAVE_EDS, [1], [Define as 1 if you have the eds backend])
+else
+ AC_DEFINE(HAVE_EDS, [0], [Define as 1 if you have the eds backend])
+fi
+
+
AM_CONDITIONAL([ENABLE_EDS], [test "x$enable_eds_backend" = "xyes"])
+
+AC_ARG_ENABLE(zeitgeist,
+ AC_HELP_STRING([--enable-zeitgeist],
+ [ build the Zeitgeist]),
+ enable_zeitgeist=$enableval,
+ enable_zeitgeist=no )
+
+AM_CONDITIONAL([ENABLE_ZEITGEIST], [test "x$enable_zeitgeist" = "xyes"])
+
+if test "x$enable_zeitgeist" = "xyes"; then
+ AC_DEFINE(HAVE_ZEITGEIST, [1],
+ [Define as 1 if you have the Zeitgeist support])
+else
+ AC_DEFINE(HAVE_ZEITGEIST, [0],
+ [Define as 1 if you have the Zeitgeist support])
+fi
+
+
# Automatically check the dependencies for the libsocialweb backend
-SW_CLIENT_REQUIRED=0.25.15
+SW_CLIENT_REQUIRED=0.25.20
AC_ARG_ENABLE(libsocialweb-backend,
AC_HELP_STRING([--enable-libsocialweb-backend=@<:@no/yes/auto@:>@],
[build the Libsocialweb backend (default: auto)]),
enable_libsocialweb_backend=$enableval,
enable_libsocialweb_backend=auto )
+# this may be overwritten farther down
+AC_DEFINE(HAVE_LIBSOCIALWEB, [0],
+ [Define as 1 if you have the libsocialweb backend])
if test "x$enable_libsocialweb_backend" != "xno"; then
PKG_CHECK_MODULES([SW_CLIENT], [libsocialweb-client >= $SW_CLIENT_REQUIRED],
have_libsocialweb_backend="yes", have_libsocialweb_backend="no")
fi
if test "x$have_libsocialweb_backend" = "xyes"; then
- AC_DEFINE(HAVE_LIBSOCIALWEB, [],
+ AC_DEFINE(HAVE_LIBSOCIALWEB, [1],
[Define if you have the libsocialweb backend])
fi
else
# Dependencies
# -----------------------------------------------------------
-GLIB_REQUIRED=2.24.0
-TP_GLIB_REQUIRED=0.13.1
-VALA_REQUIRED=0.13.3
+GLIB_REQUIRED=2.26.0
+VALA_REQUIRED=0.15.2
VALADOC_REQUIRED=0.3.1
-TRACKER_SPARQL_REQUIRED=0.10
-TRACKER_SPARQL_NEWER_VER=0.10.6
-GCONF2_REQUIRED=2.31
-EBOOK_REQUIRED=3.1.5
-EDATASERVER_REQUIRED=3.1.5
+TRACKER_SPARQL_MAJOR=0.14
+TRACKER_SPARQL_REQUIRED=0.13.1
+EBOOK_REQUIRED=3.5.3
+EDATASERVER_REQUIRED=3.5.3
+ZEITGEIST_REQUIRED=0.3.14
+
+AC_SUBST([TRACKER_SPARQL_MAJOR])
PKG_CHECK_MODULES([GLIB],
[glib-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])
-PKG_CHECK_MODULES([GCONF2], [gconf-2.0 >= $GCONF2_REQUIRED])
# FIXME: We depend on libgee < 0.7 because 0.7 breaks API. bgo#627746
-PKG_CHECK_MODULES([GEE], [gee-1.0 < 0.7])
+PKG_CHECK_MODULES([GEE], [gee-1.0 < 0.7],
+ have_gee_0_6_x="yes",
+ have_gee_0_6_x="no")
+
+if test "x$have_gee_0_6_x" != "xyes"; then
+ 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)])
+fi
+
+TP_GLIB_REQUIRED=0.19.0
PKG_CHECK_MODULES([TP_GLIB], [telepathy-glib >= $TP_GLIB_REQUIRED])
+# Ignore post 0.20 deprecations
+TP_GLIB_CFLAGS="$TP_GLIB_CFLAGS -DTP_VERSION_MIN_REQUIRED=TP_VERSION_0_20"
+# Prevent post 0.20 APIs
+TP_GLIB_CFLAGS="$TP_GLIB_CFLAGS -DTP_VERSION_MAX_ALLOWED=TP_VERSION_0_20"
+
if test x$enable_tracker_backend = xyes; then
- # Starting Tracker 0.10.6, the GLib.SpawnError is exception is thrown
- # when calling Tracker.Sparql.Connection.get (). So we need to test
- # for the installed version and catch or not the exception, accordingly.
PKG_CHECK_MODULES([TRACKER_SPARQL],
- [tracker-sparql-0.10 >= $TRACKER_SPARQL_NEWER_VER],
- [AM_CONDITIONAL(HAVE_NEW_TRACKER, [ test 1 == 1 ])],
- [PKG_CHECK_MODULES([TRACKER_SPARQL],
- [tracker-sparql-0.10 >= $TRACKER_SPARQL_REQUIRED],
- [AM_CONDITIONAL(HAVE_NEW_TRACKER, [ test 0 == 1 ])])]
- )
+ [tracker-sparql-$TRACKER_SPARQL_MAJOR >= \
+ $TRACKER_SPARQL_REQUIRED])
fi
if test x$enable_eds_backend = xyes; then
PKG_CHECK_MODULES([EDATASERVER], [libedataserver-1.2 >= $EDATASERVER_REQUIRED])
fi
+if test x$enable_zeitgeist = xyes; then
+ PKG_CHECK_MODULES([ZEITGEIST], [zeitgeist-1.0 >= $ZEITGEIST_REQUIRED])
+fi
+
#
# Vala building options -- allows tarball builds without installing Vala
#
! -e ${sd}backends/telepathy/lib/tp-lowlevel.gir -o \
! -e ${sd}backends/telepathy/lib/tp-lowlevel.vapi -o \
! -e ${sd}backends/telepathy/lib/libfolks_telepathy_la_vala.stamp -o \
+ ! -e ${sd}folks/folks-internal.h -o \
+ ! -e ${sd}folks/folks-internal.vapi -o \
+ ! -e ${sd}folks/libfolks_internal_la_vala.stamp -o \
! -e ${sd}folks/folks.vapi -o \
! -e ${sd}folks/libfolks_la_vala.stamp ; then
enable_vala=yes
gee-1.0])
if test x$enable_tracker_backend = xyes; then
- VALA_CHECK_PACKAGES([tracker-sparql-0.10])
+ VALA_CHECK_PACKAGES([tracker-sparql-$TRACKER_SPARQL_MAJOR])
fi
if test x$enable_eds_backend = xyes; then
VALA_CHECK_PACKAGES([libebook-1.2 libedataserver-1.2 libxml-2.0])
fi
+
+ if test x$enable_zeitgeist = xyes; then
+ VALA_CHECK_PACKAGES([zeitgeist-1.0])
+ fi
+
fi
# this will set HAVE_INTROSPECTION
-GOBJECT_INTROSPECTION_REQUIRE([0.9.12])
+GOBJECT_INTROSPECTION_REQUIRE([1.30])
AM_CONDITIONAL([HAVE_VALA], [test "x$enable_vala" = "xyes"])
AC_SUBST([BACKEND_KF])
BACKEND_TP='$(top_builddir)/backends/telepathy/.libs/telepathy.so'
AC_SUBST([BACKEND_TP])
-BACKEND_EDS='$(top_builddir)/backends/eds/.libs/eds.so'
-AC_SUBST([BACKEND_EDS])
if test x$have_libsocialweb_backend = xyes; then
BACKEND_LIBSOCIALWEB='$(top_builddir)/backends/libsocialweb/.libs/libsocialweb.so'
GETTEXT_PACKAGE=AC_PACKAGE_NAME
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, ["$GETTEXT_PACKAGE"], [Define the gettext package to be used])
-IT_PROG_INTLTOOL([0.35.0])
+IT_PROG_INTLTOOL([0.50.0])
# -----------------------------------------------------------
# Error flags
# -----------------------------------------------------------
+# Disable GLib deprecation warnings for now (#670196); GValueArray is deprecated
+# 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=""])
AS_COMPILER_FLAG([-Werror], [werror=yes], [werror=no])
AC_SUBST([ERROR_CFLAGS])
+# -----------------------------------------------------------
+# Code coverage flags
+# -----------------------------------------------------------
+
+AC_ARG_ENABLE([code-coverage],
+ AS_HELP_STRING([--enable-code-coverage],
+ [compile with code coverage code]),
+ [enable_code_coverage=$enableval], [enable_code_coverage=no])
+
+# Only enable code coverage if this isn't a release.
+m4_if(folks_released, [1], [],
+ [
+ if test "x$GCC" = "xyes"; then
+ if test "x$enable_code_coverage" = "xyes"; then
+ CODE_COVERAGE_CFLAGS="-fprofile-arcs -ftest-coverage -O0 -ggdb"
+ CODE_COVERAGE_LDFLAGS="-lgcov"
+ fi
+ fi
+ ])
+
+AC_SUBST([CODE_COVERAGE_CFLAGS])
+AC_SUBST([CODE_COVERAGE_LDFLAGS])
+
# Vala-related flags
-AS_IF([test "x$enable_vala" = "xyes"],
+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"
ERROR_VALAFLAGS="$ERROR_VALAFLAGS --fatal-warnings"])
+# Disable -g if we're building with code coverage enabled, since Vala's
+# insertion of #line directives into .c files confuses lcov. For the moment,
+# we'll have to do with looking at code coverage of the generated C files only.
+# We set the debug flags in CODE_COVERAGE_CFLAGS instead in that case.
m4_if(folks_released, [1], [],
[
- ERROR_VALAFLAGS="$ERROR_VALAFLAGS -g"
+ if test "x$enable_code_coverage" != "xyes" -o "x$GCC" != "xyes"; then
+ ERROR_VALAFLAGS="$ERROR_VALAFLAGS -g"
+ fi
])
AC_SUBST([ERROR_INTROSPECTION_SCANNER_ARGS])
# Final output
# -----------------------------------------------------------
+# FIXME: We can't remove gconf.path until bgo#635379 is fixed, since we need to
+# safely contain EDS' use of GConf for the EDS backend tests.
+# Note that our use of gconf.path doesn't actually need GConf to be installed,
+# though, so it's not a hard dependency of folks.
+
AC_CONFIG_FILES([
backends/telepathy/lib/folks-telepathy.pc
backends/telepathy/lib/folks-telepathy-uninstalled.pc
+ backends/tracker/lib/folks-tracker.deps
backends/tracker/lib/folks-tracker.pc
backends/tracker/lib/folks-tracker-uninstalled.pc
backends/eds/lib/folks-eds.pc
backends/eds/lib/folks-eds-uninstalled.pc
folks/folks.pc
folks/folks-uninstalled.pc
+ folks/org.freedesktop.folks.gschema.xml
Makefile
backends/Makefile
backends/key-file/Makefile
Vala........................: ${enable_vala}
Vala Compiler...............: ${VALAC}
- C Compiler Flags............: ${CFLAGS} ${ERROR_CFLAGS}
+ C Compiler Flags............: ${CFLAGS} ${ERROR_CFLAGS} ${CODE_COVERAGE_CFLAGS}
+ Linker Flags................: ${LDFLAGS} ${CODE_COVERAGE_LDFLAGS}
Prefix......................: ${prefix}
Bugreporting URL............: ${PACKAGE_BUGREPORT}
Documentation...............: ${have_valadoc}
Tracker backend.............: ${enable_tracker_backend}
Libsocialweb backend........: ${have_libsocialweb_backend}
E-D-S backend...............: ${enable_eds_backend}
+ Zeitgeist support...........: ${enable_zeitgeist}
"