Post release bump in configure.ac
[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], [7])
6 m4_define([folks_micro_version], [4])
7 m4_define([folks_nano_version], [2])
8
9 # If library source has changed since last release, increment revision
10 # If public symbols have been added, removed or changed since last release,
11 #  increment current and set revision to 0
12 # If public symbols have been added since last release, increment age
13 # If public symbols have been removed since last release, set age to 0
14 m4_define([folks_lt_current], [37])
15 m4_define([folks_lt_revision], [0])
16 m4_define([folks_lt_age], [12])
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-xz no-define
46                   no-dist-gzip tar-ustar -Wno-portability color-tests])
47 AM_MAINTAINER_MODE([enable])
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 GLIB_GSETTINGS
55
56 AC_SUBST([CFLAGS])
57 AC_SUBST([CPPFLAGS])
58 AC_SUBST([LDFLAGS])
59
60 LT_CURRENT=folks_lt_current
61 LT_REVISION=folks_lt_revision
62 LT_AGE=folks_lt_age
63 AC_SUBST([LT_CURRENT])
64 AC_SUBST([LT_REVISION])
65 AC_SUBST([LT_AGE])
66
67 FOLKS_MAJOR_MINOR_VERSION=folks_major_minor_version
68 AC_SUBST([FOLKS_MAJOR_MINOR_VERSION])
69
70 API_VERSION=0.6
71 AC_SUBST([API_VERSION])
72
73 AC_ARG_ENABLE(tracker-backend,
74         AC_HELP_STRING([--enable-tracker-backend],
75                        [ build the Tracker backend]),
76         enable_tracker_backend=$enableval,
77         enable_tracker_backend=no )
78
79 AM_CONDITIONAL([ENABLE_TRACKER], [test "x$enable_tracker_backend" = "xyes"])
80
81 AS_IF([test "x$enable_tracker_backend" = "xyes"], [
82         AC_DEFINE(HAVE_TRACKER, [1],
83                   [Define as 1 if you have the Tracker backend])
84 ], [
85         AC_DEFINE(HAVE_TRACKER, [0],
86                   [Define as 1 if you have the Tracker backend])
87 ])
88
89 AC_ARG_ENABLE(eds-backend,
90         AC_HELP_STRING([--enable-eds-backend],
91                        [ build the E-D-S backend]),
92         enable_eds_backend=$enableval,
93         enable_eds_backend=yes )
94
95 AS_IF([test "x$enable_eds_backend" = "xyes"], [
96         AC_DEFINE(HAVE_EDS, [1], [Define as 1 if you have the eds backend])
97 ], [
98         AC_DEFINE(HAVE_EDS, [0], [Define as 1 if you have the eds backend])
99 ])
100
101 AM_CONDITIONAL([ENABLE_EDS], [test "x$enable_eds_backend" = "xyes"])
102
103 AC_ARG_ENABLE(telepathy-backend,
104         AC_HELP_STRING([--enable-telepathy-backend],
105                        [ build the Telepathy backend]),
106         enable_telepathy_backend=$enableval,
107         enable_telepathy_backend=yes )
108
109 AS_IF([test "x$enable_telepathy_backend" = "xyes"], [
110         AC_DEFINE(HAVE_TELEPATHY, [1], [Define as 1 if you have the Telepathy backend])
111 ], [
112         AC_DEFINE(HAVE_TELEPATHY, [0], [Define as 1 if you have the Telepathy backend])
113 ])
114
115 AM_CONDITIONAL([ENABLE_TELEPATHY], [test "x$enable_eds_backend" = "xyes"])
116
117 # Automatically check the dependencies for the libsocialweb backend
118 SW_CLIENT_REQUIRED=0.25.20
119 AC_ARG_ENABLE(libsocialweb-backend,
120         AC_HELP_STRING([--enable-libsocialweb-backend=@<:@no/yes/auto@:>@],
121                        [build the Libsocialweb backend (default: auto)]),
122         enable_libsocialweb_backend=$enableval,
123         enable_libsocialweb_backend=auto )
124
125 # this may be overwritten farther down
126 AC_DEFINE(HAVE_LIBSOCIALWEB, [0],
127           [Define as 1 if you have the libsocialweb backend])
128 AS_IF([test "x$enable_libsocialweb_backend" != "xno"], [
129   PKG_CHECK_MODULES([SW_CLIENT], [libsocialweb-client >= $SW_CLIENT_REQUIRED],
130       have_libsocialweb_backend="yes", have_libsocialweb_backend="no")
131   AS_IF([test "x$have_libsocialweb_backend" = "xyes" -a \
132           "x$enable_vala" = "xyes"], [
133     VALA_CHECK_PACKAGES([telepathy-glib
134                          gio-2.0
135                          gee-1.0
136                          libsocialweb-client],
137         ,
138         have_libsocialweb_backend="no")
139   ])
140
141   AS_IF([test "x$have_libsocialweb_backend" = "xyes"], [
142     AC_DEFINE(HAVE_LIBSOCIALWEB, [1],
143               [Define if you have the libsocialweb backend])
144   ])
145 ], [
146    have_libsocialweb_backend=no
147 ])
148
149 AS_IF([test "x$enable_libsocialweb_backend" = "xyes" -a \
150   "x$have_libsocialweb_backend" != "xyes"], [
151     AC_MSG_ERROR([Cannot find libsocialweb dependencies.])
152 ])
153
154 AM_CONDITIONAL([ENABLE_LIBSOCIALWEB],
155         [test "x$have_libsocialweb_backend" = "xyes"])
156
157 # -----------------------------------------------------------
158 # Dependencies
159 # -----------------------------------------------------------
160
161 GLIB_REQUIRED=2.32.0
162 VALA_REQUIRED=0.17.6
163 VALADOC_REQUIRED=0.3.1
164 TRACKER_SPARQL_MAJOR=0.14
165 TRACKER_SPARQL_REQUIRED=0.13.1
166 EBOOK_REQUIRED=3.5.3
167 EDATASERVER_REQUIRED=3.5.3.1
168 ZEITGEIST_REQUIRED=0.3.14
169
170 AC_SUBST([TRACKER_SPARQL_MAJOR])
171
172 PKG_CHECK_MODULES([GLIB],
173                   [glib-2.0 >= $GLIB_REQUIRED
174                    gobject-2.0 >= $GLIB_REQUIRED])
175 PKG_CHECK_MODULES([GMODULE], [gmodule-no-export-2.0])
176 PKG_CHECK_MODULES([GIO], [gio-2.0 >= $GLIB_REQUIRED])
177 PKG_CHECK_MODULES([DBUS_GLIB], [dbus-glib-1])
178
179 # FIXME: We depend on libgee < 0.7 because 0.7 breaks API. bgo#627746
180 PKG_CHECK_MODULES([GEE], [gee-1.0 < 0.7],
181                   have_gee_0_6_x="yes",
182                   have_gee_0_6_x="no")
183
184 AS_IF([test "x$have_gee_0_6_x" != "xyes"], [
185     AC_MSG_ERROR([
186 Gee 0.6.x required but not installed.
187
188 Note that Gee 0.8.x provides gee-0.8 (but gee-1.0 is, confusingly, provided by
189 Gee 0.6.x)])
190 ])
191
192 TP_GLIB_REQUIRED=0.19.0
193 AS_IF([test x$enable_telepathy_backend = xyes], [
194         PKG_CHECK_MODULES([TP_GLIB], [telepathy-glib >= $TP_GLIB_REQUIRED])
195         PKG_CHECK_MODULES([ZEITGEIST], [zeitgeist-1.0 >= $ZEITGEIST_REQUIRED])
196 ])
197
198 # Ignore post 0.20 deprecations
199 TP_GLIB_CFLAGS="$TP_GLIB_CFLAGS -DTP_VERSION_MIN_REQUIRED=TP_VERSION_0_20"
200 # Prevent post 0.20 APIs
201 TP_GLIB_CFLAGS="$TP_GLIB_CFLAGS -DTP_VERSION_MAX_ALLOWED=TP_VERSION_0_20"
202
203 AS_IF([test x$enable_tracker_backend = xyes], [
204         PKG_CHECK_MODULES([TRACKER_SPARQL],
205                           [tracker-sparql-$TRACKER_SPARQL_MAJOR >= \
206                            $TRACKER_SPARQL_REQUIRED])
207 ])
208
209 AS_IF([test x$enable_eds_backend = xyes], [
210         PKG_CHECK_MODULES([EBOOK], [libebook-1.2 >= $EBOOK_REQUIRED])
211         PKG_CHECK_MODULES([EDATASERVER], [libedataserver-1.2 >= $EDATASERVER_REQUIRED])
212 ])
213
214 #
215 # Vala building options -- allows tarball builds without installing Vala
216 #
217 AC_ARG_ENABLE([vala],
218               AS_HELP_STRING([--enable-vala],
219                              [Enable building from the Vala sources]),
220               [enable_vala=$enableval],
221               [enable_vala=no])
222
223 # will be re-set as necessary below
224 AM_CONDITIONAL([HAVE_INTROSPECTION], [test "x$enable_vala" = "xyes"])
225 sd=${srcdir}/
226
227 # Force Vala for non-release builds
228 m4_if(folks_released, [1], [],
229     [
230         enable_vala=yes
231         echo "Vala compiler required for non-release builds; requiring Vala..."
232     ])
233
234 # Force Vala if generated source is missing or outdated
235 AS_IF([test \
236         ! -e ${sd}tools/folks_import_vala.stamp -o \
237         ! -e ${sd}tests/folks/abstract_field_details_vala.stamp -o \
238         ! -e ${sd}tests/folks/aggregation_vala.stamp -o \
239         ! -e ${sd}tests/folks/backend_loading_vala.stamp -o \
240         ! -e ${sd}tests/key-file/individual_retrieval_vala.stamp -o \
241         ! -e ${sd}tests/lib/folks-test.vapi -o \
242         ! -e ${sd}tests/lib/key-file/kf-test.vapi -o \
243         ! -e ${sd}tests/lib/key-file/libkf_test_la_vala.stamp -o \
244         ! -e ${sd}tests/lib/telepathy/contactlist/tp-test-contactlist.gir -o \
245         ! -e ${sd}tests/lib/telepathy/contactlist/tp-test-contactlist.vapi -o \
246         ! -e ${sd}tests/lib/libfolks_test_la_vala.stamp -o \
247         ! -e ${sd}tests/telepathy/persona_store_capabilities_vala.stamp -o \
248         ! -e ${sd}tests/telepathy/individual_retrieval_vala.stamp -o \
249         ! -e ${sd}tests/telepathy/individual_properties_vala.stamp -o \
250         ! -e ${sd}tests/folks/backend_loading_vala.stamp -o \
251         ! -e ${sd}backends/key-file/key_file_la_vala.stamp -o \
252         ! -e ${sd}backends/telepathy/telepathy_la_vala.stamp \
253                 -o \
254         ! -e ${sd}backends/telepathy/lib/folks-telepathy.vapi -o \
255         ! -e ${sd}backends/telepathy/lib/tp-lowlevel.gir -o \
256         ! -e ${sd}backends/telepathy/lib/tp-lowlevel.vapi -o \
257         ! -e ${sd}backends/telepathy/lib/libfolks_telepathy_la_vala.stamp -o \
258         ! -e ${sd}folks/folks-internal.h -o \
259         ! -e ${sd}folks/folks-internal.vapi -o \
260         ! -e ${sd}folks/libfolks_internal_la_vala.stamp -o \
261         ! -e ${sd}folks/folks.vapi -o \
262         ! -e ${sd}folks/libfolks_la_vala.stamp \
263       ], [
264         enable_vala=yes
265         echo "Vala source needs to be re-compiled; requiring Vala..."
266 ])
267
268 AS_IF([test "x$enable_vala" = "xyes"], [
269         AM_PROG_VALAC([$VALA_REQUIRED])
270         AS_IF([test "x$VALAC" = "x"], [
271               AC_MSG_ERROR([Vala requested but valac is not installed])
272         ])
273
274         AC_PATH_PROG([VAPIGEN], [vapigen], [])
275         AS_IF([test "x$VAPIGEN" = "x"], [
276               AC_MSG_ERROR([Vala must be built with --enable-vapigen])
277         ])
278
279         # require GLib >= 2.24 so GLib.Array, etc. reffing is handled
280         # automatically
281         VALAFLAGS="$VALAFLAGS --target-glib=2.24"
282         AC_SUBST([VALAFLAGS])
283         AC_SUBST([VAPIGENFLAGS])
284         AC_SUBST([VAPIDIR])
285
286         VALA_CHECK_PACKAGES([gio-2.0
287                              gee-1.0])
288
289         AS_IF([test x$enable_telepathy_backend = xyes], [
290           VALA_CHECK_PACKAGES([telepathy-glib zeitgeist-1.0])
291         ])
292
293         AS_IF([test x$enable_tracker_backend = xyes], [
294           VALA_CHECK_PACKAGES([tracker-sparql-$TRACKER_SPARQL_MAJOR])
295         ])
296
297         AS_IF([test x$enable_eds_backend = xyes], [
298           VALA_CHECK_PACKAGES([libebook-1.2 libedataserver-1.2 libxml-2.0])
299         ])
300 ])
301
302 # this will set HAVE_INTROSPECTION
303 GOBJECT_INTROSPECTION_REQUIRE([1.30])
304
305 AM_CONDITIONAL([HAVE_VALA], [test "x$enable_vala" = "xyes"])
306
307 # Various functions that we need (used in C code generated from Vala)
308 AC_CHECK_FUNCS([memset])
309 AC_CHECK_FUNCS([strstr])
310
311 AM_CONDITIONAL([NOT_RELEASE], [test "x$folks_released" = "x0"])
312
313 # -----------------------------------------------------------
314 # Backends
315 # -----------------------------------------------------------
316
317 FOLKS_MODULE_VERSION=folks_module_version
318 AC_SUBST([FOLKS_MODULE_VERSION])
319 AC_DEFINE([MODULE_VERSION], "folks_module_version", [Module interface version])
320
321 BACKEND_DIR='$(libdir)/folks/$(FOLKS_MODULE_VERSION)/backends'
322 AC_SUBST([BACKEND_DIR])
323
324 BACKEND_KF='$(top_builddir)/backends/key-file/.libs/key-file.so'
325 AC_SUBST([BACKEND_KF])
326 BACKEND_TP='$(top_builddir)/backends/telepathy/.libs/telepathy.so'
327 AC_SUBST([BACKEND_TP])
328
329 AS_IF([test x$have_libsocialweb_backend = xyes], [
330   BACKEND_LIBSOCIALWEB='$(top_builddir)/backends/libsocialweb/.libs/libsocialweb.so'
331   AC_SUBST([BACKEND_LIBSOCIALWEB])
332 ])
333
334 AS_IF([test x$enable_tracker_backend = xyes], [
335   BACKEND_TRACKER='$(top_builddir)/backends/tracker/.libs/tracker.so'
336   AC_SUBST([BACKEND_TRACKER])
337 ])
338
339 AS_IF([test x$enable_eds_backend = xyes], [
340   BACKEND_EDS='$(top_builddir)/backends/eds/.libs/eds.so'
341   AC_SUBST([BACKEND_EDS])
342 ])
343
344 # All of the backend libraries in our tree; to be used by the tests
345 BACKEND_UNINST_PATH='$(BACKEND_KF):$(BACKEND_TP)'
346 AS_IF([test x$have_libsocialweb_backend = xyes], [
347   LIBSOCIALWEB_BACKEND_UNINST_PATH='$(BACKEND_LIBSOCIALWEB)'
348   BACKEND_UNINST_PATH="$BACKEND_UNINST_PATH:$LIBSOCIALWEB_BACKEND_UNINST_PATH"
349 ])
350 AS_IF([test x$enable_tracker_backend = xyes], [
351   TRACKER_BACKEND_UNINST_PATH='$(BACKEND_TRACKER)'
352   BACKEND_UNINST_PATH="$BACKEND_UNINST_PATH:$TRACKER_BACKEND_UNINST_PATH"
353 ])
354 AS_IF([test x$enable_eds_backend = xyes], [
355   EDS_BACKEND_UNINST_PATH='$(BACKEND_EDS)'
356   BACKEND_UNINST_PATH="$BACKEND_UNINST_PATH:$EDS_BACKEND_UNINST_PATH"
357 ])
358 AC_SUBST([BACKEND_UNINST_PATH])
359
360 # -----------------------------------------------------------
361 # Tools
362 # -----------------------------------------------------------
363
364 AC_ARG_ENABLE([import-tool],
365               AS_HELP_STRING([--enable-import-tool],
366                              [Enable building the meta-contact import tool]),
367               [enable_import_tool=$enableval with_import_tool=$enableval],
368               [enable_import_tool=maybe with_import_tool=no])
369 AS_IF([test "$enable_import_tool" != "no"],
370       [PKG_CHECK_MODULES([LIBXML], [libxml-2.0],
371                          [with_import_tool=yes], [with_import_tool=no])])
372 AS_IF([test "$enable_import_tool" = "yes" -a "$with_import_tool" = "no"],
373       [AC_MSG_ERROR([Import tool explicitly enabled, but libxml2 not found])])
374 AM_CONDITIONAL([ENABLE_IMPORT_TOOL], [test "$with_import_tool" = "yes"])
375
376 # Readline's required for the folks-inspect program
377 AC_ARG_ENABLE([inspect-tool],
378               AS_HELP_STRING([--enable-inspect-tool],
379                              [Enable building the data inspection tool]),
380               [enable_inspect_tool=$enableval with_inspect_tool=$enableval],
381               [enable_inspect_tool=maybe with_inspect_tool=no])
382 AS_IF([test "$enable_inspect_tool" = "yes" -a "$enable_vala" != "yes"],
383       [AC_MSG_ERROR([Inspect tool explicitly enabled, but Vala wasn't enabled \
384                      using --enable-vala])])
385 AS_IF([test "$enable_inspect_tool" = "maybe" -a "$enable_vala" != "yes"],
386       [AC_MSG_NOTICE([Inspect tool disabled, as Vala wasn't enabled using \
387                       --enable-vala])])
388 AS_IF([test "$enable_inspect_tool" != "no" -a "x$enable_vala" = "xyes"],
389       [AC_CHECK_LIB([readline], [main],
390                     [with_inspect_tool=yes], [with_inspect_tool=no],
391                     [-lncurses])])
392 AS_IF([test "$enable_inspect_tool" != "no" -a "$with_inspect_tool" = "yes" -a \
393        "x$enable_vala" = "xyes"],
394       [VALA_CHECK_PACKAGES([readline])
395        LIBREADLINE="-lreadline -lncurses"
396        AC_DEFINE([HAVE_LIBREADLINE], [1], [Define if you have libreadline])
397        AC_SUBST([LIBREADLINE])])
398 AS_IF([test "$enable_inspect_tool" = "yes" -a "$with_inspect_tool" = "no"],
399       [AC_MSG_ERROR([Inspect tool explicitly enabled, but readline not found])])
400 AM_CONDITIONAL([ENABLE_INSPECT_TOOL], [test "$with_inspect_tool" = "yes"])
401
402 # -----------------------------------------------------------
403 # Tests
404 # -----------------------------------------------------------
405
406 AC_ARG_ENABLE([tests],
407               AS_HELP_STRING([--enable-tests],[Enable building of tests]),
408               [enable_tests=$enableval], [enable_tests=yes])
409 AS_IF([test "$enable_tests" = "yes" -a "$enable_telepathy_backend" = "no"],
410       [AC_MSG_ERROR([The Telepathy backend must be enabled to build tests])])
411 AM_CONDITIONAL([ENABLE_TESTS], [test x$enable_tests = xyes])
412
413 # -----------------------------------------------------------
414 # Documentation
415 # -----------------------------------------------------------
416
417 AC_ARG_ENABLE([docs],
418               AS_HELP_STRING([--enable-docs],[Enable documentation generation]),
419               [enable_docs=$enableval], [enable_docs=no])
420 AM_CONDITIONAL([ENABLE_DOCS], [test x$enable_docs = xyes])
421
422 have_valadoc=no
423 AS_IF([test x$enable_docs = xyes], [
424   # make sure the library is new enough and the program exists
425   PKG_CHECK_MODULES([VALADOC], [valadoc-1.0 >= $VALADOC_REQUIRED])
426   AC_PATH_PROG([VALADOC], [valadoc], [:])
427   AS_IF([test "$VALADOC" != :], have_valadoc=yes)
428 ])
429 AM_CONDITIONAL([HAVE_VALADOC], [test x$have_valadoc = xyes])
430
431 AS_IF([test "x$enable_docs" = "xyes" -a "x$have_valadoc" != "xyes"], [
432     AC_MSG_ERROR([Doc building requested but valadoc not installed.])
433 ])
434
435 # -----------------------------------------------------------
436 # Gettext
437 # -----------------------------------------------------------
438
439 GETTEXT_PACKAGE=AC_PACKAGE_NAME
440 AC_SUBST(GETTEXT_PACKAGE)
441 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, ["$GETTEXT_PACKAGE"], [Define the gettext package to be used])
442 IT_PROG_INTLTOOL([0.50.0])
443
444 # -----------------------------------------------------------
445 # Error flags
446 # -----------------------------------------------------------
447
448 # Disable GLib deprecation warnings for now (#670196); GValueArray is deprecated
449 # but we need it for dbus-glib. Porting to GDBus will solve this (#653198)
450 AC_DEFINE(GLIB_DISABLE_DEPRECATION_WARNINGS, 1, [Build with GLib deprecated])
451
452 AS_COMPILER_FLAG([-Wall], [ERROR_CFLAGS="-Wall"], [ERROR_CFLAGS=""])
453 AS_COMPILER_FLAG([-Werror], [werror=yes], [werror=no])
454
455 AC_ARG_ENABLE([debug],
456               AS_HELP_STRING([--disable-debug],[compile without debug code]),
457               [enable_debug=$enableval], [enable_debug=yes])
458
459 AS_COMPILER_FLAG([-Wextra], [wextra=yes], [wextra=no])
460 AS_COMPILER_FLAG([-Wno-missing-field-initializers],
461                  [wno_missing_field_initializers=yes],
462                  [wno_missing_field_initializers=no])
463 AS_COMPILER_FLAG([-Wno-unused-parameter],
464                  [wno_unused_parameter=yes], [wno_unused_parameter=no])
465 AS_COMPILER_FLAG([-Wstrict-prototypes], [wstrict_prototypes=yes],
466                  [wstrict_prototypes=no])
467 AS_COMPILER_FLAG([-Wmissing-prototypes], [wmissing_prototypes=yes],
468                  [wmissing_prototypes=no])
469 AS_COMPILER_FLAG([-Wimplicit-function-declaration],
470                  [wimplicit_function_declaration=yes],
471                  [wimplicit_function_declaration=no])
472 AS_COMPILER_FLAG([-Wpointer-arith], [wpointer_arith=yes], [wpointer_arith=no])
473 AS_COMPILER_FLAG([-Winit-self], [winit_self=yes], [winit_self=no])
474 AS_COMPILER_FLAG([-Wformat=2], [wformat=yes], [wformat=no])
475 AS_COMPILER_FLAG([-Wmissing-include-dirs], [wmissing_include_dirs=yes],
476                  [wmissing_include_dirs=no])
477 AS_COMPILER_FLAG([-Waggregate-return], [waggregate_return=yes],
478                  [waggregate_return=no])
479 AS_COMPILER_FLAG([-Wdeclaration-after-statement],
480                  [wdeclaration_after_statement=yes],
481                  [wdeclaration_after_statement=no])
482
483 m4_if(folks_released, [1], [],
484     [
485         # Iff we support -Werror, then use it with all our compiler warnings.
486         if test x$werror = xyes; then
487             flag="-Werror="
488         else
489             flag="-W"
490         fi
491
492         if test x$wextra = xyes -a \
493             x$wno_missing_field_initializers = xyes -a \
494             x$wno_unused_parameter = xyes -a x$wstrict_prototypes = xyes -a \
495             x$wmissing_prototypes = xyes -a \
496             x$wimplicit_function_declaration = xyes -a x$wpointer_arith = xyes \
497             -a x$winit_self = xyes -a x$wformat = xyes -a \
498             x$wmissing_include_dirs = xyes -a x$waggregate_return = xyes -a \
499             x$wdeclaration_after_statement = xyes; then
500             ERROR_CFLAGS="$ERROR_CFLAGS -Wextra \
501                 -Wno-missing-field-initializers \
502                 -Wno-unused-parameter ${flag}strict-prototypes \
503                 ${flag}missing-prototypes ${flag}implicit-function-declaration \
504                 ${flag}pointer-arith ${flag}init-self ${flag}format=2 \
505                 ${flag}missing-include-dirs ${flag}aggregate-return \
506                 ${flag}declaration-after-statement"
507         fi
508     ])
509
510 AS_COMPILER_FLAG([-D_POSIX_SOURCE], [ERROR_CFLAGS="$ERROR_CFLAGS -D_POSIX_SOURCE"])
511 AS_COMPILER_FLAG([-std=c99], [ERROR_CFLAGS="$ERROR_CFLAGS -std=c99"])
512 AS_COMPILER_FLAG([-Wshadow], [ERROR_CFLAGS="$ERROR_CFLAGS -Wshadow"])
513 AS_COMPILER_FLAG([-Wmissing-prototypes], [ERROR_CFLAGS="$ERROR_CFLAGS \
514                                           -Wmissing-prototypes"])
515 AS_COMPILER_FLAG([-Wmissing-declarations], [ERROR_CFLAGS="$ERROR_CFLAGS \
516                                             -Wmissing-declarations"])
517 AS_COMPILER_FLAG([-Wstrict-prototypes], [ERROR_CFLAGS="$ERROR_CFLAGS \
518                                          -Wstrict-prototypes"])
519
520 AC_SUBST([ERROR_CFLAGS])
521
522 # -----------------------------------------------------------
523 # Code coverage flags
524 # -----------------------------------------------------------
525
526 AC_ARG_ENABLE([code-coverage],
527               AS_HELP_STRING([--enable-code-coverage],
528                              [compile with code coverage code]),
529               [enable_code_coverage=$enableval], [enable_code_coverage=no])
530
531 # Only enable code coverage if this isn't a release.
532 m4_if(folks_released, [1], [],
533     [
534         if test "x$GCC" = "xyes"; then
535             if test "x$enable_code_coverage" = "xyes"; then
536                 CODE_COVERAGE_CFLAGS="-fprofile-arcs -ftest-coverage -O0 -ggdb"
537                 CODE_COVERAGE_LDFLAGS="-lgcov"
538             fi
539         fi
540     ])
541
542 AC_SUBST([CODE_COVERAGE_CFLAGS])
543 AC_SUBST([CODE_COVERAGE_LDFLAGS])
544
545 # Vala-related flags
546 AC_ARG_ENABLE([fatal-warnings],
547               AS_HELP_STRING([--disable-fatal-warnings],
548                              [Make warnings from valac and g-ir-scanner non-fatal]),
549               [enable_fatal_warnings=$enableval], [enable_fatal_warnings=yes])
550 AS_IF([test "x$enable_vala" = "xyes" && test "x$enable_fatal_warnings" = "xyes"],
551       [ERROR_INTROSPECTION_SCANNER_ARGS="\
552                         $ERROR_INTROSPECTION_SCANNER_ARGS --warn-error"
553        ERROR_VALAFLAGS="$ERROR_VALAFLAGS --fatal-warnings"])
554
555 # Disable -g if we're building with code coverage enabled, since Vala's
556 # insertion of #line directives into .c files confuses lcov. For the moment,
557 # we'll have to do with looking at code coverage of the generated C files only.
558 # We set the debug flags in CODE_COVERAGE_CFLAGS instead in that case.
559 m4_if(folks_released, [1], [],
560     [
561         if test "x$enable_code_coverage" != "xyes" -o "x$GCC" != "xyes"; then
562             ERROR_VALAFLAGS="$ERROR_VALAFLAGS -g"
563         fi
564     ])
565
566 AC_SUBST([ERROR_INTROSPECTION_SCANNER_ARGS])
567 AC_SUBST([ERROR_VALAFLAGS])
568
569 # -----------------------------------------------------------
570 # Profiling
571 # -----------------------------------------------------------
572
573 AC_ARG_ENABLE([profiling],
574               AS_HELP_STRING([--enable-profiling],
575                              [Enable building profiling points]),
576               [enable_profiling=$enableval],
577               [enable_profiling=no])
578 AM_CONDITIONAL([ENABLE_PROFILING], [test "$enable_profiling" = "yes"])
579
580 # -----------------------------------------------------------
581 # Final output
582 # -----------------------------------------------------------
583
584 AC_CONFIG_FILES([
585     backends/telepathy/lib/folks-telepathy.pc
586     backends/telepathy/lib/folks-telepathy-uninstalled.pc
587     backends/tracker/lib/folks-tracker.deps
588     backends/tracker/lib/folks-tracker.pc
589     backends/tracker/lib/folks-tracker-uninstalled.pc
590     backends/eds/lib/folks-eds.pc
591     backends/eds/lib/folks-eds-uninstalled.pc
592     folks/folks.pc
593     folks/folks-uninstalled.pc
594     folks/org.freedesktop.folks.gschema.xml
595     Makefile
596     backends/Makefile
597     backends/key-file/Makefile
598     backends/libsocialweb/Makefile
599     backends/libsocialweb/lib/Makefile
600     backends/libsocialweb/lib/folks-libsocialweb.pc
601     backends/libsocialweb/lib/folks-libsocialweb-uninstalled.pc
602     backends/telepathy/Makefile
603     backends/telepathy/lib/Makefile
604     backends/tracker/Makefile
605     backends/tracker/lib/Makefile
606     backends/eds/Makefile
607     backends/eds/lib/Makefile
608     folks/Makefile
609     docs/Makefile
610     po/Makefile.in
611     tests/Makefile
612     tests/data/Makefile
613     tests/eds/Makefile
614     tests/folks/Makefile
615     tests/key-file/Makefile
616     tests/libsocialweb/Makefile
617     tests/telepathy/Makefile
618     tests/tracker/Makefile
619     tests/lib/Makefile
620     tests/lib/folks-test-uninstalled.pc
621     tests/lib/eds/Makefile
622     tests/lib/key-file/Makefile
623     tests/lib/libsocialweb/Makefile
624     tests/lib/libsocialweb/session.conf
625     tests/lib/telepathy/Makefile
626     tests/lib/tracker/Makefile
627     tests/lib/telepathy/contactlist/Makefile
628     tests/lib/telepathy/contactlist/session.conf
629     tests/tools/Makefile
630     tools/Makefile
631     tools/inspect/Makefile
632 ])
633
634 AC_OUTPUT
635
636 echo "
637 Configure summary:
638
639         Vala........................:  ${enable_vala}
640         Vala Compiler...............:  ${VALAC}
641         C Compiler Flags............:  ${CFLAGS} ${ERROR_CFLAGS} ${CODE_COVERAGE_CFLAGS}
642         Linker Flags................:  ${LDFLAGS} ${CODE_COVERAGE_LDFLAGS}
643         Prefix......................:  ${prefix}
644         Bugreporting URL............:  ${PACKAGE_BUGREPORT}
645         Documentation...............:  ${have_valadoc}
646         Import tool.................:  ${with_import_tool}
647         Inspector tool..............:  ${with_inspect_tool}
648         Telepathy backend...........:  ${enable_telepathy_backend}
649         Tracker backend.............:  ${enable_tracker_backend}
650         Libsocialweb backend........:  ${have_libsocialweb_backend}
651         E-D-S backend...............:  ${enable_eds_backend}
652         Build tests.................:  ${enable_tests}
653 "