Merging in Classpath and PocketLinux AWT (Was Re: [kaffe] CVS kaffe (dalibor): Implemented -Xbooclasspath options)

jsimmons at jsimmons at
Wed May 26 15:13:03 PDT 2004

> This should make the implementation of the ideas [1] for further AWT 
> merges quite straight forward. The goal is to have the AWT 
> implementation selectable at compile and/or runtime. Here's my plan:
> 1) move AWT files in current libraries/javalib into their own 
> subdirectory, like libraries/javalib/awt-implementations/kaffe/.
> 2) Build it separately from the rest of class library as kaffe-awt.jar.
> 3) make sure it gets picked up on the bootclasspath by default.
> 4) merge in Classpath's AWT and Swing into the libraries/javalib as the 
> 'normal' AWT. The reason for that is that Classpath implements more 
> up-to-date AWT APIs than Kaffe's AWT does. By making Classpath's AWT the 
> 'default' API, we can allow more programs to be built against kaffe. 
> That doesn't necessarily mean that Classpath's AWT becomes the 'default' 
> AWT right now. But it means that we can follow GNU Classpath's rapid 
> developement in this area, and have very nice things like the portable 
> AWT-over-frambuffers implementation from Odonata[2] running on kaffe.
> 5) Add an option to pick up the desired AWT on the command line. 
> -with-awt=kaffe would let you run kaffe's AWT, --with-awt=classpath 
> would let you run classpath's AWT.
> 6) Merge in Pocketlinux AWT in its own directory. (Merge in Rudolph. 
> Merge in DirectFB AWT. Or any other GPL-comaptible AWT toolkit ;)
> 7) Add pocketlinux option.
> 8) Eventualy, add a --with-awt-backend option to kaffe binary to pick 
> the native AWT backend for Kaffe and Pocketlinux AWT implementations.
> That's my plan for the next couple of days. If Jim Pick agrees, we may 
> be able to put it in into 1.1.5, even, if it turns out to work well.
> There is one draw-back: if you're using Kaffe's AWT in an embedded 
> system, you'll have to work around Classpath's AWT being compiled in by 
> default. You should be able to do that by removing the awt.files file 
> from the default profile, though, or by defining your own class libray 
> profile withuot AWT and adding the separate kaffe-awt.jar.

Yipes. That is alot of work. The approach I have been doing is to create a
kaffe peer working with Classpath. Its alot of work which is not complete. 
I can send you what I have. 

More information about the kaffe mailing list