Build fixes for 'make distcheck'
[platform/upstream/libsecret.git] / configure.ac
1 AC_PREREQ(2.63)
2
3 AC_INIT([libsecret],[0.1],
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=0
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([library/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 GOBJECT_INTROSPECTION_CHECK([1.29])
70 AC_PATH_PROG(GLIB_MKENUMS, glib-mkenums)
71
72 # --------------------------------------------------------------------
73 # libgcrypt
74
75 GCRYPT_VERSION=1.2.2
76 GCRYPT_LIBVER=1
77
78 AC_ARG_ENABLE(gcrypt,
79               [AC_HELP_STRING([--disable-gcrypt],
80                               [without gcrypt and transport encryption])
81               ])
82
83 if test "$enable_gcrypt" != "no"; then
84         AM_PATH_LIBGCRYPT($GCRYPT_LIBVER:$GCRYPT_VERSION,,
85                           AC_MSG_ERROR([[
86 ***
87 *** libgcrypt was not found. You may want to get it from
88 *** ftp://ftp.gnupg.org/gcrypt/libgcrypt/
89 ***
90                           ]]))
91
92         AC_DEFINE(WITH_GCRYPT, 1, [Build with libgcypt and transport encryption])
93         AC_DEFINE_UNQUOTED(LIBGCRYPT_VERSION, "$GCRYPT_VERSION",
94                            [Version of GCRYPT we expect])
95
96         AC_SUBST([LIBGCRYPT_CFLAGS])
97         AC_SUBST([LIBGCRYPT_LIBS])
98
99         gcrypt_status=$GCRYPT_VERSION
100         enable_gcrypt="yes"
101 else
102         gcrypt_status="no"
103 fi
104
105 AM_CONDITIONAL(WITH_GCRYPT, test "$enable_gcrypt" = "yes")
106
107 # --------------------------------------------------------------------
108 # Compilation options
109
110 if test "$GCC" = "yes"; then
111         CFLAGS="$CFLAGS \
112                 -Wall -Wmissing-declarations \
113                 -Wmissing-prototypes -Wnested-externs -Wpointer-arith \
114                 -Wdeclaration-after-statement -Wformat=2 -Winit-self \
115                 -Waggregate-return -Wmissing-format-attribute"
116
117         for option in -Wmissing-include-dirs -Wundef; do
118                 SAVE_CFLAGS="$CFLAGS"
119                 CFLAGS="$CFLAGS $option"
120                 AC_MSG_CHECKING([whether gcc understands $option])
121                 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])],
122                                   [has_option=yes],
123                                   [has_option=no])
124                 AC_MSG_RESULT($has_option)
125                 if test $has_option = no; then
126                         CFLAGS="$SAVE_CFLAGS"
127                 fi
128         done
129 fi
130
131 AC_ARG_ENABLE(strict, [
132                AS_HELP_STRING([--enable-strict], [Strict code compilation])
133              ])
134
135 AC_MSG_CHECKING([build strict])
136
137 if test "$enable_strict" = "yes"; then
138         CFLAGS="$CFLAGS -Werror \
139                 -DGTK_DISABLE_DEPRECATED \
140                 -DGDK_DISABLE_DEPRECATED \
141                 -DG_DISABLE_DEPRECATED \
142                 -DGDK_PIXBUF_DISABLE_DEPRECATED"
143         INTROSPECTION_FLAGS="--warn-error"
144         TEST_MODE="thorough"
145 else
146         CFLAGS="$CFLAGS -Wno-error"
147         TEST_MODE="quick"
148         INTROSPECTION_FLAGS=""
149         $enable_strict="no"
150 fi
151
152 AC_MSG_RESULT($enable_strict)
153 AC_SUBST(INTROSPECTION_FLAGS)
154 AC_SUBST(TEST_MODE)
155
156 AC_MSG_CHECKING([for debug mode])
157 AC_ARG_ENABLE(debug,
158               AC_HELP_STRING([--enable-debug=no/default/yes],
159                              [Turn on or off debugging])
160              )
161
162 if test "$enable_debug" != "no"; then
163         AC_DEFINE_UNQUOTED(WITH_DEBUG, 1, [Print debug output])
164         AC_DEFINE_UNQUOTED(_DEBUG, 1, [In debug mode])
165         CFLAGS="$CFLAGS -g"
166 fi
167 if test "$enable_debug" = "yes"; then
168         debug_status="yes"
169         CFLAGS="$CFLAGS -O0"
170 elif test "$enable_debug" = "no"; then
171         debug_status="no"
172         CFLAGS="$CFLAGS -O2"
173         AC_DEFINE_UNQUOTED(G_DISABLE_ASSERT, 1, [Disable glib assertions])
174 else
175         debug_status="default"
176 fi
177
178 AC_MSG_RESULT($debug_status)
179
180 AC_MSG_CHECKING([whether to build with gcov testing])
181 AC_ARG_ENABLE([coverage],
182               AS_HELP_STRING([--enable-coverage],
183                              [Whether to enable coverage testing ]),
184               [], [enable_coverage=no])
185 AC_MSG_RESULT([$enable_coverage])
186
187 if test "$enable_coverage" = "yes"; then
188         if test "$GCC" != "yes"; then
189                 AC_MSG_ERROR(Coverage testing requires GCC)
190         fi
191
192         AC_PATH_PROG(GCOV, gcov, no)
193         if test "$GCOV" = "no" ; then
194                 AC_MSG_ERROR(gcov tool is not available)
195         fi
196
197         AC_PATH_PROG(LCOV, lcov, no)
198         if test "$LCOV" = "no" ; then
199                 AC_MSG_ERROR(lcov tool is not installed)
200         fi
201
202         AC_PATH_PROG(GENHTML, genhtml, no)
203         if test "$GENHTML" = "no" ; then
204                 AC_MSG_ERROR(lcov's genhtml tool is not installed)
205         fi
206
207         CFLAGS="$CFLAGS -O0 -g -fprofile-arcs -ftest-coverage"
208         LDFLAGS="$LDFLAGS -lgcov"
209 fi
210
211 AM_CONDITIONAL([WITH_COVERAGE], [test "$enable_coverage" = "yes"])
212 AC_SUBST(LCOV)
213 AC_SUBST(GCOV)
214 AC_SUBST(GENHTML)
215
216 # ------------------------------------------------------------------------------
217 # Results
218 #
219
220 SECRET_LT_RELEASE=$SECRET_CURRENT:$SECRET_REVISION:$SECRET_AGE
221 AC_SUBST(SECRET_LT_RELEASE)
222 AC_SUBST(SECRET_MAJOR)
223 AC_SUBST(SECRET_MINOR)
224
225 AC_CONFIG_FILES([
226         Makefile
227         build/Makefile
228         egg/Makefile
229         egg/tests/Makefile
230         po/Makefile.in
231         po/Makefile
232         library/Makefile
233         library/libsecret.pc
234         library/tests/Makefile
235 ])
236 AC_OUTPUT
237
238 echo
239 echo "CFLAGS: $CFLAGS"
240 echo
241 echo "OPTIONS:"
242 echo "  libgcrypt:            $gcrypt_status"
243 echo "  Debug:                $debug_status"
244 echo "  Coverage:             $enable_coverage"
245 echo