From: Pádraig Brady Date: Mon, 25 Jan 2010 10:55:34 +0000 (+0000) Subject: syntax-check: detect incorrect boolean macro values in config.h X-Git-Tag: v0.1~4671 X-Git-Url: http://erislabs.org.uk/gitweb/?a=commitdiff_plain;h=22970f8ac1f173d882139e4dccc7831871252f47;p=gnulib.git syntax-check: detect incorrect boolean macro values in config.h * modules/maintainer-makefile (configure.ac): Parameterize the location of config.h which will be available to makefiles as $(CONFIG_INCLUDE). The logic is from Eric Blake and the location indicated by Jim Meyering. Note the more natural CONFIG_HEADER name is prohibited by automake for backwards compatibility reasons. * top/maint.mk (sc_Wundef_boolean): New rule. --- diff --git a/ChangeLog b/ChangeLog index 2c79e308c..5d82d1089 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2010-01-25 Pádraig Brady + + syntax-check: detect incorrect boolean macro values in config.h + * modules/maintainer-makefile (configure.ac): Parameterize the location + of config.h which will be available to makefiles as $(CONFIG_INCLUDE). + The logic is from Eric Blake and the location indicated by Jim Meyering. + Note the more natural CONFIG_HEADER name is prohibited by automake + for backwards compatibility reasons. + * top/maint.mk (sc_Wundef_boolean): New rule. + 2010-01-25 Jim Meyering bootstrap: detect MacOS 10.6's shasum, too diff --git a/modules/maintainer-makefile b/modules/maintainer-makefile index 21c28020e..ed43e8790 100644 --- a/modules/maintainer-makefile +++ b/modules/maintainer-makefile @@ -9,6 +9,10 @@ gnumakefile useless-if-before-free vc-list-files +configure.ac: +AC_CONFIG_COMMANDS_PRE([m4_ifdef([AH_HEADER], + [AC_SUBST([CONFIG_INCLUDE], m4_defn([AH_HEADER]))])]) + License: GPLed build tool diff --git a/top/maint.mk b/top/maint.mk index 346d6813b..d384ca62b 100644 --- a/top/maint.mk +++ b/top/maint.mk @@ -718,6 +718,14 @@ sc_copyright_check: exit 1; }; \ fi +# #if HAVE_... will evaluate to false for any non numeric string. +# That would be flagged by using -Wundef, however gnulib currently +# tests many undefined macros, and so we can't enable that option. +# So at least preclude common boolean strings as macro values. +sc_Wundef_boolean: + @grep -Ei '^#define.*(yes|no|true|false)$$' '$(CONFIG_INCLUDE)' && \ + { echo 'Use 0 or 1 for macro values' 1>&2; exit 1; } || : + vc-diff-check: (unset CDPATH; cd $(srcdir) && $(VC) diff) > vc-diffs || : if test -s vc-diffs; then \