Add the framework for a test suite
[platform/upstream/folks.git] / configure.ac
1 dnl 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], [1])
6 m4_define([folks_micro_version], [17])
7 m4_define([folks_nano_version], [0])
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
15 m4_define([folks_lt_current], [13])
16 m4_define([folks_lt_revision], [1])
17 m4_define([folks_lt_age], [13])
18
19 dnl Display the nano_version only if it's not '0'
20 m4_define([folks_base_version],
21                 [folks_major_version.folks_minor_version.folks_micro_version])
22 m4_define([folks_full_version],
23                 [m4_if(folks_nano_version, 0, [folks_base_version],
24                         [folks_base_version].[folks_nano_version])])
25
26 m4_define(folks_maybe_datestamp,
27                     m4_esyscmd([if test x]folks_released[ != x1; then date +.%Y%m%d | tr -d '\n\r'; fi]))
28
29 m4_define(folks_version, folks_full_version[]folks_maybe_datestamp)
30
31 # Module API version.
32 m4_define([folks_module_version], [folks_lt_current])
33
34 AC_INIT([folks],[folks_version],[https://bugzilla.gnome.org/browse.cgi?product=folks],[folks],[http://telepathy.freedesktop.org/wiki/Folks])
35 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
36
37 AC_PREREQ(2.65)
38 AC_COPYRIGHT([
39   Copyright (C) 2010 Collabora Ltd.
40 ])
41
42 AC_CONFIG_MACRO_DIR([m4])
43 AC_CONFIG_SRCDIR([Makefile.am])
44 AC_CONFIG_HEADERS(config.h)
45 AC_CONFIG_SRCDIR([configure.ac])
46 AM_INIT_AUTOMAKE(1.11 dist-bzip2 no-define 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
54 AC_SUBST(CFLAGS)
55 AC_SUBST(CPPFLAGS)
56 AC_SUBST(LDFLAGS)
57
58 # -----------------------------------------------------------
59 # Dependencies
60 # -----------------------------------------------------------
61 GLIB_REQUIRED=2.24.0
62 TP_GLIB_REQUIRED=0.11.11
63 # FIXME: remove the machinery using this once it's safe to require this version
64 # (be sure to remove the HAVE_TP_GLIB_FOR_TESTS conditionals in Makefile.am files)
65 TP_GLIB_TESTS_REQUIRED=0.11.14.1
66 VALA_REQUIRED=0.9.6
67
68 AM_PROG_VALAC([$VALA_REQUIRED])
69
70 PKG_PROG_PKG_CONFIG([0.21])
71
72 LT_CURRENT=folks_lt_current
73 LT_REVISION=folks_lt_revision
74 LT_AGE=folks_lt_age
75 AC_SUBST([LT_CURRENT])
76 AC_SUBST([LT_REVISION])
77 AC_SUBST([LT_AGE])
78
79 PKG_CHECK_MODULES(GLIB,
80                   glib-2.0 >= $GLIB_REQUIRED
81                   gobject-2.0 >= $GLIB_REQUIRED)
82 AC_SUBST(GLIB_CFLAGS)
83 AC_SUBST(GLIB_LIBS)
84
85 PKG_CHECK_MODULES(GIO, gio-2.0 >= $GLIB_REQUIRED)
86 AC_SUBST(GIO_CFLAGS)
87 AC_SUBST(GIO_LIBS)
88
89 PKG_CHECK_MODULES(DBUS_GLIB, dbus-glib-1)
90 AC_SUBST(DBUS_GLIB_CFLAGS)
91 AC_SUBST(DBUS_GLIB_LIBS)
92
93 # require GLib >= 2.24 so GLib.Array, etc. reffing is handled automatically
94 VALACFLAGS="$VALACFLAGS --target-glib=2.24"
95 AC_SUBST(VALACFLAGS)
96 AC_SUBST(VALAFLAGS)
97 AC_SUBST(VAPIDIR)
98
99 AC_PATH_PROG(VAPIGEN, vapigen, vapigen)
100 AC_SUBST(VAPIGEN)
101
102 GOBJECT_INTROSPECTION_REQUIRE([0.6.7])
103
104 AS_IF([test "$VAPIGEN" = ""],
105         [AC_MSG_ERROR([Vala must be built with --enable-vapigen])])
106
107 # FIXME: We depend on libgee < 0.7 because 0.7 breaks API. bgo#627746
108 PKG_CHECK_MODULES(GEE, gee-1.0 < 0.7)
109 AC_SUBST(GEE_CFLAGS)
110 AC_SUBST(GEE_LIBS)
111
112 PKG_CHECK_MODULES(TP_GLIB, telepathy-glib >= $TP_GLIB_REQUIRED)
113 AC_SUBST(TP_GLIB_CFLAGS)
114 AC_SUBST(TP_GLIB_LIBS)
115
116 VALA_CHECK_PACKAGES([telepathy-glib
117                     dbus-glib-1
118                     gio-2.0
119                     gee-1.0])
120
121 # Various functions that we need (used in C code generated from Vala)
122 AC_CHECK_FUNCS([memset])
123 AC_CHECK_FUNCS([strstr])
124
125 # -----------------------------------------------------------
126 # Backends
127 # -----------------------------------------------------------
128
129 FOLKS_MODULE_VERSION=folks_module_version()
130 AC_SUBST(FOLKS_MODULE_VERSION)
131 AC_DEFINE([MODULE_VERSION], ["folks_module_version()"],
132           [Module interface version])
133
134 BACKEND_DIR='$(libdir)/folks/$(FOLKS_MODULE_VERSION)/backends'
135 AC_SUBST(BACKEND_DIR)
136
137 # -----------------------------------------------------------
138 # Tests
139 # -----------------------------------------------------------
140 PKG_CHECK_MODULES(TP_GLIB_FOR_TESTS,
141                   telepathy-glib >= $TP_GLIB_TESTS_REQUIRED,
142                   [have_tp_glib_for_tests=true],
143                   [have_tp_glib_for_tests=false])
144 AM_CONDITIONAL([HAVE_TP_GLIB_FOR_TESTS], [$have_tp_glib_for_tests])
145
146 # -----------------------------------------------------------
147 # Documentation
148 # -----------------------------------------------------------
149 AC_ARG_ENABLE(docs,
150   AS_HELP_STRING([--enable-docs],[Enable documentation generation]),
151     enable_docs=$enableval, enable_docs=no)
152 AM_CONDITIONAL(ENABLE_DOCS, test x$enable_docs = xyes)
153
154 AS_IF([test "x$enable_docs" != xno],
155   [AC_PATH_PROG(VALADOC, valadoc, :)
156    AC_SUBST(VALADOC)
157    AS_IF([test "$VALADOC" = :],
158      [AC_MSG_ERROR([valadoc not found])])])
159
160 # -----------------------------------------------------------
161 # Error flags
162 # -----------------------------------------------------------
163 AS_COMPILER_FLAG(-Wall, ERROR_CFLAGS="-Wall", ERROR_CFLAGS="")
164 AS_COMPILER_FLAG(-Werror, werror=yes, werror=no)
165
166 AC_ARG_ENABLE(debug,
167   AS_HELP_STRING([--disable-debug],[compile without debug code]),
168     enable_debug=$enableval, enable_debug=yes)
169
170 AC_ARG_ENABLE(Werror,
171   AS_HELP_STRING([--disable-Werror],[compile without -Werror (normally enabled in development builds)]),
172     werror=$enableval, werror=yes)
173
174 AS_COMPILER_FLAG(-Wextra, wextra=yes, wextra=no)
175 AS_COMPILER_FLAG(-Wno-missing-field-initializers,
176         wno_missing_field_initializers=yes,
177         wno_missing_field_initializers=no)
178 AS_COMPILER_FLAG(-Wno-unused-parameter,
179         wno_unused_parameter=yes,
180         wno_unused_parameter=no)
181
182 ifelse(folks_released, 1, [],
183     [
184         if test x$werror = xyes; then
185             ERROR_CFLAGS="$ERROR_CFLAGS -Werror"
186         fi
187         if test x$wextra = xyes -a \
188             x$wno_missing_field_initializers = xyes -a \
189             x$wno_unused_parameter = xyes; then
190             ERROR_CFLAGS="$ERROR_CFLAGS -Wextra -Wno-missing-field-initializers -Wno-unused-parameter"
191         fi
192     ])
193
194 AS_COMPILER_FLAG(-D_POSIX_SOURCE, ERROR_CFLAGS="$ERROR_CFLAGS -D_POSIX_SOURCE")
195 AS_COMPILER_FLAG(-std=c99, ERROR_CFLAGS="$ERROR_CFLAGS -std=c99")
196 AS_COMPILER_FLAG(-Wshadow, ERROR_CFLAGS="$ERROR_CFLAGS -Wshadow")
197 AS_COMPILER_FLAG(-Wmissing-prototypes, ERROR_CFLAGS="$ERROR_CFLAGS -Wmissing-prototypes")
198 AS_COMPILER_FLAG(-Wmissing-declarations, ERROR_CFLAGS="$ERROR_CFLAGS -Wmissing-declarations")
199 AS_COMPILER_FLAG(-Wstrict-prototypes, ERROR_CFLAGS="$ERROR_CFLAGS -Wstrict-prototypes")
200
201 AC_SUBST(ERROR_CFLAGS)
202
203 # -----------------------------------------------------------
204 # Final output
205 # -----------------------------------------------------------
206
207 AC_CONFIG_FILES([
208         backends/telepathy/lib/folks-telepathy.pc
209         backends/telepathy/lib/folks-telepathy-uninstalled.pc
210         folks/folks.pc
211         folks/folks-uninstalled.pc
212         Makefile
213         backends/Makefile
214         backends/key-file/Makefile
215         backends/telepathy/Makefile
216         backends/telepathy/lib/Makefile
217         folks/Makefile
218         docs/Makefile
219         tests/Makefile
220         tests/telepathy/Makefile
221         tests/lib/Makefile
222         tests/lib/telepathy/Makefile
223         tests/lib/telepathy/contactlist/Makefile
224         tests/lib/telepathy/contactlist/session.conf
225 ])
226
227 AC_OUTPUT
228
229 echo "
230 Configure summary:
231
232         Compiler....................:  ${VALAC}
233         Compiler Flags..............:  ${CFLAGS} ${ERROR_CFLAGS}
234         Prefix......................:  ${prefix}
235         Bugreporting URL............:  ${PACKAGE_BUGREPORT}
236         Documentation...............:  ${enable_docs}
237         Tests.......................:  ${have_tp_glib_for_tests}
238
239
240 "