summaryrefslogtreecommitdiff
path: root/maintainer/syntax-checks.mk
diff options
context:
space:
mode:
authorMathieu Lirzin <mthl@gnu.org>2017-07-08 20:18:45 +0200
committerMathieu Lirzin <mthl@gnu.org>2017-08-31 11:55:02 +0200
commit574b20e518079db0f91720c0641e4222d9fda84f (patch)
tree68ea05618bf068d336d80aa85a0eed084347e35f /maintainer/syntax-checks.mk
parent99cf7ca5ed35afa9552a3a2429963130700a0fde (diff)
downloadautomake-574b20e518079db0f91720c0641e4222d9fda84f.tar.gz
build: Inline perl prototypes in sources
Prototypes allows us to avoid using the '&foo' invocation form when invoking a subroutine before its definition. Previously those prototypes were generated to prevent them from falling out-of-sync with actual definitions. Now we provide a 'check-perl-protos' lint script to ensure that this is not the case. This has the same benefits as generating prototypes while simplifying the bootstrap/build process. * bin/gen-perl-protos: Remove. * bin/Makefile.inc: Adapt. * bootstrap: Likewise. * bin/aclocal.in: Inline prototypes. * bin/automake.in: Likewise. * maintainer/check-perl-protos: New lint script. * maintainer/syntax-checks.mk (sc_perl_protos): New target. (syntax_check_rules): Add it.
Diffstat (limited to 'maintainer/syntax-checks.mk')
-rw-r--r--maintainer/syntax-checks.mk8
1 files changed, 8 insertions, 0 deletions
diff --git a/maintainer/syntax-checks.mk b/maintainer/syntax-checks.mk
index c8b074008..07a12ab6f 100644
--- a/maintainer/syntax-checks.mk
+++ b/maintainer/syntax-checks.mk
@@ -51,6 +51,7 @@ sc_mkinstalldirs \
sc_pre_normal_post_install_uninstall \
sc_perl_no_undef \
sc_perl_no_split_regex_space \
+sc_perl_protos \
sc_cd_in_backquotes \
sc_cd_relative_dir \
sc_perl_at_uscore_in_scalar_context \
@@ -102,6 +103,13 @@ sc_sanity_gnu_grep:
.PHONY: sc_sanity_gnu_grep
$(syntax_check_rules): sc_sanity_gnu_grep
+# Check that every subroutine in perl scripts has a corresponding
+# prototype
+sc_perl_protos:
+ $(AM_V_GEN)$(srcdir)/maintainer/check-perl-protos \
+ <$(srcdir)/bin/aclocal.in && \
+ $(srcdir)/maintainer/check-perl-protos <$(srcdir)/bin/automake.in
+
# These check avoids accidental configure substitutions in the source.
# There are exactly 8 lines that should be modified from automake.in to
# automake, and 9 lines that should be modified from aclocal.in to