Re-add a dependency on dbus-glib for the Telepathy test library
[platform/upstream/folks.git] / configure.ac
1 # If not 1, append datestamp to the version number
2 m4_define([folks_released], [0])
3
4 m4_define([folks_major_version], [0])
5 m4_define([folks_minor_version], [5])
6 m4_define([folks_micro_version], [2])
7 m4_define([folks_nano_version], [1])
8
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], [24])
15 m4_define([folks_lt_revision], [1])
16 m4_define([folks_lt_age], [0])
17
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)])
24
25 m4_define([folks_maybe_datestamp],
26           m4_if(folks_released, [1],
27                 [], [m4_esyscmd([date +.%Y%m%d | tr -d '\n\r'])]))
28
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)
32
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])])
37
38 AC_PREREQ([2.65])
39 AC_COPYRIGHT([Copyright (C) 2010 Collabora Ltd.])
40
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
48
49 AC_PROG_CC
50 AM_PROG_CC_C_O
51 AC_DISABLE_STATIC
52 LT_INIT
53 PKG_PROG_PKG_CONFIG([0.21])
54
55 AC_SUBST([CFLAGS])
56 AC_SUBST([CPPFLAGS])
57 AC_SUBST([LDFLAGS])
58
59 LT_CURRENT=folks_lt_current
60 LT_REVISION=folks_lt_revision
61 LT_AGE=folks_lt_age
62 AC_SUBST([LT_CURRENT])
63 AC_SUBST([LT_REVISION])
64 AC_SUBST([LT_AGE])
65
66 FOLKS_MAJOR_MINOR_VERSION=folks_major_minor_version
67 AC_SUBST([FOLKS_MAJOR_MINOR_VERSION])
68
69 API_VERSION=0.6
70 AC_SUBST([API_VERSION])
71
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 )
77
78 AM_CONDITIONAL([ENABLE_TRACKER], [test "x$enable_tracker_backend" = "xyes"])
79
80 # Automatically check the dependencies for the libsocialweb backend
81 SW_CLIENT_REQUIRED=0.25.15
82 AC_ARG_ENABLE(libsocialweb-backend,
83         AC_HELP_STRING([--enable-libsocialweb-backend=@<:@no/yes/auto@:>@],
84                        [build the Libsocialweb backend (default: auto)]),
85         enable_libsocialweb_backend=$enableval,
86         enable_libsocialweb_backend=auto )
87
88 if test "x$enable_libsocialweb_backend" != "xno"; then
89   PKG_CHECK_MODULES([SW_CLIENT], [libsocialweb-client >= $SW_CLIENT_REQUIRED],
90       have_libsocialweb_backend="yes", have_libsocialweb_backend="no")
91   if test "x$have_libsocialweb_backend" = "xyes" -a \
92           "x$enable_vala" = "xyes"; then
93     VALA_CHECK_PACKAGES([telepathy-glib
94                          gio-2.0
95                          gee-1.0
96                          libsocialweb-client],
97         ,
98         have_libsocialweb_backend="no")
99   fi
100
101   if test "x$have_libsocialweb_backend" = "xyes"; then
102     AC_DEFINE(HAVE_LIBSOCIALWEB, [],
103               [Define if you have the libsocialweb backend])
104   fi
105 else
106    have_libsocialweb_backend=no
107 fi
108
109 if test "x$enable_libsocialweb_backend" = "xyes" -a \
110   "x$have_libsocialweb_backend" != "xyes"; then
111     AC_MSG_ERROR([Cannot find libsocialweb dependencies.])
112 fi
113
114 AM_CONDITIONAL([ENABLE_LIBSOCIALWEB],
115         [test "x$have_libsocialweb_backend" = "xyes"])
116
117 # -----------------------------------------------------------
118 # Dependencies
119 # -----------------------------------------------------------
120
121 GLIB_REQUIRED=2.24.0
122 TP_GLIB_REQUIRED=0.13.1
123 VALA_REQUIRED=0.12.0
124 VALADOC_REQUIRED=0.2.1
125 TRACKER_SPARQL_REQUIRED=0.10
126 GCONF2_REQUIRED=2.31
127
128 PKG_CHECK_MODULES([GLIB],
129                   [glib-2.0 >= $GLIB_REQUIRED
130                    gobject-2.0 >= $GLIB_REQUIRED])
131 PKG_CHECK_MODULES([GMODULE], [gmodule-no-export-2.0])
132 PKG_CHECK_MODULES([GIO], [gio-2.0 >= $GLIB_REQUIRED])
133 PKG_CHECK_MODULES([DBUS_GLIB], [dbus-glib-1])
134 PKG_CHECK_MODULES([GCONF2], [gconf-2.0 >= $GCONF2_REQUIRED])
135
136 # FIXME: We depend on libgee < 0.7 because 0.7 breaks API. bgo#627746
137 PKG_CHECK_MODULES([GEE], [gee-1.0 < 0.7])
138 PKG_CHECK_MODULES([TP_GLIB], [telepathy-glib >= $TP_GLIB_REQUIRED])
139
140 if test x$enable_tracker_backend = xyes; then
141         PKG_CHECK_MODULES([TRACKER_SPARQL],
142                           [tracker-sparql-0.10 >= $TRACKER_SPARQL_REQUIRED])
143 fi
144
145 #
146 # Vala building options -- allows tarball builds without installing Vala
147 #
148 AC_ARG_ENABLE([vala],
149               AS_HELP_STRING([--enable-vala],
150                              [Enable building from the Vala sources]),
151               [enable_vala=$enableval],
152               [enable_vala=no])
153
154 # will be re-set as necessary below
155 AM_CONDITIONAL([HAVE_INTROSPECTION], [test "x$enable_vala" = "xyes"])
156 sd=${srcdir}/
157
158 # Force Vala for non-release builds
159 m4_if(folks_released, [1], [],
160     [
161         enable_vala=yes
162         echo "Vala compiler required for non-release builds; requiring Vala..."
163     ])
164
165 # Force Vala if generated source is missing or outdated
166 if test \
167         ! -e ${sd}tools/folks_import_vala.stamp -o \
168         ! -e ${sd}tests/folks/aggregation_vala.stamp -o \
169         ! -e ${sd}tests/folks/backend_loading_vala.stamp -o \
170         ! -e ${sd}tests/folks/field_details_vala.stamp -o \
171         ! -e ${sd}tests/key-file/individual_retrieval_vala.stamp -o \
172         ! -e ${sd}tests/lib/folks-test.vapi -o \
173         ! -e ${sd}tests/lib/key-file/kf-test.vapi -o \
174         ! -e ${sd}tests/lib/key-file/libkf_test_la_vala.stamp -o \
175         ! -e ${sd}tests/lib/telepathy/contactlist/tp-test-contactlist.gir -o \
176         ! -e ${sd}tests/lib/telepathy/contactlist/tp-test-contactlist.vapi -o \
177         ! -e ${sd}tests/lib/libfolks_test_la_vala.stamp -o \
178         ! -e ${sd}tests/telepathy/persona_store_capabilities_vala.stamp -o \
179         ! -e ${sd}tests/telepathy/individual_retrieval_vala.stamp -o \
180         ! -e ${sd}tests/telepathy/individual_properties_vala.stamp -o \
181         ! -e ${sd}tests/folks/backend_loading_vala.stamp -o \
182         ! -e ${sd}backends/key-file/libfolks_backend_key_file_la_vala.stamp -o \
183         ! -e ${sd}backends/telepathy/libfolks_backend_telepathy_la_vala.stamp \
184                 -o \
185         ! -e ${sd}backends/telepathy/lib/folks-telepathy.vapi -o \
186         ! -e ${sd}backends/telepathy/lib/tp-lowlevel.gir -o \
187         ! -e ${sd}backends/telepathy/lib/tp-lowlevel.vapi -o \
188         ! -e ${sd}backends/telepathy/lib/libfolks_telepathy_la_vala.stamp -o \
189         ! -e ${sd}folks/folks.vapi -o \
190         ! -e ${sd}folks/libfolks_la_vala.stamp ; then
191         enable_vala=yes
192         echo "Vala source needs to be re-compiled; requiring Vala..."
193 fi
194
195 if test "x$enable_vala" = "xyes" ; then
196         AM_PROG_VALAC([$VALA_REQUIRED])
197         if test "x$VALAC" = "x"; then
198               AC_MSG_ERROR([Vala requested but valac is not installed])
199         fi
200
201         AC_PATH_PROG([VAPIGEN], [vapigen], [])
202         if test "x$VAPIGEN" = "x"; then
203               AC_MSG_ERROR([Vala must be built with --enable-vapigen])
204         fi
205
206         # require GLib >= 2.24 so GLib.Array, etc. reffing is handled
207         # automatically
208         VALAFLAGS="$VALAFLAGS --target-glib=2.24"
209         AC_SUBST([VALAFLAGS])
210         AC_SUBST([VAPIGENFLAGS])
211         AC_SUBST([VAPIDIR])
212
213         VALA_CHECK_PACKAGES([telepathy-glib
214                              gio-2.0
215                              gee-1.0])
216
217         if test x$enable_tracker_backend = xyes; then
218           VALA_CHECK_PACKAGES([tracker-sparql-0.10])
219         fi
220
221 fi
222
223 # this will set HAVE_INTROSPECTION
224 GOBJECT_INTROSPECTION_REQUIRE([0.9.12])
225
226 AM_CONDITIONAL([HAVE_VALA], [test "x$enable_vala" = "xyes"])
227
228 # Various functions that we need (used in C code generated from Vala)
229 AC_CHECK_FUNCS([memset])
230 AC_CHECK_FUNCS([strstr])
231
232 # -----------------------------------------------------------
233 # Backends
234 # -----------------------------------------------------------
235
236 FOLKS_MODULE_VERSION=folks_module_version
237 AC_SUBST([FOLKS_MODULE_VERSION])
238 AC_DEFINE([MODULE_VERSION], "folks_module_version", [Module interface version])
239
240 BACKEND_DIR='$(libdir)/folks/$(FOLKS_MODULE_VERSION)/backends'
241 AC_SUBST([BACKEND_DIR])
242
243 BACKEND_KF='$(top_builddir)/backends/key-file/.libs/libfolks-backend-key-file.so'
244 AC_SUBST([BACKEND_KF])
245 BACKEND_TP='$(top_builddir)/backends/telepathy/.libs/libfolks-backend-telepathy.so'
246 AC_SUBST([BACKEND_TP])
247
248 if test x$have_libsocialweb_backend = xyes; then
249   BACKEND_LIBSOCIALWEB='$(top_builddir)/backends/libsocialweb/.libs/libfolks-backend-libsocialweb.so'
250   AC_SUBST([BACKEND_LIBSOCIALWEB])
251 fi
252
253 if test x$enable_tracker_backend = xyes; then
254   BACKEND_TRACKER='$(top_builddir)/backends/tracker/.libs/libfolks-backend-tracker.so'
255   AC_SUBST([BACKEND_TRACKER])
256 fi
257
258 # All of the backend libraries in our tree; to be used by the tests
259 BACKEND_UNINST_PATH='$(BACKEND_KF):$(BACKEND_TP)'
260 if test x$have_libsocialweb_backend = xyes; then
261   LIBSOCIALWEB_BACKEND_UNINST_PATH='$(BACKEND_LIBSOCIALWEB)'
262   BACKEND_UNINST_PATH="$BACKEND_UNINST_PATH:$LIBSOCIALWEB_BACKEND_UNINST_PATH"
263 fi
264 if test x$enable_tracker_backend = xyes; then
265   TRACKER_BACKEND_UNINST_PATH='$(BACKEND_TRACKER)'
266   BACKEND_UNINST_PATH="$BACKEND_UNINST_PATH:$TRACKER_BACKEND_UNINST_PATH"
267 fi
268 AC_SUBST([BACKEND_UNINST_PATH])
269
270 # -----------------------------------------------------------
271 # Tools
272 # -----------------------------------------------------------
273
274 AC_ARG_ENABLE([import-tool],
275               AS_HELP_STRING([--enable-import-tool],
276                              [Enable building the meta-contact import tool]),
277               [enable_import_tool=$enableval with_import_tool=$enableval],
278               [enable_import_tool=maybe with_import_tool=no])
279 AS_IF([test "$enable_import_tool" != "no"],
280       [PKG_CHECK_MODULES([LIBXML], [libxml-2.0],
281                          [with_import_tool=yes], [with_import_tool=no])])
282 AS_IF([test "$enable_import_tool" = "yes" -a "$with_import_tool" = "no"],
283       [AC_MSG_ERROR([Import tool explicitly enabled, but libxml2 not found])])
284 AM_CONDITIONAL([ENABLE_IMPORT_TOOL], [test "$with_import_tool" = "yes"])
285
286 # Readline's required for the folks-inspect program
287 AC_ARG_ENABLE([inspect-tool],
288               AS_HELP_STRING([--enable-inspect-tool],
289                              [Enable building the data inspection tool]),
290               [enable_inspect_tool=$enableval with_inspect_tool=$enableval],
291               [enable_inspect_tool=maybe with_inspect_tool=no])
292 AS_IF([test "$enable_inspect_tool" = "yes" -a "$enable_vala" != "yes"],
293       [AC_MSG_ERROR([Inspect tool explicitly enabled, but Vala wasn't enabled \
294                      using --enable-vala])])
295 AS_IF([test "$enable_inspect_tool" = "maybe" -a "$enable_vala" != "yes"],
296       [AC_MSG_NOTICE([Inspect tool disabled, as Vala wasn't enabled using \
297                       --enable-vala])])
298 AS_IF([test "$enable_inspect_tool" != "no" -a "x$enable_vala" = "xyes"],
299       [AC_CHECK_LIB([readline], [main],
300                     [with_inspect_tool=yes], [with_inspect_tool=no],
301                     [-lncurses])])
302 AS_IF([test "$enable_inspect_tool" != "no" -a "$with_inspect_tool" = "yes" -a \
303        "x$enable_vala" = "xyes"],
304       [VALA_CHECK_PACKAGES([readline])
305        LIBREADLINE="-lreadline -lncurses"
306        AC_DEFINE([HAVE_LIBREADLINE], [1], [Define if you have libreadline])
307        AC_SUBST([LIBREADLINE])])
308 AS_IF([test "$enable_inspect_tool" = "yes" -a "$with_inspect_tool" = "no"],
309       [AC_MSG_ERROR([Inspect tool explicitly enabled, but readline not found])])
310 AM_CONDITIONAL([ENABLE_INSPECT_TOOL], [test "$with_inspect_tool" = "yes"])
311
312 # -----------------------------------------------------------
313 # Documentation
314 # -----------------------------------------------------------
315
316 AC_ARG_ENABLE([docs],
317               AS_HELP_STRING([--enable-docs],[Enable documentation generation]),
318               [enable_docs=$enableval], [enable_docs=no])
319 AM_CONDITIONAL([ENABLE_DOCS], [test x$enable_docs = xyes])
320
321 have_valadoc=no
322 AS_IF([test "x$enable_docs" != xno],
323       [AC_PATH_PROG([VALADOC], [valadoc], [:])
324        AS_IF([test "$VALADOC" != :], have_valadoc=yes)])
325 AM_CONDITIONAL([HAVE_VALADOC], [test x$have_valadoc = xyes])
326
327 if test "x$enable_docs" = "xyes" -a "x$have_valadoc" != "xyes"; then
328     AC_MSG_ERROR([Doc building requested but valadoc not installed.])
329 fi
330
331 # -----------------------------------------------------------
332 # Gettext
333 # -----------------------------------------------------------
334
335 GETTEXT_PACKAGE=AC_PACKAGE_NAME
336 AC_SUBST(GETTEXT_PACKAGE)
337 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, ["$GETTEXT_PACKAGE"], [Define the gettext package to be used])
338 IT_PROG_INTLTOOL([0.35.0])
339
340 # -----------------------------------------------------------
341 # Error flags
342 # -----------------------------------------------------------
343
344 AS_COMPILER_FLAG([-Wall], [ERROR_CFLAGS="-Wall"], [ERROR_CFLAGS=""])
345 AS_COMPILER_FLAG([-Werror], [werror=yes], [werror=no])
346
347 AC_ARG_ENABLE([debug],
348               AS_HELP_STRING([--disable-debug],[compile without debug code]),
349               [enable_debug=$enableval], [enable_debug=yes])
350
351 AC_ARG_ENABLE([Werror],
352               AS_HELP_STRING([--disable-Werror],
353                              [compile without -Werror (normally enabled in
354                               development builds)]),
355               [werror=$enableval], [werror=yes])
356
357 AS_COMPILER_FLAG([-Wextra], [wextra=yes], [wextra=no])
358 AS_COMPILER_FLAG([-Wno-missing-field-initializers],
359                  [wno_missing_field_initializers=yes],
360                  [wno_missing_field_initializers=no])
361 AS_COMPILER_FLAG([-Wno-unused-parameter],
362                  [wno_unused_parameter=yes], [wno_unused_parameter=no])
363
364 m4_if(folks_released, [1], [],
365     [
366         if test x$werror = xyes; then
367             ERROR_CFLAGS="$ERROR_CFLAGS -Werror"
368         fi
369         if test x$wextra = xyes -a \
370             x$wno_missing_field_initializers = xyes -a \
371             x$wno_unused_parameter = xyes; then
372             ERROR_CFLAGS="$ERROR_CFLAGS -Wextra \
373                 -Wno-missing-field-initializers -Wno-unused-parameter"
374         fi
375     ])
376
377 AS_COMPILER_FLAG([-D_POSIX_SOURCE], [ERROR_CFLAGS="$ERROR_CFLAGS -D_POSIX_SOURCE"])
378 AS_COMPILER_FLAG([-std=c99], [ERROR_CFLAGS="$ERROR_CFLAGS -std=c99"])
379 AS_COMPILER_FLAG([-Wshadow], [ERROR_CFLAGS="$ERROR_CFLAGS -Wshadow"])
380 AS_COMPILER_FLAG([-Wmissing-prototypes], [ERROR_CFLAGS="$ERROR_CFLAGS \
381                                           -Wmissing-prototypes"])
382 AS_COMPILER_FLAG([-Wmissing-declarations], [ERROR_CFLAGS="$ERROR_CFLAGS \
383                                             -Wmissing-declarations"])
384 AS_COMPILER_FLAG([-Wstrict-prototypes], [ERROR_CFLAGS="$ERROR_CFLAGS \
385                                          -Wstrict-prototypes"])
386
387 AC_SUBST([ERROR_CFLAGS])
388
389 # Vala-related flags
390 AS_IF([test "x$enable_vala" = "xyes"],
391       [ERROR_INTROSPECTION_SCANNER_ARGS="\
392                         $ERROR_INTROSPECTION_SCANNER_ARGS --warn-error"
393        ERROR_VALAFLAGS="$ERROR_VALAFLAGS --fatal-warnings"])
394
395 AC_SUBST([ERROR_INTROSPECTION_SCANNER_ARGS])
396 AC_SUBST([ERROR_VALAFLAGS])
397
398 # -----------------------------------------------------------
399 # Final output
400 # -----------------------------------------------------------
401
402 AC_CONFIG_FILES([
403     backends/telepathy/lib/folks-telepathy.pc
404     backends/telepathy/lib/folks-telepathy-uninstalled.pc
405     backends/tracker/lib/folks-tracker.pc
406     backends/tracker/lib/folks-tracker-uninstalled.pc
407     folks/folks.pc
408     folks/folks-uninstalled.pc
409     Makefile
410     backends/Makefile
411     backends/key-file/Makefile
412     backends/libsocialweb/Makefile
413     backends/libsocialweb/lib/Makefile
414     backends/libsocialweb/lib/folks-libsocialweb.pc
415     backends/libsocialweb/lib/folks-libsocialweb-uninstalled.pc
416     backends/telepathy/Makefile
417     backends/telepathy/lib/Makefile
418     backends/tracker/Makefile
419     backends/tracker/lib/Makefile
420     folks/Makefile
421     docs/Makefile
422     po/Makefile.in
423     tests/Makefile
424     tests/data/Makefile
425     tests/data/gconf.path
426     tests/folks/Makefile
427     tests/key-file/Makefile
428     tests/libsocialweb/Makefile
429     tests/telepathy/Makefile
430     tests/tracker/Makefile
431     tests/lib/Makefile
432     tests/lib/folks-test-uninstalled.pc
433     tests/lib/key-file/Makefile
434     tests/lib/libsocialweb/Makefile
435     tests/lib/libsocialweb/session.conf
436     tests/lib/telepathy/Makefile
437     tests/lib/tracker/Makefile
438     tests/lib/telepathy/contactlist/Makefile
439     tests/lib/telepathy/contactlist/session.conf
440     tests/tools/Makefile
441     tools/Makefile
442     tools/inspect/Makefile
443 ])
444
445 AC_OUTPUT
446
447 echo "
448 Configure summary:
449
450         Vala........................:  ${enable_vala}
451         Vala Compiler...............:  ${VALAC}
452         C Compiler Flags............:  ${CFLAGS} ${ERROR_CFLAGS}
453         Prefix......................:  ${prefix}
454         Bugreporting URL............:  ${PACKAGE_BUGREPORT}
455         Documentation...............:  ${have_valadoc}
456         Import tool.................:  ${with_import_tool}
457         Inspector tool..............:  ${with_inspect_tool}
458         Tracker backend.............:  ${enable_tracker_backend}
459         Libsocialweb backend........:  ${have_libsocialweb_backend}
460
461
462 "