1AC_PREREQ([2.60]) 2AC_INIT([jansson], [2.9], [petri@digip.org]) 3 4AC_CONFIG_AUX_DIR([.]) 5AM_INIT_AUTOMAKE([1.10 foreign]) 6 7AC_CONFIG_SRCDIR([src/value.c]) 8AC_CONFIG_HEADERS([jansson_private_config.h]) 9 10# Checks for programs. 11AC_PROG_CC 12AC_PROG_LIBTOOL 13AM_CONDITIONAL([GCC], [test x$GCC = xyes]) 14 15# Checks for libraries. 16 17# Checks for header files. 18AC_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. 21AC_TYPE_INT32_T 22AC_TYPE_UINT32_T 23AC_TYPE_UINT16_T 24AC_TYPE_UINT8_T 25AC_TYPE_LONG_LONG_INT 26 27AC_C_INLINE 28case $ac_cv_c_inline in 29 yes) json_inline=inline;; 30 no) json_inline=;; 31 *) json_inline=$ac_cv_c_inline;; 32esac 33AC_SUBST([json_inline]) 34 35# Checks for library functions. 36AC_CHECK_FUNCS([close getpid gettimeofday localeconv open read sched_yield strtoll]) 37 38AC_MSG_CHECKING([for gcc __sync builtins]) 39have_sync_builtins=no 40AC_TRY_LINK( 41 [], [unsigned long val; __sync_bool_compare_and_swap(&val, 0, 1);], 42 [have_sync_builtins=yes], 43) 44if 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]) 47fi 48AC_MSG_RESULT([$have_sync_builtins]) 49 50AC_MSG_CHECKING([for gcc __atomic builtins]) 51have_atomic_builtins=no 52AC_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) 56if 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]) 59fi 60AC_MSG_RESULT([$have_atomic_builtins]) 61 62case "$ac_cv_type_long_long_int$ac_cv_func_strtoll" in 63 yesyes) json_have_long_long=1;; 64 *) json_have_long_long=0;; 65esac 66AC_SUBST([json_have_long_long]) 67 68case "$ac_cv_header_locale_h$ac_cv_func_localeconv" in 69 yesyes) json_have_localeconv=1;; 70 *) json_have_localeconv=0;; 71esac 72AC_SUBST([json_have_localeconv]) 73 74# Features 75AC_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 80if test "x$use_urandom" = xyes; then 81AC_DEFINE([USE_URANDOM], [1], 82 [Define to 1 if /dev/urandom should be used for seeding the hash function]) 83fi 84 85AC_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 90if test "x$use_windows_cryptoapi" = xyes; then 91AC_DEFINE([USE_WINDOWS_CRYPTOAPI], [1], 92 [Define to 1 if CryptGenRandom should be used for seeding the hash function]) 93fi 94 95AC_ARG_ENABLE([initial-hashtable-order], 96 [AS_HELP_STRING([--enable-initial-hashtable-order=VAL], 97 [Number of buckets new object hashtables contain is 2 raised to this power. The default is 3, so empty hashtables contain 2^3 = 8 buckets.])], 98 [initial_hashtable_order=$enableval], [initial_hashtable_order=3]) 99AC_DEFINE_UNQUOTED([INITIAL_HASHTABLE_ORDER], [$initial_hashtable_order], 100 [Number of buckets new object hashtables contain is 2 raised to this power. E.g. 3 -> 2^3 = 8.]) 101 102if test x$GCC = xyes; then 103 AM_CFLAGS="-Wall -Wextra -Wdeclaration-after-statement" 104fi 105AC_SUBST([AM_CFLAGS]) 106 107AC_CONFIG_FILES([ 108 jansson.pc 109 Makefile 110 doc/Makefile 111 src/Makefile 112 src/jansson_config.h 113 test/Makefile 114 test/bin/Makefile 115 test/suites/Makefile 116 test/suites/api/Makefile 117]) 118AC_OUTPUT 119