diff options
author | Akim Demaille <demaille@gostai.com> | 2008-09-23 16:05:52 +0200 |
---|---|---|
committer | Akim Demaille <demaille@gostai.com> | 2008-11-15 11:06:45 +0100 |
commit | 2ead32e61cc1b287997dad7d2ceef0ace10d201c (patch) | |
tree | 2844c685c25d311d744dceb1294638bf56e8661e | |
parent | 2df9ec37748b216c64d947d2d47ea15f4cab1cc1 (diff) | |
download | bison-2ead32e61cc1b287997dad7d2ceef0ace10d201c.tar.gz |
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.
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | maint.mk | 29 | ||||
-rw-r--r-- | src/local.mk | 34 |
3 files changed, 38 insertions, 36 deletions
@@ -1,5 +1,16 @@ 2008-11-15 Akim Demaille <demaille@gostai.com> + 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 <demaille@gostai.com> + Regen. * src/parse-gram.h, src/parse-gram.h: Regen. @@ -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 |