Michael Clark | 4504df7 | 2007-03-13 08:26:20 +0000 | [diff] [blame] | 1 | AC_PREREQ(2.52) |
| 2 | |
| 3 | # Process this file with autoconf to produce a configure script. |
Eric Haszlakiewicz | 515ba0d | 2014-04-10 22:44:13 -0400 | [diff] [blame] | 4 | AC_INIT([json-c], 0.12.99, [json-c@googlegroups.com]) |
Michael Clark | 4504df7 | 2007-03-13 08:26:20 +0000 | [diff] [blame] | 5 | |
Eric Haszlakiewicz | e6f1322 | 2014-03-02 12:16:37 -0500 | [diff] [blame] | 6 | AM_INIT_AUTOMAKE |
Michael Clark | 4504df7 | 2007-03-13 08:26:20 +0000 | [diff] [blame] | 7 | |
Eric Haszlakiewicz | 1e89ba6 | 2012-04-22 10:27:50 -0500 | [diff] [blame] | 8 | AC_PROG_MAKE_SET |
| 9 | |
Michael Clark | 64e3690 | 2014-04-09 13:48:21 +0800 | [diff] [blame] | 10 | AC_ARG_ENABLE(rdrand, |
| 11 | AS_HELP_STRING([--enable-rdrand], |
| 12 | [Enable RDRAND Hardware RNG Hash Seed generation on supported x86/x64 platforms.]), |
| 13 | [if test x$enableval = xyes; then |
| 14 | enable_rdrand=yes |
| 15 | AC_DEFINE(ENABLE_RDRAND, 1, [Enable RDRANR Hardware RNG Hash Seed]) |
| 16 | fi]) |
| 17 | |
| 18 | if test "x$enable_rdrand" = "xyes"; then |
| 19 | AC_MSG_RESULT([RDRAND Hardware RNG Hash Seed enabled on supported x86/x64 platforms]) |
| 20 | else |
| 21 | AC_MSG_RESULT([RDRAND Hardware RNG Hash Seed disabled. Use --enable-rdrand to enable]) |
| 22 | fi |
| 23 | |
Michael Clark | 4504df7 | 2007-03-13 08:26:20 +0000 | [diff] [blame] | 24 | # Checks for programs. |
| 25 | |
| 26 | # Checks for libraries. |
| 27 | |
| 28 | # Checks for header files. |
Ross Burton | 89535bb | 2013-11-18 16:25:14 +0000 | [diff] [blame] | 29 | AM_PROG_CC_C_O |
Thomas Gstädtner | 36ec47d | 2013-03-03 00:17:25 +0100 | [diff] [blame] | 30 | AC_CONFIG_HEADER(config.h) |
| 31 | AC_CONFIG_HEADER(json_config.h) |
Michael Clark | 4504df7 | 2007-03-13 08:26:20 +0000 | [diff] [blame] | 32 | AC_HEADER_STDC |
Michael Clark | 64e3690 | 2014-04-09 13:48:21 +0800 | [diff] [blame] | 33 | AC_CHECK_HEADERS(fcntl.h limits.h strings.h syslog.h unistd.h [sys/cdefs.h] [sys/param.h] stdarg.h locale.h endian.h) |
Eric Haszlakiewicz | b21b137 | 2012-02-15 20:44:54 -0600 | [diff] [blame] | 34 | AC_CHECK_HEADER(inttypes.h,[AC_DEFINE([JSON_C_HAVE_INTTYPES_H],[1],[Public define for json_inttypes.h])]) |
Michael Clark | 4504df7 | 2007-03-13 08:26:20 +0000 | [diff] [blame] | 35 | |
| 36 | # Checks for typedefs, structures, and compiler characteristics. |
| 37 | AC_C_CONST |
| 38 | AC_TYPE_SIZE_T |
| 39 | |
| 40 | # Checks for library functions. |
| 41 | AC_FUNC_VPRINTF |
| 42 | AC_FUNC_MEMCMP |
| 43 | AC_FUNC_MALLOC |
| 44 | AC_FUNC_REALLOC |
Even Rouault | 1a957c2 | 2013-08-12 20:49:19 +0200 | [diff] [blame] | 45 | AC_CHECK_FUNCS(strcasecmp strdup strerror snprintf vsnprintf vasprintf open vsyslog strncasecmp setlocale) |
Eric Haszlakiewicz | 05da316 | 2014-03-22 17:28:40 -0400 | [diff] [blame] | 46 | AC_CHECK_DECLS([INFINITY], [], [], [[#include <math.h>]]) |
Eric Haszlakiewicz | 0eedf38 | 2014-03-09 16:41:33 -0400 | [diff] [blame] | 47 | AC_CHECK_DECLS([nan], [], [], [[#include <math.h>]]) |
Eric Haszlakiewicz | e6f1322 | 2014-03-02 12:16:37 -0500 | [diff] [blame] | 48 | AC_CHECK_DECLS([isnan], [], [], [[#include <math.h>]]) |
| 49 | AC_CHECK_DECLS([isinf], [], [], [[#include <math.h>]]) |
| 50 | AC_CHECK_DECLS([_isnan], [], [], [[#include <float.h>]]) |
| 51 | AC_CHECK_DECLS([_finite], [], [], [[#include <float.h>]]) |
Michael Clark | 4504df7 | 2007-03-13 08:26:20 +0000 | [diff] [blame] | 52 | |
Lin Xu | e7e0600 | 2012-09-09 17:33:35 -0700 | [diff] [blame] | 53 | #check if .section.gnu.warning accepts long strings (for __warn_references) |
| 54 | AC_LANG_PUSH([C]) |
| 55 | |
| 56 | AC_MSG_CHECKING([if .gnu.warning accepts long strings]) |
Eric Haszlakiewicz | 9f26d96 | 2014-03-22 19:15:01 -0400 | [diff] [blame] | 57 | AC_LINK_IFELSE([AC_LANG_SOURCE([[ |
Lin Xu | e7e0600 | 2012-09-09 17:33:35 -0700 | [diff] [blame] | 58 | extern void json_object_get(); |
| 59 | __asm__(".section .gnu.json_object_get,\n\t.ascii \"Please link against libjson-c instead of libjson\"\n\t.text"); |
| 60 | |
| 61 | int main(int c,char* v) {return 0;} |
Eric Haszlakiewicz | 9f26d96 | 2014-03-22 19:15:01 -0400 | [diff] [blame] | 62 | ]])], [ |
Lin Xu | e7e0600 | 2012-09-09 17:33:35 -0700 | [diff] [blame] | 63 | AC_DEFINE(HAS_GNU_WARNING_LONG, 1, [Define if .gnu.warning accepts long strings.]) |
| 64 | AC_MSG_RESULT(yes) |
| 65 | ], [ |
| 66 | AC_MSG_RESULT(no) |
| 67 | ]) |
| 68 | |
| 69 | AC_LANG_POP([C]) |
| 70 | |
Michael Clark | 4504df7 | 2007-03-13 08:26:20 +0000 | [diff] [blame] | 71 | AM_PROG_LIBTOOL |
| 72 | |
Emmanuele Bassi | 311686f | 2013-09-17 13:08:14 +0100 | [diff] [blame] | 73 | # Check for the -Bsymbolic-functions linker flag |
| 74 | AC_ARG_ENABLE([Bsymbolic], |
| 75 | [AS_HELP_STRING([--disable-Bsymbolic], [Avoid linking with -Bsymbolic-function])], |
| 76 | [], |
| 77 | [enable_Bsymbolic=check]) |
| 78 | |
| 79 | AS_IF([test "x$enable_Bsymbolic" = "xcheck"], |
| 80 | [ |
| 81 | saved_LDFLAGS="${LDFLAGS}" |
| 82 | AC_MSG_CHECKING([for -Bsymbolic-functions linker flag]) |
| 83 | LDFLAGS=-Wl,-Bsymbolic-functions |
| 84 | AC_TRY_LINK([], [int main (void) { return 0; }], |
| 85 | [ |
| 86 | AC_MSG_RESULT([yes]) |
| 87 | enable_Bsymbolic=yes |
| 88 | ], |
| 89 | [ |
| 90 | AC_MSG_RESULT([no]) |
| 91 | enable_Bsymbolic=no |
| 92 | ]) |
| 93 | LDFLAGS="${saved_LDFLAGS}" |
| 94 | ]) |
| 95 | |
| 96 | AS_IF([test "x$enable_Bsymbolic" = "xyes"], [JSON_BSYMBOLIC_LDFLAGS=-Wl[,]-Bsymbolic-functions]) |
| 97 | AC_SUBST(JSON_BSYMBOLIC_LDFLAGS) |
| 98 | |
Eric Haszlakiewicz | 1e89ba6 | 2012-04-22 10:27:50 -0500 | [diff] [blame] | 99 | AC_CONFIG_FILES([ |
Michael Clark | 4504df7 | 2007-03-13 08:26:20 +0000 | [diff] [blame] | 100 | Makefile |
Keith Derrick | 30dd367 | 2012-03-30 12:28:32 -0700 | [diff] [blame] | 101 | json-c.pc |
Eric Haszlakiewicz | 1e89ba6 | 2012-04-22 10:27:50 -0500 | [diff] [blame] | 102 | tests/Makefile |
Eric Haszlakiewicz | 1f9d199 | 2012-07-29 18:25:09 -0500 | [diff] [blame] | 103 | json-c-uninstalled.pc |
Michael Clark | 4504df7 | 2007-03-13 08:26:20 +0000 | [diff] [blame] | 104 | ]) |
Eric Haszlakiewicz | 1e89ba6 | 2012-04-22 10:27:50 -0500 | [diff] [blame] | 105 | |
| 106 | AC_OUTPUT |
| 107 | |