[kaffe] [PATCH] Classpath-AWT merge

Dalibor Topic robilad@kaffe.org
Wed May 26 17:47:02 2004


Hi,

this should make Kaffe useable for hacking on Classpath's AWT and swing 
implementations.

following the footsteps of Jim Huang, I've created a patch that merges 
the Classpath AWT into kaffe. It's online at 
http://www.kaffe.org/~robilad/classpath-awt-merge.diff.bz2 . You'll need 
to apply the patch with -p 1 if you're applying it from inside kaffe's 
top source directory.

You'll also need to put 
http://www.kaffe.org/~robilad/Klasses.jar.bootstrap in your 
libraries/javalib for generating all the nice new header files for gtk 
peers.

You'll need a few things for classpath's AWT: a recent gtk installation, 
libart, cairo, pango, ... the latter, the better. For Kaffe's AWT you'll 
need Xlib and Qt (2/3/Embedded). You'll need developer's packages of 
these, of course, for the headers (and pkg-config stuff) ;) chances are 
that the '--without-*awt' options don't work yet, so please make sure 
you've got all three(X, Qt, Gtk) installed for the build. This is a work 
in progress, the final checkin will be better tested, and behave nicely, 
and hopefully be synced up with the gcj gui branch :)

Since Classpath's AWT only works with pthreads, you'll need to pass 
--with-threads=unix-pthreads to configure script.

so, for example on debian unstable, once you've pulled your 
libgtk2.0-dev, libcairo1-dev, libart-dev, libqt3-dev, and so on, you 
should be able to build and install kaffe with the 3 AWT implementations 
with a simple

../kaffe/configure --prefix=/tmp/kaffe-cp-awt --with-qtdir=/path/to/qt 
--with-threads=unix-pthreads && make && make install

If you install jikes, it should build the class libraries a little faster ;)

You should have /tmp/kaffe-cp-awt/bin/kaffe, which runs with the 
classpath AWT, kaffex with the Xlib AWT and kaffeqt with the Qt AWT.

If you've got a successful build, you could try out the Widgets demo, 
and end up with something like 
http://www.kaffe.org/~robilad/kaffe_awt_implementations.png

I'm using a slightly patched (for compilation problems) version of Steve 
Augart's portable-native-sync patch 5, afaik. He's up to version 7, 
meanwhile. thanks to steve for making sure classpath's awt starts 
becoming useable on jikesrvm and kaffe, too. Many thanks to Jim Huang 
for actually getting there, and showing that it's possible, and much 
easier than I though.

Finally, thanks to James Simmons for figting his way through several 
'brown paper bag' patch versions on #kaffe!

cheers,
dalibor topic