From 411e141164861435385bb9bbb10012da28a077c0 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Tue, 27 Apr 2010 16:32:40 +0200 Subject: [PATCH] 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. --- ChangeLog | 5 +++++ top/maint.mk | 15 ++++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 64a9a3ead..4d6e47368 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2010-04-27 Jim Meyering + 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_
_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. diff --git a/top/maint.mk b/top/maint.mk index 159fe8310..8d9a52233 100644 --- a/top/maint.mk +++ b/top/maint.mk @@ -649,20 +649,21 @@ sc_useless_cpp_parens: # 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_
_H symbol(s);\n'\ ' with the corresponding gnulib module, they are always true' \ $(_sc_search_regexp) -- 2.11.0