inttypes-incomplete: new module
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 26 Apr 2011 02:33:14 +0000 (19:33 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 26 Apr 2011 19:18:14 +0000 (12:18 -0700)
* m4/inttypes.m4 (gl_INTTYPES_INCOMPLETE): New macro, containing
all but the PRI* and SCN* parts of gl_INTTYPES_H.
(gl_INTTYPES_PRI_SCN): New macro, containing the PRI* and SCN* parts
of gl_INTTYPES_H.
(gl_INTTYPES_H): Rewrite in terms of these new macros.
(gl_INTTYPES_H_DEFAULTS): Provide defaults for the PRI* and SCN*
parts, in case gl_INTTYPE_PRI_SCN is not invoked.
* modules/imaxabs, modules/imaxdiv, modules/strtoimax (Depends-on):
* modules/strtoumax, modules/xstrtol (Depends-on):
Depend on inttypes-incomplete, not inttypes.
* modules/inttypes-incomplete: New module, containing the contents
of the old modules/inttypes module, except that the Files: section
omits m4/inttypes-pri.m4, and the configure.ac section invokes
gl_INTTYPES_INCOMPLETE rather than gl_INTTYPES_H.
* modules/inttypes (Files): Remove lib/inttypes.in.h, m4/inttypes.m4.
(Depends-on): Depend only on inttypes-incomplete.
(Makefile.am): Remove everything; this is now in inttypes-incomplete.

ChangeLog
m4/inttypes.m4
modules/imaxabs
modules/imaxdiv
modules/inttypes
modules/inttypes-incomplete [new file with mode: 0644]
modules/strtoimax
modules/strtoumax
modules/xstrtol

index d37667be033d14cd65caaa6d44a53e2bba70f093..4fef3ae162d52097a6809881cdc29c6a3824464e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,24 @@
 2011-04-25  Paul Eggert  <eggert@cs.ucla.edu>
 
+       inttypes-incomplete: new module
+       * m4/inttypes.m4 (gl_INTTYPES_INCOMPLETE): New macro, containing
+       all but the PRI* and SCN* parts of gl_INTTYPES_H.
+       (gl_INTTYPES_PRI_SCN): New macro, containing the PRI* and SCN* parts
+       of gl_INTTYPES_H.
+       (gl_INTTYPES_H): Rewrite in terms of these new macros.
+       (gl_INTTYPES_H_DEFAULTS): Provide defaults for the PRI* and SCN*
+       parts, in case gl_INTTYPE_PRI_SCN is not invoked.
+       * modules/imaxabs, modules/imaxdiv, modules/strtoimax (Depends-on):
+       * modules/strtoumax, modules/xstrtol (Depends-on):
+       Depend on inttypes-incomplete, not inttypes.
+       * modules/inttypes-incomplete: New module, containing the contents
+       of the old modules/inttypes module, except that the Files: section
+       omits m4/inttypes-pri.m4, and the configure.ac section invokes
+       gl_INTTYPES_INCOMPLETE rather than gl_INTTYPES_H.
+       * modules/inttypes (Files): Remove lib/inttypes.in.h, m4/inttypes.m4.
+       (Depends-on): Depend only on inttypes-incomplete.
+       (Makefile.am): Remove everything; this is now in inttypes-incomplete.
+
        inttypes: omit now-redundant strtoimax and strtoumax work
        * m4/inttypes.m4 (gl_INTTYPES_H): Do not check for strtoimax and
        strtoumax decls; gl_FUNC_STRTOIMAX and gl_FUNC_STRTOUMAX now do this.
index 99a60710d096d368dda90854f93a19a96d9a4ce8..ee5bc1c723fcfa234d7fee757dcfd9bafc6b9eb1 100644 (file)
@@ -1,4 +1,4 @@
-# inttypes.m4 serial 22
+# inttypes.m4 serial 23
 dnl Copyright (C) 2006-2011 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -8,9 +8,14 @@ dnl From Derek Price, Bruno Haible.
 dnl Test whether <inttypes.h> is supported or must be substituted.
 
 AC_DEFUN([gl_INTTYPES_H],
+[
+  AC_REQUIRE([gl_INTTYPES_INCOMPLETE])
+  gl_INTTYPES_PRI_SCN
+])
+
+AC_DEFUN([gl_INTTYPES_INCOMPLETE],
 [
   AC_REQUIRE([gl_STDINT_H])
-  AC_REQUIRE([gt_INTTYPES_PRI])
   AC_CHECK_HEADERS_ONCE([inttypes.h])
 
   dnl Override <inttypes.h> always, so that the portability warnings work.
@@ -35,6 +40,17 @@ AC_DEFUN([gl_INTTYPES_H],
 #endif
 ])
 
+  dnl Check for declarations of anything we want to poison if the
+  dnl corresponding gnulib module is not in use.
+  gl_WARN_ON_USE_PREPARE([[#include <inttypes.h>
+    ]], [imaxabs imaxdiv strtoimax strtoumax])
+])
+
+# Ensure that the PRI* and SCN* macros are defined appropriately.
+AC_DEFUN([gl_INTTYPES_PRI_SCN],
+[
+  AC_REQUIRE([gt_INTTYPES_PRI])
+
   PRIPTR_PREFIX=
   if test -n "$STDINT_H"; then
     dnl Using the gnulib <stdint.h>. It always defines intptr_t to 'long'.
@@ -86,11 +102,6 @@ AC_DEFUN([gl_INTTYPES_H],
   else
     UINT64_MAX_EQ_ULONG_MAX=-1
   fi
-
-  dnl Check for declarations of anything we want to poison if the
-  dnl corresponding gnulib module is not in use.
-  gl_WARN_ON_USE_PREPARE([[#include <inttypes.h>
-    ]], [imaxabs imaxdiv strtoimax strtoumax])
 ])
 
 # Define the symbol $1 to be 1 if the condition is true, 0 otherwise.
@@ -152,4 +163,8 @@ AC_DEFUN([gl_INTTYPES_H_DEFAULTS],
   HAVE_DECL_IMAXDIV=1;   AC_SUBST([HAVE_DECL_IMAXDIV])
   HAVE_DECL_STRTOIMAX=1; AC_SUBST([HAVE_DECL_STRTOIMAX])
   HAVE_DECL_STRTOUMAX=1; AC_SUBST([HAVE_DECL_STRTOUMAX])
+  INT64_MAX_EQ_LONG_MAX='defined _LP64';  AC_SUBST([INT64_MAX_EQ_LONG_MAX])
+  PRI_MACROS_BROKEN=0;   AC_SUBST([PRI_MACROS_BROKEN])
+  PRIPTR_PREFIX=__PRIPTR_PREFIX;  AC_SUBST([PRIPTR_PREFIX])
+  UINT64_MAX_EQ_ULONG_MAX='defined _LP64';  AC_SUBST([UINT64_MAX_EQ_ULONG_MAX])
 ])
