1 # If not 1, append datestamp to the version number
2 m4_define([folks_released], [1])
4 m4_define([folks_major_version], [0])
5 m4_define([folks_minor_version], [6])
6 m4_define([folks_micro_version], [3])
7 m4_define([folks_nano_version], [1])
9 # If library source has changed since last release, increment revision
10 # If interfaces have been added, removed or changed since last release,
11 # increment current and set revision to 0
12 # If interfaces have been added since last release, increment age
13 # If interfaces have been removed since last release, set age to 0
14 m4_define([folks_lt_current], [27])
15 m4_define([folks_lt_revision], [1])
16 m4_define([folks_lt_age], [2])
18 # Display the nano_version only if it's not '0'
19 m4_define([folks_base_version],
20 folks_major_version.folks_minor_version.folks_micro_version)
21 m4_define([folks_full_version],
22 [m4_if(folks_nano_version, [0],
23 folks_base_version, folks_base_version.folks_nano_version)])
25 m4_define([folks_maybe_datestamp],
26 m4_if(folks_released, [1],
27 [], [m4_esyscmd([date +.%Y%m%d | tr -d '\n\r'])]))
29 m4_define([folks_version], folks_full_version[]folks_maybe_datestamp)
30 m4_define([folks_major_minor_version], folks_major_version.folks_minor_version)
31 m4_define([folks_module_version], folks_lt_current)
33 AC_INIT([folks], folks_version,
34 [https://bugzilla.gnome.org/browse.cgi?product=folks], [folks],
35 [http://telepathy.freedesktop.org/wiki/Folks])
36 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
39 AC_COPYRIGHT([Copyright (C) 2010 Collabora Ltd.])
41 AC_CONFIG_MACRO_DIR([m4])
42 AC_CONFIG_SRCDIR([Makefile.am])
43 AC_CONFIG_HEADERS(config.h)
44 AC_CONFIG_SRCDIR([configure.ac])
45 AM_INIT_AUTOMAKE([1.11 dist-bzip2 no-define
46 no-dist-gzip tar-ustar -Wno-portability])
47 AM_MAINTAINER_MODE([enable])
53 PKG_PROG_PKG_CONFIG([0.21])
59 LT_CURRENT=folks_lt_current
60 LT_REVISION=folks_lt_revision
62 AC_SUBST([LT_CURRENT])
63 AC_SUBST([LT_REVISION])
66 FOLKS_MAJOR_MINOR_VERSION=folks_major_minor_version
67 AC_SUBST([FOLKS_MAJOR_MINOR_VERSION])
70 AC_SUBST([API_VERSION])
72 AC_ARG_ENABLE(tracker-backend,
73 AC_HELP_STRING([--enable-tracker-backend],
74 [ build the Tracker backend]),
75 enable_tracker_backend=$enableval,
76 enable_tracker_backend=no )
78 AM_CONDITIONAL([ENABLE_TRACKER], [test "x$enable_tracker_backend" = "xyes"])
80 AC_ARG_ENABLE(eds-backend,
81 AC_HELP_STRING([--enable-eds-backend],
82 [ build the E-D-S backend]),
83 enable_eds_backend=$enableval,
84 enable_eds_backend=yes )
86 AM_CONDITIONAL([ENABLE_EDS], [test "x$enable_eds_backend" = "xyes"])
88 # Automatically check the dependencies for the libsocialweb backend
89 SW_CLIENT_REQUIRED=0.25.15
90 AC_ARG_ENABLE(libsocialweb-backend,
91 AC_HELP_STRING([--enable-libsocialweb-backend=@<:@no/yes/auto@:>@],
92 [build the Libsocialweb backend (default: auto)]),
93 enable_libsocialweb_backend=$enableval,
94 enable_libsocialweb_backend=auto )
96 if test "x$enable_libsocialweb_backend" != "xno"; then
97 PKG_CHECK_MODULES([SW_CLIENT], [libsocialweb-client >= $SW_CLIENT_REQUIRED],
98 have_libsocialweb_backend="yes", have_libsocialweb_backend="no")
99 if test "x$have_libsocialweb_backend" = "xyes" -a \
100 "x$enable_vala" = "xyes"; then
101 VALA_CHECK_PACKAGES([telepathy-glib
104 libsocialweb-client],
106 have_libsocialweb_backend="no")
109 if test "x$have_libsocialweb_backend" = "xyes"; then
110 AC_DEFINE(HAVE_LIBSOCIALWEB, [],
111 [Define if you have the libsocialweb backend])
114 have_libsocialweb_backend=no
117 if test "x$enable_libsocialweb_backend" = "xyes" -a \
118 "x$have_libsocialweb_backend" != "xyes"; then
119 AC_MSG_ERROR([Cannot find libsocialweb dependencies.])
122 AM_CONDITIONAL([ENABLE_LIBSOCIALWEB],
123 [test "x$have_libsocialweb_backend" = "xyes"])
125 # -----------------------------------------------------------
127 # -----------------------------------------------------------
130 TP_GLIB_REQUIRED=0.13.1
132 VALADOC_REQUIRED=0.3.1
133 TRACKER_SPARQL_REQUIRED=0.10
134 TRACKER_SPARQL_NEWER_VER=0.10.6
137 EDATASERVER_REQUIRED=3.1.5
139 PKG_CHECK_MODULES([GLIB],
140 [glib-2.0 >= $GLIB_REQUIRED
141 gobject-2.0 >= $GLIB_REQUIRED])
142 PKG_CHECK_MODULES([GMODULE], [gmodule-no-export-2.0])
143 PKG_CHECK_MODULES([GIO], [gio-2.0 >= $GLIB_REQUIRED])
144 PKG_CHECK_MODULES([DBUS_GLIB], [dbus-glib-1])
145 PKG_CHECK_MODULES([GCONF2], [gconf-2.0 >= $GCONF2_REQUIRED])
147 # FIXME: We depend on libgee < 0.7 because 0.7 breaks API. bgo#627746
148 PKG_CHECK_MODULES([GEE], [gee-1.0 < 0.7])
149 PKG_CHECK_MODULES([TP_GLIB], [telepathy-glib >= $TP_GLIB_REQUIRED])
151 if test x$enable_tracker_backend = xyes; then
152 # Starting Tracker 0.10.6, the GLib.SpawnError is exception is thrown
153 # when calling Tracker.Sparql.Connection.get (). So we need to test
154 # for the installed version and catch or not the exception, accordingly.
155 PKG_CHECK_MODULES([TRACKER_SPARQL],
156 [tracker-sparql-0.10 >= $TRACKER_SPARQL_NEWER_VER],
157 [AM_CONDITIONAL(HAVE_NEW_TRACKER, [ test 1 == 1 ])],
158 [PKG_CHECK_MODULES([TRACKER_SPARQL],
159 [tracker-sparql-0.10 >= $TRACKER_SPARQL_REQUIRED],
160 [AM_CONDITIONAL(HAVE_NEW_TRACKER, [ test 0 == 1 ])])]
163 AM_CONDITIONAL(HAVE_NEW_TRACKER, [ test 0 == 1 ])
166 if test x$enable_eds_backend = xyes; then
167 PKG_CHECK_MODULES([EBOOK], [libebook-1.2 >= $EBOOK_REQUIRED])
168 PKG_CHECK_MODULES([EDATASERVER], [libedataserver-1.2 >= $EDATASERVER_REQUIRED])
172 # Vala building options -- allows tarball builds without installing Vala
174 AC_ARG_ENABLE([vala],
175 AS_HELP_STRING([--enable-vala],
176 [Enable building from the Vala sources]),
177 [enable_vala=$enableval],
180 # will be re-set as necessary below
181 AM_CONDITIONAL([HAVE_INTROSPECTION], [test "x$enable_vala" = "xyes"])
184 # Force Vala for non-release builds
185 m4_if(folks_released, [1], [],
188 echo "Vala compiler required for non-release builds; requiring Vala..."
191 # Force Vala if generated source is missing or outdated
193 ! -e ${sd}tools/folks_import_vala.stamp -o \
194 ! -e ${sd}tests/folks/abstract_field_details_vala.stamp -o \
195 ! -e ${sd}tests/folks/aggregation_vala.stamp -o \
196 ! -e ${sd}tests/folks/backend_loading_vala.stamp -o \
197 ! -e ${sd}tests/key-file/individual_retrieval_vala.stamp -o \
198 ! -e ${sd}tests/lib/folks-test.vapi -o \
199 ! -e ${sd}tests/lib/key-file/kf-test.vapi -o \
200 ! -e ${sd}tests/lib/key-file/libkf_test_la_vala.stamp -o \
201 ! -e ${sd}tests/lib/telepathy/contactlist/tp-test-contactlist.gir -o \
202 ! -e ${sd}tests/lib/telepathy/contactlist/tp-test-contactlist.vapi -o \
203 ! -e ${sd}tests/lib/libfolks_test_la_vala.stamp -o \
204 ! -e ${sd}tests/telepathy/persona_store_capabilities_vala.stamp -o \
205 ! -e ${sd}tests/telepathy/individual_retrieval_vala.stamp -o \
206 ! -e ${sd}tests/telepathy/individual_properties_vala.stamp -o \
207 ! -e ${sd}tests/folks/backend_loading_vala.stamp -o \
208 ! -e ${sd}backends/key-file/key_file_la_vala.stamp -o \
209 ! -e ${sd}backends/telepathy/telepathy_la_vala.stamp \
211 ! -e ${sd}backends/telepathy/lib/folks-telepathy.vapi -o \
212 ! -e ${sd}backends/telepathy/lib/tp-lowlevel.gir -o \
213 ! -e ${sd}backends/telepathy/lib/tp-lowlevel.vapi -o \
214 ! -e ${sd}backends/telepathy/lib/libfolks_telepathy_la_vala.stamp -o \
215 ! -e ${sd}folks/folks.vapi -o \
216 ! -e ${sd}folks/libfolks_la_vala.stamp ; then
218 echo "Vala source needs to be re-compiled; requiring Vala..."
221 if test "x$enable_vala" = "xyes" ; then
222 AM_PROG_VALAC([$VALA_REQUIRED])
223 if test "x$VALAC" = "x"; then
224 AC_MSG_ERROR([Vala requested but valac is not installed])
227 AC_PATH_PROG([VAPIGEN], [vapigen], [])
228 if test "x$VAPIGEN" = "x"; then
229 AC_MSG_ERROR([Vala must be built with --enable-vapigen])
232 # require GLib >= 2.24 so GLib.Array, etc. reffing is handled
234 VALAFLAGS="$VALAFLAGS --target-glib=2.24"
235 AC_SUBST([VALAFLAGS])
236 AC_SUBST([VAPIGENFLAGS])
239 VALA_CHECK_PACKAGES([telepathy-glib
243 if test x$enable_tracker_backend = xyes; then
244 VALA_CHECK_PACKAGES([tracker-sparql-0.10])
247 if test x$enable_eds_backend = xyes; then
248 VALA_CHECK_PACKAGES([libebook-1.2 libedataserver-1.2 libxml-2.0])
252 # this will set HAVE_INTROSPECTION
253 GOBJECT_INTROSPECTION_REQUIRE([0.9.12])
255 AM_CONDITIONAL([HAVE_VALA], [test "x$enable_vala" = "xyes"])
257 # Various functions that we need (used in C code generated from Vala)
258 AC_CHECK_FUNCS([memset])
259 AC_CHECK_FUNCS([strstr])
261 # -----------------------------------------------------------
263 # -----------------------------------------------------------
265 FOLKS_MODULE_VERSION=folks_module_version
266 AC_SUBST([FOLKS_MODULE_VERSION])
267 AC_DEFINE([MODULE_VERSION], "folks_module_version", [Module interface version])
269 BACKEND_DIR='$(libdir)/folks/$(FOLKS_MODULE_VERSION)/backends'
270 AC_SUBST([BACKEND_DIR])
272 BACKEND_KF='$(top_builddir)/backends/key-file/.libs/key-file.so'
273 AC_SUBST([BACKEND_KF])
274 BACKEND_TP='$(top_builddir)/backends/telepathy/.libs/telepathy.so'
275 AC_SUBST([BACKEND_TP])
277 if test x$have_libsocialweb_backend = xyes; then
278 BACKEND_LIBSOCIALWEB='$(top_builddir)/backends/libsocialweb/.libs/libsocialweb.so'
279 AC_SUBST([BACKEND_LIBSOCIALWEB])
282 if test x$enable_tracker_backend = xyes; then
283 BACKEND_TRACKER='$(top_builddir)/backends/tracker/.libs/tracker.so'
284 AC_SUBST([BACKEND_TRACKER])
287 if test x$enable_eds_backend = xyes; then
288 BACKEND_EDS='$(top_builddir)/backends/eds/.libs/eds.so'
289 AC_SUBST([BACKEND_EDS])
292 # All of the backend libraries in our tree; to be used by the tests
293 BACKEND_UNINST_PATH='$(BACKEND_KF):$(BACKEND_TP)'
294 if test x$have_libsocialweb_backend = xyes; then
295 LIBSOCIALWEB_BACKEND_UNINST_PATH='$(BACKEND_LIBSOCIALWEB)'
296 BACKEND_UNINST_PATH="$BACKEND_UNINST_PATH:$LIBSOCIALWEB_BACKEND_UNINST_PATH"
298 if test x$enable_tracker_backend = xyes; then
299 TRACKER_BACKEND_UNINST_PATH='$(BACKEND_TRACKER)'
300 BACKEND_UNINST_PATH="$BACKEND_UNINST_PATH:$TRACKER_BACKEND_UNINST_PATH"
302 if test x$enable_eds_backend = xyes; then
303 EDS_BACKEND_UNINST_PATH='$(BACKEND_EDS)'
304 BACKEND_UNINST_PATH="$BACKEND_UNINST_PATH:$EDS_BACKEND_UNINST_PATH"
306 AC_SUBST([BACKEND_UNINST_PATH])
308 # -----------------------------------------------------------
310 # -----------------------------------------------------------
312 AC_ARG_ENABLE([import-tool],
313 AS_HELP_STRING([--enable-import-tool],
314 [Enable building the meta-contact import tool]),
315 [enable_import_tool=$enableval with_import_tool=$enableval],
316 [enable_import_tool=maybe with_import_tool=no])
317 AS_IF([test "$enable_import_tool" != "no"],
318 [PKG_CHECK_MODULES([LIBXML], [libxml-2.0],
319 [with_import_tool=yes], [with_import_tool=no])])
320 AS_IF([test "$enable_import_tool" = "yes" -a "$with_import_tool" = "no"],
321 [AC_MSG_ERROR([Import tool explicitly enabled, but libxml2 not found])])
322 AM_CONDITIONAL([ENABLE_IMPORT_TOOL], [test "$with_import_tool" = "yes"])
324 # Readline's required for the folks-inspect program
325 AC_ARG_ENABLE([inspect-tool],
326 AS_HELP_STRING([--enable-inspect-tool],
327 [Enable building the data inspection tool]),
328 [enable_inspect_tool=$enableval with_inspect_tool=$enableval],
329 [enable_inspect_tool=maybe with_inspect_tool=no])
330 AS_IF([test "$enable_inspect_tool" = "yes" -a "$enable_vala" != "yes"],
331 [AC_MSG_ERROR([Inspect tool explicitly enabled, but Vala wasn't enabled \
332 using --enable-vala])])
333 AS_IF([test "$enable_inspect_tool" = "maybe" -a "$enable_vala" != "yes"],
334 [AC_MSG_NOTICE([Inspect tool disabled, as Vala wasn't enabled using \
336 AS_IF([test "$enable_inspect_tool" != "no" -a "x$enable_vala" = "xyes"],
337 [AC_CHECK_LIB([readline], [main],
338 [with_inspect_tool=yes], [with_inspect_tool=no],
340 AS_IF([test "$enable_inspect_tool" != "no" -a "$with_inspect_tool" = "yes" -a \
341 "x$enable_vala" = "xyes"],
342 [VALA_CHECK_PACKAGES([readline])
343 LIBREADLINE="-lreadline -lncurses"
344 AC_DEFINE([HAVE_LIBREADLINE], [1], [Define if you have libreadline])
345 AC_SUBST([LIBREADLINE])])
346 AS_IF([test "$enable_inspect_tool" = "yes" -a "$with_inspect_tool" = "no"],
347 [AC_MSG_ERROR([Inspect tool explicitly enabled, but readline not found])])
348 AM_CONDITIONAL([ENABLE_INSPECT_TOOL], [test "$with_inspect_tool" = "yes"])
350 # -----------------------------------------------------------
352 # -----------------------------------------------------------
354 AC_ARG_ENABLE([docs],
355 AS_HELP_STRING([--enable-docs],[Enable documentation generation]),
356 [enable_docs=$enableval], [enable_docs=no])
357 AM_CONDITIONAL([ENABLE_DOCS], [test x$enable_docs = xyes])
360 if test x$enable_docs = xyes; then
361 # make sure the library is new enough and the program exists
362 PKG_CHECK_MODULES([VALADOC], [valadoc-1.0 >= $VALADOC_REQUIRED])
363 AC_PATH_PROG([VALADOC], [valadoc], [:])
364 AS_IF([test "$VALADOC" != :], have_valadoc=yes)
366 AM_CONDITIONAL([HAVE_VALADOC], [test x$have_valadoc = xyes])
368 if test "x$enable_docs" = "xyes" -a "x$have_valadoc" != "xyes"; then
369 AC_MSG_ERROR([Doc building requested but valadoc not installed.])
372 # -----------------------------------------------------------
374 # -----------------------------------------------------------
376 GETTEXT_PACKAGE=AC_PACKAGE_NAME
377 AC_SUBST(GETTEXT_PACKAGE)
378 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, ["$GETTEXT_PACKAGE"], [Define the gettext package to be used])
379 IT_PROG_INTLTOOL([0.35.0])
381 # -----------------------------------------------------------
383 # -----------------------------------------------------------
385 AS_COMPILER_FLAG([-Wall], [ERROR_CFLAGS="-Wall"], [ERROR_CFLAGS=""])
386 AS_COMPILER_FLAG([-Werror], [werror=yes], [werror=no])
388 AC_ARG_ENABLE([debug],
389 AS_HELP_STRING([--disable-debug],[compile without debug code]),
390 [enable_debug=$enableval], [enable_debug=yes])
392 AC_ARG_ENABLE([Werror],
393 AS_HELP_STRING([--disable-Werror],
394 [compile without -Werror (normally enabled in
395 development builds)]),
396 [werror=$enableval], [werror=yes])
398 AS_COMPILER_FLAG([-Wextra], [wextra=yes], [wextra=no])
399 AS_COMPILER_FLAG([-Wno-missing-field-initializers],
400 [wno_missing_field_initializers=yes],
401 [wno_missing_field_initializers=no])
402 AS_COMPILER_FLAG([-Wno-unused-parameter],
403 [wno_unused_parameter=yes], [wno_unused_parameter=no])
405 m4_if(folks_released, [1], [],
407 if test x$werror = xyes; then
408 ERROR_CFLAGS="$ERROR_CFLAGS -Werror"
410 if test x$wextra = xyes -a \
411 x$wno_missing_field_initializers = xyes -a \
412 x$wno_unused_parameter = xyes; then
413 ERROR_CFLAGS="$ERROR_CFLAGS -Wextra \
414 -Wno-missing-field-initializers -Wno-unused-parameter"
418 AS_COMPILER_FLAG([-D_POSIX_SOURCE], [ERROR_CFLAGS="$ERROR_CFLAGS -D_POSIX_SOURCE"])
419 AS_COMPILER_FLAG([-std=c99], [ERROR_CFLAGS="$ERROR_CFLAGS -std=c99"])
420 AS_COMPILER_FLAG([-Wshadow], [ERROR_CFLAGS="$ERROR_CFLAGS -Wshadow"])
421 AS_COMPILER_FLAG([-Wmissing-prototypes], [ERROR_CFLAGS="$ERROR_CFLAGS \
422 -Wmissing-prototypes"])
423 AS_COMPILER_FLAG([-Wmissing-declarations], [ERROR_CFLAGS="$ERROR_CFLAGS \
424 -Wmissing-declarations"])
425 AS_COMPILER_FLAG([-Wstrict-prototypes], [ERROR_CFLAGS="$ERROR_CFLAGS \
426 -Wstrict-prototypes"])
428 AC_SUBST([ERROR_CFLAGS])
431 AS_IF([test "x$enable_vala" = "xyes"],
432 [ERROR_INTROSPECTION_SCANNER_ARGS="\
433 $ERROR_INTROSPECTION_SCANNER_ARGS --warn-error"
434 ERROR_VALAFLAGS="$ERROR_VALAFLAGS --fatal-warnings"])
436 m4_if(folks_released, [1], [],
438 ERROR_VALAFLAGS="$ERROR_VALAFLAGS -g"
441 AC_SUBST([ERROR_INTROSPECTION_SCANNER_ARGS])
442 AC_SUBST([ERROR_VALAFLAGS])
444 # -----------------------------------------------------------
446 # -----------------------------------------------------------
449 backends/telepathy/lib/folks-telepathy.pc
450 backends/telepathy/lib/folks-telepathy-uninstalled.pc
451 backends/tracker/lib/folks-tracker.pc
452 backends/tracker/lib/folks-tracker-uninstalled.pc
453 backends/eds/lib/folks-eds.pc
454 backends/eds/lib/folks-eds-uninstalled.pc
456 folks/folks-uninstalled.pc
459 backends/key-file/Makefile
460 backends/libsocialweb/Makefile
461 backends/libsocialweb/lib/Makefile
462 backends/libsocialweb/lib/folks-libsocialweb.pc
463 backends/libsocialweb/lib/folks-libsocialweb-uninstalled.pc
464 backends/telepathy/Makefile
465 backends/telepathy/lib/Makefile
466 backends/tracker/Makefile
467 backends/tracker/lib/Makefile
468 backends/eds/Makefile
469 backends/eds/lib/Makefile
475 tests/data/gconf.path
477 tests/key-file/Makefile
478 tests/libsocialweb/Makefile
479 tests/telepathy/Makefile
480 tests/tracker/Makefile
482 tests/lib/folks-test-uninstalled.pc
483 tests/lib/key-file/Makefile
484 tests/lib/libsocialweb/Makefile
485 tests/lib/libsocialweb/session.conf
487 tests/lib/eds/Makefile
488 tests/lib/telepathy/Makefile
489 tests/lib/tracker/Makefile
490 tests/lib/telepathy/contactlist/Makefile
491 tests/lib/telepathy/contactlist/session.conf
494 tools/inspect/Makefile
502 Vala........................: ${enable_vala}
503 Vala Compiler...............: ${VALAC}
504 C Compiler Flags............: ${CFLAGS} ${ERROR_CFLAGS}
505 Prefix......................: ${prefix}
506 Bugreporting URL............: ${PACKAGE_BUGREPORT}
507 Documentation...............: ${have_valadoc}
508 Import tool.................: ${with_import_tool}
509 Inspector tool..............: ${with_inspect_tool}
510 Tracker backend.............: ${enable_tracker_backend}
511 Libsocialweb backend........: ${have_libsocialweb_backend}
512 E-D-S backend...............: ${enable_eds_backend}