# HG changeset patch # User Jim Meyering # Date 999252892 0 # Node ID 3ddf0740b3345e83755b59c2f7d2aacd7e804ba1 # Parent e39fe8eb76041e75ee752bdb64884d41ad570e5d (jm_AC_PREREQ_XSTRTOIMAX): Quote first arg of AC_DEFUN. Require jm_AC_TYPE_UINTMAX_T and jm_AC_TYPE_UNSIGNED_LONG_LONG since they are needed to parse the include file even if we need only xstrtoimax. Simplify logic behind the args to AC_REPLACE. diff --git a/m4/xstrtoimax.m4 b/m4/xstrtoimax.m4 --- a/m4/xstrtoimax.m4 +++ b/m4/xstrtoimax.m4 @@ -6,10 +6,11 @@ AC_DEFUN([jm_AC_PREREQ_XSTRTOIMAX], [ AC_REQUIRE([jm_AC_TYPE_INTMAX_T]) - AC_REQUIRE([jm_AC_HEADER_INTTYPES_H]) + AC_REQUIRE([jm_AC_TYPE_UINTMAX_T]) AC_REQUIRE([jm_AC_TYPE_LONG_LONG]) + AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG]) AC_CHECK_DECLS([strtol, strtoll]) - AC_CHECK_HEADERS(limits.h stdlib.h) + AC_CHECK_HEADERS(limits.h stdlib.h inttypes.h) AC_CACHE_CHECK([whether defines strtoimax as a macro], jm_cv_func_strtoimax_macro, @@ -24,27 +25,17 @@ AC_REPLACE_FUNCS(strtoimax) fi - dnl We don't need (and can't compile) the replacement strtoll - dnl unless the type `long long' exists. - dnl Also, only the replacement strtoimax invokes strtoll, - dnl so we need the replacement strtoll only if strtoimax does not exist. - case "$ac_cv_type_long_long,$jm_cv_func_strtoimax_macro,$ac_cv_func_strtoimax" in - yes,no,no) - AC_REPLACE_FUNCS(strtoll) + dnl Only the replacement strtoimax invokes strtol and strtoll, + dnl so we need the replacements only if strtoimax does not exist. + case "$jm_cv_func_strtoimax_macro,$ac_cv_func_strtoimax" in + no,no) + AC_REPLACE_FUNCS(strtol) - dnl Check for strtol. Mainly as a cue to cause automake to include - dnl strtol.c -- that file is included by each of strtoul.c and strtoull.c. - AC_REPLACE_FUNCS(strtol) + dnl We don't need (and can't compile) the replacement strtoll + dnl unless the type `long long' exists. + if test "$ac_cv_type_long_long" = yes; then + AC_REPLACE_FUNCS(strtoll) + fi ;; esac - - case "$jm_cv_func_strtoimax_macro,$ac_cv_func_strtoimax" in - no,no) - AC_REPLACE_FUNCS(strtoul) - - dnl See explanation above. - AC_REPLACE_FUNCS(strtol) - ;; - esac - ])