Build Infrastructure Project
This Project is sponsored by the Build Group.
The primary goals of this project is a complete rewrite of the OpenJDK makefiles so that we:
- improve build performance significantly
- normalize the makefiles and share common build logic
- provide correct build target dependency information so that 'make -j N' will work in all cases
- significantly reduce the use of nested makes
- allow for correct and reliable incremental builds
- accurately document the build dependencies and allow for easy and simple installs to local disks of those dependencies
- allow for easier cross compile builds and 32bit builds on 64bit systems
Repositories
The repositories for this work can be obtained with:
- hg clone http://hg.openjdk.java.net/build-infra/jdk7 build-infra
- cd build-infra
- sh ./get_source.sh
Community
- Mailing list
- Bloggers
Basic Build Rules (DRAFT)
There are some very basic build rules we would like to set down:
- All generated files need to be kept isolated from the files maintained or managed by the source control system.
- The default build process should be to build the product and nothing else, in one form, e.g. a product, debug, or fastdebug version.
- The .hgignore file in each repository must exist and should: include ^build/, ^dist/ and optionally any nbproject/private directories. It should NEVER include anything in the src/ or test/ or any managed directory area of a repository.
- Directory names should never contain blanks or non-printing characters
- Generated source or binary files should NEVER be added to the repository (that includes javah output)
- Files not needed for typical building or testing of the repository should not be added to the repository.
- All build dependencies must be specified for all targets.
- Where necessary, and when re-generating targets from rules, great care should be taken to avoid updating file timestamps when the target's actual results have not changed.