index 481486d14574e155d03cef80fc94b1118aff5112..8da390f7367f4f2b8979fac507d9928a1488254f 100644 (file)
@@ -6,7 +6,7 @@ lib/imaxabs.c
 m4/imaxabs.m4
 
 Depends-on:
-inttypes
+inttypes-incomplete
 
 configure.ac:
 gl_FUNC_IMAXABS
index 7eacbc750d78bab735cb148c55f8d8ca87e2135d..7589024c07acec2b3b503f9042b124d4d565bf71 100644 (file)
@@ -6,7 +6,7 @@ lib/imaxdiv.c
 m4/imaxdiv.m4
 
 Depends-on:
-inttypes
+inttypes-incomplete
 
 configure.ac:
 gl_FUNC_IMAXDIV
index f85939c8f28b8502383bff2ecdf6ba5784a587a4..157b59791ab6fd15d24ee01cc44325ca129d7c3b 100644 (file)
@@ -2,56 +2,15 @@ Description:
 An <inttypes.h> that nearly conforms to C99.
 
 Files:
-lib/inttypes.in.h
 m4/inttypes-pri.m4
-m4/inttypes.m4
 
 Depends-on:
-arg-nonnull
-include_next
-multiarch
-stdint
-warn-on-use
+inttypes-incomplete
 
 configure.ac:
 gl_INTTYPES_H
 
 Makefile.am:
