[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Automake-NG] [PATCH] [ng] built sources: avoid unconditional recurs
From: |
Akim Demaille |
Subject: |
Re: [Automake-NG] [PATCH] [ng] built sources: avoid unconditional recursive make invocation |
Date: |
Wed, 4 Jul 2012 08:53:02 +0200 |
Le 3 juil. 2012 à 17:01, Stefano Lattarini a écrit :
> 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.
I know you mean very early, but "before before" might not be needed :)
> +$(foreach x,$(am.built-early),$(eval -include .am/built-sources/$(x)))
We really need to hit the file-system? There no way to have
PHONY targets first? About Makefile. If not, then maybe
it would be a nice feature request for GNU Make.
> +.am/built-sources/%: | %
Wow, order-only pattern rules...
nice job!