build: Fix build without libgcrypt
[platform/upstream/libsecret.git] / configure.ac
1 AC_PREREQ(2.63)
2
3 AC_INIT([libsecret],[0.9],
4         [http://bugzilla.gnome.org/enter_bug.cgi?product=libsecret],
5         [libsecret])
6
7 dnl ****************************************************************************
8 dnl Library package and libtool versioning
9 dnl
10 dnl Updating the libtool versions, follow these instructions sequentially:
11 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’).
12 dnl  2. If any interfaces have been added, removed, or changed since the last update, increment current, and set revision to 0.
13 dnl  3. If any interfaces have been added since the last public release, then increment age.
14 dnl  4. If any interfaces have been removed or changed since the last public release, then set age to 0.
15
16 SECRET_MAJOR=1
17 SECRET_MINOR=0
18 SECRET_MICRO=0
19
20 SECRET_CURRENT=0
21 SECRET_REVISION=0
22 SECRET_AGE=0
23
24 # -----------------------------------------------------------------------------
25
26 AC_CONFIG_MACRO_DIR([build/m4])
27 AM_INIT_AUTOMAKE([1.11 tar-ustar foreign -Wno-portability])
28 AM_SANITY_CHECK
29 AM_CONFIG_HEADER(config.h)
30 AC_CONFIG_SRCDIR([libsecret/secret-value.c])
31 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
32 AM_MAINTAINER_MODE([enable])
33
34 # -----------------------------------------------------------------------------
35 # Basic tools
36
37 AC_GNU_SOURCE
38 AC_ISC_POSIX
39 AC_PROG_CC
40 AC_PROG_CPP
41 AM_PROG_CC_C_O
42 AC_PROG_INSTALL
43 AC_PROG_LN_S
44 AC_PROG_MAKE_SET
45 AM_PROG_LIBTOOL
46 IT_PROG_INTLTOOL([0.35.0])
47 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
48
49 GETTEXT_PACKAGE=libsecret
50 AC_SUBST([GETTEXT_PACKAGE])
51 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[The gettext domain name])
52 AM_GLIB_GNU_GETTEXT
53
54 # --------------------------------------------------------------------
55 # Checks for functions
56
57 AC_CHECK_FUNCS(mlock)
58
59 # --------------------------------------------------------------------
60 # GLib
61
62 PKG_CHECK_MODULES(GLIB,
63         glib-2.0 >= 2.31.0
64         gio-2.0 >= 2.31.0
65         gio-unix-2.0)
66 LIBS="$LIBS $GLIB_LIBS"
67 CFLAGS="$CFLAGS $GLIB_CFLAGS"
68
69 GTK_DOC_CHECK(1.9)
70
71 GOBJECT_INTROSPECTION_CHECK([1.29])
72 AC_PATH_PROG(GLIB_MKENUMS, glib-mkenums)
73
74 # --------------------------------------------------------------------
75 # Vala
76
77 VALA_REQUIRED=0.17.2.12
78
79 VAPIGEN_CHECK($VALA_REQUIRED)
80
81 if test "$enable_vala" != "no"; then
82         AC_PATH_PROG([VALAC], [valac], [])
83 fi
84 AM_CONDITIONAL(HAVE_VALAC, test "x$VALAC" != "x")
85
86 # --------------------------------------------------------------------
87 # libgcrypt
88
89 GCRYPT_VERSION=1.2.2
90 GCRYPT_LIBVER=1
91
92 AC_ARG_ENABLE(gcrypt,
93               [AC_HELP_STRING([--disable-gcrypt],
94                               [without gcrypt and transport encryption])
95               ])
96
97 if test "$enable_gcrypt" != "no"; then
98
99         have_gcrypt="no"
100         m4_ifdef([AM_PATH_LIBGCRYPT],
101                  [AM_PATH_LIBGCRYPT($GCRYPT_LIBVER:$GCRYPT_VERSION, have_gcrypt=yes)])
102
103         if test $have_gcrypt != "yes"; then
104                 AC_MSG_ERROR([[
105 ***
106 *** libgcrypt was not found. You may want to get it from
107 *** ftp://ftp.gnupg.org/gcrypt/libgcrypt/
108 ***
109                 ]])
110         fi
111
112         AC_DEFINE(WITH_GCRYPT, 1, [Build with libgcypt and transport encryption])
113         AC_DEFINE_UNQUOTED(LIBGCRYPT_VERSION, "$GCRYPT_VERSION",
114                            [Version of GCRYPT we expect])
115
116         AC_SUBST([LIBGCRYPT_CFLAGS])
117         AC_SUBST([LIBGCRYPT_LIBS])
118
119         gcrypt_status=$GCRYPT_VERSION
120         enable_gcrypt="yes"
121 else
122         gcrypt_status="no"
123 fi
124
125 AM_CONDITIONAL(WITH_GCRYPT, test "$enable_gcrypt" = "yes")
126
127 # --------------------------------------------------------------------
128 # Compilation options
129
130 if test "$GCC" = "yes"; then
131         CFLAGS="$CFLAGS \
132                 -Wall -Wmissing-declarations \
133                 -Wmissing-prototypes -Wnested-externs -Wpointer-arith \
134                 -Wdeclaration-after-statement -Wformat=2 -Winit-self \
135                 -Waggregate-return -Wmissing-format-attribute"
136
137         for option in -Wmissing-include-dirs -Wundef; do
138                 SAVE_CFLAGS="$CFLAGS"
139                 CFLAGS="$CFLAGS $option"
140                 AC_MSG_CHECKING([whether gcc understands $option])
141                 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])],
142                                   [has_option=yes],
143                                   [has_option=no])
144                 AC_MSG_RESULT($has_option)
145                 if test $has_option = no; then
146                         CFLAGS="$SAVE_CFLAGS"
147                 fi
148         done
149 fi
150
151 AC_ARG_ENABLE(strict, [
152                AS_HELP_STRING([--enable-strict], [Strict code compilation])
153              ])
154
155 AC_MSG_CHECKING([build strict])
156
157 if test "$enable_strict" = "yes"; then
158         CFLAGS="$CFLAGS -Werror \
159                 -DGTK_DISABLE_DEPRECATED \
160                 -DGDK_DISABLE_DEPRECATED \
161                 -DG_DISABLE_DEPRECATED \
162                 -DGDK_PIXBUF_DISABLE_DEPRECATED"
163         INTROSPECTION_FLAGS="--warn-error"
164         TEST_MODE="thorough"
165 else
166         CFLAGS="$CFLAGS -Wno-error"
167         TEST_MODE="quick"
168         INTROSPECTION_FLAGS=""
169         enable_strict="no"
170 fi
171
172 AC_MSG_RESULT($enable_strict)
173 AC_SUBST(INTROSPECTION_FLAGS)
174 AC_SUBST(TEST_MODE)
175
176 AC_MSG_CHECKING([for debug mode])
177 AC_ARG_ENABLE(debug,
178               AC_HELP_STRING([--enable-debug=no/default/yes],
179                              [Turn on or off debugging])
180              )
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 if test "$enable_debug" = "yes"; then
188         debug_status="yes"
189         CFLAGS="$CFLAGS -O0"
190 elif test "$enable_debug" = "no"; then
191         debug_status="no"
192         CFLAGS="$CFLAGS -O2"
193         AC_DEFINE_UNQUOTED(G_DISABLE_ASSERT, 1, [Disable glib assertions])
194 else
195         debug_status="default"
196 fi
197
198 AC_MSG_RESULT($debug_status)
199
200 AC_MSG_CHECKING([whether to build with gcov testing])
201 AC_ARG_ENABLE([coverage],
202               AS_HELP_STRING([--enable-coverage],
203                              [Whether to enable coverage testing ]),
204               [], [enable_coverage=no])
205 AC_MSG_RESULT([$enable_coverage])
206
207 if test "$enable_coverage" = "yes"; then
208         if test "$GCC" != "yes"; then
209                 AC_MSG_ERROR(Coverage testing requires GCC)
210         fi
211
212         AC_PATH_PROG(GCOV, gcov, no)
213         if test "$GCOV" = "no" ; then
214                 AC_MSG_ERROR(gcov tool is not available)
215         fi
216
217         AC_PATH_PROG(LCOV, lcov, no)
218         if test "$LCOV" = "no" ; then
219                 AC_MSG_ERROR(lcov tool is not installed)
220         fi
221
222         AC_PATH_PROG(GENHTML, genhtml, no)
223         if test "$GENHTML" = "no" ; then
224                 AC_MSG_ERROR(lcov's genhtml tool is not installed)
225         fi
226
227         CFLAGS="$CFLAGS -O0 -g -fprofile-arcs -ftest-coverage"
228         LDFLAGS="$LDFLAGS -lgcov"
229 fi
230
231 AM_CONDITIONAL([WITH_COVERAGE], [test "$enable_coverage" = "yes"])
232 AC_SUBST(LCOV)
233 AC_SUBST(GCOV)
234 AC_SUBST(GENHTML)
235
236 # ------------------------------------------------------------------------------
237 # Results
238 #
239
240 SECRET_LT_RELEASE=$SECRET_CURRENT:$SECRET_REVISION:$SECRET_AGE
241 AC_SUBST(SECRET_LT_RELEASE)
242 AC_SUBST(SECRET_MAJOR)
243 AC_SUBST(SECRET_MINOR)
244
245 AC_CONFIG_FILES([
246         Makefile
247         build/Makefile
248         docs/Makefile
249         docs/reference/Makefile
250         docs/reference/libsecret/Makefile
251         docs/reference/libsecret/version.xml
252         docs/reference/libsecret/version-major.xml
253         egg/Makefile
254         egg/tests/Makefile
255         po/Makefile.in
256         po/Makefile
257         libsecret/Makefile
258         libsecret/libsecret.pc
259         libsecret/libsecret-unstable.pc
260         libsecret/tests/Makefile
261         tool/Makefile
262 ])
263 AC_OUTPUT
264
265 echo
266 echo "CFLAGS: $CFLAGS"
267 echo
268 echo "OPTIONS:"
269 echo "  libgcrypt:            $gcrypt_status"
270 echo "  Debug:                $debug_status"
271 echo "  Coverage:             $enable_coverage"
272 echo