4 For convenience we've provided make targets that automatically
5 download, extract and patch the source code from openjdk.java.net, in
8 The build requirements are as follows:
10 GNU libgcj 4.3.0 (or equivalent 1.5 class library, such as GNU Classpath >= 0.95)
13 libX11 (libXp, libXtst, libXi, libXt)
32 rhino (can be disabled using --without-rhino)
34 For building the PulseAudio based mixer, you will need
35 pulseaudio-libs-devel >= 0.9.11
38 For building VisualVM, you will need
41 For building VisualVM, you will need
44 For building the zero-assembler port (see below), you will need libffi.
46 For building with systemtap support (--enable-systemtap), you will need
47 systemtap-sdt-devel (available since systemtap 0.9.5). This also needs
48 the --with-abs-install-dir configure option to make sure the hotspot.stp.in
49 tapset gets the correct installation location for the libjvm.so, it
50 defaults to the root of the j2sdk-image build dir otherwise (but then
51 you cannot move that to another location without adjusting the paths
52 in the tapset/hotspot.stp file. For example:
53 --enable-systemtap --with-abs-install-dir=/usr/lib/jvm/java-1.6.0-openjdk
55 See ./configure --help if you need to override the defaults.
57 To bootstrap IcedTea with ecj:
62 To build IcedTea with an older version of IcedTea, use:
64 ./configure --with-icedtea
65 [default location: /usr/lib/jvm/java-icedtea,
66 to specifiy location use --with-icedtea-home=/path/to/icedtea]
69 There is currently no install target.
71 IcedTea ends up in openjdk/control/build/<os>-<arch> when the build completes.
72 Example instantiations of <os>-<arch> include linux-i586, linux-amd64 and linux-ppc64.
74 Rebuilding The IcedTea Plugs
75 ----------------------------
77 When IcedTea is initially built, it creates stamp files in the stamps directory
78 to determine what and when dependencies were compiled. For example, to rebuild
79 the rt plugs certain files need to be deleted before restarting the build.
81 - If the rt plugs have been modified, delete stamps/rt-class-files.stamp.
82 - If a new class has been added to the rt plugs, delete
83 rt-source-files.txt so it can be recreated with the new class list.
85 To view all targets that create stamp files, see
86 Makefile.am (section 'All Stamped Targets').
88 The Zero Assembler Port
89 -----------------------
91 Gary Benson has developed a port of the interpreter included in the
92 HotSpot virtual machine which avoids using any assembly language. As
93 a pure C++ interpreter, it should be possible to build this on most
94 architectures and have a working (albeit slow) version of OpenJDK.
95 Successful builds have been made on ppc, ppc64 and arm. The zero
96 assembler port is enabled by default on platforms other than x86,
97 x86_64 and sparc. To enable it on these platforms, use the
100 Gary is now working on a JIT called Shark to provide better
101 performance on platforms which need to use the zero port. A
102 preliminary version of this is now included with IcedTea and can be
103 built with the --enable-shark option.
108 The CACAO virtual machine (http://cacaovm.org) can be used as an
109 alternative to the HotSpot virtual machine. One advantage of this is
110 that it already provides a JIT for many platforms to which HotSpot has
111 not yet been ported, including ppc, ppc64, arm and mips. To use CACAO
112 as the VM, use the --with-cacao option. This will download CACAO
113 0.99.3 during the build. To use a different version, use
114 --with-cacao-home=<dir> to point to an existing installation which use
115 the Sun VM interface.
117 Building additional virtual machines
118 ------------------------------------
120 Although IcedTea can be built multiple times to use a different virtual
121 machine, addtional VM's can be built without building the other components
124 On architectures where hotspot is available, use
125 --with-additional-vms=cacao,zero (or shark instead of zero)
126 on architectures where only zero (or shark) is available, use
127 --with-additional-vms=cacao
128 to build the additional VM's. It's not possible to build cacao as the
129 default VM, and zero as additional VM.
131 The additional VM's are available by calling the java with the option
132 `-cacao' or `-zero' (for shark as well), or by calling the java tools with