Removal of the old build system, partial and preliminary review (part 2)
Magnus Ihse Bursie
magnus.ihse.bursie at oracle.com
Fri Nov 1 13:43:55 UTC 2013
Here is part 2 of the old build system removal.
This review is based against the previous part, i.e. where the lion's
share of the old make files had been removed.
What remained was a handful or two of different types of files,
scattered all around. I have checked each file and/or directory
individually, and if it was not used, I removed it. (This was the case
usually because the prior attempt was too conservative.)
If the files were only used by the closed parts of the source code, it
was moved to a suitable place in the closed repos. (A separate review
for the closed part is coming up shortly).
If it was actually used by the new build system, and it was source code
that should be compiled, I moved it to make/src/classes or
make/src/native, correspondingly.
If it was actually used by the new build system, and it was a data file
that was used as input for a build tool, or some other part of the build
process, I created a descriptive directory in make/data (e.g. classlist)
and moved it there.
Finally, a few files belonged to utilities that is not used during the
build. The comments on the utilities indicate that they are run manually
and sporadically, such as CommentChecker or the tool to create the
reorder files for native libs. Such tools will typically bit rot between
uses, and while no-one has explicitely mentioned that they still use
them, I did not want to remove them. I tested some of them, like the
reorder tool, and it was indeed broken. I moved these toos into
make/non-build-utils. Going forward, I believe these tools should
probably find a better location and be used automatically so that they
are tested, or they should be removed.
I did these changes one at a time, committing to a local sandbox after
every individual step. Here is a (somewhat filtered) list of the commit
comments. I hope they are self-descriptive enough to explain the changes
I've made.
* Remove make/common. (Move to closed sources.)
* Remove PatchList.solaris (makefiles copy was unused) and move to
closed sources.
* Remove make/tools/GenerateCharacter, save what's needed in
make/data/characterdata.
* Move contents of make/tools/UnicodeData/ to make/data/unicodedata.
* Move files actually used from make/tools/CharsetMapping to
make/data/charsetmapping.
* Move contents of make/tools/dtdbuilder/dtds to make/data/dtdbuilder,
and remove rest of make/tools/dtdbuilder.
* GendataTimeZone is not used anymore.
* Delete make/sun/javazic, and move remaining useful data to
make/data/tzdata.
* Move SwingBeanInfo.template, beaninfo/images/*.gif and source code
(which is only copied, not compiled) from make/tools/swing-beans to
make/data/swingbeaninfo.
* Move make/javax/swing/beaninfo/manifest to
make/data/swingbeaninfo/manifest.mf.
* Move make/tools/manifest.mf to make/data/mainmanifest/manifest.mf.
* Move make/javax/crypto/policy/ to make/data/cryptopolicy.
* Move make/tools/add_gnu_debuglink and
make/tools/fix_empty_sec_hdr_flags to make/src/native.
* Move java source code from make/tools/src to make/src/classes.
* Move refs.allowed to data/checkdeps. (That was the last file in
make/tools/src).
* Moving DocBeanInfo.java, GenDocletBeanInfo.java and
GenSwingBeanInfo.java into make/src/classes/build/tools/swingbeaninfo.
(This also means moving them to package build.tools.swingbeaninfo.)
* Move make/tools/sharing/classlist.* to make/data/classlist.
* Move the remaining tools, which are not used in the build process, to
non-build-utils.
* Move java utilities that are not used in the build from make/src to
make/non-build-utils/src.
* Prepare merging between makefiles and make by moving files in
makefiles into corresponding positions. This means jpda/jdwp/jdwp.spec
moved to data/jdwp/jdwp.spec, and sun/*/ToBin.java moved to
src/classes/build/tools/icondata/*.
And here is the WebRev:
http://cr.openjdk.java.net/~ihse/remove-old-build-part-2/webrev.01
/Magnus
More information about the build-dev
mailing list