Mercurial > hg > octave-kai > gnulib-hg
changeset 13277:b07571bc9838
maint.mk: avoid side-effect in latest syntax-check
* top/maint.mk (sc_prohibit_always_true_header_tests): Rework not
to run commands via $(shell...), and hence to incur cost only when
the new rule is actually run.
author | Jim Meyering <meyering@redhat.com> |
---|---|
date | Tue, 27 Apr 2010 16:32:40 +0200 |
parents | 4c9bf78586ca |
children | a7cc50668746 |
files | ChangeLog top/maint.mk |
diffstat | 2 files changed, 13 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2010-04-27 Jim Meyering <meyering@redhat.com> + maint.mk: avoid side-effect in latest syntax-check + * top/maint.mk (sc_prohibit_always_true_header_tests): Rework not + to run commands via $(shell...), and hence to incur cost only when + the new rule is actually run. + maint.mk: syntax-check: prohibit HAVE_<header>_H that are always true Derive the list of guaranteed header names from gnulib/lib/*.in.h, and use that to create a regexp used to detect all #if HAVE_..._H uses.
--- a/top/maint.mk +++ b/top/maint.mk @@ -649,20 +649,21 @@ # using the appropriate gnulib module. CAUTION: for each "unnecessary" # #if HAVE_HEADER_H that you remove, be sure that your project explicitly # requires the gnulib module that guarantees the usability of that header. -gl_assured_headers_ := \ - $(shell cd $(gnulib_dir)/lib && ls -1 *.in.h|sed 's/\.in\.h$$/ \\/') +gl_assured_headers_ = \ + cd $(gnulib_dir)/lib && echo *.in.h|sed 's/\.in\.h//' # Convert the list of names to upper case, and replace each space with "|". az_ = abcdefghijklmnopqrstuvwxyz AZ_ = ABCDEFGHIJKLMNOPQRSTUVWXYZ -gl_header_upper_case_or_ := \ - $(shell echo $(gl_assured_headers_) \ +gl_header_upper_case_or_ = \ + $$($(gl_assured_headers_) \ | tr $(az_)/.- $(AZ_)___ \ | tr -s ' ' '|' \ - ) -gl_have_header_regex_ = HAVE_($(gl_header_upper_case_or_))_H + ) sc_prohibit_always_true_header_tests: - @prohibit='\<$(gl_have_header_regex_)\>' \ + @or=$(gl_header_upper_case_or_); \ + re="HAVE_($$or)_H"; \ + prohibit='\<'"$$re"'\>' \ halt='do not test the above HAVE_<header>_H symbol(s);\n'\ ' with the corresponding gnulib module, they are always true' \ $(_sc_search_regexp)