-BUILT_SOURCES += inttypes.h
-
-# We need the following in order to create <inttypes.h> when the system
-# doesn't have one that works with the given compiler.
-inttypes.h: inttypes.in.h $(top_builddir)/config.status $(WARN_ON_USE_H) $(ARG_NONNULL_H)
-       $(AM_V_GEN)rm -f $@-t $@ && \
-       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-         sed -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
-             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
-             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
-             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
-             -e 's|@''NEXT_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \
-             -e 's/@''PRI_MACROS_BROKEN''@/$(PRI_MACROS_BROKEN)/g' \
-             -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \
-             -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
-             -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
-             -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \
-             -e 's/@''GNULIB_IMAXABS''@/$(GNULIB_IMAXABS)/g' \
-             -e 's/@''GNULIB_IMAXDIV''@/$(GNULIB_IMAXDIV)/g' \
-             -e 's/@''GNULIB_STRTOIMAX''@/$(GNULIB_STRTOIMAX)/g' \
-             -e 's/@''GNULIB_STRTOUMAX''@/$(GNULIB_STRTOUMAX)/g' \
-             -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \
-             -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \
-             -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \
-             -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \
-             -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \
-             -e 's/@''INT64_MAX_EQ_LONG_MAX''@/$(INT64_MAX_EQ_LONG_MAX)/g' \
-             -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/$(UINT32_MAX_LT_UINTMAX_MAX)/g' \
-             -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/$(UINT64_MAX_EQ_ULONG_MAX)/g' \
-             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
-             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
-             < $(srcdir)/inttypes.in.h; \
-       } > $@-t && \
-       mv $@-t $@
-MOSTLYCLEANFILES += inttypes.h inttypes.h-t
 
 Include:
 <inttypes.h>
diff --git a/modules/inttypes-incomplete b/modules/inttypes-incomplete
new file mode 100644 (file)
index 0000000..ef743dd
--- /dev/null
@@ -0,0 +1,62 @@
+Description:
+An <inttypes.h> that conforms to C99 except for PRI* and SCN* macros.
+
+Files:
+lib/inttypes.in.h
+m4/inttypes.m4
+
+Depends-on:
+arg-nonnull
+include_next
+multiarch
+stdint
+warn-on-use
+
+configure.ac:
+gl_INTTYPES_INCOMPLETE
+
+Makefile.am:
+BUILT_SOURCES += inttypes.h
+
+# We need the following in order to create <inttypes.h> when the system
+# doesn't have one that works with the given compiler.
+inttypes.h: inttypes.in.h $(top_builddir)/config.status $(WARN_ON_USE_H) $(ARG_NONNULL_H)
+       $(AM_V_GEN)rm -f $@-t $@ && \
+       { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+         sed -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''NEXT_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \
+             -e 's/@''PRI_MACROS_BROKEN''@/$(PRI_MACROS_BROKEN)/g' \
+             -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \
+             -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
+             -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
+             -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \
+             -e 's/@''GNULIB_IMAXABS''@/$(GNULIB_IMAXABS)/g' \
+             -e 's/@''GNULIB_IMAXDIV''@/$(GNULIB_IMAXDIV)/g' \
+             -e 's/@''GNULIB_STRTOIMAX''@/$(GNULIB_STRTOIMAX)/g' \
+             -e 's/@''GNULIB_STRTOUMAX''@/$(GNULIB_STRTOUMAX)/g' \
+             -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \
+             -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \
+             -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \
+             -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \
+             -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \
+             -e 's/@''INT64_MAX_EQ_LONG_MAX''@/$(INT64_MAX_EQ_LONG_MAX)/g' \
+             -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/$(UINT32_MAX_LT_UINTMAX_MAX)/g' \
+             -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/$(UINT64_MAX_EQ_ULONG_MAX)/g' \
+             -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+             -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \
+             < $(srcdir)/inttypes.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += inttypes.h inttypes.h-t
+
+Include:
+<inttypes.h>
+
+License:
+LGPLv2+
+
+Maintainer:
+all
index 9f82af45369f1ba2701ed7f36d785ab711cfe180..c4e8982f1f59c42ed71e5c240e15f6a3ee1d3793 100644 (file)
@@ -9,7 +9,7 @@ m4/strtoimax.m4
 Depends-on:
 strtoll
 verify
-inttypes
+inttypes-incomplete
 stdint
 
 configure.ac:
index e88628526fba4aa1204fead480bac229f31aac1e..a1a84f5b81c65e4ab5902fb8bc8768554e4e2d7b 100644 (file)
@@ -9,7 +9,7 @@ m4/strtoumax.m4
 Depends-on:
 strtoimax
 strtoull
-inttypes
+inttypes-incomplete
 stdint
 
 configure.ac:
index 3ce76a8802f13054680270dd1cde6fe9db285183..b48a4bb1b6ca3c7610edc86de0fa8e0ac68651d2 100644 (file)
@@ -14,7 +14,7 @@ error
 getopt-gnu
 gettext-h
 intprops
-inttypes
+inttypes-incomplete
 
 configure.ac:
 gl_XSTRTOL