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!
