Ok, I tried building the latest Classpath from scratch myself using the
latest build system. It's amazingly easy and worked very well with only
a couple hiccups along the way. Kudos to Brian Jones for his work recently
to make all this happen. Here's a list of the things I had to do beyond
syncing up with CVS to compile:
-- Grabbed Jikes 1.10. My last version was at 0.43 so I doubt it would
work.
-- Had to get libart. automake bombed without it. This acutally
proved to be pretty complicated. First I used google to find the
libart homepage (first hit, wow is that search engine good). Then
I discover the code exists only in Gnome's CVS archives. Lots of
groveling to find the CVS info from Gnome. (It's somewhere on their
developer site). Then I grabbed it and had to go through the whole
autoheader;aclocal;automake;autoconf stuff to build, but had no
errors. We should probably include this in our archive, or else
create a convenient tarball for others if we are going to make
compiling Classpath dependent on it.
-- Needed to upgrade GTK+ to at least 1.2.4. I got the latest stable
1.2.6 + upgraded glib to 1.2.6 as well just to be safe. I was previously
on GTK+ 1.2.0. Sigh
-- Needed to mkdir vm/current and include, run autoheader without errors.
-- Oops, as it turns out, we are supposed to symlink to vm/current
during the build process. I deleted the dir and hand crancked the link.
-- I got messages about missing java.dep and headers.dep when I first ran
make, but this didn't appear to cause any problems.
-- Problems compiling. It turned out I had a couple unchecked in AWT
files that need to be added to standard.omit. I did so.
Just wanted to insert a comment that Jikes is unbelievably fast.
-- The native stuff bombed on missing dependencies. I've seen this one
enough. I had to delete the old .deps directories. What is the command
to clean those out? "make clean" doesn't do it and I tried a few
others (veryclean, reallyclean, depclean), but nothing nuked them or
automagically updated them.
-- Two compile errors in the GTK peers. These are bugs that need to be
fixed. The error text is below:
/bin/sh ../../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../../include
-I/usr/local/japhar/include -I/usr/local/japhar/include/japhar
-I/usr/local/nspr/include -I/usr/X11R6/include -I/usr/local/lib/glib/include
-I/usr/local/include -I/usr/local/include -I../../include -g -O2
-Wall -c gtkimagepainter.c
gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I/usr/local/japhar/include
-I/usr/local/japhar/include/japhar -I/usr/local/nspr/include -I/usr/X11R6/include
-I/usr/local/lib/glib/include -I/usr/local/include -I/usr/local/include
-I../../include -g -O2 -Wall -Wp,-MD,.deps/gtkimagepainter.pp -c -fPIC -DPIC
gtkimagepainter.c -o gtkimagepainter.lo
gtkimagepainter.c:13: conflicting types for
`Java_gnu_java_awt_peer_gtk_GtkImagePainter_drawPixels'
gnu_java_awt_peer_gtk_GtkImagePainter.h:16: previous declaration of
`Java_gnu_java_awt_peer_gtk_GtkImagePainter_drawPixels'
gtkimagepainter.c: In function `Java_gnu_java_awt_peer_gtk_GtkImagePainter_drawPixels':
gtkimagepainter.c:80: warning: unused variable `i'
make: *** [gtkimagepainter.lo] Error 1
/bin/sh ../../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../../include
-I/usr/local/japhar/include -I/usr/local/japhar/include/japhar
-I/usr/local/nspr/include -I/usr/X11R6/include -I/usr/local/lib/glib/include
-I/usr/local/include -I/usr/local/include -I../../include -g -O2
-Wall -c gtktextareapeer.c
gcc -DHAVE_CONFIG_H -I. -I. -I../../include -I/usr/local/japhar/include
-I/usr/local/japhar/include/japhar -I/usr/local/nspr/include -I/usr/X11R6/include
-I/usr/local/lib/glib/include -I/usr/local/include -I/usr/local/include
-I../../include -g -O2 -Wall -Wp,-MD,.deps/gtktextareapeer.pp -c -fPIC -DPIC
gtktextareapeer.c -o gtktextareapeer.lo
gtktextareapeer.c:104: conflicting types for
`Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkTextGetSize'
gnu_java_awt_peer_gtk_GtkTextAreaPeer.h:24: previous declaration of
`Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkTextGetSize'
make: *** [gtktextareapeer.lo] Error 1
make: Target `all' not remade because of errors.
I hacked around this by editing the generated header files to match
the .c file method signatures.
For the record, my configure command was:
./configure --with-japhar --with-java=/usr/local/jdk1.1.5/bin/java \
--with-javah=/usr/local/jdk1.1.5/bin/javah --with-jikes \
--enable-maintainer-mode --with-classlib=/usr/local/jdk1.1.5/lib/classes.zip
Now I'm off to see what happens when I type "make install" :-)
--
Aaron M. Renn ([EMAIL PROTECTED]) http://www.urbanophile.com/arenn/