diff options
Diffstat (limited to 'm4/inttypes.m4')
-rw-r--r-- | m4/inttypes.m4 | 42 |
1 files changed, 38 insertions, 4 deletions
diff --git a/m4/inttypes.m4 b/m4/inttypes.m4 index 9c10135b2..536c31f5f 100644 --- 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 <inttypes.h> exists, -# doesn't clash with <sys/types.h>, and declares uintmax_t. +# doesn't clash with <sys/types.h>, and declares intmax_t and uintmax_t. AC_DEFUN([jm_AC_HEADER_INTTYPES_H], [ @@ -11,12 +13,44 @@ AC_DEFUN([jm_AC_HEADER_INTTYPES_H], [AC_TRY_COMPILE( [#include <sys/types.h> #include <inttypes.h>], - [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 <inttypes.h> exists, doesn't clash with <sys/types.h>, - and declares uintmax_t. ]) + and declares intmax_t and uintmax_t.]) + fi +]) + +# Define intmax_t to long or long long if <inttypes.h> 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 <inttypes.h> doesn't define.]) + fi +]) + +# Define uintmax_t to unsigned long or unsigned long long +# if <inttypes.h> 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 <inttypes.h> doesn't define.]) fi ]) |