442a795bc6
2007-03-13 Thomas Fitzsimmons <fitzsim@redhat.com> * Makefile.am (AM_CXXFLAGS): Define ECJ_JAR_FILE. * classpath/configure.ac: Add --with-ecj-jar configure option. * classpath/gnu/classpath/Configuration.java.in (ECJ_JAR): New field. * classpath/INSTALL: Document --with-ecj-jar configure option and ecj jar requirement for com.sun.tools.javac support. * classpath/tools/Makefile.am: Build decendents of com and sun directories. * configure.ac: Substitute ECJ_JAR in stub Configuration.java. * gnu/classpath/Configuration.java, gnu/classpath/natConfiguration.cc (ecj): New method. (ECJ_JAR): New field. * scripts/makemake.tcl (scan_packages): Add com directory. * sources.am (property_files): Add classpath/resource/sun/rmi/rmic/messages.properties and classpath/resource/com/sun/tools/javac/messages.properties. * classpath/resource/com, classpath/resource/com/sun, classpath/resource/com/sun/tools, classpath/resource/com/sun/tools/javac, classpath/resource/sun, classpath/resource/sun/rmi, classpath/resource/sun/rmi/rmic, classpath/tools/classes/com, classpath/tools/classes/com/sun, classpath/tools/classes/com/sun/javadoc, classpath/tools/classes/com/sun/tools, classpath/tools/classes/com/sun/tools/doclets, classpath/tools/classes/sun, classpath/tools/classes/sun/rmi, classpath/tools/classes/sun/rmi/rmic, classpath/tools/com, classpath/tools/com/sun, classpath/tools/com/sun/javadoc, classpath/tools/com/sun/tools, classpath/tools/com/sun/tools/doclets, classpath/tools/com/sun/tools/javac, classpath/tools/sun, classpath/tools/sun/rmi, classpath/tools/sun/rmi/rmic: New directories. * classpath/resource/com/sun/tools/javac/messages.properties, classpath/resource/sun/rmi/rmic/messages.properties, classpath/tools/classes/com/sun/javadoc/ClassDoc.class, classpath/tools/classes/com/sun/javadoc/ConstructorDoc.class, classpath/tools/classes/com/sun/javadoc/Doc.class, classpath/tools/classes/com/sun/javadoc/DocErrorReporter.class, classpath/tools/classes/com/sun/javadoc/Doclet.class, classpath/tools/classes/com/sun/javadoc/ExecutableMemberDoc.class, classpath/tools/classes/com/sun/javadoc/FieldDoc.class, classpath/tools/classes/com/sun/javadoc/MemberDoc.class, classpath/tools/classes/com/sun/javadoc/MethodDoc.class, classpath/tools/classes/com/sun/javadoc/PackageDoc.class, classpath/tools/classes/com/sun/javadoc/ParamTag.class, classpath/tools/classes/com/sun/javadoc/Parameter.class, classpath/tools/classes/com/sun/javadoc/ProgramElementDoc.class, classpath/tools/classes/com/sun/javadoc/RootDoc.class, classpath/tools/classes/com/sun/javadoc/SeeTag.class, classpath/tools/classes/com/sun/javadoc/SerialFieldTag.class, classpath/tools/classes/com/sun/javadoc/SourcePosition.class, classpath/tools/classes/com/sun/javadoc/Tag.class, classpath/tools/classes/com/sun/javadoc/ThrowsTag.class, classpath/tools/classes/com/sun/javadoc/Type.class, classpath/tools/classes/com/sun/javadoc/TypeVariable.class, classpath/tools/classes/com/sun/tools/doclets/Taglet.class, classpath/tools/classes/sun/rmi/rmic/Main.class, classpath/tools/classes/sun/rmi/rmic/Messages.class, classpath/tools/com/sun/javadoc/ClassDoc.java, classpath/tools/com/sun/javadoc/ConstructorDoc.java, classpath/tools/com/sun/javadoc/Doc.java, classpath/tools/com/sun/javadoc/DocErrorReporter.java, classpath/tools/com/sun/javadoc/Doclet.java, classpath/tools/com/sun/javadoc/ExecutableMemberDoc.java, classpath/tools/com/sun/javadoc/FieldDoc.java, classpath/tools/com/sun/javadoc/MemberDoc.java, classpath/tools/com/sun/javadoc/MethodDoc.java, classpath/tools/com/sun/javadoc/PackageDoc.java, classpath/tools/com/sun/javadoc/ParamTag.java, classpath/tools/com/sun/javadoc/Parameter.java, classpath/tools/com/sun/javadoc/ProgramElementDoc.java, classpath/tools/com/sun/javadoc/RootDoc.java, classpath/tools/com/sun/javadoc/SeeTag.java, classpath/tools/com/sun/javadoc/SerialFieldTag.java, classpath/tools/com/sun/javadoc/SourcePosition.java, classpath/tools/com/sun/javadoc/Tag.java, classpath/tools/com/sun/javadoc/ThrowsTag.java, classpath/tools/com/sun/javadoc/Type.java, classpath/tools/com/sun/javadoc/TypeVariable.java, classpath/tools/com/sun/tools/doclets/Taglet.java, classpath/tools/com/sun/tools/javac/Main.java, classpath/tools/com/sun/tools/javac/Messages.java, classpath/tools/sun/rmi/rmic/Main.java, classpath/tools/sun/rmi/rmic/Messages.java: New files. * Makefile.in, classpath/Makefile.in, classpath/configure, classpath/doc/Makefile.in, classpath/doc/api/Makefile.in, classpath/examples/Makefile.in, classpath/external/Makefile.in, classpath/external/jsr166/Makefile.in, classpath/external/relaxngDatatype/Makefile.in, classpath/external/sax/Makefile.in, classpath/external/w3c_dom/Makefile.in, classpath/include/Makefile.in, classpath/include/config.h.in, classpath/lib/Makefile.in, classpath/lib/gnu/classpath/Configuration.class, classpath/native/Makefile.in, classpath/native/fdlibm/Makefile.in, classpath/native/jawt/Makefile.in, classpath/native/jni/Makefile.in, classpath/native/jni/classpath/Makefile.in, classpath/native/jni/gconf-peer/Makefile.in, classpath/native/jni/gtk-peer/Makefile.in, classpath/native/jni/java-io/Makefile.in, classpath/native/jni/java-lang/Makefile.in, classpath/native/jni/java-net/Makefile.in, classpath/native/jni/java-nio/Makefile.in, classpath/native/jni/java-util/Makefile.in, classpath/native/jni/midi-alsa/Makefile.in, classpath/native/jni/midi-dssi/Makefile.in, classpath/native/jni/native-lib/Makefile.in, classpath/native/jni/qt-peer/Makefile.in, classpath/native/jni/xmlj/Makefile.in, classpath/native/plugin/Makefile.in, classpath/resource/Makefile.in, classpath/scripts/Makefile.in, classpath/tools/Makefile.in, configure, gnu/classpath/Configuration.h: Regenerate. From-SVN: r122876
221 lines
9.2 KiB
Plaintext
221 lines
9.2 KiB
Plaintext
Installing GNU Classpath - Last updated: June 19, 2006
|
|
|
|
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.8.x (or higher)
|
|
- gdk-pixbuf
|
|
|
|
- XTest Extension (libXtst) for GdkRobot support in java.awt.
|
|
|
|
For building gcjwebplugin you'll need the Mozilla plugin
|
|
support headers and libraries.
|
|
|
|
The GConf-based backend for java.util.prefs needs the following
|
|
library headers:
|
|
|
|
- gconf 2.11.2 (or higher)
|
|
|
|
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
|
|
|
|
For building the X AWT peers see information below
|
|
(Building and running with the X AWT peers). You will need
|
|
the Escher 0.2.3 library:
|
|
http://escher.sourceforge.net
|
|
|
|
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/
|
|
|
|
For enabling the com.sun.tools.javac support in tools.zip you
|
|
will a need jar file containing the Eclipse Java Compiler.
|
|
Otherwise com.sun.tools.javac will not be included in tools.zip.
|
|
|
|
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-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
|
|
--enable-local-sockets enable build of local Unix sockets
|
|
--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
|
|
--with-escher=/path/to/escher
|
|
enable build of the X/Escher peers, with
|
|
the escher library at /path/to/escher, either
|
|
in the form of a JAR file, or a directory
|
|
containing the .class files of Escher.
|
|
--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
|
|
--with-ecj-jar=ABS.PATH specify jar file containing the Eclipse Java
|
|
Compiler
|
|
|
|
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=<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.
|
|
|
|
------------------------------------------------------------------
|
|
Building and running with the X AWT peers
|
|
------------------------------------------------------------------
|
|
|
|
In order build the X peers you need the Escher library version 0.2.3
|
|
from http://escher.sourceforge.net . Unpack (and optionally build) the
|
|
Escher library following the instructions in the downloaded
|
|
package. Enable the build of the X peers by passing
|
|
--with-escher=/path/to/escher to ./configure where /path/to/escher
|
|
either points to a directory structure or JAR file containing the
|
|
Escher classes. For Unix systems it is preferable to also build local
|
|
socket support by passing --enable-local-sockets, which accelerates
|
|
the network communication to the X server significantly.
|
|
|
|
In this release you have to enable the X peers at runtime by
|
|
setting the system property awt.toolkit=gnu.java.awt.peer.x.XToolkit
|
|
by passing -Dawt.toolkit=gnu.java.awt.peer.x.XToolkit to the java
|
|
command when running an application.
|
|
|
|
------------------------------------------------------------------
|
|
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.
|