From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS3215 2.0.0.0/16 X-Spam-Status: No, score=-4.2 required=3.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI,SPF_PASS,T_MIXED_ES shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 5D3C620A1E for ; Thu, 13 Dec 2018 15:38:37 +0000 (UTC) Received: from localhost ([::1]:53342 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gXT4O-00028b-B0 for normalperson@yhbt.net; Thu, 13 Dec 2018 10:38:36 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52131) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gXT0T-0006qb-TT for bug-gnulib@gnu.org; Thu, 13 Dec 2018 10:34:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gXT0Q-00062y-HG for bug-gnulib@gnu.org; Thu, 13 Dec 2018 10:34:32 -0500 Received: from mta-01.yadro.com ([89.207.88.251]:46632) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gXT0P-0005xo-VO for bug-gnulib@gnu.org; Thu, 13 Dec 2018 10:34:30 -0500 Received: from localhost (unknown [127.0.0.1]) by mta-01.yadro.com (Postfix) with ESMTP id 872E44197F for ; Thu, 13 Dec 2018 15:34:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=yadro.com; h= content-type:content-type:mime-version:references:in-reply-to :x-mailer:message-id:date:date:subject:subject:from:from :received:received:received; s=mta-01; t=1544715266; x= 1546529667; bh=Mc7SWHmOuWOaydixosA/m1NUp6QlX9FrEeLkLKv5E9Q=; b=Q 2aamWTVP9q/9EwCu5TSlBJ5fkoLL3hfMeroLUgFr5RbFqKyYC4O/Mah88Bjf5M/5 cT1sdJbGnZdEcfzRC+BhZyGPFhkRmsrox7iieZS7NLa1YVca8SV9c0hP3RhSuWY/ WBAHZ1czDZo28V0pVt88NVgkwP7eHhbR1hfUNRx25E= X-Virus-Scanned: amavisd-new at yadro.com Received: from mta-01.yadro.com ([127.0.0.1]) by localhost (mta-01.yadro.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TOKhWpQDFfxY for ; Thu, 13 Dec 2018 18:34:26 +0300 (MSK) Received: from T-EXCH-02.corp.yadro.com (t-exch-02.corp.yadro.com [172.17.10.102]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mta-01.yadro.com (Postfix) with ESMTPS id 9580A41982 for ; Thu, 13 Dec 2018 18:34:26 +0300 (MSK) Received: from localhost (172.17.128.60) by T-EXCH-02.corp.yadro.com (172.17.10.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.669.32; Thu, 13 Dec 2018 18:34:26 +0300 From: Roman Bolshakov To: Subject: [PATCH v3 2/2] maint.mk: Replace grep with $(GREP) Date: Thu, 13 Dec 2018 18:34:53 +0300 Message-ID: <20181213153453.38123-3-r.bolshakov@yadro.com> X-Mailer: git-send-email 2.17.2 (Apple Git-113) In-Reply-To: <20181213153453.38123-1-r.bolshakov@yadro.com> References: <20181213153453.38123-1-r.bolshakov@yadro.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [172.17.128.60] X-ClientProxiedBy: T-EXCH-01.corp.yadro.com (172.17.10.101) To T-EXCH-02.corp.yadro.com (172.17.10.102) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 89.207.88.251 X-BeenThere: bug-gnulib@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Gnulib discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Roman Bolshakov Errors-To: bug-gnulib-bounces+normalperson=yhbt.net@gnu.org Sender: "bug-gnulib" A project that uses maint.mk can specify regular expressions that are not supported in system grep. Autoconf can discover an alias for GNU grep and set it in GREP but it takes no effect for maint.mk The patch provides an ability to use GNU grep if it was discovered by autoconf and by calling GNU grep we don't get the messages in syntax-check: prohibit_diagnostic_without_format grep: empty (sub)expression grep: empty (sub)expression grep: empty (sub)expression grep: empty (sub)expression grep: empty (sub)expression grep: empty (sub)expression Signed-off-by: Roman Bolshakov --- modules/maintainer-makefile | 1 + top/maint.mk | 116 ++++++++++++++++++------------------ 2 files changed, 59 insertions(+), 58 deletions(-) diff --git a/modules/maintainer-makefile b/modules/maintainer-makefile index 39b51583c..13b8c546a 100644 --- a/modules/maintainer-makefile +++ b/modules/maintainer-makefile @@ -14,6 +14,7 @@ configure.ac: AC_CONFIG_COMMANDS_PRE([m4_ifdef([AH_HEADER], [AC_SUBST([CONFIG_INCLUDE], m4_defn([AH_HEADER]))])]) AC_REQUIRE([AC_PROG_SED]) +AC_REQUIRE([AC_PROG_GREP]) Makefile.am: EXTRA_DIST += $(top_srcdir)/maint.mk diff --git a/top/maint.mk b/top/maint.mk index 1152ad698..c981567ba 100644 --- a/top/maint.mk +++ b/top/maint.mk @@ -46,7 +46,7 @@ member-check = \ # Do not save the original name or timestamp in the .tar.gz file. # Use --rsyncable if available. gzip_rsyncable := \ - $(shell gzip --help 2>/dev/null|grep rsyncable >/dev/null \ + $(shell gzip --help 2>/dev/null|$(GREP) rsyncable >/dev/null \ && printf %s --rsyncable) GZIP_ENV = '--no-name --best $(gzip_rsyncable)' @@ -83,9 +83,9 @@ _sc_excl = \ $(or $(exclude_file_name_regexp--$@),^$$) VC_LIST_EXCEPT = \ $(VC_LIST) | $(SED) 's|^$(_dot_escaped_srcdir)/||' \ - | if test -f $(srcdir)/.x-$@; then grep -vEf $(srcdir)/.x-$@; \ - else grep -Ev -e "$${VC_LIST_EXCEPT_DEFAULT-ChangeLog}"; fi \ - | grep -Ev -e '($(VC_LIST_ALWAYS_EXCLUDE_REGEX)|$(_sc_excl))' \ + | if test -f $(srcdir)/.x-$@; then $(GREP) -vEf $(srcdir)/.x-$@; \ + else $(GREP) -Ev -e "$${VC_LIST_EXCEPT_DEFAULT-ChangeLog}"; fi \ + | $(GREP) -Ev -e '($(VC_LIST_ALWAYS_EXCLUDE_REGEX)|$(_sc_excl))' \ $(_prepend_srcdir_prefix) ifeq ($(origin prev_version_file), undefined) @@ -292,23 +292,23 @@ define _sc_search_regexp \ : Filter by file name; \ if test -n "$$in_files"; then \ - files=$$(find $(srcdir) | grep -E "$$in_files" \ - | grep -Ev '$(_sc_excl)'); \ + files=$$(find $(srcdir) | $(GREP) -E "$$in_files" \ + | $(GREP) -Ev '$(_sc_excl)'); \ else \ files=$$($(VC_LIST_EXCEPT)); \ if test -n "$$in_vc_files"; then \ - files=$$(echo "$$files" | grep -E "$$in_vc_files"); \ + files=$$(echo "$$files" | $(GREP) -E "$$in_vc_files"); \ fi; \ fi; \ \ : Filter by content; \ test -n "$$files" \ && test -n "$$containing" \ - && { files=$$(echo "$$files" | xargs grep -l "$$containing"); } \ + && { files=$$(echo "$$files" | xargs $(GREP) -l "$$containing"); } \ || :; \ test -n "$$files" \ && test -n "$$non_containing" \ - && { files=$$(echo "$$files" | xargs grep -vl "$$non_containing"); } \ + && { files=$$(echo "$$files" | xargs $(GREP) -vl "$$non_containing"); } \ || :; \ \ : Check for the construct; \ @@ -316,15 +316,15 @@ define _sc_search_regexp if test -n "$$prohibit"; then \ echo "$$files" /dev/null \ | xargs \ - grep $$with_grep_options $(_ignore_case) -nE "$$prohibit" \ - | grep -vE "$${exclude:-^$$}" \ + $(GREP) $$with_grep_options $(_ignore_case) -nE "$$prohibit" \ + | $(GREP) -vE "$${exclude:-^$$}" \ && { msg="$$halt" $(_sc_say_and_exit) } \ || :; \ else \ echo "$$files" \ | xargs \ - grep $$with_grep_options $(_ignore_case) -LE "$$require" \ - | grep . \ + $(GREP) $$with_grep_options $(_ignore_case) -LE "$$require" \ + | $(GREP) . \ && { msg="$$halt" $(_sc_say_and_exit) } \ || :; \ fi \ @@ -334,7 +334,7 @@ endef sc_avoid_if_before_free: @$(VC_LIST_EXCEPT) \ - | grep -v useless-if-before-free \ + | $(GREP) -v useless-if-before-free \ | xargs \ $(srcdir)/$(_build-aux)/useless-if-before-free \ $(useless_free_options) \ @@ -414,8 +414,8 @@ sc_error_exit_success: # "WARNING:" should be fully upper-cased, or fully lower-cased sc_error_message_warn_fatal: @$(VC_LIST_EXCEPT) \ - | xargs grep -nEA2 '[^rp]error *\(' /dev/null \ - | grep -E '"Warning|"Fatal|"fatal' \ + | xargs $(GREP) -nEA2 '[^rp]error *\(' /dev/null \ + | $(GREP) -E '"Warning|"Fatal|"fatal' \ && { echo '$(ME): use FATAL, WARNING or warning' 1>&2; \ exit 1; } \ || : @@ -423,9 +423,9 @@ sc_error_message_warn_fatal: # Error messages should not start with a capital letter sc_error_message_uppercase: @$(VC_LIST_EXCEPT) \ - | xargs grep -nEA2 '[^rp]error *\(' /dev/null \ - | grep -E '"[A-Z]' \ - | grep -vE '"FATAL|"WARNING|"Java|"C#|PRIuMAX' \ + | xargs $(GREP) -nEA2 '[^rp]error *\(' /dev/null \ + | $(GREP) -E '"[A-Z]' \ + | $(GREP) -vE '"FATAL|"WARNING|"Java|"C#|PRIuMAX' \ && { echo '$(ME): found capitalized error message' 1>&2; \ exit 1; } \ || : @@ -433,8 +433,8 @@ sc_error_message_uppercase: # Error messages should not end with a period sc_error_message_period: @$(VC_LIST_EXCEPT) \ - | xargs grep -nEA2 '[^rp]error *\(' /dev/null \ - | grep -E '[^."]\."' \ + | xargs $(GREP) -nEA2 '[^rp]error *\(' /dev/null \ + | $(GREP) -E '[^."]\."' \ && { echo '$(ME): found error message ending in period' 1>&2; \ exit 1; } \ || : @@ -479,8 +479,8 @@ perl_config_h_first_ = \ # You must include before including any other header file. # This can possibly be via a package-specific header, if given by cfg.mk. sc_require_config_h_first: - @if $(VC_LIST_EXCEPT) | grep '\.c$$' > /dev/null; then \ - files=$$($(VC_LIST_EXCEPT) | grep '\.c$$') && \ + @if $(VC_LIST_EXCEPT) | $(GREP) '\.c$$' > /dev/null; then \ + files=$$($(VC_LIST_EXCEPT) | $(GREP) '\.c$$') && \ perl -n $(perl_config_h_first_) $$files || \ { echo '$(ME): the above files include some other header' \ 'before ' 1>&2; exit 1; } || :; \ @@ -498,10 +498,10 @@ sc_prohibit_HAVE_MBRTOWC: define _sc_header_without_use dummy=; : so we do not need a semicolon before each use; \ h_esc=`echo '[<"]'"$$h"'[">]'|$(SED) 's/\./\\\\./g'`; \ - if $(VC_LIST_EXCEPT) | grep '\.c$$' > /dev/null; then \ - files=$$(grep -l '^# *include '"$$h_esc" \ - $$($(VC_LIST_EXCEPT) | grep '\.c$$')) && \ - grep -LE "$$re" $$files | grep . && \ + if $(VC_LIST_EXCEPT) | $(GREP) '\.c$$' > /dev/null; then \ + files=$$($(GREP) -l '^# *include '"$$h_esc" \ + $$($(VC_LIST_EXCEPT) | $(GREP) '\.c$$')) && \ + $(GREP) -LE "$$re" $$files | $(GREP) . && \ { echo "$(ME): the above files include $$h but don't use it" \ 1>&2; exit 1; } || :; \ else :; \ @@ -755,9 +755,9 @@ Exit_base := $(notdir $(Exit_witness_file)) sc_require_test_exit_idiom: @if test -f $(srcdir)/$(Exit_witness_file); then \ die=0; \ - for i in $$(grep -l -F 'srcdir/$(Exit_base)' \ + for i in $$($(GREP) -l -F 'srcdir/$(Exit_base)' \ $$($(VC_LIST) tests)); do \ - tail -n1 $$i | grep '^Exit .' > /dev/null \ + tail -n1 $$i | $(GREP) '^Exit .' > /dev/null \ && : || { die=1; echo $$i; } \ done; \ test $$die = 1 && \ @@ -862,12 +862,12 @@ endef # Don't define macros that we already get from gnulib header files. sc_prohibit_always-defined_macros: @if test -d $(gnulib_dir); then \ - case $$(echo all: | grep -l -f - Makefile) in Makefile);; *) \ + case $$(echo all: | $(GREP) -l -f - Makefile) in Makefile);; *) \ echo '$(ME): skipping $@: you lack GNU grep' 1>&2; exit 0;; \ esac; \ regex=`$(def_sym_regex)`; export regex; \ $(VC_LIST_EXCEPT) \ - | xargs sh -c 'echo $$regex | grep -E -f - "$$@"' \ + | xargs sh -c 'echo $$regex | $(GREP) -E -f - "$$@"' \ dummy /dev/null \ && { printf '$(ME): define the above' \ ' via some gnulib .h file\n' 1>&2; \ @@ -878,7 +878,7 @@ sc_prohibit_always-defined_macros: # Prohibit checked in backup files. sc_prohibit_backup_files: - @$(VC_LIST) | grep '~$$' && \ + @$(VC_LIST) | $(GREP) '~$$' && \ { echo '$(ME): found version controlled backup file' 1>&2; \ exit 1; } || : @@ -1001,8 +1001,8 @@ ignore_doubled_word_match_RE_ ?= ^$$ sc_prohibit_doubled_word: @$(VC_LIST_EXCEPT) \ | xargs perl -n -0777 $(prohibit_doubled_word_) \ - | grep -vE '$(ignore_doubled_word_match_RE_)' \ - | grep . \ + | $(GREP) -vE '$(ignore_doubled_word_match_RE_)' \ + | $(GREP) . \ && { echo '$(ME): doubled words' 1>&2; exit 1; } \ || : @@ -1030,8 +1030,8 @@ ignore_undesirable_word_sequence_RE_ ?= ^$$ sc_prohibit_undesirable_word_seq: @$(VC_LIST_EXCEPT) \ | xargs perl -n -0777 $(prohibit_undesirable_word_seq_) \ - | grep -vE '$(ignore_undesirable_word_sequence_RE_)' \ - | grep . \ + | $(GREP) -vE '$(ignore_undesirable_word_sequence_RE_)' \ + | $(GREP) . \ && { echo '$(ME): undesirable word sequence' >&2; exit 1; } \ || : @@ -1066,7 +1066,7 @@ sc_prohibit_test_double_equal: # when it contains "ICONV". sc_proper_name_utf8_requires_ICONV: @progs=$$($(VC_LIST_EXCEPT) \ - | xargs grep -l 'proper_name_utf8 ''("'); \ + | xargs $(GREP) -l 'proper_name_utf8 ''("'); \ if test "x$$progs" != x; then \ fail=0; \ for p in $$progs; do \ @@ -1075,7 +1075,7 @@ sc_proper_name_utf8_requires_ICONV: -ne 'exit !(/^LDADD =(.+?[^\\]\n)/ms && $$1 =~ /ICONV/)' \ $$dir/Makefile.am && continue; \ base=$$(basename "$$p" .c); \ - grep "$${base}_LDADD.*ICONV)" $$dir/Makefile.am > /dev/null \ + $(GREP) "$${base}_LDADD.*ICONV)" $$dir/Makefile.am > /dev/null \ || { fail=1; echo 1>&2 "$(ME): $$p uses proper_name_utf8"; }; \ done; \ test $$fail = 1 && \ @@ -1136,12 +1136,12 @@ sc_makefile_at_at_check: -e ' && !/(\w+)\s+=.*\@\1\@$$/' \ -e ''$(_makefile_at_at_check_exceptions) \ -e 'and (print "$$ARGV:$$.: $$_"), $$m=1; END {exit !$$m}' \ - $$($(VC_LIST_EXCEPT) | grep -E '(^|/)(Makefile\.am|[^/]+\.mk)$$') \ + $$($(VC_LIST_EXCEPT) | $(GREP) -E '(^|/)(Makefile\.am|[^/]+\.mk)$$') \ && { echo '$(ME): use $$(...), not @...@' 1>&2; exit 1; } || : news-check: NEWS $(AM_V_GEN)if $(SED) -n $(news-check-lines-spec)p $< \ - | grep -E $(news-check-regexp) >/dev/null; then \ + | $(GREP) -E $(news-check-regexp) >/dev/null; then \ :; \ else \ echo 'NEWS: $$(news-check-regexp) failed to match' 1>&2; \ @@ -1186,11 +1186,11 @@ generated_files ?= $(srcdir)/lib/*.[ch] _gl_translatable_string_re ?= \b(N?_|gettext *)\([^)"]*("|$$) sc_po_check: @if test -f $(po_file); then \ - grep -E -v '^(#|$$)' $(po_file) \ - | grep -v '^src/false\.c$$' | sort > $@-1; \ + $(GREP) -E -v '^(#|$$)' $(po_file) \ + | $(GREP) -v '^src/false\.c$$' | sort > $@-1; \ { $(VC_LIST_EXCEPT); echo $(generated_files); } \ | xargs perl $(perl_translatable_files_list_) \ - | xargs grep -E -l '$(_gl_translatable_string_re)' \ + | xargs $(GREP) -E -l '$(_gl_translatable_string_re)' \ | $(SED) 's|^$(_dot_escaped_srcdir)/||' \ | sort -u > $@-2; \ diff -u -L $(po_file) -L $(po_file) $@-1 $@-2 \ @@ -1256,17 +1256,17 @@ _hv_regex_weak ?= ^ *\. .*/init\.sh" _hv_regex_strong ?= ^ *\. "\$${srcdir=\.}/init\.sh" sc_cross_check_PATH_usage_in_tests: @if test -f $(_hv_file); then \ - grep -l 'VERSION mismatch' $(_hv_file) >/dev/null \ + $(GREP) -l 'VERSION mismatch' $(_hv_file) >/dev/null \ || { echo "$@: skipped: no such file: $(_hv_file)" 1>&2; \ exit 0; }; \ - grep -lE '$(_hv_regex_strong)' $(_hv_file) >/dev/null \ + $(GREP) -lE '$(_hv_regex_strong)' $(_hv_file) >/dev/null \ || { echo "$@: $(_hv_file) lacks conforming use of init.sh" 1>&2; \ exit 1; }; \ - good=$$(grep -E '$(_hv_regex_strong)' $(_hv_file)); \ + good=$$($(GREP) -E '$(_hv_regex_strong)' $(_hv_file)); \ $(VC_LIST_EXCEPT) \ - | xargs grep -lE '$(_hv_regex_weak)' \ - | xargs grep -LFx "$$good" \ - | grep . \ + | xargs $(GREP) -lE '$(_hv_regex_weak)' \ + | xargs $(GREP) -LFx "$$good" \ + | $(GREP) . \ && { printf "$(ME): the above files use" \ " path_prepend_ inconsistently\n" 1>&2; \ exit 1; } \ @@ -1463,7 +1463,7 @@ check: $(gl_public_submodule_commit) ALL_RECURSIVE_TARGETS += alpha beta stable alpha beta stable: $(local-check) writable-files $(submodule-checks) $(AM_V_GEN)test $@ = stable \ - && { echo $(VERSION) | grep -E '^[0-9]+(\.[0-9]+)+$$' \ + && { echo $(VERSION) | $(GREP) -E '^[0-9]+(\.[0-9]+)+$$' \ || { echo "invalid version string: $(VERSION)" 1>&2; exit 1;};}\ || : $(AM_V_at)$(MAKE) vc-diff-check @@ -1561,7 +1561,7 @@ refresh-gnulib-patches: -e 'END{defined $$d and print $$d}' bootstrap.conf); \ test -n "$$t" && gl=$$t; \ fi; \ - for diff in $$(cd $$gl; git ls-files | grep '\.diff$$'); do \ + for diff in $$(cd $$gl; git ls-files | $(GREP) '\.diff$$'); do \ b=$$(printf %s "$$diff"|$(SED) 's/\.diff$$//'); \ VERSION_CONTROL=none \ patch "$(gnulib_dir)/$$b" "$$gl/$$diff" || exit 1; \ @@ -1604,7 +1604,7 @@ update-copyright-env ?= # in the file .x-update-copyright. .PHONY: update-copyright update-copyright: - $(AM_V_GEN)grep -l -w Copyright \ + $(AM_V_GEN)$(GREP) -l -w Copyright \ $$(export VC_LIST_EXCEPT_DEFAULT=COPYING && $(VC_LIST_EXCEPT)) \ | $(update-copyright-env) xargs $(srcdir)/$(_build-aux)/$@ @@ -1618,9 +1618,9 @@ _gl_TS_dir ?= src ALL_RECURSIVE_TARGETS += sc_tight_scope sc_tight_scope: tight-scope.mk @fail=0; \ - if ! grep '^ *export _gl_TS_headers *=' $(srcdir)/cfg.mk \ + if ! $(GREP) '^ *export _gl_TS_headers *=' $(srcdir)/cfg.mk \ > /dev/null \ - && ! grep -w noinst_HEADERS $(srcdir)/$(_gl_TS_dir)/Makefile.am \ + && ! $(GREP) -w noinst_HEADERS $(srcdir)/$(_gl_TS_dir)/Makefile.am \ > /dev/null 2>&1; then \ echo '$(ME): skipping $@'; \ else \ @@ -1692,12 +1692,12 @@ _gl_tight_scope: $(bin_PROGRAMS) hdr=`for f in $(_gl_TS_headers); do \ test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`; \ ( printf '%s\n' '__.*' $(_gl_TS_unmarked_extern_functions); \ - grep -h -A1 '^extern .*[^;]$$' $$src \ - | grep -vE '^(extern |--|#)' | $(SED) 's/ .*//; /^$$/d'; \ + $(GREP) -h -A1 '^extern .*[^;]$$' $$src \ + | $(GREP) -vE '^(extern |--|#)' | $(SED) 's/ .*//; /^$$/d'; \ perl -lne \ '$(_gl_TS_function_match) and print $$1' $$hdr; \ ) | sort -u | $(SED) "$$sed_wrap" > $$t; \ - nm -g $(_gl_TS_obj_files)|$(SED) -n 's/.* T //p'|grep -Ev -f $$t \ + nm -g $(_gl_TS_obj_files)|$(SED) -n 's/.* T //p'|$(GREP) -Ev -f $$t \ && { echo the above functions should have static scope >&2; \ exit 1; } || : ; \ ( printf '%s\n' '__.*' main $(_gl_TS_unmarked_extern_vars); \ @@ -1705,7 +1705,7 @@ _gl_tight_scope: $(bin_PROGRAMS) $$hdr $(_gl_TS_other_headers) \ ) | sort -u | $(SED) "$$sed_wrap" > $$t; \ nm -g $(_gl_TS_obj_files) | $(SED) -n 's/.* [BCDGRS] //p' \ - | sort -u | grep -Ev -f $$t \ + | sort -u | $(GREP) -Ev -f $$t \ && { echo the above variables should have static scope >&2; \ exit 1; } || : # TS-end -- 2.17.2 (Apple Git-113)