Installing GNU Classpath - Last updated: December 23, 2002

First, this is a development release only! Unless you are interested in
active development and debugging, or just like running random alpha code,
this release is probably not for you. Please see the README file for a
list of VMs that work with GNU Classpath.

Note that if you are building from a non-released (CVS) version of GNU
classpath, installation instructions are found in the HACKING file.

------------------------------------------------------------------
Suggested Software
------------------------------------------------------------------
	GNU make ("gmake") is required for building Classpath.

	For any build environment involving native libraries, these 
	new versions of autoconf, automake, and libtool are required
        if changes are made that require rebuilding configure, Makefile.in,
        aclocal.m4, or config.h.in.

        - GNU autoconf 2.59
        - GNU automake 1.7
        - GNU libtool 1.4.2

	For building the Java bytecode (.class files), one of these
	compilers are required.  You can select which compiler using
	--with-jikes, --with-gcj or --with-kjc as argument to
	configure; the present default is gcj.  The javac compiler
	included in any of Sun's JDKs will not work, as it will not
	compile java.lang.Object.

        - GCJ 3.3+ (part of the GNU GCC package).  Note that GCC
	  3.4 (from CVS) is currently unreleased.  
        - IBM jikes 1.18+.  
        - The kjc compiler is supported with configure but we have
          been unable to successfully compile with it.

	For building the JNI native libraries, the following are required
        unless --disable-gtk-peer is used as an argument to configure.

        - GTK+ 2.x.x
        - libart_lgpl 2.1.0
        - gdk-pixbuf (Only needed if you want to compile the native library)

This package was designed to use the GNU standard for configuration
and makefiles.  To build and install do the following:

1).  Run the "configure" script to configure the package.  There are
various options you might want to pass to configure to control how the
package is built.  Consider the following options, "configure --help"
gives a complete list.  

  --enable-java           compile Java source default=yes
  --enable-jni            compile JNI source default=no
  --enable-cni            compile CNI source default=no
  --enable-gtk-peer       compile GTK native peers default=no
  --enable-load-library   enable to use JNI native methods default=yes
                          (disabled automatically using --enable-cni)

2).  Type "gmake" to build the package.  There is no longer a
dependency problem and we aim to keep it that way.

3).  Type "gmake install" to install everything.  This may require
being the superuser. The default install path is /usr/local/classpath
you may change it by giving configure the --prefix=<path> option.

Report bugs to classpath@gnu.org or much better via Savannah at this
URL: http://savannah.gnu.org/support/?func=addsupport&group=classpath

Happy Hacking!

Once installed, GNU Classpath is ready to be used by any VM that supports
using the official version of GNU Classpath.  Simply ensure that
/usr/local/classpath/share/classpath is in your $CLASSPATH environment
variable.  You'll also have to set your LD_LIBRARY_PATH
variable (or similar system configuration) to include the Classpath
native libraries in /usr/local/classpath/lib/classpath.  

*NOTE* All example paths assume the default prefix is used with configure.
If you don't know what this means then the examples are correct.

LD_LIBRARY_PATH=/usr/local/classpath/lib/classpath
CLASSPATH=/usr/local/classpath/share/classpath/glibj.zip:.
export LD_LIBRARY_PATH CLASSPATH

More information about the VMs that use GNU Classpath can be found in the
README file. Information on using the above setup with the ORP VM can be
found at <http://www.gnu.org/software/classpath/doc/orp.html>.

------------------------------------------------------------------
Misc. Notes
------------------------------------------------------------------
Compilation is accomplished using a compiler's @file syntax.  For our
part, we avoid placing make style dependencies as rules upon the
compilation of a particular class file and leave this up to the Java
compiler instead.

The --enable-maintainer-mode option to configure currently does very 
little and shouldn't be used by ordinary developers or users anyway.

On Windows machines, the native libraries do not currently build, but
the Java bytecode library will.  Gcj trunk is beginning to work under
Cygwin.  The mingw32 version of jikes cannot follow symbolic links, you 
must use a cygwin build of jikes to access this limited functionality.
