diff options
author | Mathieu Lirzin <mthl@gnu.org> | 2017-07-08 20:18:45 +0200 |
---|---|---|
committer | Mathieu Lirzin <mthl@gnu.org> | 2017-08-31 11:55:02 +0200 |
commit | 574b20e518079db0f91720c0641e4222d9fda84f (patch) | |
tree | 68ea05618bf068d336d80aa85a0eed084347e35f /maintainer/syntax-checks.mk | |
parent | 99cf7ca5ed35afa9552a3a2429963130700a0fde (diff) | |
download | automake-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.mk | 8 |
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 |