Installing GNU Classpath - Last updated: September 7, 2005 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 doc/hacking.texi file. Or at http://www.gnu.org/software/classpath/docs/hacking.html ------------------------------------------------------------------ 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.9+ - GNU libtool 1.5+ When working from CVS you can run the above tools by executing ./autogen.sh in the source directory. For building the Java bytecode (.class files), one of these compilers are required. You can select which compiler using --with-jikes, --with-gcj, --with-ecj or --with-kjc as argument to configure; the present default is gcj. - GCJ 4.0+ (part of the GNU GCC package). - IBM jikes 1.19+. - Eclipse Compiler for Java 3.1+ - The kjc compiler is supported with configure but we have been unable to successfully compile with it. IMPORTANT: Versions of GCJ which are earlier than 4.0 contain bugs which make it impossible to compile the class library and are *not* supported any more. If you are stuck on a system where GCC 3.x is the system compiler we recommend using Jikes. For building the gtk+ AWT peer JNI native libraries, the following are required unless --disable-gtk-peer is used as an argument to configure. - GTK+ 2.4.x (or higher) - gdk-pixbuf - XTest Extension (libXtst) for GdkRobot support in java.awt. For building the Cairo GdkGraphics2D backend you need at least Cairo 0.5.0. For building the Qt AWT peer JNI native libraries you have to specify --enable-qt-peer and need the following library: - Qt 4.0.1 Please note that at the moment most operating systems do not ship Qt4 by default. We recommend using GNU Classpath' Qt4 support only for its developers and bug reporters. See http://developer.classpath.org/mediation/ClasspathShowcase for details on how to get it to work. For building the xmlj JAXP implementation (disabled by default, use configure --enable-xmlj) you need the following installed: - The XML C library for Gnome (libxml2) http://www.xmlsoft.org/ Minimum version of libxml2 required: 2.6.8 - The XSLT C library for Gnome (libxslt) http://www.xmlsoft.org/XSLT/ Minimum version of libxslt required: 1.1.11 For building the documentation you will need - texinfo 4.2 or higher. For building the ALSA midi provider code you will need ALSA. http://www.alsa-project.org. For building the DSSI midi synthesizer provider code you will need DSSI from http://dssi.sourceforge.net. This, in turn, introduces many dependencies, including: - liblo: the Lightweight OSC implementation http://plugin.org.uk/liblo/ - LADSPA: Linux Audio Developer's Simple Plugin API http://www.ladspa.org - the JACK Audio Connection Kit: A low latency audio server http://jackit.sourceforge.net - libsndfile: an audio file I/O library http://www.mega-nerd.com/libsndfile/ - fluidsynth: a real-time SoundFont 2 based soft-synth http://www.fluidsynth.org/ 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=yes --enable-gtk-peer compile GTK native peers default=yes --enable-gtk-cairo compile cairo based Graphics2D default=no --enable-qt-peer compile Qt4 native peers default=no --enable-default-toolkit fully qualified class name of default AWT toolkit default=no --enable-xmlj compile native libxml/xslt library default=no --enable-load-library enable to use JNI native methods default=yes --with-jikes to compile the class library using jikes the default is to use gcj --with-glibj define what to install (zip|flat|both|none) default=zip --enable-Werror whether to compile C code with -Werror which turns any compiler warning into a compilation failure default=no --with-gjdoc generate documentation using gjdoc default=no --with-jay Regenerate the parsers with jay must be given the path to the jay executable --with-glibj-zip=ABS.PATH use prebuilt glibj.zip class library For more flags run configure --help. 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= 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. ------------------------------------------------------------------ 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.