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