summaryrefslogtreecommitdiff
path: root/configure.ac
blob: 50ea8ac68a7edd35c2fa3e2ba30719e8968cd071 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
m4_define([json_major_version], [0])
m4_define([json_minor_version], [1])
m4_define([json_micro_version], [0])

m4_define([json_version],
          [json_major_version.json_minor_version.json_micro_version])

m4_define([json_interface_age], [0])
m4_define([json_binary_age],
          [m4_eval(100 * json_minor_version + json_micro_version)])

m4_define([lt_current],
          [m4_eval(100 * json_minor_version + json_micro_version - json_interface_age)])
m4_define([lt_revision], [json_interface_age])
m4_define([lt_age],
          [m4_eval(json_binary_age - json_interface_age)])

m4_define([glib_req_version], [2.14])

AC_PREREQ(2.59)
AC_INIT([json-glib], [json_version], [], [json-glib])
AC_CONFIG_SRCDIR([json-glib/json-glib.h])

AM_INIT_AUTOMAKE([1.7])
AM_CONFIG_HEADER([config.h])

AM_DISABLE_STATIC
AM_PATH_GLIB_2_0
AM_PROG_LIBTOOL

JSON_MAJOR_VERSION=json_major_version
JSON_MINOR_VERSION=json_minor_version
JSON_MICRO_VERSION=json_micro_version
JSON_VERSION=json_version
AC_SUBST(JSON_MAJOR_VERSION)
AC_SUBST(JSON_MICRO_VERSION)
AC_SUBST(JSON_MINOR_VERSION)
AC_SUBST(JSON_VERSION)

JSON_LT_CURRENT=lt_current
JSON_LT_REVISION=lt_revision
JSON_LT_AGE=lt_age
JSON_LT_VERSION="$JSON_LT_CURRENT:$JSON_LT_REVISION:$JSON_LT_AGE"
JSON_LT_LDFLAGS="-versio-info $JSON_LT_VERSION"
AC_SUBST(JSON_LT_LDFLAGS)

AC_PROG_CC
AC_HEADER_STDC
AC_CHECK_HEADERS([unistd.h])
AC_C_CONST
AC_FUNC_MALLOC
AC_FUNC_MMAP

PKG_CHECK_MODULES(JSON, gobject-2.0 >= glib_req_version)

dnl = Enable debug level ===================================================

m4_define([debug_default],
          m4_if(m4_eval(json_minor_version % 2), [1], [yes], [minimum]))

AC_ARG_ENABLE(debug,
              AC_HELP_STRING([--enable-debug=@<:@no/minimum/yes@:>@],
                             [turn on debugging @<:@default=debug_default@:>@]),
,
              enable_debug=debug_default)

if test "x$enable_debug" = "xyes"; then
  test "$cflags_set" = set || CFLAGS="$CFLAGS -g"
  JSON_DEBUG_CFLAGS="-DJSON_ENABLE_DEBUG"
else
  if test "x$enable_debug" = "xno"; then
    JSON_DEBUG_CFLAGS="-DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"
  else # minimum
    JSON_DEBUG_CFLAGS="-DJSON_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS"
  fi
fi

AC_SUBST(JSON_DEBUG_CFLAGS)

dnl = Enable strict compiler flags =========================================

# use strict compiler flags only on development releases
#m4_define([maintainer_flags_default],
#          m4_if(m4_eval(json_minor_version % 2), [1], [yes], [no]))
m4_define([maintainer_flags_default], [no])
AC_ARG_ENABLE([maintainer-flags],
              AC_HELP_STRING([--enable-maintainer-flags=@<:@no/yes@:>@],
                             [Use strict compiler flags @<:@default=maintainer_flags_default@:>@]),,
              enable_maintainer_flags=maintainer_flags_default)

if test "x$enable_maintainer_flags" = "xyes"; then
  CPPFLAGS="$CPPFLAGS -g -Wall -Wextra -Wshadow -Wcast-align -Wno-uninitialized -Werror"
else
  CPPFLAGS="$CPPFLAGS -g -Wall"
fi

GTK_DOC_CHECK([1.8])

AC_CONFIG_FILES([
        Makefile
        json-glib/Makefile
        json-glib/json-version.h
        tests/Makefile
        doc/Makefile
        doc/reference/Makefile
        doc/reference/version.xml
        json-glib.pc
])

AC_OUTPUT

echo ""
echo " Json-GLib $VERSION"
echo ""
echo " Prefix: ${prefix}"
echo " Debug level: ${enable_debug}"
echo " Compiler flags: ${CPPFLAGS}"
echo " API reference: ${enable_gtk_doc}"
echo ""