From 4ae5736bd07160200192aa38f5d40f83589c4ac9 Mon Sep 17 00:00:00 2001 From: Petri Lehtinen Date: Tue, 20 Mar 2012 20:46:17 +0200 Subject: Make sure strtoll() is available when using long long --- configure.ac | 15 ++++++++------- src/jansson_config.h.in | 5 +++-- src/jansson_config.h.win32 | 5 +++-- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/configure.ac b/configure.ac index 662f41a..70b0fed 100644 --- a/configure.ac +++ b/configure.ac @@ -18,13 +18,7 @@ AC_CHECK_HEADERS([locale.h]) # Checks for typedefs, structures, and compiler characteristics. AC_TYPE_INT32_T - AC_TYPE_LONG_LONG_INT -case $ac_cv_type_long_long_int in - yes) json_have_long_long=1;; - *) json_have_long_long=0;; -esac -AC_SUBST([json_have_long_long]) AC_C_INLINE case $ac_cv_c_inline in @@ -35,7 +29,14 @@ esac AC_SUBST([json_inline]) # Checks for library functions. -AC_CHECK_FUNCS([setlocale localeconv]) +AC_CHECK_FUNCS([strtoll localeconv]) + +case "$ac_cv_type_long_long_int$ac_cv_func_strtoll" in + yesyes) json_have_long_long=1;; + *) json_have_long_long=0;; +esac +AC_SUBST([json_have_long_long]) + case "$ac_cv_header_locale_h$ac_cv_func_localeconv" in yesyes) json_have_localeconv=1;; *) json_have_localeconv=0;; diff --git a/src/jansson_config.h.in b/src/jansson_config.h.in index 52e3d57..0c112a4 100644 --- a/src/jansson_config.h.in +++ b/src/jansson_config.h.in @@ -27,8 +27,9 @@ #define JSON_INLINE @json_inline@ #endif -/* If your compiler supports the `long long` type, - JSON_INTEGER_IS_LONG_LONG is defined to 1, otherwise to 0. */ +/* If your compiler supports the `long long` type and the strtoll() + library function, JSON_INTEGER_IS_LONG_LONG is defined to 1, + otherwise to 0. */ #define JSON_INTEGER_IS_LONG_LONG @json_have_long_long@ /* If locale.h and localeconv() are available, define to 1, diff --git a/src/jansson_config.h.win32 b/src/jansson_config.h.win32 index a188f76..1a6b014 100644 --- a/src/jansson_config.h.win32 +++ b/src/jansson_config.h.win32 @@ -27,8 +27,9 @@ #define JSON_INLINE #endif -/* If your compiler supports the `long long` type, - JSON_INTEGER_IS_LONG_LONG is defined to 1, otherwise to 0. */ +/* If your compiler supports the `long long` type and the strtoll() + library function, JSON_INTEGER_IS_LONG_LONG is defined to 1, + otherwise to 0. */ #define JSON_INTEGER_IS_LONG_LONG 1 /* If locale.h and localeconv() are available, define to 1, -- cgit v1.1