1 |
AC_PREREQ([2.60]) |
2 |
AC_INIT([jansson], [2.7], [petri@digip.org]) |
3 |
|
4 |
AC_CONFIG_AUX_DIR([.]) |
5 |
AM_INIT_AUTOMAKE([1.10 foreign]) |
6 |
|
7 |
AC_CONFIG_SRCDIR([src/value.c]) |
8 |
AC_CONFIG_HEADERS([jansson_private_config.h]) |
9 |
|
10 |
# Checks for programs. |
11 |
AC_PROG_CC |
12 |
AC_PROG_LIBTOOL |
13 |
AM_CONDITIONAL([GCC], [test x$GCC = xyes]) |
14 |
|
15 |
# Checks for libraries. |
16 |
|
17 |
# Checks for header files. |
18 |
AC_CHECK_HEADERS([endian.h fcntl.h locale.h sched.h unistd.h sys/param.h sys/stat.h sys/time.h sys/types.h]) |
19 |
|
20 |
# Checks for typedefs, structures, and compiler characteristics. |
21 |
AC_TYPE_INT32_T |
22 |
AC_TYPE_UINT32_T |
23 |
AC_TYPE_UINT16_T |
24 |
AC_TYPE_UINT8_T |
25 |
AC_TYPE_LONG_LONG_INT |
26 |
|
27 |
AC_C_INLINE |
28 |
case $ac_cv_c_inline in |
29 |
yes) json_inline=inline;; |
30 |
no) json_inline=;; |
31 |
*) json_inline=$ac_cv_c_inline;; |
32 |
esac |
33 |
AC_SUBST([json_inline]) |
34 |
|
35 |
# Checks for library functions. |
36 |
AC_CHECK_FUNCS([close getpid gettimeofday localeconv open read sched_yield strtoll]) |
37 |
|
38 |
AC_MSG_CHECKING([for gcc __sync builtins]) |
39 |
have_sync_builtins=no |
40 |
AC_TRY_LINK( |
41 |
[], [unsigned long val; __sync_bool_compare_and_swap(&val, 0, 1);], |
42 |
[have_sync_builtins=yes], |
43 |
) |
44 |
if test "x$have_sync_builtins" = "xyes"; then |
45 |
AC_DEFINE([HAVE_SYNC_BUILTINS], [1], |
46 |
[Define to 1 if gcc's __sync builtins are available]) |
47 |
fi |
48 |
AC_MSG_RESULT([$have_sync_builtins]) |
49 |
|
50 |
AC_MSG_CHECKING([for gcc __atomic builtins]) |
51 |
have_atomic_builtins=no |
52 |
AC_TRY_LINK( |
53 |
[], [char l; unsigned long v; __atomic_test_and_set(&l, __ATOMIC_RELAXED); __atomic_store_n(&v, 1, __ATOMIC_RELEASE); __atomic_load_n(&v, __ATOMIC_ACQUIRE);], |
54 |
[have_atomic_builtins=yes], |
55 |
) |
56 |
if test "x$have_atomic_builtins" = "xyes"; then |
57 |
AC_DEFINE([HAVE_ATOMIC_BUILTINS], [1], |
58 |
[Define to 1 if gcc's __atomic builtins are available]) |
59 |
fi |
60 |
AC_MSG_RESULT([$have_atomic_builtins]) |
61 |
|
62 |
case "$ac_cv_type_long_long_int$ac_cv_func_strtoll" in |
63 |
yesyes) json_have_long_long=1;; |
64 |
*) json_have_long_long=0;; |
65 |
esac |
66 |
AC_SUBST([json_have_long_long]) |
67 |
|
68 |
case "$ac_cv_header_locale_h$ac_cv_func_localeconv" in |
69 |
yesyes) json_have_localeconv=1;; |
70 |
*) json_have_localeconv=0;; |
71 |
esac |
72 |
AC_SUBST([json_have_localeconv]) |
73 |
|
74 |
# Features |
75 |
AC_ARG_ENABLE([urandom], |
76 |
[AS_HELP_STRING([--disable-urandom], |
77 |
[Don't use /dev/urandom to seed the hash function])], |
78 |
[use_urandom=$enableval], [use_urandom=yes]) |
79 |
|
80 |
if test "x$use_urandom" = xyes; then |
81 |
AC_DEFINE([USE_URANDOM], [1], |
82 |
[Define to 1 if /dev/urandom should be used for seeding the hash function]) |
83 |
fi |
84 |
|
85 |
AC_ARG_ENABLE([windows-cryptoapi], |
86 |
[AS_HELP_STRING([--disable-windows-cryptoapi], |
87 |
[Don't use CryptGenRandom to seed the hash function])], |
88 |
[use_windows_cryptoapi=$enableval], [use_windows_cryptoapi=yes]) |
89 |
|
90 |
if test "x$use_windows_cryptoapi" = xyes; then |
91 |
AC_DEFINE([USE_WINDOWS_CRYPTOAPI], [1], |
92 |
[Define to 1 if CryptGenRandom should be used for seeding the hash function]) |
93 |
fi |
94 |
|
95 |
if test x$GCC = xyes; then |
96 |
AM_CFLAGS="-Wall -Wextra -Wdeclaration-after-statement" |
97 |
fi |
98 |
AC_SUBST([AM_CFLAGS]) |
99 |
|
100 |
AC_CONFIG_FILES([ |
101 |
jansson.pc |
102 |
Makefile |
103 |
doc/Makefile |
104 |
src/Makefile |
105 |
src/jansson_config.h |
106 |
test/Makefile |
107 |
test/bin/Makefile |
108 |
test/suites/Makefile |
109 |
test/suites/api/Makefile |
110 |
]) |
111 |
AC_OUTPUT |