# HG changeset patch # User Jim Meyering # Date 998150342 0 # Node ID b1734ebed89bc6decdf2e0c0ae60e6932d0d62f4 # Parent 8f113648d4ec9fc8ebb8f986c59d4da44aaa8c6b Add AC_PREREQ(2.13). (jm_AC_HEADER_INTTYPES_H): Test for intmax_t, too. (jm_AC_TYPE_INTMAX_T): New macro. (jm_AC_TYPE_UINTMAX_T): Moved here from uintmax_t.m4. diff --git a/m4/inttypes.m4 b/m4/inttypes.m4 --- a/m4/inttypes.m4 +++ b/m4/inttypes.m4 @@ -1,9 +1,11 @@ -#serial 4 +#serial 6 dnl From Paul Eggert. +AC_PREREQ(2.13) + # Define HAVE_INTTYPES_H if exists, -# doesn't clash with , and declares uintmax_t. +# doesn't clash with , and declares intmax_t and uintmax_t. AC_DEFUN([jm_AC_HEADER_INTTYPES_H], [ @@ -11,12 +13,44 @@ [AC_TRY_COMPILE( [#include #include ], - [uintmax_t i = (uintmax_t) -1;], + [intmax_t i = (intmax_t) -1; uintmax_t ui = (uintmax_t) -1;], jm_ac_cv_header_inttypes_h=yes, jm_ac_cv_header_inttypes_h=no)]) if test $jm_ac_cv_header_inttypes_h = yes; then AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1, [Define if exists, doesn't clash with , - and declares uintmax_t. ]) + and declares intmax_t and uintmax_t.]) + fi +]) + +# Define intmax_t to long or long long if doesn't define. + +AC_DEFUN([jm_AC_TYPE_INTMAX_T], +[ + AC_REQUIRE([jm_AC_HEADER_INTTYPES_H]) + if test $jm_ac_cv_header_inttypes_h = no; then + AC_REQUIRE([jm_AC_TYPE_LONG_LONG]) + test $ac_cv_type_long_long = yes \ + && ac_type='long long' \ + || ac_type='long' + AC_DEFINE_UNQUOTED(intmax_t, $ac_type, + [Define to long or long long if doesn't define.]) fi ]) + +# Define uintmax_t to unsigned long or unsigned long long +# if doesn't define. + +AC_DEFUN([jm_AC_TYPE_UINTMAX_T], +[ + AC_REQUIRE([jm_AC_HEADER_INTTYPES_H]) + if test $jm_ac_cv_header_inttypes_h = no; then + AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG]) + test $ac_cv_type_unsigned_long_long = yes \ + && ac_type='unsigned long long' \ + || ac_type='unsigned long' + AC_DEFINE_UNQUOTED(uintmax_t, $ac_type, +[Define to unsigned long or unsigned long long + if doesn't define.]) + fi +])