Revert changes to libtool version and removed API
[platform/upstream/gcr.git] / configure.ac
1 AC_PREREQ([2.63])
2 AC_INIT([gcr], [3.3.3],
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.30.0
70         gmodule-no-export-2.0
71         gthread-2.0
72         gobject-2.0
73         gio-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 # --------------------------------------------------------------------
174 # Compilation and linking options
175 #
176
177 AC_MSG_CHECKING([for debug mode])
178 AC_ARG_ENABLE(debug,
179               AC_HELP_STRING([--enable-debug=no/default/yes],
180               [Turn on or off debugging]))
181
182 if test "$enable_debug" != "no"; then
183         AC_DEFINE_UNQUOTED(WITH_DEBUG, 1, [Print debug output])
184         AC_DEFINE_UNQUOTED(_DEBUG, 1, [In debug mode])
185         CFLAGS="$CFLAGS -g"
186 fi
187
188 if test "$enable_debug" = "yes"; then
189         debug_status="yes (-g, -O0, debug output, testable)"
190         CFLAGS="$CFLAGS -O0"
191 elif test "$enable_debug" = "no"; then
192         debug_status="no (no debug output, not testable, G_DISABLE_ASSERT)"
193         AC_DEFINE_UNQUOTED(G_DISABLE_ASSERT, 1, [Disable glib assertions])
194 else
195         debug_status="default (-g, debug output, testable)"
196 fi
197
198 AC_MSG_RESULT($debug_status)
199
200 AC_MSG_CHECKING(for more warnings)
201 if test "$GCC" = "yes"; then
202         AC_MSG_RESULT(yes)
203         CFLAGS="\
204         -Wall \
205         -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \
206         -Wnested-externs -Wpointer-arith \
207         -Wcast-align -Wsign-compare \
208         $CFLAGS"
209
210         # Disable -Werror for now, because of issues with
211         # strange gtk-doc programs not building cleanly.
212         # -Werror \
213
214         for option in -Wno-strict-aliasing -Wno-sign-compare; do
215                 SAVE_CFLAGS="$CFLAGS"
216                 CFLAGS="$CFLAGS $option"
217                 AC_MSG_CHECKING([whether gcc understands $option])
218                 AC_TRY_COMPILE([], [],
219                         has_option=yes,
220                         has_option=no,)
221                 if test $has_option = no; then
222                         CFLAGS="$SAVE_CFLAGS"
223                 fi
224                 AC_MSG_RESULT($has_option)
225                 unset has_option
226                 unset SAVE_CFLAGS
227         done
228         unset option
229 else
230         AC_MSG_RESULT(no)
231 fi
232
233 AC_ARG_ENABLE(strict, [
234                AS_HELP_STRING([--enable-strict], [Strict code compilation])
235              ])
236
237 AC_MSG_CHECKING([build strict])
238
239 if test "$enable_strict" = "yes"; then
240         CFLAGS="$CFLAGS -Werror \
241                 -DGTK_DISABLE_DEPRECATED \
242                 -DGDK_DISABLE_DEPRECATED \
243                 -DG_DISABLE_DEPRECATED \
244                 -DGDK_PIXBUF_DISABLE_DEPRECATED"
245         TEST_MODE="thorough"
246         INTROSPECTION_FLAGS="--warn-error"
247         AC_DEFINE_UNQUOTED(WITH_STRICT, 1, [More strict checks])
248         strict_status="yes (-Werror, thorough tests, fatals, no deprecations)"
249 else
250         TEST_MODE="quick"
251         INTROSPECTION_FLAGS=""
252         strict_status="no (quick tests, non-fatal warnings)"
253 fi
254
255 AC_MSG_RESULT($strict_status)
256 AC_SUBST(INTROSPECTION_FLAGS)
257 AC_SUBST(TEST_MODE)
258
259 AC_MSG_CHECKING([whether to build with gcov testing])
260 AC_ARG_ENABLE([coverage],
261                 AS_HELP_STRING([--enable-coverage],
262                         [Whether to enable coverage testing ]),
263                 [],
264                 [enable_coverage=no])
265
266 AC_MSG_RESULT([$enable_coverage])
267
268 if test "$enable_coverage" = "yes"; then
269         if test "$GCC" != "yes"; then
270                 AC_MSG_ERROR(Coverage testing requires GCC)
271         fi
272
273         AC_PATH_PROG(GCOV, gcov, no)
274         if test "$GCOV" = "no" ; then
275                 AC_MSG_ERROR(gcov tool is not available)
276         fi
277
278         AC_PATH_PROG(LCOV, lcov, no)
279         if test "$LCOV" = "no" ; then
280                 AC_MSG_ERROR(lcov tool is not installed)
281         fi
282
283         AC_PATH_PROG(GENHTML, genhtml, no)
284         if test "$GENHTML" = "no" ; then
285                 AC_MSG_ERROR(lcov's genhtml tool is not installed)
286         fi
287
288         CFLAGS="$CFLAGS -O0 -g -fprofile-arcs -ftest-coverage"
289         LDFLAGS="$LDFLAGS -lgcov"
290 fi
291
292 AM_CONDITIONAL([WITH_COVERAGE], [test "$enable_coverage" = "yes"])
293 AC_SUBST(LCOV)
294 AC_SUBST(GCOV)
295 AC_SUBST(GENHTML)
296
297 AC_ARG_ENABLE(valgrind,
298         AC_HELP_STRING([--enable-valgrind],
299         [Run gnome-keyring-daemon using valgrind]))
300
301 AC_MSG_CHECKING([valgrind])
302 valgrind_status="yes"
303
304 AM_CONDITIONAL(WITH_VALGRIND, test "$enable_valgrind" = "run")
305
306 # Run gnome-keyring-daemon under valgrind as default
307 if test "$enable_valgrind" = "run"; then
308         AC_PATH_PROG(VALGRIND, valgrind, no)
309         if test "$VALGRIND" = "no" ; then
310                 AC_MSG_ERROR(valgrind tool is not installed)
311         fi
312
313         VALGRIND_ARG="--log-file=/tmp/gkr-valgrind.log.%p"
314         VALGRIND_RUN="$VALGRIND $VALGRIND_ARG "
315
316         AC_DEFINE_UNQUOTED(VALGRIND, "$VALGRIND", [Path to valgrind executable])
317         AC_DEFINE_UNQUOTED(VALGRIND_ARG, "$VALGRIND_ARG", [Valgrind arguments])
318
319         enable_valgrind="yes"
320         valgrind_status="run"
321 fi
322
323 AC_SUBST(VALGRIND)
324 AC_SUBST(VALGRIND_ARG)
325 AC_SUBST(VALGRIND_RUN)
326
327 # Build valgrind support into code
328 if test "$enable_valgrind" = "yes"; then
329         AC_CHECK_HEADER([valgrind/valgrind.h], have_valgrind=yes, have_valgrind=no)
330         if test "$have_valgrind" = "no"; then
331                 AC_MSG_ERROR(The valgrind headers are missing)
332         fi
333         AC_DEFINE_UNQUOTED(WITH_VALGRIND, 1, [Run under valgrind])
334         AC_MSG_RESULT(yes)
335
336
337 # No valgrind
338 else
339         AC_MSG_RESULT(no)
340         valgrind_status="no"
341 fi
342
343 # ----------------------------------------------------------------------
344
345 GCK_LT_RELEASE=$GCK_CURRENT:$GCK_REVISION:$GCK_AGE
346 AC_SUBST(GCK_LT_RELEASE)
347 AC_SUBST(GCK_MAJOR)
348 AC_SUBST(GCK_MINOR)
349
350 GCR_LT_RELEASE=$GCR_CURRENT:$GCR_REVISION:$GCR_AGE
351 AC_SUBST(GCR_LT_RELEASE)
352 AC_SUBST(GCR_MAJOR)
353 AC_SUBST(GCR_MINOR)
354
355 AC_OUTPUT([
356 Makefile
357 build/Makefile
358 docs/Makefile
359 docs/reference/Makefile
360 docs/reference/gck/Makefile
361 docs/reference/gck/version.xml
362 docs/reference/gcr/Makefile
363 docs/reference/gcr/version.xml
364 egg/Makefile
365 egg/tests/Makefile
366 gck/gck.pc
367 gck/Makefile
368 gck/tests/Makefile
369 gcr/gcr.pc
370 gcr/gcr-base.pc
371 gcr/gcr-viewer.desktop.in
372 gcr/Makefile
373 gcr/icons/Makefile
374 gcr/icons/16x16/Makefile
375 gcr/icons/22x22/Makefile
376 gcr/icons/24x24/Makefile
377 gcr/icons/32x32/Makefile
378 gcr/icons/48x48/Makefile
379 gcr/icons/256x256/Makefile
380 gcr/tests/Makefile
381 po/Makefile.in
382 schema/Makefile
383 testing/Makefile
384 ])
385
386 # ------------------------------------------------------------------------------
387 # Summary
388 #
389
390 echo
391 echo "BUILD"
392 echo "  Debug Build:          $debug_status"
393 echo "  Strict Compilation:   $strict_status"
394 echo "  Introspection:        $found_introspection"
395 echo "  Valgrind:             $valgrind_status"
396 echo "  Test Coverage:        $enable_coverage"
397 echo