From 2ead32e61cc1b287997dad7d2ceef0ace10d201c Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Tue, 23 Sep 2008 16:05:52 +0200 Subject: [PATCH] Move sc_tight_scope into maint.mk. It does not work, and I don't know how it was supposed to work: it seems to be looking for sources in the build tree. I just moved it at a better place, fixing it is still required. * src/local.mk (echo): Remove. (sc_tight_scope): Move to... * maint.mk: here. --- ChangeLog | 11 +++++++++++ maint.mk | 29 +++++++++++++++++++++++++++-- src/local.mk | 34 ---------------------------------- 3 files changed, 38 insertions(+), 36 deletions(-) diff --git a/ChangeLog b/ChangeLog index edb5cf66..e3ca023d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2008-11-15 Akim Demaille + + Move sc_tight_scope into maint.mk. + It does not work, and I don't know how it was supposed to work: it seems + to be looking for sources in the build tree. I just moved it at a better + place, fixing it is still required. + + * src/local.mk (echo): Remove. + (sc_tight_scope): Move to... + * maint.mk: here. + 2008-11-15 Akim Demaille Regen. diff --git a/maint.mk b/maint.mk index 93d6b6aa..b83e1dce 100644 --- a/maint.mk +++ b/maint.mk @@ -404,8 +404,33 @@ sc_the_the: { echo '$(ME): found use of "the ''the";' 1>&2; \ exit 1; } || : -#sc_tight_scope: -# $(MAKE) -C src $@ +# Most functions in src/*.c should have static scope. +# Any that don't must be marked with `extern', but `main' +# and `usage' are exceptions. They're always extern, but +# don't need to be marked. +# +# The second nm|grep checks for file-scope variables with `extern' scope. +sc_tight_scope: $(all_programs) + @t=exceptions-$$$$; \ + trap 's=$$?; rm -f $$t; exit $$s' 0 1 2 13 15; \ + ( printf '^main$$\n^usage$$\n'; \ + grep -h -A1 '^extern .*[^;]$$' $(SOURCES) \ + | grep -vE '^(extern |--)' |sed 's/^/^/;s/ .*/$$/' ) > $$t; \ + if nm -e *.$(OBJEXT) \ + | sed -n 's/.* T //p' \ + | grep -Ev -f $$t; then \ + echo 'the above functions should have static scope' 1>&2; \ + exit 1; \ + fi; \ + ( printf '^program_name$$\n'; \ + sed -n 's/^extern .*[* ]\([a-zA-Z_][a-zA-Z_0-9]*\);$$/^\1$$/p' \ + $$(ls $(SOURCES) | grep '\.h$$') /dev/null) > $$t; \ + if nm -e *.$(OBJEXT) \ + | sed -n 's/.* [BD] //p' \ + | grep -Ev -f $$t; then \ + echo 'the above variables should have static scope' 1>&2; \ + exit 1; \ + fi sc_trailing_blank: @grep -n '[ ]$$' $$($(VC_LIST_EXCEPT)) && \ diff --git a/src/local.mk b/src/local.mk index d54d5286..29c19c16 100644 --- a/src/local.mk +++ b/src/local.mk @@ -118,37 +118,3 @@ src/yacc: echo "exec '$(bindir)/bison' -y "'"$$@"' >>$@.tmp chmod a+x $@.tmp mv $@.tmp $@ - -echo: - echo $(src_bison_SOURCES) $(noinst_HEADERS) - -# The following rule is not designed to be portable, -# and relies on tools that not everyone has. - -# Most functions in src/*.c should have static scope. -# Any that don't must be marked with `extern', but `main' -# and `usage' are exceptions. They're always extern, but -# don't need to be marked. -# -# The second nm|grep checks for file-scope variables with `extern' scope. -sc_tight_scope: $(all_programs) - @t=exceptions-$$$$; \ - trap 's=$$?; rm -f $$t; exit $$s' 0 1 2 13 15; \ - ( printf '^main$$\n^usage$$\n'; \ - grep -h -A1 '^extern .*[^;]$$' $(SOURCES) \ - | grep -vE '^(extern |--)' |sed 's/^/^/;s/ .*/$$/' ) > $$t; \ - if nm -e *.$(OBJEXT) \ - | sed -n 's/.* T //p' \ - | grep -Ev -f $$t; then \ - echo 'the above functions should have static scope' 1>&2; \ - exit 1; \ - fi; \ - ( printf '^program_name$$\n'; \ - sed -n 's/^extern .*[* ]\([a-zA-Z_][a-zA-Z_0-9]*\);$$/^\1$$/p' \ - $$(ls $(SOURCES) | grep '\.h$$') /dev/null) > $$t; \ - if nm -e *.$(OBJEXT) \ - | sed -n 's/.* [BD] //p' \ - | grep -Ev -f $$t; then \ - echo 'the above variables should have static scope' 1>&2; \ - exit 1; \ - fi -- 2.45.2