build: Print out code coverage state properly
[platform/upstream/gcr.git] / configure.ac
1 AC_PREREQ([2.63])
2 AC_INIT([gcr], [3.7.2],
3         [http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-keyring&component=gcr],
4         [gcr])
5
6 dnl ****************************************************************************
7 dnl Library package and libtool versioning
8 dnl
9 dnl Updating the libtool versions, follow these instructions sequentially:
10 dnl  1. If the library source code has changed at all since the last update, then increment revision (‘c:r:a’ becomes ‘c:r+1:a’).
11 dnl  2. If any interfaces have been added, removed, or changed since the last update, increment current, and set revision to 0.
12 dnl  3. If any interfaces have been added since the last public release, then increment age.
13 dnl  4. If any interfaces have been removed or changed since the last public release, then set age to 0.
14
15 # GCK package versioning
16 GCK_MAJOR=1
17 GCK_MINOR=0
18 GCK_MICRO=0
19
20 # GCK libtool versioning
21 GCK_CURRENT=0
22 GCK_REVISION=0
23 GCK_AGE=0
24
25 # GCR package versioning
26 GCR_MAJOR=3
27 GCR_MINOR=0
28 GCR_MICRO=0
29
30 # GCR libtool versioning
31 GCR_CURRENT=1
32 GCR_REVISION=0
33 GCR_AGE=0
34
35 dnl ****************************************************************************
36
37 AC_CONFIG_MACRO_DIR([build/m4])
38 AM_INIT_AUTOMAKE([1.11 tar-ustar foreign -Wno-portability])
39 AM_SANITY_CHECK
40 AM_CONFIG_HEADER(config.h)
41 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
42 AM_MAINTAINER_MODE([enable])
43
44 # -----------------------------------------------------------------------------
45 # Basic tools
46
47 AC_GNU_SOURCE
48 AC_ISC_POSIX
49 AC_PROG_CC
50 AC_PROG_CPP
51 AM_PROG_CC_C_O
52 AC_PROG_INSTALL
53 AC_PROG_LN_S
54 AC_PROG_MAKE_SET
55 AM_DISABLE_STATIC
56 AM_PROG_LIBTOOL
57 IT_PROG_INTLTOOL([0.35.0])
58 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
59
60 GETTEXT_PACKAGE=gcr
61 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [The gettext domain name])
62 AC_SUBST(GETTEXT_PACKAGE)
63 AM_GLIB_GNU_GETTEXT
64
65 # -----------------------------------------------------------------------------
66 # GLib and GTK+ stuff
67
68 PKG_CHECK_MODULES(GLIB,
69         glib-2.0 >= 2.32.0
70         gmodule-no-export-2.0
71         gthread-2.0
72         gobject-2.0
73         gio-2.0 gio-unix-2.0)
74 AC_SUBST(GLIB_CFLAGS)
75 AC_SUBST(GLIB_LIBS)
76
77 GLIB_GSETTINGS
78 GOBJECT_INTROSPECTION_CHECK([1.29])
79 AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
80 AC_PATH_PROG(GLIB_MKENUMS, glib-mkenums)
81
82 GTK_DOC_CHECK(1.9)
83
84 PKG_CHECK_MODULES(GTK, gtk+-3.0 >= 3.0)
85 AC_SUBST(GTK_CFLAGS)
86 AC_SUBST(GTK_LIBS)
87
88 # --------------------------------------------------------------------
89 # Checks for functions
90 #
91
92 AC_CHECK_FUNCS(timegm, AC_DEFINE(HAVE_TIMEGM,1,[Have timegm]))
93 AC_CHECK_FUNCS(mlock)
94
95 # --------------------------------------------------------------------
96 # p11-kit
97
98 PKG_CHECK_MODULES([P11_KIT], p11-kit-1 >= 0.6)
99 AC_SUBST(P11_KIT_CFLAGS)
100 AC_SUBST(P11_KIT_LIBS)
101
102 AC_MSG_CHECKING([where to put pkcs11 module configuration])
103 P11_SYSTEM_CONFIG_MODULES=$($PKG_CONFIG p11-kit-1 --variable=p11_system_config_modules)
104 AC_MSG_RESULT($P11_SYSTEM_CONFIG_MODULES)
105 AC_SUBST(P11_SYSTEM_CONFIG_MODULES)
106
107 if test "$P11_SYSTEM_CONFIG_MODULES" = ""; then
108         AC_MSG_ERROR([Could not find location for pkcs11 module config])
109 fi
110
111 AC_MSG_CHECKING([module path to install pkcs11 modules])
112 AC_ARG_WITH(pkcs11-modules, [
113             AC_HELP_STRING([--with-pkcs11-modules=<dir>],
114                            [directory to install PKCS#11 modules])
115             ])
116 if test -z "$with_pkcs11_modules" ; then
117         P11_MODULE_PATH=$($PKG_CONFIG p11-kit-1 --variable=p11_module_path)
118 else
119         P11_MODULE_PATH="$with_pkcs11_modules"
120 fi
121 if test "$P11_MODULE_PATH" = ""; then
122         AC_MSG_ERROR([Could not find directory to install pkcs11 modules])
123 fi
124 AC_MSG_RESULT($P11_MODULE_PATH)
125 AC_SUBST(P11_MODULE_PATH)
126
127 pkcs11standalonedir="${libdir}/gnome-keyring/devel"
128 AC_SUBST(pkcs11standalonedir)
129
130 # --------------------------------------------------------------------
131 # GPG support
132
133 AC_PATH_PROGS([GNUPG], [gpg gpg2], ["gpg"])
134 AC_DEFINE_UNQUOTED([GPG_EXECUTABLE], ["$GNUPG"], [Path to gpg executable.])
135
136 # --------------------------------------------------------------------
137 # libgcrypt
138 #
139
140 GCRYPT_VERSION=1.2.2
141 GCRYPT_LIBVER=1
142
143 AM_PATH_LIBGCRYPT($GCRYPT_LIBVER:$GCRYPT_VERSION,,
144         AC_MSG_ERROR([[
145 ***
146 *** libgcrypt was not found. You may want to get it from
147 *** ftp://ftp.gnupg.org/gcrypt/libgcrypt/
148 ***
149 ]]))
150 libgcrypt=yes
151 AC_DEFINE_UNQUOTED(LIBGCRYPT_VERSION, "$GCRYPT_VERSION", [Version of GCRYPT we expect])
152
153 AC_SUBST([LIBGCRYPT_CFLAGS])
154 AC_SUBST([LIBGCRYPT_LIBS])
155
156 # -------------------------------------------------------------------
157 # libtasn1
158 #
159
160 AC_PATH_PROG(ASN1PARSER, asn1Parser, no)
161 if test "$ASN1PARSER" = "no" ; then
162         AC_MSG_ERROR([asn1Parser tool is not installed, try libtasn1 or a related package])
163 fi
164
165 # ----------------------------------------------------------------------
166 # mime-database
167
168 AC_ARG_ENABLE(update-mime,
169         AC_HELP_STRING([--disable-update-mime],
170         [don't run update-mime-database utility (useful for packages) ]))
171 AM_CONDITIONAL(WITH_UPDATE_MIME, test "$enable_update_mime" != "no")
172
173 AC_ARG_ENABLE(update-icon-cache,
174         AC_HELP_STRING([--disable-update-icon-cache],
175         [don't run gtk-update-icon-cache utility (useful for packages) ]))
176 AM_CONDITIONAL(WITH_UPDATE_ICON_CACHE, test "$enable_update_icon_cache" != "no")
177
178 # ----------------------------------------------------------------------
179 # DBus services
180
181 AC_ARG_WITH(dbus-services,
182                   [AC_HELP_STRING([--with-dbus-services=<dir>],
183                   [where D-BUS session services directory is])])
184 if ! test -z "$with_dbus_services" ; then
185         DBUS_SERVICES_DIR="$with_dbus_services"
186 else
187         DBUS_SERVICES_DIR="$datadir/dbus-1/services"
188 fi
189
190 AC_SUBST(DBUS_SERVICES_DIR)
191
192 # --------------------------------------------------------------------
193 # Compilation and linking options
194 #
195
196 AC_MSG_CHECKING([for debug mode])
197 AC_ARG_ENABLE(debug,
198               AC_HELP_STRING([--enable-debug=no/default/yes],
199               [Turn on or off debugging]))
200
201 if test "$enable_debug" != "no"; then
202         AC_DEFINE_UNQUOTED(WITH_DEBUG, 1, [Print debug output])
203         AC_DEFINE_UNQUOTED(_DEBUG, 1, [In debug mode])
204         CFLAGS="$CFLAGS -g"
205 fi
206
207 if test "$enable_debug" = "yes"; then
208         debug_status="yes (-g, -O0, debug output, testable)"
209         AC_DEFINE_UNQUOTED(GCR_DISABLE_GRABS, 1, [Disable grabs])
210         CFLAGS="$CFLAGS -O0"
211 elif test "$enable_debug" = "no"; then
212         debug_status="no (no debug output, not testable, G_DISABLE_ASSERT)"
213         AC_DEFINE_UNQUOTED(G_DISABLE_ASSERT, 1, [Disable glib assertions])
214 else
215         debug_status="default (-g, debug output, testable)"
216 fi
217
218 AC_MSG_RESULT($debug_status)
219
220 AC_MSG_CHECKING(for more warnings)
221 if test "$GCC" = "yes"; then
222         AC_MSG_RESULT(yes)
223         CFLAGS="\
224         -Wall \
225         -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \
226         -Wnested-externs -Wpointer-arith \
227         -Wcast-align -Wsign-compare \
228         $CFLAGS"
229
230         # Disable -Werror for now, because of issues with
231         # strange gtk-doc programs not building cleanly.
232         # -Werror \
233
234         for option in -Wno-strict-aliasing -Wno-sign-compare; do
235                 SAVE_CFLAGS="$CFLAGS"
236                 CFLAGS="$CFLAGS $option"
237                 AC_MSG_CHECKING([whether gcc understands $option])
238                 AC_TRY_COMPILE([], [],
239                         has_option=yes,
240                         has_option=no,)
241                 if test $has_option = no; then
242                         CFLAGS="$SAVE_CFLAGS"
243                 fi
244                 AC_MSG_RESULT($has_option)
245                 unset has_option
246                 unset SAVE_CFLAGS
247         done
248         unset option
249 else
250         AC_MSG_RESULT(no)
251 fi
252
253 AC_ARG_ENABLE(strict, [
254                AS_HELP_STRING([--enable-strict], [Strict code compilation])
255              ])
256
257 AC_MSG_CHECKING([build strict])
258
259 if test "$enable_strict" = "yes"; then
260         CFLAGS="$CFLAGS -Werror \
261                 -DGTK_DISABLE_DEPRECATED \
262                 -DGDK_DISABLE_DEPRECATED \
263                 -DG_DISABLE_DEPRECATED \
264                 -DGDK_PIXBUF_DISABLE_DEPRECATED"
265         TEST_MODE="thorough"
266         INTROSPECTION_FLAGS="--warn-error"
267         AC_DEFINE_UNQUOTED(WITH_STRICT, 1, [More strict checks])
268         strict_status="yes (-Werror, thorough tests, fatals, no deprecations)"
269 else
270         TEST_MODE="quick"
271         INTROSPECTION_FLAGS=""
272         strict_status="no (quick tests, non-fatal warnings)"
273 fi
274
275 AC_MSG_RESULT($strict_status)
276 AC_SUBST(INTROSPECTION_FLAGS)
277 AC_SUBST(TEST_MODE)
278
279 GNOME_CODE_COVERAGE
280 CFLAGS="$CFLAGS $CODE_COVERAGE_CFLAGS"
281 LDFLAGS="$LDFLAGS $CODE_COVERAGE_LDFLAGS"
282
283 AC_ARG_ENABLE(valgrind,
284         AC_HELP_STRING([--enable-valgrind],
285         [Run gnome-keyring-daemon using valgrind]))
286
287 AC_MSG_CHECKING([valgrind])
288 valgrind_status="yes"
289
290 AM_CONDITIONAL(WITH_VALGRIND, test "$enable_valgrind" = "run")
291
292 # Run gnome-keyring-daemon under valgrind as default
293 if test "$enable_valgrind" = "run"; then
294         AC_PATH_PROG(VALGRIND, valgrind, no)
295         if test "$VALGRIND" = "no" ; then
296                 AC_MSG_ERROR(valgrind tool is not installed)
297         fi
298
299         VALGRIND_ARG="--log-file=/tmp/gkr-valgrind.log.%p"
300         VALGRIND_RUN="$VALGRIND $VALGRIND_ARG "
301
302         AC_DEFINE_UNQUOTED(VALGRIND, "$VALGRIND", [Path to valgrind executable])
303         AC_DEFINE_UNQUOTED(VALGRIND_ARG, "$VALGRIND_ARG", [Valgrind arguments])
304
305         enable_valgrind="yes"
306         valgrind_status="run"
307 fi
308
309 AC_SUBST(VALGRIND)
310 AC_SUBST(VALGRIND_ARG)
311 AC_SUBST(VALGRIND_RUN)
312
313 # Build valgrind support into code
314 if test "$enable_valgrind" = "yes"; then
315         AC_CHECK_HEADER([valgrind/valgrind.h], have_valgrind=yes, have_valgrind=no)
316         if test "$have_valgrind" = "no"; then
317                 AC_MSG_ERROR(The valgrind headers are missing)
318         fi
319         AC_DEFINE_UNQUOTED(WITH_VALGRIND, 1, [Run under valgrind])
320         AC_MSG_RESULT(yes)
321
322
323 # No valgrind
324 else
325         AC_MSG_RESULT(no)
326         valgrind_status="no"
327 fi
328
329 # ----------------------------------------------------------------------
330
331 GCK_LT_RELEASE=$GCK_CURRENT:$GCK_REVISION:$GCK_AGE
332 AC_SUBST(GCK_LT_RELEASE)
333 AC_SUBST(GCK_MAJOR)
334 AC_SUBST(GCK_MINOR)
335
336 GCR_LT_RELEASE=$GCR_CURRENT:$GCR_REVISION:$GCR_AGE
337 AC_SUBST(GCR_LT_RELEASE)
338 AC_SUBST(GCR_MAJOR)
339 AC_SUBST(GCR_MINOR)
340
341 AC_OUTPUT([
342 Makefile
343 build/Makefile
344 docs/Makefile
345 docs/reference/Makefile
346 docs/reference/gck/Makefile
347 docs/reference/gck/version.xml
348 docs/reference/gcr/Makefile
349 docs/reference/gcr/version.xml
350 egg/Makefile
351 egg/tests/Makefile
352 gck/gck.pc
353 gck/Makefile
354 gck/tests/Makefile
355 gcr/gcr.pc
356 gcr/gcr-base.pc
357 gcr/Makefile
358 gcr/icons/Makefile
359 gcr/icons/16x16/Makefile
360 gcr/icons/22x22/Makefile
361 gcr/icons/24x24/Makefile
362 gcr/icons/32x32/Makefile
363 gcr/icons/48x48/Makefile
364 gcr/icons/256x256/Makefile
365 gcr/tests/Makefile
366 po/Makefile.in
367 schema/Makefile
368 testing/Makefile
369 ])
370
371 # ------------------------------------------------------------------------------
372 # Summary
373 #
374
375 echo
376 echo "BUILD"
377 echo "  Debug Build:          $debug_status"
378 echo "  Strict Compilation:   $strict_status"
379 echo "  Introspection:        $found_introspection"
380 echo "  Valgrind:             $valgrind_status"
381 echo "  Test Coverage:        ${enable_code_coverage:-no}"
382 echo