RFR: 7130909 Add a more general mechanism for customizing the build logic

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:
- build-dev for legacy build
- build-infra for new build
- core-libs as a heads up of what is coming

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:
- add support for --with-custom-make-dir as a configure flag.
- modified the "closed hook" mechanism to
  - rename closed hook to custom hook
  - allow setting CUSTOM_CONFIG_DIR at autogen time and configure time, 
to point to alternate location to find the custom-hook.m4 file

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 core-libs-dev mailing list