Browse Source

Include json_inttypes.h in json_object.h since we use types like int32_t in the API and some systems need that header to compile.

As part of this create a public json_config.h with a custom define to
decide whether to include inttypes.h to avoid conflicting with other
projects config.h header.
tags/json-c-0.10-20120530
Eric Haszlakiewicz 13 years ago
parent
commit
b21b137805
6 changed files with 27 additions and 2 deletions
  1. +6
    -0
      Makefile.am
  2. +11
    -1
      config.h.in
  3. +2
    -0
      configure.in
  4. +3
    -0
      json_config.h.in
  5. +3
    -1
      json_inttypes.h
  6. +2
    -0
      json_object.h

+ 6
- 0
Makefile.am View File

@@ -13,6 +13,7 @@ libjsoninclude_HEADERS = \
bits.h \ bits.h \
debug.h \ debug.h \
json.h \ json.h \
json_config.h \
json_inttypes.h \ json_inttypes.h \
json_object.h \ json_object.h \
json_object_private.h \ json_object_private.h \
@@ -21,6 +22,11 @@ libjsoninclude_HEADERS = \
linkhash.h \ linkhash.h \
printbuf.h printbuf.h


#libjsonx_includedir = $(libdir)/json-c-@VERSION@
#
#libjsonx_include_HEADERS = \
# json_config.h

libjson_la_LDFLAGS = -version-info 1:0:1 -no-undefined libjson_la_LDFLAGS = -version-info 1:0:1 -no-undefined


libjson_la_SOURCES = \ libjson_la_SOURCES = \


+ 11
- 1
config.h.in View File

@@ -80,6 +80,13 @@
/* Define to 1 if you have the `vsyslog' function. */ /* Define to 1 if you have the `vsyslog' function. */
#undef HAVE_VSYSLOG #undef HAVE_VSYSLOG


/* Public define for json_inttypes.h */
#undef JSON_C_HAVE_INTTYPES_H

/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#undef LT_OBJDIR

/* Name of package */ /* Name of package */
#undef PACKAGE #undef PACKAGE


@@ -95,6 +102,9 @@
/* Define to the one symbol short name of this package. */ /* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME #undef PACKAGE_TARNAME


/* Define to the home page for this package. */
#undef PACKAGE_URL

/* Define to the version of this package. */ /* Define to the version of this package. */
#undef PACKAGE_VERSION #undef PACKAGE_VERSION


@@ -113,5 +123,5 @@
/* Define to rpl_realloc if the replacement function should be used. */ /* Define to rpl_realloc if the replacement function should be used. */
#undef realloc #undef realloc


/* Define to `unsigned' if <sys/types.h> does not define. */
/* Define to `unsigned int' if <sys/types.h> does not define. */
#undef size_t #undef size_t

+ 2
- 0
configure.in View File

@@ -11,8 +11,10 @@ AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)


# Checks for header files. # Checks for header files.
AM_CONFIG_HEADER(config.h) AM_CONFIG_HEADER(config.h)
AM_CONFIG_HEADER(json_config.h)
AC_HEADER_STDC AC_HEADER_STDC
AC_CHECK_HEADERS(fcntl.h limits.h strings.h syslog.h unistd.h [sys/param.h] stdarg.h) AC_CHECK_HEADERS(fcntl.h limits.h strings.h syslog.h unistd.h [sys/param.h] stdarg.h)
AC_CHECK_HEADER(inttypes.h,[AC_DEFINE([JSON_C_HAVE_INTTYPES_H],[1],[Public define for json_inttypes.h])])


# Checks for typedefs, structures, and compiler characteristics. # Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST AC_C_CONST


+ 3
- 0
json_config.h.in View File

@@ -0,0 +1,3 @@

/* Define to 1 if you have the <inttypes.h> header file. */
#undef JSON_C_HAVE_INTTYPES_H

+ 3
- 1
json_inttypes.h View File

@@ -2,6 +2,8 @@
#ifndef _json_inttypes_h_ #ifndef _json_inttypes_h_
#define _json_inttypes_h_ #define _json_inttypes_h_


#include "json_config.h"

#if defined(_MSC_VER) && _MSC_VER < 1600 #if defined(_MSC_VER) && _MSC_VER < 1600


/* Anything less than Visual Studio C++ 10 is missing stdint.h and inttypes.h */ /* Anything less than Visual Studio C++ 10 is missing stdint.h and inttypes.h */
@@ -14,7 +16,7 @@ typedef __int64 int64_t;


#else #else


#ifdef HAVE_INTTYPES_H
#ifdef JSON_C_HAVE_INTTYPES_H
#include <inttypes.h> #include <inttypes.h>
#endif #endif
/* inttypes.h includes stdint.h */ /* inttypes.h includes stdint.h */


+ 2
- 0
json_object.h View File

@@ -12,6 +12,8 @@
#ifndef _json_object_h_ #ifndef _json_object_h_
#define _json_object_h_ #define _json_object_h_


#include "json_inttypes.h"

#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif


Loading…
Cancel
Save