RFR: 7130909 Add a more general mechanism for customizing the build logic (original) (raw)

David Holmes david.holmes at oracle.com
Fri Jul 20 08:12:42 UTC 2012


This continues from a preliminary discussion on the build-dev list way back in January:

http://mail.openjdk.java.net/pipermail/build-dev/2012-January/005383.html

but now includes changes for the build-infra build, which now supports the SE-Embedded builds

This has to be sent to three mailing lists:

The plan is to push this through the build-infra repositories to keep everything together.

The intent is to move all of the SE-Embedded related build files (and eventually other "closed" components) out of the OpenJDK repositories. The mechanism for doing this is to allow the user to set a CUSTOM_MAKE_DIR and then have specific makefiles use the -include mechanism to then include the custom file if it exists. In its most general form every makefile could include a custom counterpart - but naturally we do not want to go there. So at present the only hooks are around the places where the SE-Embedded specialization occurred.

The -include mechanism is used so that we don't need to a bunch of existence tests. If a particular file is not found then make will ignore that (aside: we should probably fix the makefiles so that make does not try to create missing makefiles!) There is no expectation that you have to provide a custom file for every hook that exists - you only provide what you need.

On the build-infra side we allow for the CUSTOM_MAKE_DIR and add support for the CUSTOM_CONFIG_DIR (which generalizes the "closed" config hook that was recently added).

There are thus two webrevs. One for the jdk repo:

http://cr.openjdk.java.net/~dholmes/7130909/webrev.jdk/

make/* is legacy build changes makefiles/* is new build-infra changes

the other in the root repo:

http://cr.openjdk.java.net/~dholmes/7130909/webrev.root/

which contains the build-infra changes to the autoconf stuff:

Note that because of the way this all works you must run autogen if you want to specify a custom config dir for the custom-hook.m4.

But note that you don't need to have a custom config just to use CUSTOM_MAKE_DIR!

Thanks, David



More information about the build-dev mailing list