Hello,
This looks like a nice cleanup. A couple of questions and notes.
Init.gmk
40: When would topdir not be set?
56, 59, 188, 215: Please break lines if possible
63: What kind of error messages?
192: Why does MAKEOVERRIDES need to be reset? Is it automatically
propagated to submake and we prefer to use USER_MAKE_VARS instead?
194: Should we have "$(INIT_TARGETS): main-init"
InitSupport.gmk
57: I agree this should be moved somewhere else. We need to split
MakeBase into one file with very basic functions like this. Can be done
later I suppose.
291: Please break line
spec.gmk.in
62: Please break line
/Erik
On 2015-03-26 11:54, Magnus Ihse Bursie wrote:
The process of actually starting to build the proper targets in
Main.gmk is not straightforward. Somewhat similar to how configure
prepares the ground for make, the initial part of the make logic needs
to handle the make process "bootstrapping".
Unfortunately, this logic has been spread out in multiple places, and
not very clear. This makes it fragile and hard to improve.
This patch collects all bootstrapping logic into a new Init.gmk, with
hopefully a clear flow showing how the system is initialized.
It also improves handling of outdated spec files by a new CHECK_CONF
control variable, along with various other small fixes to issues
typically related to make bootstrapping. For instance, bash completion
support for make targets is sped up considerably. A few slightly
unrelated spring cleaning fixes are also included, for good measure.
One of the ideas behind this patch is that the top-level Makefile
should be a thin wrapper, so all actual build logic is in the make
directory. In the end, it turned out to be best to have some sanity
checking on make itself in that file.
Going forward, I'd like to see an even better way of gathering the
real make targets and modules, rather than polling Main.gmk. But now
at least we're prepared for such a step.
Bug: https://bugs.openjdk.java.net/browse/JDK-8076060
WebRev:
http://cr.openjdk.java.net/~ihse/JDK-8076060-improve-make-bootstrap/webrev.01
/Magnus