summaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2007-07-02 23:28:02 +0000
committerBruno Haible <bruno@clisp.org>2007-07-02 23:28:02 +0000
commitf0972c2658a5335dd6c55049501effb8f5850ce6 (patch)
tree84af18ec98d395ce25a6912773e95cf66034fc5d /m4
parente05c3e67d762e53fcfe90c921ad111a525896dde (diff)
downloadgnulib-f0972c2658a5335dd6c55049501effb8f5850ce6.tar.gz
Ensure that <stdint.h> defines all the *_MAX and *_MIN macros that gnulib's
inttypes.h requires.
Diffstat (limited to 'm4')
-rw-r--r--m4/inttypes.m418
1 files changed, 17 insertions, 1 deletions
diff --git a/m4/inttypes.m4 b/m4/inttypes.m4
index 05f2b2db11..a944659e35 100644
--- a/m4/inttypes.m4
+++ b/m4/inttypes.m4
@@ -1,4 +1,4 @@
-# inttypes.m4 serial 9
+# inttypes.m4 serial 10
dnl Copyright (C) 2006-2007 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -144,6 +144,22 @@ const char *l = /* implicit string concatenation */
AC_REQUIRE([gl_INTTYPES_H_DEFAULTS])
gl_CHECK_NEXT_HEADERS([inttypes.h])
+ dnl Ensure that <stdint.h> defines the limit macros, since gnulib's
+ dnl <inttypes.h> relies on them. This macro is only needed when a
+ dnl C++ compiler is in use; it has no effect for a C compiler.
+ dnl Also be careful to define __STDC_LIMIT_MACROS only when gnulib's
+ dnl <inttypes.h> is going to be created, and to avoid redefinition warnings
+ dnl if the __STDC_LIMIT_MACROS is already defined through the CPPFLAGS.
+ AC_DEFINE([__STDC_LIMIT_MACROS_TRIGGER], 1,
+ [Define to make the limit macros in <stdint.h> visible.])
+ AH_VERBATIM([__STDC_LIMIT_MACROS_ZZZ],
+[/* Ensure that <stdint.h> defines the limit macros, since gnulib's
+ <inttypes.h> relies on them. */
+#if defined __cplusplus && !defined __STDC_LIMIT_MACROS && __STDC_LIMIT_MACROS_TRIGGER
+# define __STDC_LIMIT_MACROS 1
+#endif
+])
+
PRIPTR_PREFIX=
if test -n "$STDINT_H"; then
dnl Using the gnulib <stdint.h>. It always defines intptr_t to 'long'.