blob: a7d2d7b3e48bfc452f4bcc7196ec68f32a2f8479 [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 Haszlakiewicz42071472013-04-02 21:22:59 -05004AC_INIT([json-c], 0.11.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 Clark4504df72007-03-13 08:26:20 +000010# Checks for programs.
11
12# Checks for libraries.
13
14# Checks for header files.
Ross Burton89535bb2013-11-18 16:25:14 +000015AM_PROG_CC_C_O
Thomas Gstädtner36ec47d2013-03-03 00:17:25 +010016AC_CONFIG_HEADER(config.h)
17AC_CONFIG_HEADER(json_config.h)
Michael Clark4504df72007-03-13 08:26:20 +000018AC_HEADER_STDC
Remi Collet16a4a322012-11-27 11:06:49 +010019AC_CHECK_HEADERS(fcntl.h limits.h strings.h syslog.h unistd.h [sys/cdefs.h] [sys/param.h] stdarg.h locale.h)
Eric Haszlakiewiczb21b1372012-02-15 20:44:54 -060020AC_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 +000021
22# Checks for typedefs, structures, and compiler characteristics.
23AC_C_CONST
24AC_TYPE_SIZE_T
25
26# Checks for library functions.
27AC_FUNC_VPRINTF
28AC_FUNC_MEMCMP
29AC_FUNC_MALLOC
30AC_FUNC_REALLOC
Even Rouault1a957c22013-08-12 20:49:19 +020031AC_CHECK_FUNCS(strcasecmp strdup strerror snprintf vsnprintf vasprintf open vsyslog strncasecmp setlocale)
Eric Haszlakiewicze6f13222014-03-02 12:16:37 -050032AC_CHECK_DECLS([isnan], [], [], [[#include <math.h>]])
33AC_CHECK_DECLS([isinf], [], [], [[#include <math.h>]])
34AC_CHECK_DECLS([_isnan], [], [], [[#include <float.h>]])
35AC_CHECK_DECLS([_finite], [], [], [[#include <float.h>]])
Michael Clark4504df72007-03-13 08:26:20 +000036
Lin Xue7e06002012-09-09 17:33:35 -070037#check if .section.gnu.warning accepts long strings (for __warn_references)
38AC_LANG_PUSH([C])
39
40AC_MSG_CHECKING([if .gnu.warning accepts long strings])
41AC_LINK_IFELSE([[
42extern void json_object_get();
43__asm__(".section .gnu.json_object_get,\n\t.ascii \"Please link against libjson-c instead of libjson\"\n\t.text");
44
45int main(int c,char* v) {return 0;}
46]], [
47 AC_DEFINE(HAS_GNU_WARNING_LONG, 1, [Define if .gnu.warning accepts long strings.])
48 AC_MSG_RESULT(yes)
49], [
50 AC_MSG_RESULT(no)
51])
52
53AC_LANG_POP([C])
54
Michael Clark4504df72007-03-13 08:26:20 +000055AM_PROG_LIBTOOL
56
Emmanuele Bassi311686f2013-09-17 13:08:14 +010057# Check for the -Bsymbolic-functions linker flag
58AC_ARG_ENABLE([Bsymbolic],
59 [AS_HELP_STRING([--disable-Bsymbolic], [Avoid linking with -Bsymbolic-function])],
60 [],
61 [enable_Bsymbolic=check])
62
63AS_IF([test "x$enable_Bsymbolic" = "xcheck"],
64 [
65 saved_LDFLAGS="${LDFLAGS}"
66 AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
67 LDFLAGS=-Wl,-Bsymbolic-functions
68 AC_TRY_LINK([], [int main (void) { return 0; }],
69 [
70 AC_MSG_RESULT([yes])
71 enable_Bsymbolic=yes
72 ],
73 [
74 AC_MSG_RESULT([no])
75 enable_Bsymbolic=no
76 ])
77 LDFLAGS="${saved_LDFLAGS}"
78 ])
79
80AS_IF([test "x$enable_Bsymbolic" = "xyes"], [JSON_BSYMBOLIC_LDFLAGS=-Wl[,]-Bsymbolic-functions])
81AC_SUBST(JSON_BSYMBOLIC_LDFLAGS)
82
Eric Haszlakiewicz1e89ba62012-04-22 10:27:50 -050083AC_CONFIG_FILES([
Michael Clark4504df72007-03-13 08:26:20 +000084Makefile
Keith Derrick30dd3672012-03-30 12:28:32 -070085json-c.pc
Eric Haszlakiewicz1e89ba62012-04-22 10:27:50 -050086tests/Makefile
Eric Haszlakiewicz1f9d1992012-07-29 18:25:09 -050087json-c-uninstalled.pc
Michael Clark4504df72007-03-13 08:26:20 +000088])
Eric Haszlakiewicz1e89ba62012-04-22 10:27:50 -050089
90AC_OUTPUT
91