Make tests use local GConf config and store.
[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], [0])
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], [22])
15 m4_define([folks_lt_revision], [0])
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 AC_ARG_ENABLE(tracker-backend,
70         AC_HELP_STRING([--enable-tracker-backend],
71                        [ build the Tracker backend]),
72         enable_tracker_backend=$enableval,
73         enable_tracker_backend=no )
74
75 AM_CONDITIONAL([ENABLE_TRACKER], [test "x$enable_tracker_backend" = "xyes"])
76
77 # -----------------------------------------------------------
78 # Dependencies
79 # -----------------------------------------------------------
80
81 GLIB_REQUIRED=2.24.0
82 TP_GLIB_REQUIRED=0.13.1
83 VALA_REQUIRED=0.11.6
84 VALADOC_REQUIRED=0.2.1
85 TRACKER_SPARQL_REQUIRED=0.10
86
87 PKG_CHECK_MODULES([GLIB],
88                   [glib-2.0 >= $GLIB_REQUIRED
89                    gobject-2.0 >= $GLIB_REQUIRED])
90 PKG_CHECK_MODULES([GMODULE], [gmodule-no-export-2.0])
91 PKG_CHECK_MODULES([GIO], [gio-2.0 >= $GLIB_REQUIRED])
92 PKG_CHECK_MODULES([DBUS_GLIB], [dbus-glib-1])
93
94 # FIXME: We depend on libgee < 0.7 because 0.7 breaks API. bgo#627746
95 PKG_CHECK_MODULES([GEE], [gee-1.0 < 0.7])
96 PKG_CHECK_MODULES([TP_GLIB], [telepathy-glib >= $TP_GLIB_REQUIRED])
97
98 if test x$enable_tracker_backend = xyes; then
99         PKG_CHECK_MODULES([TRACKER_SPARQL],
100                           [tracker-sparql-0.10 >= $TRACKER_SPARQL_REQUIRED])
101 fi
102
103 #
104 # Vala building options -- allows tarball builds without installing Vala
105 #
106 AC_ARG_ENABLE([vala],
107               AS_HELP_STRING([--enable-vala],
108                              [Enable building from the Vala sources]),
109               [enable_vala=$enableval],
110               [enable_vala=no])
111
112 # will be re-set as necessary below
113 AM_CONDITIONAL([HAVE_INTROSPECTION], [test "x$enable_vala" = "xyes"])
114 sd=${srcdir}/
115
116 # Force Vala for non-release builds
117 m4_if(folks_released, [1], [],
118     [
119         enable_vala=yes
120         echo "Vala compiler required for non-release builds; requiring Vala..."
121     ])
122
123 # Force Vala if generated source is missing or outdated
124 if test \
125         ! -e ${sd}tools/folks_import_vala.stamp -o \
126         ! -e ${sd}tests/folks/aggregation_vala.stamp -o \
127         ! -e ${sd}tests/folks/backend_loading_vala.stamp -o \
128         ! -e ${sd}tests/folks/field_details_vala.stamp -o \
129         ! -e ${sd}tests/folks/linked_hash_set_vala.stamp -o \
130         ! -e ${sd}tests/key-file/individual_retrieval_vala.stamp -o \
131         ! -e ${sd}tests/lib/folks-test.vapi -o \
132         ! -e ${sd}tests/lib/key-file/kf-test.vapi -o \
133         ! -e ${sd}tests/lib/key-file/libkf_test_la_vala.stamp -o \
134         ! -e ${sd}tests/lib/telepathy/contactlist/tp-test-contactlist.gir -o \
135         ! -e ${sd}tests/lib/telepathy/contactlist/tp-test-contactlist.vapi -o \
136         ! -e ${sd}tests/lib/libfolks_test_la_vala.stamp -o \
137         ! -e ${sd}tests/telepathy/persona_store_capabilities_vala.stamp -o \
138         ! -e ${sd}tests/telepathy/individual_retrieval_vala.stamp -o \
139         ! -e ${sd}tests/telepathy/individual_properties_vala.stamp -o \
140         ! -e ${sd}tests/folks/backend_loading_vala.stamp -o \
141         ! -e ${sd}backends/key-file/libfolks_backend_key_file_la_vala.stamp -o \
142         ! -e ${sd}backends/telepathy/libfolks_backend_telepathy_la_vala.stamp \
143                 -o \
144         ! -e ${sd}backends/telepathy/lib/folks-telepathy.vapi -o \
145         ! -e ${sd}backends/telepathy/lib/tp-lowlevel.gir -o \
146         ! -e ${sd}backends/telepathy/lib/tp-lowlevel.vapi -o \
147         ! -e ${sd}backends/telepathy/lib/libfolks_telepathy_la_vala.stamp -o \
148         ! -e ${sd}folks/folks.vapi -o \
149         ! -e ${sd}folks/libfolks_la_vala.stamp ; then
150         enable_vala=yes
151         echo "Vala source needs to be re-compiled; requiring Vala..."
152 fi
153
154 if test "x$enable_vala" = "xyes" ; then
155         AM_PROG_VALAC([$VALA_REQUIRED])
156         if test "x$VALAC" = "x"; then
157               AC_MSG_ERROR([Vala requested but valac is not installed])
158         fi
159
160         AC_PATH_PROG([VAPIGEN], [vapigen], [])
161         if test "x$VAPIGEN" = "x"; then
162               AC_MSG_ERROR([Vala must be built with --enable-vapigen])
163         fi
164
165         # require GLib >= 2.24 so GLib.Array, etc. reffing is handled
166         # automatically
167         VALAFLAGS="$VALAFLAGS --target-glib=2.24"
168         AC_SUBST([VALAFLAGS])
169         AC_SUBST([VAPIGENFLAGS])
170         AC_SUBST([VAPIDIR])
171
172         VALA_CHECK_PACKAGES([telepathy-glib
173                              dbus-glib-1
174                              gio-2.0
175                              gee-1.0])
176
177         if test x$enable_tracker_backend = xyes; then
178           VALA_CHECK_PACKAGES([tracker-sparql-0.10])
179         fi
180
181         # this will set HAVE_INTROSPECTION
182         GOBJECT_INTROSPECTION_REQUIRE([0.9.12])
183 fi
184
185 AM_CONDITIONAL([HAVE_VALA], [test "x$enable_vala" = "xyes"])
186
187 # Various functions that we need (used in C code generated from Vala)
188 AC_CHECK_FUNCS([memset])
189 AC_CHECK_FUNCS([strstr])
190
191 # -----------------------------------------------------------
192 # Backends
193 # -----------------------------------------------------------
194
195 FOLKS_MODULE_VERSION=folks_module_version
196 AC_SUBST([FOLKS_MODULE_VERSION])
197 AC_DEFINE([MODULE_VERSION], "folks_module_version", [Module interface version])
198
199 BACKEND_DIR='$(libdir)/folks/$(FOLKS_MODULE_VERSION)/backends'
200 AC_SUBST([BACKEND_DIR])
201
202 BACKEND_KF='$(top_builddir)/backends/key-file/.libs/libfolks-backend-key-file.so'
203 AC_SUBST([BACKEND_KF])
204 BACKEND_TP='$(top_builddir)/backends/telepathy/.libs/libfolks-backend-telepathy.so'
205 AC_SUBST([BACKEND_TP])
206
207 if test x$enable_tracker_backend = xyes; then
208   BACKEND_TRACKER='$(top_builddir)/backends/tracker/.libs/libfolks-backend-tracker.so'
209   AC_SUBST([BACKEND_TRACKER])
210 fi
211
212 # All of the backend libraries in our tree; to be used by the tests
213 BACKEND_UNINST_PATH='$(BACKEND_KF):$(BACKEND_TP)'
214 if test x$enable_tracker_backend = xyes; then
215   TRACKER_BACKEND_UNINST_PATH='$(BACKEND_TRACKER)'
216   BACKEND_UNINST_PATH="$BACKEND_UNINST_PATH:$TRACKER_BACKEND_UNINST_PATH"
217 fi
218 AC_SUBST([BACKEND_UNINST_PATH])
219
220 # -----------------------------------------------------------
221 # Tools
222 # -----------------------------------------------------------
223
224 AC_ARG_ENABLE([import-tool],
225               AS_HELP_STRING([--enable-import-tool],
226                              [Enable building the meta-contact import tool]),
227               [enable_import_tool=$enableval with_import_tool=$enableval],
228               [enable_import_tool=maybe with_import_tool=no])
229 AS_IF([test "$enable_import_tool" != "no"],
230       [PKG_CHECK_MODULES([LIBXML], [libxml-2.0],
231                          [with_import_tool=yes], [with_import_tool=no])])
232 AS_IF([test "$enable_import_tool" = "yes" -a "$with_import_tool" = "no"],
233       [AC_MSG_ERROR([Import tool explicitly enabled, but libxml2 not found])])
234 AM_CONDITIONAL([ENABLE_IMPORT_TOOL], [test "$with_import_tool" = "yes"])
235
236 # Readline's required for the folks-inspect program
237 AC_ARG_ENABLE([inspect-tool],
238               AS_HELP_STRING([--enable-inspect-tool],
239                              [Enable building the data inspection tool]),
240               [enable_inspect_tool=$enableval with_inspect_tool=$enableval],
241               [enable_inspect_tool=maybe with_inspect_tool=no])
242 AS_IF([test "$enable_inspect_tool" = "yes" -a "$enable_vala" != "yes"],
243       [AC_MSG_ERROR([Inspect tool explicitly enabled, but Vala wasn't enabled \
244                      using --enable-vala])])
245 AS_IF([test "$enable_inspect_tool" = "maybe" -a "$enable_vala" != "yes"],
246       [AC_MSG_NOTICE([Inspect tool disabled, as Vala wasn't enabled using \
247                       --enable-vala])])
248 AS_IF([test "$enable_inspect_tool" != "no" -a "x$enable_vala" = "xyes"],
249       [AC_CHECK_LIB([readline], [main],
250                     [with_inspect_tool=yes], [with_inspect_tool=no],
251                     [-lncurses])])
252 AS_IF([test "$enable_inspect_tool" != "no" -a "$with_inspect_tool" = "yes" -a \
253        "x$enable_vala" = "xyes"],
254       [VALA_CHECK_PACKAGES([readline])
255        LIBREADLINE="-lreadline -lncurses"
256        AC_DEFINE([HAVE_LIBREADLINE], [1], [Define if you have libreadline])
257        AC_SUBST([LIBREADLINE])])
258 AS_IF([test "$enable_inspect_tool" = "yes" -a "$with_inspect_tool" = "no"],
259       [AC_MSG_ERROR([Inspect tool explicitly enabled, but readline not found])])
260 AM_CONDITIONAL([ENABLE_INSPECT_TOOL], [test "$with_inspect_tool" = "yes"])
261
262 # -----------------------------------------------------------
263 # Documentation
264 # -----------------------------------------------------------
265
266 AC_ARG_ENABLE([docs],
267               AS_HELP_STRING([--enable-docs],[Enable documentation generation]),
268               [enable_docs=$enableval], [enable_docs=no])
269 AM_CONDITIONAL([ENABLE_DOCS], [test x$enable_docs = xyes])
270
271 AS_IF([test "x$enable_docs" != xno],
272       [PKG_CHECK_MODULES([VALADOC_PC], [valadoc-1.0 >= $VALADOC_REQUIRED])
273        AC_PATH_PROG([VALADOC], [valadoc], [:])
274        AS_IF([test "$VALADOC" != :],
275              have_valadoc=yes)])
276 AM_CONDITIONAL([HAVE_VALADOC], [test x$have_valadoc = xyes])
277
278 # -----------------------------------------------------------
279 # Gettext
280 # -----------------------------------------------------------
281
282 GETTEXT_PACKAGE=AC_PACKAGE_NAME
283 AC_SUBST(GETTEXT_PACKAGE)
284 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, ["$GETTEXT_PACKAGE"], [Define the gettext package to be used])
285 IT_PROG_INTLTOOL([0.35.0])
286
287 # -----------------------------------------------------------
288 # Error flags
289 # -----------------------------------------------------------
290
291 AS_COMPILER_FLAG([-Wall], [ERROR_CFLAGS="-Wall"], [ERROR_CFLAGS=""])
292 AS_COMPILER_FLAG([-Werror], [werror=yes], [werror=no])
293
294 AC_ARG_ENABLE([debug],
295               AS_HELP_STRING([--disable-debug],[compile without debug code]),
296               [enable_debug=$enableval], [enable_debug=yes])
297
298 AC_ARG_ENABLE([Werror],
299               AS_HELP_STRING([--disable-Werror],
300                              [compile without -Werror (normally enabled in
301                               development builds)]),
302               [werror=$enableval], [werror=yes])
303
304 AS_COMPILER_FLAG([-Wextra], [wextra=yes], [wextra=no])
305 AS_COMPILER_FLAG([-Wno-missing-field-initializers],
306                  [wno_missing_field_initializers=yes],
307                  [wno_missing_field_initializers=no])
308 AS_COMPILER_FLAG([-Wno-unused-parameter],
309                  [wno_unused_parameter=yes], [wno_unused_parameter=no])
310
311 m4_if(folks_released, [1], [],
312     [
313         if test x$werror = xyes; then
314             ERROR_CFLAGS="$ERROR_CFLAGS -Werror"
315         fi
316         if test x$wextra = xyes -a \
317             x$wno_missing_field_initializers = xyes -a \
318             x$wno_unused_parameter = xyes; then
319             ERROR_CFLAGS="$ERROR_CFLAGS -Wextra \
320                 -Wno-missing-field-initializers -Wno-unused-parameter"
321         fi
322     ])
323
324 AS_COMPILER_FLAG([-D_POSIX_SOURCE], [ERROR_CFLAGS="$ERROR_CFLAGS -D_POSIX_SOURCE"])
325 AS_COMPILER_FLAG([-std=c99], [ERROR_CFLAGS="$ERROR_CFLAGS -std=c99"])
326 AS_COMPILER_FLAG([-Wshadow], [ERROR_CFLAGS="$ERROR_CFLAGS -Wshadow"])
327 AS_COMPILER_FLAG([-Wmissing-prototypes], [ERROR_CFLAGS="$ERROR_CFLAGS \
328                                           -Wmissing-prototypes"])
329 AS_COMPILER_FLAG([-Wmissing-declarations], [ERROR_CFLAGS="$ERROR_CFLAGS \
330                                             -Wmissing-declarations"])
331 AS_COMPILER_FLAG([-Wstrict-prototypes], [ERROR_CFLAGS="$ERROR_CFLAGS \
332                                          -Wstrict-prototypes"])
333
334 AC_SUBST([ERROR_CFLAGS])
335
336 # Vala-related flags
337 AS_IF([test "x$enable_vala" = "xyes"],
338       [ERROR_INTROSPECTION_SCANNER_ARGS="\
339                         $ERROR_INTROSPECTION_SCANNER_ARGS --warn-error"
340        ERROR_VALAFLAGS="$ERROR_VALAFLAGS --fatal-warnings"])
341
342 AC_SUBST([ERROR_INTROSPECTION_SCANNER_ARGS])
343 AC_SUBST([ERROR_VALAFLAGS])
344
345 # -----------------------------------------------------------
346 # Final output
347 # -----------------------------------------------------------
348
349 AC_CONFIG_FILES([
350     backends/telepathy/lib/folks-telepathy.pc
351     backends/telepathy/lib/folks-telepathy-uninstalled.pc
352     folks/folks.pc
353     folks/folks-uninstalled.pc
354     Makefile
355     backends/Makefile
356     backends/key-file/Makefile
357     backends/telepathy/Makefile
358     backends/telepathy/lib/Makefile
359     folks/Makefile
360     docs/Makefile
361     po/Makefile.in
362     tests/Makefile
363     tests/data/Makefile
364     tests/data/gconf.path
365     tests/folks/Makefile
366     tests/key-file/Makefile
367     tests/telepathy/Makefile
368     tests/lib/Makefile
369     tests/lib/folks-test-uninstalled.pc
370     tests/lib/key-file/Makefile
371     tests/lib/telepathy/Makefile
372     tests/lib/telepathy/contactlist/Makefile
373     tests/lib/telepathy/contactlist/session.conf
374     tests/tools/Makefile
375     tools/Makefile
376     tools/inspect/Makefile
377 ])
378
379 if test x$enable_tracker_backend = xyes; then
380 AC_CONFIG_FILES([
381     backends/tracker/lib/folks-tracker.pc
382     backends/tracker/lib/folks-tracker-uninstalled.pc
383     backends/tracker/Makefile
384     backends/tracker/lib/Makefile
385     tests/tracker/Makefile
386     tests/lib/tracker/Makefile
387 ])
388 fi
389
390 AC_OUTPUT
391
392 echo "
393 Configure summary:
394
395         Vala........................:  ${enable_vala}
396         Vala Compiler...............:  ${VALAC}
397         C Compiler Flags............:  ${CFLAGS} ${ERROR_CFLAGS}
398         Prefix......................:  ${prefix}
399         Bugreporting URL............:  ${PACKAGE_BUGREPORT}
400         Documentation...............:  ${HAVE_VALADOC}
401         Tests.......................:  ${have_tp_glib_for_tests}
402         Import tool.................:  ${with_import_tool}
403         Inspector tool..............:  ${with_inspect_tool}
404         Tracker backend.............:  ${enable_tracker_backend}
405
406
407 "