* doc/install.texi (*-ibm-aix*): Add comment about 32-bit GMP
[official-gcc.git] / libjava / classpath / INSTALL
blobdae909effde9b2985045c4630207b24eb9f488f8
1 Installing GNU Classpath - Last updated: September 7, 2005
3 First, this is a development release only! Unless you are interested in
4 active development and debugging, or just like running random alpha code,
5 this release is probably not for you. Please see the README file for a
6 list of VMs that work with GNU Classpath.
8 Note that if you are building from a non-released (CVS) version of GNU
9 classpath, installation instructions are found in the doc/hacking.texi
10 file. Or at http://www.gnu.org/software/classpath/docs/hacking.html
12 ------------------------------------------------------------------
13 Suggested Software
14 ------------------------------------------------------------------
15         GNU make ("gmake") is required for building Classpath.
17         For any build environment involving native libraries, these 
18         new versions of autoconf, automake, and libtool are required
19         if changes are made that require rebuilding configure, Makefile.in,
20         aclocal.m4, or config.h.in.
22         - GNU autoconf 2.59+
23         - GNU automake 1.9+
24         - GNU libtool 1.5+
26         When working from CVS you can run the above tools by executing
27         ./autogen.sh in the source directory.
29         For building the Java bytecode (.class files), one of these
30         compilers are required.  You can select which compiler using
31         --with-jikes, --with-gcj, --with-ecj or --with-kjc as argument to
32         configure; the present default is gcj.
34         - GCJ 4.0+ (part of the GNU GCC package).
35         - IBM jikes 1.19+.  
36         - Eclipse Compiler for Java 3.1+
37         - The kjc compiler is supported with configure but we have
38           been unable to successfully compile with it.
40         IMPORTANT: Versions of GCJ which are earlier than 4.0 contain
41         bugs which make it impossible to compile the class library and
42         are *not* supported any more. If you are stuck on a system where
43         GCC 3.x is the system compiler we recommend using Jikes.
45         For building the gtk+ AWT peer JNI native libraries, the following
46         are required unless --disable-gtk-peer is used as an argument to
47         configure.
49         - GTK+ 2.8.x (or higher)
50         - gdk-pixbuf
52         - XTest Extension (libXtst) for GdkRobot support in java.awt.
54         For building gcjwebplugin you'll need the Mozilla plugin
55         support headers and libraries.
57         For building the Qt AWT peer JNI native libraries you have to
58         specify --enable-qt-peer and need the following library:
60         - Qt 4.0.1
62         For building the X AWT peers see information below
63         (Building and running with the X AWT peers). You will need
64         the Escher 0.2.3 library:
65         http://escher.sourceforge.net
67         Please note that at the moment most operating systems do not
68     ship Qt4 by default. We recommend using GNU Classpath' Qt4
69     support only for its developers and bug reporters. See
70     http://developer.classpath.org/mediation/ClasspathShowcase
71     for details on how to get it to work.
73         For building the xmlj JAXP implementation (disabled by default, use
74         configure --enable-xmlj) you need the following installed:
75         - The XML C library for Gnome (libxml2)
76           http://www.xmlsoft.org/
77           Minimum version of libxml2 required: 2.6.8
79         - The XSLT C library for Gnome (libxslt)
80           http://www.xmlsoft.org/XSLT/
81           Minimum version of libxslt required: 1.1.11
83         For building the documentation you will need
85         - texinfo 4.2 or higher.
87         For building the ALSA midi provider code you will need
88         ALSA.  http://www.alsa-project.org. 
90         For building the DSSI midi synthesizer provider code you will
91         need DSSI from http://dssi.sourceforge.net.  This, in turn, 
92         introduces many dependencies, including:
94           - liblo: the Lightweight OSC implementation
95             http://plugin.org.uk/liblo/
97           - LADSPA: Linux Audio Developer's Simple Plugin API
98             http://www.ladspa.org
100           - the JACK Audio Connection Kit: A low latency audio server
101             http://jackit.sourceforge.net
103           - libsndfile: an audio file I/O library
104             http://www.mega-nerd.com/libsndfile/
106           - fluidsynth: a real-time SoundFont 2 based soft-synth
107             http://www.fluidsynth.org/
110 This package was designed to use the GNU standard for configuration
111 and makefiles.  To build and install do the following:
113 1).  Run the "configure" script to configure the package.  There are
114 various options you might want to pass to configure to control how the
115 package is built.  Consider the following options, "configure --help"
116 gives a complete list.  
118   --enable-java           compile Java source default=yes
119   --enable-jni            compile JNI source default=yes
120   --enable-gtk-peer       compile GTK native peers default=yes
121   --enable-qt-peer        compile Qt4 native peers default=no
122   --enable-default-toolkit
123                           fully qualified class name of default AWT toolkit
124                           default=no
125   --enable-xmlj           compile native libxml/xslt library default=no
126   --enable-load-library   enable to use JNI native methods default=yes
127   --enable-local-sockets  enable build of local Unix sockets
128   --with-jikes            to compile the class library using jikes
129                           the default is to use gcj
130   --with-glibj            define what to install (zip|flat|both|none)
131                           default=zip
132   --with-escher=/path/to/escher
133                           enable build of the X/Escher peers, with
134                           the escher library at /path/to/escher, either
135                           in the form of a JAR file, or a directory
136                           containing the .class files of Escher.
137   --enable-Werror         whether to compile C code with -Werror which turns
138                           any compiler warning into a compilation failure
139                           default=no
140   --with-gjdoc            generate documentation using gjdoc default=no
141   --with-jay              Regenerate the parsers with jay must be given the
142                           path to the jay executable
143   --with-glibj-zip=ABS.PATH
144                           use prebuilt glibj.zip class library
146 For more flags run configure --help.
148 2).  Type "gmake" to build the package.  There is no longer a
149 dependency problem and we aim to keep it that way.
151 3).  Type "gmake install" to install everything.  This may require
152 being the superuser. The default install path is /usr/local/classpath
153 you may change it by giving configure the --prefix=<path> option.
155 Report bugs to classpath@gnu.org or much better via Savannah at this
156 URL: http://savannah.gnu.org/support/?func=addsupport&group=classpath
158 Happy Hacking!
160 Once installed, GNU Classpath is ready to be used by any VM that supports
161 using the official version of GNU Classpath.  Simply ensure that
162 /usr/local/classpath/share/classpath is in your $CLASSPATH environment
163 variable.  You'll also have to set your LD_LIBRARY_PATH
164 variable (or similar system configuration) to include the Classpath
165 native libraries in /usr/local/classpath/lib/classpath.  
167 *NOTE* All example paths assume the default prefix is used with configure.
168 If you don't know what this means then the examples are correct.
170 LD_LIBRARY_PATH=/usr/local/classpath/lib/classpath
171 CLASSPATH=/usr/local/classpath/share/classpath/glibj.zip:.
172 export LD_LIBRARY_PATH CLASSPATH
174 More information about the VMs that use GNU Classpath can be found in the
175 README file.
177 ------------------------------------------------------------------
178 Building and running with the X AWT peers
179 ------------------------------------------------------------------
181 In order build the X peers you need the Escher library version 0.2.3
182 from http://escher.sourceforge.net . Unpack (and optionally build) the
183 Escher library following the instructions in the downloaded
184 package. Enable the build of the X peers by passing
185 --with-escher=/path/to/escher to ./configure where /path/to/escher
186 either points to a directory structure or JAR file containing the
187 Escher classes. For Unix systems it is preferable to also build local
188 socket support by passing --enable-local-sockets, which accelerates
189 the network communication to the X server significantly.
191 In this release you have to enable the X peers at runtime by
192 setting the system property awt.toolkit=gnu.java.awt.peer.x.XToolkit
193 by passing -Dawt.toolkit=gnu.java.awt.peer.x.XToolkit to the java
194 command when running an application.
196 ------------------------------------------------------------------
197 Misc. Notes
198 ------------------------------------------------------------------
199 Compilation is accomplished using a compiler's @file syntax.  For our
200 part, we avoid placing make style dependencies as rules upon the
201 compilation of a particular class file and leave this up to the Java
202 compiler instead.
204 The --enable-maintainer-mode option to configure currently does very 
205 little and shouldn't be used by ordinary developers or users anyway.
207 On Windows machines, the native libraries do not currently build, but
208 the Java bytecode library will.  Gcj trunk is beginning to work under
209 Cygwin.  The mingw32 version of jikes cannot follow symbolic links, you 
210 must use a cygwin build of jikes to access this limited functionality.