From 37989d195a846f23e2fea9f4f7bd5bab91f43001 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Tue, 27 Apr 2004 14:57:48 +0000 Subject: . --- src/Makefile.in | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/Makefile.in') diff --git a/src/Makefile.in b/src/Makefile.in index 9eaf95a42..0f2048664 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -1716,6 +1716,25 @@ check-misc: done | $(ASSORT) -u ) > $@-t chmod a-w $@-t mv $@-t $@ + +# 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. +sc_src_functions_have_static_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; \ + nm -e *.$(OBJEXT) \ + | sed -n 's/.* T //p' \ + | grep -Ev -f $$t && \ + { echo 'the above functions should have static scope' 1>&2; \ + exit 1; } || : # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: -- cgit v1.2.3-54-g00ecf