RFR: JDK-8076060 Improve make bootstrap process

Erik Joelsson erik.joelsson at oracle.com
Thu Mar 26 14:21:22 UTC 2015


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
>




More information about the build-dev mailing list