The aim of the IcePick project is to allow the language tools (
apt) from the OpenJDK project to be built separately using any 1.5 compliant Java compiler. This is primarily motivated by a desire to allow these tools to be used with virtual machines that make use of the GNU Classpath library rather than simply as part of the larger IcedTea or OpenJDK distribution with the HotSpot or CACAO virtual machines. The advantages of using this toolset as opposed to existing tools distributed with Classpath-based solutions are:
- A 1.5 capable Javadoc generator (
gjdocstill needs support for the new constructs)
- Provision of the
apttool for which there is no other Free software solution. This tool is needed to build the JikesRVM.
- More heavily tested implementations of
javapthan those provided by ecj and the GNU Classpath tools
Unlike IcedTea, IcePick's only dependency is a 1.5 capable compiler which can be provided by
gcj which uses
ecj or an existing copy of
javac. Because the OpenJDK class libraries and HotSpot are not being built, their requisite dependencies (see BuildRequirements) are no longer needed. As a result, IcePick is buildable on a wider range of systems including those not yet supported by IcedTea. This includes those architectures other than x86, x86_64, ppc and ppc64 (the latter two having experimental support on IcedTea thanks to Gary Benson) and systems which can't meet the arduous build requirements of IcedTea/OpenJDK. It also provides a solution for users who want the OpenJDK toolset but don't want to build the entire distribution.
- Download IcePick from its Mercurial repository either using hg clone http://icedtea.classpath.org/hg/icepick or by grabbing a tarball
- Get hold of a copy of the langtools from the OpenJDK. You'll find this in an existing copy of OpenJDK/IcedTea or from its Mercurial repository via hg clone http://hg.openjdk.java.net/jdk7/jdk7/langtools/ or a tarball
- Build as follows
./autogen.sh ./configure --with-langtools-src-dir=<directory where langtools was extracted> make
The build produces a C-based wrapper for each of the tools.
make install will install them in the prefix passed to configure (
/usr/local/icepick by default)
- Wrappers using JNI (started in
- Ahead-of-Time compiling using GCJ (based on Dalibor Topic's Summer of Code work)
My deepest thanks to all those who have worked on the GNU Classpath (and related VMs), OpenJDK and IcedTea projects for making this possible.