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