November 2007

You can now grab your own IcePick and give it a whirl:

The website is:

where you can also grab tarballs. If you have Mercurial, all you have to do is:

hg clone

and let me know how you get on :)


Thanks to Mark Wielaard, this has also been available on the IcedTea machine since last week:

hg clone

There is also a wiki page:

Happy hacking!

This afternoon I experimented with getting my early build stuff for the Java language tools to work with the langtools subset that Sun has created for the recent OpenJDK builds. This can be checked out from the experimental Mercurial repositories:

hg clone

You then point this IcePick stuff at that directory:

./configure –prefix=$HOME/build/fake_jdk –with-glibj-zip=$HOME/build/fake_jdk/jre/lib/rt.jar –with-langtools-src-dir=$HOME/sources/langtools

(The bootclasspath stuff, –with-glibj-zip, can probably go).

checking for ecj… /home/andrew/bin/ecj
checking for javac… /etc/java-config-2/current-system-vm/bin/javac
checking langtools sources… /home/andrew/sources/langtools
checking whether to enable maintainer-specific portions of Makefiles… no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating tools/apt
config.status: creating tools/javac
config.status: creating tools/javah
config.status: creating tools/javadoc
config.status: executing apt commands
config.status: executing javac commands
config.status: executing javah commands
config.status: executing javadoc commands

A make (in this case using ecj) will build the code, and then make install:

make install-am
make[1]: Entering directory `/home/andrew/projects/icepick’
make[2]: Entering directory `/home/andrew/projects/icepick’
test -z “/home/andrew/build/fake_jdk/bin” || /bin/mkdir -p “/home/andrew/build/fake_jdk/bin”
test -z “/home/andrew/build/fake_jdk/bin” || /bin/mkdir -p “/home/andrew/build/fake_jdk/bin”
/usr/bin/install -c ‘tools/apt’ ‘/home/andrew/build/fake_jdk/bin/apt’
/usr/bin/install -c ‘tools/javac’ ‘/home/andrew/build/fake_jdk/bin/javac’
/usr/bin/install -c ‘tools/javah’ ‘/home/andrew/build/fake_jdk/bin/javah’
/usr/bin/install -c ‘tools/javadoc’ ‘/home/andrew/build/fake_jdk/bin/javadoc’
test -z “/home/andrew/build/fake_jdk/lib” || /bin/mkdir -p “/home/andrew/build/fake_jdk/lib”
/usr/bin/install -c -m 644 ‘tools.jar’ ‘/home/andrew/build/fake_jdk/lib/tools.jar’

will install the jar file and some wrapper scripts to run javac, javadoc, javah and apt (I think javap is in the sources, so I need to add that too).
There’s still a lot of work to do to clean up the rather messy hacked together build and I need to integrate aot compiling from Dalibor’s Google Summer of Code work, but it’s looking promising.
I’ll try and make this available somewhere later tonight if anyone wants to play with it.