-
Enhancement
-
Resolution: Unresolved
-
P3
-
15
The build tools (small java tools that are run during the build to generate source code, or data, needed in the JDK) have historically been placed in the "make" directory. This maybe made sense long time ago, but does not do so anymore.
Instead, the build tools source code should move the the module that needs them. For instance, compilefontconfig should move to java.desktop.
There are multiple reasons for this:
* Currently we build *all* build tools at once, which mean that we cannot compile java.base until e.g. the compilefontconfig tool is compiled, even though it is not needed.
* If a build tool, e.g. compilefontconfig is modified, all build tools are recompiled, which triggers a rebuild of more or less the entire JDK. This makes development of the build tools unnecessary tedious.
* When the build tools are modified, the group owning the corresponding module is the proper review instance, not the build team. But since they reside under "make", the review mails often include build-dev, but this is mostly noise for us. With this move, the ownership is made clear.
Instead, the build tools source code should move the the module that needs them. For instance, compilefontconfig should move to java.desktop.
There are multiple reasons for this:
* Currently we build *all* build tools at once, which mean that we cannot compile java.base until e.g. the compilefontconfig tool is compiled, even though it is not needed.
* If a build tool, e.g. compilefontconfig is modified, all build tools are recompiled, which triggers a rebuild of more or less the entire JDK. This makes development of the build tools unnecessary tedious.
* When the build tools are modified, the group owning the corresponding module is the proper review instance, not the build team. But since they reside under "make", the review mails often include build-dev, but this is mostly noise for us. With this move, the ownership is made clear.
- relates to
-
JDK-8203821 Improve handling of build tools written in java
- Open
-
JDK-8244044 Refactor phase makefiles to be structured per module
- Resolved