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/

Reply via email to