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


Reply via email to