diff options
author | Stefano Lattarini <stefano.lattarini@gmail.com> | 2012-07-03 11:46:56 +0200 |
---|---|---|
committer | Stefano Lattarini <stefano.lattarini@gmail.com> | 2012-07-03 17:00:25 +0200 |
commit | decd002437a649c617bd2bd4079bf6e603c474e8 (patch) | |
tree | b5b0c859baabb31c24cde99ec9c470604f38fbee /lib/Automake | |
parent | 5fdd743164e2b15a385b19a14108bdacb6c76218 (diff) | |
download | automake-decd002437a649c617bd2bd4079bf6e603c474e8.tar.gz |
[ng] built sources: avoid unconditional recursive make invocation
With this change, the times for a null-build of GNU coreutils (as
averaged from ten builds on an aging Debian system) drops from
~3.8 seconds to ~2.6 seconds.
With this change, the semantic of $(BUILT_SOURCES) support is slightly
altered, in that $(BUILT_SOURCES) will now be built not only before
the "all", "check" or "install" targets, but before *any* target.
We believe that not only this change in semantics is justified by
the enhanced performance, but that the new semantics is actually
better than the old one. So a double win. The new and more complex
implementation is a price worth paying for those improvements.
* lib/am/all-target.am: New implementation of $(BUILT_SOURCES) support,
using more GNU make features (mostly, automatic remake of include
files and automatic restart in the face of rebuilt makefiles). This
new implementation should ensure that $(BUILT_SOURCES) will be built
before before any other target.
* lib/am/check-target.am, lib/am/install.am: Simplify: now there's
no need to explicitly cater for $(BUILT_SOURCES) in the 'check' and
'install' targets.
* t/built-sources-subdir.sh: Adjust and enhance a little.
* t/remake-gnulib-remove-header.sh: Trivial adjustment (relying on the
fact that .PHONY works correctly for GNU make, also when applied to
targets that are existing files).
* t/suffix-hdr.sh: Adjust, to avoid GNU make erroneously remove a
generated header thinking it is an intermediate file.
* t/yacc-deleted-headers.sh: Adjust: we should expect non-existing
$(BUILT_SOURCES) to be rebuilt by *any* make invocation.
* t/yacc-mix-c-cxx.sh: Likewise.
* NG-NEWS (Source Files with Unknown Extensions): Adjust the example
to mirror the change.
(Miscellaneous): Document the new $(BUILT_SOURCES) semantic.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Diffstat (limited to 'lib/Automake')
0 files changed, 0 insertions, 0 deletions