RFR: JDK-8069064 Various improvements and fixes in build system

Volker Simonis volker.simonis at gmail.com
Thu Jan 15 17:33:48 UTC 2015

Hi Magnus,

I've only had a quick look at your changes but I have a question.

When looking at the "make help" I think the relationship between
"repo", "target" and "module" is a little unclear.

As far as I understand a "target" is an artefact which can be named
and build by "make".
A "repo" is a collection of sources which is defined by our version
control system.
A "module" is a logical part of the resulting build output.

All these three are orthogonal (i.e. a "target" can build many
"modules" or just a part of a module, a "repo" can contain several
modules or just the part of a module, etc.)

I think that the division of the OpenJDK source into different repos
is unfortunate and somehow arbitrary. So maybe we should try to avoid
this term when speaking about make targets and modules.

I would also wish there was a dynamically created list of buildable
modules so we could do something like "make modules" to get this list.
I don't know if this is easily possible, it's just an idea.

Also the line "make [default]         # Compile all modules in
langtools, hotspot, jdk, jaxws,.." seems a little confusing to me. It
speaks about modules but lists the current repos. So what are the
available moduls? What does "[default]" stands for?

I like the two "clean" targets:

make clean-<module>
make clean-<module>-<phase>

they are clear and concise (besides the fact that there's no module list).

I'd wish to have the same syntax for the build targets (instead of
make [default]). Something like:

make <module>
make <module>-<phase>
make jdk-image                      Creates a jre image containing
these modules (...) and docs
make jre-image                       Creates a jre image containing
these modules (...) and docs
make images                          Creates both, the jre and the jdk image

I'm aware that this mail degenerated more into a wish-list than a
review :) Maybe you find it useful nevertheless.


On Thu, Jan 15, 2015 at 4:23 PM, Magnus Ihse Bursie
<magnus.ihse.bursie at oracle.com> wrote:
>  This fix is the result of preparatory work in the build-infra project. It
> includes:
> * Remove duplicate detection of comm on Windows
> * compare.sh enhancements and bug fixes
> * Do not fail in SetupFoo macros on empty arguments
> * Minor JavaCompilation enhancements
> * Makefile warns for unknown control variables
> * Improved "make help"
> Bug: https://bugs.openjdk.java.net/browse/JDK-8069064
> WebRev:
> http://cr.openjdk.java.net/~ihse/JDK-8069064-fixes-from-build-infra/webrev.01
> /Magnus

More information about the build-dev mailing list