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

Reply via email to