Add AC_PREREQ(2.13).
authorJim Meyering <jim@meyering.net>
Sat, 18 Aug 2001 15:59:02 +0000 (15:59 +0000)
committerJim Meyering <jim@meyering.net>
Sat, 18 Aug 2001 15:59:02 +0000 (15:59 +0000)
(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.

m4/inttypes.m4

index 9c10135..536c31f 100644 (file)
@@ -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
 ])