Initial Import
[profile/ivi/json-glib.git] / configure.ac
1 # bump micro_version to the next even number for each point release
2 # bump micro_version to the next odd number after each release
3 m4_define([json_major_version], [0])
4 m4_define([json_minor_version], [14])
5 m4_define([json_micro_version], [2])
6
7 m4_define([json_version], [json_major_version.json_minor_version.json_micro_version])
8
9 m4_define([json_release_status],
10           [m4_if(m4_eval(json_micro_version % 2), [1], [git],
11                  [m4_if(m4_eval(json_minor_version % 2), [1], [snapshot],
12                                                               [release])])])
13
14 # bump up by 1 for every micro release with no API changes, otherwise
15 # set to 0. after release, bump up by 1
16 m4_define([json_interface_age], [2])
17 m4_define([json_binary_age], [m4_eval(100 * json_minor_version + json_micro_version)])
18
19 m4_define([lt_current], [m4_eval(100 * json_minor_version + json_micro_version - json_interface_age)])
20 m4_define([lt_revision], [json_interface_age])
21 m4_define([lt_age], [m4_eval(json_binary_age - json_interface_age)])
22
23 m4_define([glib_req_version], [2.26])
24
25 AC_PREREQ([2.63])
26
27 AC_INIT([json-glib],
28         [json_version],
29         [http://bugzilla.gnome.org/enter_bug.cgi?product=json-glib],
30         [json-glib],
31         [http://live.gnome.org/JsonGlib])
32
33 AC_CONFIG_HEADER([config.h])
34 AC_CONFIG_SRCDIR([json-glib/json-glib.h])
35 AC_CONFIG_AUX_DIR([build])
36 AC_CONFIG_MACRO_DIR([build/autotools])
37
38 AM_INIT_AUTOMAKE([1.11 no-define foreign -Wno-portability dist-xz no-dist-gzip tar-ustar])
39
40 AM_SILENT_RULES([yes])
41 AM_PATH_GLIB_2_0
42 AM_PROG_CC_C_O
43
44 LT_PREREQ([2.2.6])
45 LT_INIT([disable-static])
46
47 # Honor aclocal flags
48 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
49
50 JSON_MAJOR_VERSION=json_major_version
51 JSON_MINOR_VERSION=json_minor_version
52 JSON_MICRO_VERSION=json_micro_version
53 JSON_VERSION=json_version
54 JSON_RELEASE_STATUS=json_release_status
55 AC_SUBST(JSON_MAJOR_VERSION)
56 AC_SUBST(JSON_MICRO_VERSION)
57 AC_SUBST(JSON_MINOR_VERSION)
58 AC_SUBST(JSON_VERSION)
59 AC_SUBST(JSON_RELEASE_STATUS)
60
61 JSON_LT_CURRENT=lt_current
62 JSON_LT_REVISION=lt_revision
63 JSON_LT_AGE=lt_age
64 JSON_LT_VERSION="$JSON_LT_CURRENT:$JSON_LT_REVISION:$JSON_LT_AGE"
65 JSON_LT_LDFLAGS="-version-info $JSON_LT_VERSION"
66
67 AC_CANONICAL_HOST
68 AC_MSG_CHECKING([if building for some Win32 platform])
69 AS_CASE([$host],
70
71         [*-*-mingw*|*-*-cygwin*],
72         [
73           JSON_LT_LDFLAGS="$JSON_LT_LDFLAGS -no-undefined"
74           platform_win32=yes
75         ],
76
77         [platform_win32=no]
78 )
79 AC_MSG_RESULT([$platform_win32])
80
81 AC_SUBST(JSON_LT_LDFLAGS)
82
83 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
84 AC_SUBST(GLIB_PREFIX)
85
86 PKG_CHECK_MODULES(JSON, [gobject-2.0 >= glib_req_version gio-2.0])
87 AC_SUBST(JSON_CFLAGS)
88 AC_SUBST(JSON_LIBS)
89
90 AM_CONDITIONAL(ENABLE_GLIB_TEST, [test "x$enable_glibtest" = "xyes"])
91
92 dnl = Enable debug level ======================================================
93
94 m4_define([debug_default], [m4_if(m4_eval(json_minor_version % 2), [1], [yes], [minimum])])
95
96 AC_ARG_ENABLE([debug],
97               [AS_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
98                               [turn on debugging @<:@default=]debug_default[@:>@])],
99               [],
100               [enable_debug=debug_default])
101
102 AS_CASE([$enable_debug],
103
104         [yes],
105         [
106           test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
107           JSON_DEBUG_CFLAGS="-DJSON_ENABLE_DEBUG"
108         ],
109
110         [minimum],
111         [
112           JSON_DEBUG_CFLAGS="-DJSON_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS"
113         ],
114
115         [no],
116         [
117           JSON_DEBUG_CFLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"
118         ],
119
120         [AC_MSG_ERROR([Unknown argument to --enable-debug])]
121 )
122
123 AC_SUBST(JSON_DEBUG_CFLAGS)
124
125 dnl = Enable strict compiler flags ============================================
126
127 # use strict compiler flags only on development releases
128 m4_define([maintainer_flags_default], [m4_if(m4_eval(json_minor_version % 2), [1], [yes], [no])])
129 AC_ARG_ENABLE([maintainer-flags],
130               [AS_HELP_STRING([--enable-maintainer-flags=@<:@no/yes@:>@],
131                               [Use strict compiler flags @<:@default=]maintainer_flags_default[@:>@])],
132               [],
133               [enable_maintainer_flags=maintainer_flags_default])
134
135 AS_IF([test "x$enable_maintainer_flags" = "xyes" && test "x$GCC" = "xyes"],
136       [
137         AS_COMPILER_FLAGS([MAINTAINER_CFLAGS],
138                           ["-Wall -Wshadow -Wcast-align
139                             -Wno-uninitialized -Wformat -Wformat-security
140                             -Wno-strict-aliasing -Winit-self
141                             -Wempty-body -Wdeclaration-after-statement
142                             -Wno-strict-aliasing"])
143       ]
144 )
145 MAINTAINER_CFLAGS="${MAINTAINER_CFLAGS#*  }"
146 AC_SUBST([MAINTAINER_CFLAGS])
147
148 dnl = GCOV coverage checks ====================================================
149 AC_MSG_CHECKING([whether to build with gcov testing])
150 AC_ARG_ENABLE([gcov],
151               [AS_HELP_STRING([--enable-gcov],
152                               [Whether to enable coverage testing (requires gcc and gcov)])],
153               [],
154               [enable_gcov=no])
155
156 AS_IF([test "x$enable_gcov" = "xyes" && test "x$GCC" = "xyes"],
157       [
158         GCOV_CFLAGS="$CFLAGS -O0 -g -fprofile-arcs -ftest-coverage"
159         GCOV_LDFLAGS="$LDFLAGS -lgcov"
160       ]
161 )
162
163 AM_CONDITIONAL([GCOV_ENABLED], [test "x$enable_gcov" = "xyes"])
164 AC_SUBST([GCOV_CFLAGS])
165 AC_SUBST([GCOV_LDFLAGS])
166 AC_MSG_RESULT([$enable_gcov])
167
168 GTK_DOC_CHECK([1.13], [--flavour no-tmpl])
169
170 GOBJECT_INTROSPECTION_CHECK([0.9.5])
171
172 AM_GNU_GETTEXT_VERSION([0.18])
173 AM_GNU_GETTEXT([external])
174
175 GETTEXT_PACKAGE="json-glib-1.0"
176 AC_SUBST(GETTEXT_PACKAGE)
177 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],
178                    ["$GETTEXT_PACKAGE"],
179                    [The prefix for our gettext translation domains.])
180 AS_ALL_LINGUAS
181
182 AC_CONFIG_FILES([
183         Makefile
184
185         build/Makefile
186         build/autotools/Makefile
187         build/win32/Makefile
188         build/win32/config.h.win32
189         build/win32/vs9/Makefile
190         build/win32/vs10/Makefile
191
192         json-glib/Makefile
193         json-glib/json-version.h
194         json-glib/tests/Makefile
195
196         doc/Makefile
197         doc/reference/Makefile
198         doc/reference/version.xml
199
200         po/Makefile.in
201
202         json-glib.pc
203 ])
204
205 AC_OUTPUT
206
207 dnl === Summary ===============================================================
208
209 echo ""
210 echo " Json-GLib - $VERSION (${JSON_RELEASE_STATUS})"
211 echo ""
212 echo " • Prefix: ${prefix}"
213 echo ""
214 echo " • Debug level: ${enable_debug}"
215 echo " • Compiler flags: ${CFLAGS} ${MAINTAINER_CFLAGS}"
216 echo ""
217 echo " • API reference: ${enable_gtk_doc}"
218 echo ""
219 echo " • Enable test suite: ${enable_glibtest}"
220 echo " • Build introspection data: ${enable_introspection}"
221 echo " • Enable coverage test: ${enable_gcov}"
222 echo ""