RFR: JDK-8217730 Split up MakeBase.gmk
Magnus Ihse Bursie
magnus.ihse.bursie at oracle.com
Thu Jan 24 14:24:59 UTC 2019
The file MakeBase.gmk, which is included by virtually all other make
files in the build system, has become gradually larger and larger. It is
now one of the longest files in the build system, with little to no
internal structure.
I propose to split it in four parts:
* Utils.gmk -- here all the simple make functions go; stuff that
basically do not interact with the rest of the world, but just provides
"high-level" macros to make.
* CopyFiles.gmk -- here the SetupCopyFiles function goes, similar to how
we treat all other SetupFoo functions.
* MakeIO.gmk -- here reading and writing to files from make goes. This
is mostly due to the long expression of ListPathsSafely on GNU Make
prior to 4.0.
*MakeBase.gmk -- functions now remaining here belong to either of these
groups:
-- it is some kind of core functionality provided by the build system,
like ExecuteWithLog or NamedParamsMacroTemplate.
-- it interacts (messily) with the environment
-- it does something else that is tricky, or just "misc"
It is of course possible to break down the remaining MakeBase.gmk even
further, but it's so much more manageable now, and there are no clear
ways of splitting it further without getting into very small pieces
(like logging), so I think I'll stop here, for now.
To retain backwards compatibility with files that include MakeBase.gmk
and expect all functionality, MakeBase.gmk includes the new files. It's
a future question if we should keep it that way, or put the requirement
of those includes on the files needing the functionality.
Bug: https://bugs.openjdk.java.net/browse/JDK-8217730
WebRev:
http://cr.openjdk.java.net/~ihse/JDK-8217730-split-up-MakeBase/webrev.01
/Magnus
More information about the build-dev
mailing list