blob: c50f81bde0167429d1f79cd1e09a2e2e0854776e [file] [log] [blame]
Michael Clark4504df72007-03-13 08:26:20 +00001AC_PREREQ(2.52)
2
3# Process this file with autoconf to produce a configure script.
Eric Haszlakiewicz515ba0d2014-04-10 22:44:13 -04004AC_INIT([json-c], 0.12.99, [json-c@googlegroups.com])
Michael Clark4504df72007-03-13 08:26:20 +00005
Eric Haszlakiewicze6f13222014-03-02 12:16:37 -05006AM_INIT_AUTOMAKE
Michael Clark4504df72007-03-13 08:26:20 +00007
Eric Haszlakiewicz1e89ba62012-04-22 10:27:50 -05008AC_PROG_MAKE_SET
9
Michael Clark64e36902014-04-09 13:48:21 +080010AC_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])
16fi])
17
18if test "x$enable_rdrand" = "xyes"; then
19 AC_MSG_RESULT([RDRAND Hardware RNG Hash Seed enabled on supported x86/x64 platforms])
20else
21 AC_MSG_RESULT([RDRAND Hardware RNG Hash Seed disabled. Use --enable-rdrand to enable])
22fi
23
Michael Clark4504df72007-03-13 08:26:20 +000024# Checks for programs.
25
26# Checks for libraries.
27
28# Checks for header files.
Ross Burton89535bb2013-11-18 16:25:14 +000029AM_PROG_CC_C_O
Thomas Gstädtner36ec47d2013-03-03 00:17:25 +010030AC_CONFIG_HEADER(config.h)
31AC_CONFIG_HEADER(json_config.h)
Michael Clark4504df72007-03-13 08:26:20 +000032AC_HEADER_STDC
Michael Clark64e36902014-04-09 13:48:21 +080033AC_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 Haszlakiewiczb21b1372012-02-15 20:44:54 -060034AC_CHECK_HEADER(inttypes.h,[AC_DEFINE([JSON_C_HAVE_INTTYPES_H],[1],[Public define for json_inttypes.h])])
Michael Clark4504df72007-03-13 08:26:20 +000035
36# Checks for typedefs, structures, and compiler characteristics.
37AC_C_CONST
38AC_TYPE_SIZE_T
39
40# Checks for library functions.
41AC_FUNC_VPRINTF
42AC_FUNC_MEMCMP
43AC_FUNC_MALLOC
44AC_FUNC_REALLOC
Even Rouault1a957c22013-08-12 20:49:19 +020045AC_CHECK_FUNCS(strcasecmp strdup strerror snprintf vsnprintf vasprintf open vsyslog strncasecmp setlocale)
Eric Haszlakiewicz05da3162014-03-22 17:28:40 -040046AC_CHECK_DECLS([INFINITY], [], [], [[#include <math.h>]])
Eric Haszlakiewicz0eedf382014-03-09 16:41:33 -040047AC_CHECK_DECLS([nan], [], [], [[#include <math.h>]])
Eric Haszlakiewicze6f13222014-03-02 12:16:37 -050048AC_CHECK_DECLS([isnan], [], [], [[#include <math.h>]])
49AC_CHECK_DECLS([isinf], [], [], [[#include <math.h>]])
50AC_CHECK_DECLS([_isnan], [], [], [[#include <float.h>]])
51AC_CHECK_DECLS([_finite], [], [], [[#include <float.h>]])
Michael Clark4504df72007-03-13 08:26:20 +000052
Lin Xue7e06002012-09-09 17:33:35 -070053#check if .section.gnu.warning accepts long strings (for __warn_references)
54AC_LANG_PUSH([C])
55
56AC_MSG_CHECKING([if .gnu.warning accepts long strings])
Eric Haszlakiewicz9f26d962014-03-22 19:15:01 -040057AC_LINK_IFELSE([AC_LANG_SOURCE([[
Lin Xue7e06002012-09-09 17:33:35 -070058extern 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
61int main(int c,char* v) {return 0;}
Eric Haszlakiewicz9f26d962014-03-22 19:15:01 -040062]])], [
Lin Xue7e06002012-09-09 17:33:35 -070063 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
69AC_LANG_POP([C])
70
Michael Clark4504df72007-03-13 08:26:20 +000071AM_PROG_LIBTOOL
72
Emmanuele Bassi311686f2013-09-17 13:08:14 +010073# Check for the -Bsymbolic-functions linker flag
74AC_ARG_ENABLE([Bsymbolic],
75 [AS_HELP_STRING([--disable-Bsymbolic], [Avoid linking with -Bsymbolic-function])],
76 [],
77 [enable_Bsymbolic=check])
78
79AS_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
96AS_IF([test "x$enable_Bsymbolic" = "xyes"], [JSON_BSYMBOLIC_LDFLAGS=-Wl[,]-Bsymbolic-functions])
97AC_SUBST(JSON_BSYMBOLIC_LDFLAGS)
98
Eric Haszlakiewicz1e89ba62012-04-22 10:27:50 -050099AC_CONFIG_FILES([
Michael Clark4504df72007-03-13 08:26:20 +0000100Makefile
Keith Derrick30dd3672012-03-30 12:28:32 -0700101json-c.pc
Eric Haszlakiewicz1e89ba62012-04-22 10:27:50 -0500102tests/Makefile
Eric Haszlakiewicz1f9d1992012-07-29 18:25:09 -0500103json-c-uninstalled.pc
Michael Clark4504df72007-03-13 08:26:20 +0000104])
Eric Haszlakiewicz1e89ba62012-04-22 10:27:50 -0500105
106AC_OUTPUT
107