File: INSTALL

package info (click to toggle)
openjdk-7 7u95-2.6.4-1~deb7u1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 78,320 kB
  • sloc: java: 165,834; cpp: 6,334; makefile: 4,581; sh: 4,505; ansic: 2,141; perl: 1,022; python: 310; asm: 83
file content (470 lines) | stat: -rw-r--r-- 24,287 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
Building IcedTea7
=================

For convenience we've provided make targets that automatically
download, extract and patch the source code from the IcedTea forest
(http://hg.openjdk.java.net/icedtea/jdk7/).

The build requirements are as follows:

A bootstrap JDK, either:
  - GNU libgcj 4.4.0 (or equivalent class library based on GNU Classpath >= 0.95) (--enable-bootstrap mode only, the default)
  - IcedTea6 or IcedTea7
CUPS
libX11 (libXp, libXtst, libXi, libXt, libXinerama)
Freetype2
patch
sed
tar
sha256sum (from coreutils)
wget
alsa
xsltproc (for bootstrapping)
ant >= 1.6.5 with the regexp task from ant-nodeps
glib2-devel (for --enable-system-gio)
GConf2-devel (for --enable-system-gconf)
gtk2-devel (for --enable-system-gtk)
giflib-devel (for --enable-system-gif)
libpng-devel (for --enable-system-png)
libjpeg-devel >= 6b (for --enable-system-jpeg)
zlib-devel (for --enable-system-zlib)
lcms2-devel (for --enable-system-lcms)
fontconfig (for --enable-system-fontconfig)
libc6-dev & libattr-devel/libattr1-dev (for --enable-compile-against-syscalls)
libpcsclite (for --enable-system-pcsc)
lksctp-tools (for --enable-system-sctp)
rhino (can be disabled using --without-rhino)
libffi (for --enable-zero or on archs other than x86/x86_64/sparc/ppc64)
LLVM 2.5 or later (for --enable-shark)
systemtap-sdl-devel >= 0.9.5 (Java method tracing requires systemtap >= 0.9.9)
objcopy (for --enable-split-debuginfo)

See ./configure --help if you need to override the defaults.

To bootstrap IcedTea with ecj and a GNU Classpath-based JDK:
./autogen.sh
./configure 
make

To build IcedTea with an older version of IcedTea, use:
./autogen.sh
./configure --disable-bootstrap 
make

The following locations are checked for a JDK:
    * /usr/lib/jvm/icedtea-7
    * /usr/lib/jvm/icedtea7
    * /usr/lib/jvm/java-7-openjdk
    * /usr/lib/jvm/java-1.7.0-openjdk.x86_64
    * /usr/lib64/jvm/java-1.7.0-openjdk
    * /usr/lib/jvm/java-1.7.0
    * /usr/lib/jvm/icedtea-6
    * /usr/lib/jvm/icedtea6
    * /usr/lib/jvm/java-6-openjdk
    * /usr/lib/jvm/java-1.6.0-openjdk.x86_64
    * /usr/lib64/jvm/java-1.6.0-openjdk
    * /usr/lib/jvm/java-1.6.0
    * /usr/lib/jvm/java-openjdk
    * /usr/lib/jvm/openjdk
    * /usr/lib/jvm/java-icedtea
    * /etc/alternatives/java_sdk_openjdk
in the order given above.

If bootstrapping is enabled, the following JDK locations are prepended to the above list:
   * /usr/lib/jvm/java-gcj
   * /usr/lib/jvm/gcj-jdk
   * /usr/lib/jvm/cacao

There is currently no install target.  IcedTea ends up in
openjdk.build when the build completes.

Most targets in IcedTea create stamp files in the stamps directory to
determine what and when dependencies were compiled.  Each target has a
corresponding clean-x target which removes the output and the stamp
file, allowing it to be rebuilt.  For example, stamps/rt.stamp (alias
rt) builds the bootstrap classes needed in the bootstrap build and
clean-rt removes the classes and the stamp file.

Build Modification Options
==========================

The build process may be modified by passing the following options
to configure:

* --prefix: The final install location of the j2sdk-image.
* --disable-docs: Don't build the Javadoc documentation.
* --disable-bootstrap: Perform a quick (no bootstrap) build using an installed
  copy of IcedTea6 or IcedTea7.  If a directory is not specified, a check against
  the list presented above is performed.
* --enable-warnings: Produce warnings from the Java compiler during the build.
* --with-openjdk-src-dir: Copy the specified OpenJDK tree, rather than
  downloading and extracting a tarball.
* --disable-optimizations: Build with -O0.
* --enable-hg: Checkout the OpenJDK tree from Mercurial, rather than
  downloading and extracting a tarball.
* --enable-system-lcms: Build using the system installation of LCMS2, not
  the version in-tree.
* --enable-system-zlib: Build using the system installation of Zlib, not
  the version in-tree.
* --enable-system-png: Build using the system installation of libpng, not
  the version in-tree.
* --enable-system-gif: Build using the system installation of giflib, not
  the version in-tree.
* --enable-system-gtk: Build and link against the system installation of
  Gtk+ instead of trying to dynamically open it at runtime.
* --enable-system-gio: Build and link against the system installation of
  GIO instead of trying to dynamically open it at runtime.
* --enable-system-gconf: Build and link against the system installation of
  GConf instead of trying to dynamically open it at runtime (only enabled
  by default on systems with older versions of Glib/GIO without the GSettings API)
* --enable-system-fontconfig: Build and link against the system installation of
  fontconfig instead of trying to dynamically open it at runtime.
* --enable-system-pcsc: Build and link against the system installation of
  libpcsclite instead of trying to dynamically open it at runtime.
* --enable-system-sctp: Build and link against the system installation of
  libsctp instead of trying to dynamically open it at runtime.
* --enable-system-kerberos: Link against the system Kerberos library and
  query it at runtime to obtain the cache location, rather than using a
  hardcoded value.
* --enable-compile-against-syscalls: Check for syscalls at compile-time not runtime.
* --with-gcj: Compile ecj to native code with gcj prior to building.
* --with-parallel-jobs: Run the specified number of parallel jobs when
  building HotSpot and the JDK.  If this option is passed without an
  argument, the number of online processors plus one is used.
* --with-pkgversion=PKG: Include the specified distro package information in
  the output of java -version.
* --with-jdk-home: Perform a build using the installed JDK, such as gcj or IcedTea,
  to bootstrap.  If a directory is not specified, a check against the list presented
  above is performed.
* --with-java: Specify the location of a 'java' binary.  By default, the path
  is checked for gij and java.
* --with-ecj: Specify the location of a 'ecj' binary.  By default, the path
  is checked for ecj, ecj-3.1, ecj-3.2 and ecj-3.3.
* --with-javac: Specify the location of a 'javac' binary.  By default, the path
  is checked for javac.
* --with-jar: Specify the location of a 'jar' binary.  By default, the path
  is checked for gjar and jar.
* --with-javah: Specify the location of a 'javah' binary.  By default, the path
  is checked for gjavah and javah.
* --with-rmic: Specify the location of a 'rmic' binary.  By default, the path
  is checked for grmic and rmic.
* --with-native2ascii:  Specify the location of a 'native2ascii' binary.  By default,
  ${SYSTEM_JDK_DIR}/bin/native2ascii is used.  If this is absent, then the path
  is checked for native2ascii and gnative2ascii.
* --with-ecj-jar: Specify the location of an ecj JAR file.  By default, the
  following paths are checked:
    - /usr/share/java/eclipse-ecj.jar
    - /usr/share/java/ecj.jar
    - /usr/share/eclipse-ecj-3.{2,3,4,5}/lib/ecj.jar
* --with-openjdk-src-zip: Specify the location of the OpenJDK tarball to avoid downloading.
* --with-openjdk-checksum: Specify a SHA256 checksum for the supplied source zip. Alternatively,
  --with-openjdk-checksum without an argument (the default) uses the expected upstream SHA256
  checksum, while --without-openjdk-checksum doesn't check the tarball specified by
  --with-openjdk-src-zip at all. This option allows a locally modified version of the source
  tarball to be used instead of the standard versions.
* --with-hotspot-src-zip: Specify the location of the HotSpot tarball to avoid downloading.
* --with-hotspot-checksum: Specify a SHA256 checksum for the supplied source zip. Alternatively,
  --with-hotspot-checksum without an argument (the default) uses the expected upstream SHA256
  checksum, while --without-hotspot-checksum doesn't check the tarball specified by
  --with-hotspot-src-zip at all. This option allows a locally modified version of the source
  tarball to be used instead of the standard versions.
* --with-corba-src-zip: Specify the location of the CORBA tarball to avoid downloading.
* --with-corba-checksum: Specify a SHA256 checksum for the supplied source zip. Alternatively,
  --with-corba-checksum without an argument (the default) uses the expected upstream SHA256
  checksum, while --without-corba-checksum doesn't check the tarball specified by
  --with-corba-src-zip at all. This option allows a locally modified version of the source
  tarball to be used instead of the standard versions.
* --with-jaxp-src-zip: Specify the location of the JAXP tarball to avoid downloading.
* --with-jaxp-checksum: Specify a SHA256 checksum for the supplied source zip. Alternatively,
  --with-jaxp-checksum without an argument (the default) uses the expected upstream SHA256
  checksum, while --without-jaxp-checksum doesn't check the tarball specified by
  --with-jaxp-src-zip at all. This option allows a locally modified version of the source
  tarball to be used instead of the standard versions.
* --with-jaxws-src-zip: Specify the location of the JAXWS tarball to avoid downloading.
* --with-jaxws-checksum: Specify a SHA256 checksum for the supplied source zip. Alternatively,
  --with-jaxws-checksum without an argument (the default) uses the expected upstream SHA256
  checksum, while --without-jaxws-checksum doesn't check the tarball specified by
  --with-jaxws-src-zip at all. This option allows a locally modified version of the source
  tarball to be used instead of the standard versions.
* --with-jdk-src-zip: Specify the location of the JDK tarball to avoid downloading.
* --with-jdk-checksum: Specify a SHA256 checksum for the supplied source zip. Alternatively,
  --with-jdk-checksum without an argument (the default) uses the expected upstream SHA256
  checksum, while --without-jdk-checksum doesn't check the tarball specified by
  --with-jdk-src-zip at all. This option allows a locally modified version of the source
  tarball to be used instead of the standard versions.
* --with-langtools-src-zip: Specify the location of the langtools tarball to avoid downloading.
* --with-langtools-checksum: Specify a SHA256 checksum for the supplied source zip. Alternatively,
  --with-langtools-checksum without an argument (the default) uses the expected upstream SHA256
  checksum, while --without-langtools-checksum doesn't check the tarball specified by
  --with-langtools-src-zip at all. This option allows a locally modified version of the source
  tarball to be used instead of the standard versions.
* --with-alt-jar: Use the specified jar binary in the second stage rather than the one just built.
* --with-cacao-home: Specify the location of an installed CACAO to use rather than downloading
  and building one.
* --with-cacao-src-zip: Specify the location of a CACAO tarball to avoid downloading.
* --with-cacao-checksum: Specify a SHA256 checksum for the supplied source zip. Alternatively,
  --with-cacao-checksum without an argument (the default) uses the expected upstream SHA256
  checksum, while --without-cacao-checksum doesn't check the tarball specified by
  --with-cacao-src-zip at all. This option allows a locally modified version of the source
  tarball to be used instead of the standard versions.
* --with-cacao-src-dir: Specify the location of a CACAO source tree to avoid downloading.
* --with-jamvm-src-zip: Specify the location of a JamVM tarball to avoid downloading.
* --with-jamvm-checksum: Specify a SHA256 checksum for the supplied source zip. Alternatively,
  --with-jamvm-checksum without an argument (the default) uses the expected upstream SHA256
  checksum, while --without-jamvm-checksum doesn't check the tarball specified by
  --with-jamvm-src-zip at all. This option allows a locally modified version of the source
  tarball to be used instead of the standard versions.
* --with-hg-revision: Specify a hg revision to use (as opposed to tip) with the --enable-hg option.
* --with-tzdata-dir: Specify the location of Java timezone data, defaulting to /usr/share/javazi.
* --with-llvm-config: Specify the location of the llvm-config binary.
* --with-version-suffix: Appends the given text to the JDK version output.
* --with-hotspot-build: The HotSpot to use, defaulting to 'original' i.e. hs14 as bundled with OpenJDK.
* --with-pax: The command used to PaX-mark built binaries.
* --enable-Werror: Turn gcc & javac warnings into errors.
* --disable-jar-compression: Don't compress the OpenJDK JAR files.
* --disable-downloading: Don't download tarballs if not available; fail instead.
* --disable-bootstrap-tools: Use javac and javah from langtools, not the bootstrap JDK.
* --disable-hotspot-test-in-build: Turn off the Queens test. Always turned off for bootstrapping.
* --with-cacerts-file: Specify the location of a cacerts file, defaulting to
  ${SYSTEM_JDK_DIR}/jre/lib/security/cacerts
* --with-fonts-dir: Specify the location of system fonts. This is currently only used on Gentoo systems.

Other options may be supplied which enable or disable new features.
These are documented fully in the relevant section below.

* --disable-tests: Disable the running of all JTReg tests.
* --disable-hotspot-tests: Disable the running of the HotSpot JTReg suite.
* --disable-langtools-tests: Disable the running of the langtools JTReg suite.
* --disable-jdk-tests: Disable the running of the jdk JTreg suite.
* --disable-xrender: Don't include the XRender pipeline.
* --enable-nss: Enable the NSS security provider.
* --enable-cacao: Replace HotSpot with the CACAO VM.
* --enable-jamvm: Replace HotSpot with JamVM.
* --enable-shark: Build the Shark LLVM-based JIT.
* --enable-zero: Build the zero assembler port on x86/x86_64/sparc platforms.
* --with-rhino: Include Javascript support using Rhino (location may optionally be specified).
* --with-additional-vms=vm-list: Additional VMs to build using the system described
  below.
* --enable-arm32-jit: Build the ARM32 JIT.
* --enable-sunec: Build the SunEC crypto provider against system NSS.
* --enable-native-debuginfo: Include debuginfo in native binaries.
* --enable-java-debuginfo: Include debuginfo in Java class files.
* --enable-infinality: Use fontconfig for better font rendering
* --enable-non-nss-curves: Define curves beyond the three specified
  by NSS (NIST P-{256,384,521})
* --enable-split-debuginfo: Strip debuginfo from binaries and libraries
  and install in .debug files under ${libdir}/debug instead.  objcopy
  from binutils must be available to perform the stripping.

Testing
=======

IcedTea7 includes support for running the test suite included with
OpenJDK, using the in-tree copy of JTReg.  Invoking 'make check' will
cause the HotSpot, JDK and langtools test suites to be run.  The
individual test suites may be run using the check-hotspot, check-jdk
and check-langtools targets respectively.  The --disable-tests option
can be used to turn off all tests, and the
--disable-{hotspot,langtools,jdk}-tests options can be used to turn
off individual suites.  This is useful when using 'make distcheck'
as a way of avoiding running the extensive JDK test suite which
takes several hours.

XRender Support
===============

IcedTea7 includes support for an Xrender-based rendering pipeline
developed by Clemens Eisserer (http://linuxhippy.blogspot.com/).  This
is compiled by default.  To actually use the pipeline, the
sun.java2d.xrender property needs to be set to true, e.g.  by passing
the -Dsun.java2d.xrender=True option to java.

SystemTap
=========

IcedTea7 includes work to allow the existing DTrace probes included in
OpenJDK to be used with SystemTap.  This requires version 0.9.5 or later (0.9.9
or later if you want Java method tracing).  The tapset needs to know
the final install location of the JDK, so the --prefix option
should also be used to specify this.  If not set, it defaults to the
in-tree location of openjdk.build/j2sdk-image and requires
manual changes to tapset/hotspot.stp to work from elsewhere. For
example, if you plan to install the resulting build in
/usr/lib/jvm/java-1.6.0-openjdk, then you should specify
--prefix=/usr/lib/jvm/java-1.6.0-openjdk.

The NSS PKCS11 Security Provider and Elliptic Curve Cryptography
================================================================

OpenJDK includes an NSS-based security provider in the form of
sun.security.pkcs11.SunPKCS11.  However, as this needs to know the
location of the NSS installation it should use, it is not enabled
in normal OpenJDK builds.  As IcedTea can detect NSS using configure,
it can simplify the process of enabling this provider by generating
a configuration file for the NSS provider.  If --enable-nss is specified,
this configuration will be turned on in lib/security/java.security.
This can also be done manually at a later date.

The PKCS11 option was originally added as it was the only way that
elliptic curve cryptography support could be provided. From OpenJDK 7
onwards, there is another provider, SunEC. This also utilises NSS, but
directly via its ECC functions rather than the PKCS11 interface.
Specifying --enable-sunec will build this provider, linked against
NSS. Version 3.16.1 or later of NSS is required so that the
appropriate softokn ABI is available to the provider.

CACAO
=====

IcedTea7 can use CACAO as the virtual machine, as opposed to HotSpot.
One advantage of this is that CACAO has a JIT implementation for
more platforms than HotSpot, including ppc, arm and mips.
When --enable-cacao is specified, CACAO will be downloaded and built,
followed by the JDK portion of OpenJDK resulting in a CACAO+OpenJDK
image in openjdk.build/j2sdk-image.  The --with-cacao-home
option can be used to specify the use of an existing CACAO install
instead, and --with-cacao-src-zip/dir options exist to allow the use
of a pre-downloaded zip or source tree respectively.

JamVM
=====

IcedTea6 can use JamVM as the virtual machine, as opposed to HotSpot.
When --enable-jamvm is specified, JamVM will be downloaded and built,
followed by the JDK portion of OpenJDK resulting in a JamVM+OpenJDK
image in openjdk.build/j2sdk-image.  The --with-jamvm-src-zip option
exists to allow the use of a pre-downloaded zip.

Zero & Shark
============

IcedTea7 includes a zero assembler port of HotSpot, which avoids
architecture-specific code as much as possible, allowing an
interpreter to be built and run on most platforms (albeit very
slowly).  As HotSpot only includes JITs for x86, x86_64, AArch64,
ppc64, ppc64le and SPARC, the zero assembler port is automatically
enabled on all other architectures.  On HotSpot architectures, it may
be built using --enable-zero.

To overcome the performance issues inherent in zero, a LLVM-based JIT
called Shark has been developed.  This performs Just-In-Time compilation
on any architecture supported by LLVM.  To enable it, pass the option
--enable-shark to configure.  Please note that Shark is still in
development and builds are still likely to fail at present.

On ARM32, there is also a native JIT port built on top of Zero, which
is built on this platform by default.

Support for Different Versions of HotSpot
=========================================

IcedTea allows the version of HotSpot provided with the upstream build
drop to be replaced with another.  Support for this is provided by the
--with-hotspot-build=${name} option which causes IcedTea to probe the
hotspot.map file for an entry with the given build name. The map file
always contains an entry named 'default' which corresponds to the
upstream build drop. Specifying --without-hotspot-build will ensure
that 'default' is used.

At build time, the hotspot.map file is used as follows:

1. The type of tarball (Mercurial changeset or drop), URL, changeset
ID and SHA256 checksum corresponding to the HotSpot build being used
are obtained from the hotspot.map file.
2. When the download-hotspot target is invoked, the URL used is
constructed using the contents of hotspot.map. If the type is 'hg',
then the tarball is downloaded from
${URL}/archive/${CHANGESET}.${TAR_SUFFIX}, where ${URL} and ${CHANGESET}
are taken from hotspot.map and ${TAR_SUFFIX} is the suffix used in the
filename to specify the type of compression being used (e.g. tar.gz or
tar.bz2). If the type is 'drop', then the tarball is downloaded from
${URL}/${HSNAME}.${TAR_SUFFIX}, where ${HSNAME} is the name of the
HotSpot build being used. In the case of 'default', ${HSNAME} is set
to 'hotspot'. Once the file is downloaded, it is verified using
the SHA256 checksum from the hotspot.map file.
3. When the extract-hotspot target is invoked, the name of the
top-level directory from the tarball is constructed using the
${CHANGESET} field from hotspot.map i.e. the tarball should contain
a top-level directory called hotspot-${CHANGESET}.

New build selections may be provided by providing further mappings in
the hotspot.map.in file.  The name can be anything
e.g. 'shiny_new_hotspot'.  This is simply used to map the argument to
--with-hotspot-build to the values in the file and to apply
appropriate patches (see patches/hotspot, $HSBUILD is available in
Makefile.am for obtaining the build name).

The required values for the changeset field can be obtained from a
local checkout or by using the web interface.  The simplest way to
calculate the SHA256 sum is to download the tarball and then run the
'sha256sum' application on it.  The resulting value should be added to
hotspot.map.in.

Note that the source tree contains hotspot.map.in, but hotspot.map is
used at build-time. The latter is generated by configure and this
generation process may be used to include information determined
by configure. In the case of the existing hotspot.map.in entries,
this is used to include the IcedTea release version in the URL.

As with the OpenJDK build tarballs, the location of an alternate zip
can be specified using --with-hotspot-src-zip.  This skips the
download stage and just verifies that the zip's SHA256 sum matches that
of the requested build.

Currently, IcedTea 2.x supports the 'default' HotSpot tree, which is
part of the IcedTea forest for the particular minor release series
being used.

JavaScript Support
==================

IcedTea7 adds Javascript support via the javax.script API by using
an existing installation of Rhino.  Support is enabled by default,
with the following locations being searched for a Rhino JAR file:

* /usr/share/java/rhino.jar
* /usr/share/java/js.jar
* /usr/share/rhino-1.6/lib/js.jar

A JAR file can instead be specified using the --with-rhino option,
or support may be disabled by specifying --without-rhino.

Note that the final installed JAR file is a modified version with the
namespace prefixed by 'sun.' as in the proprietary Oracle JDK.  This
avoids conflicts between the JDK's copy of Rhino and any used by other
applications.

Bootstrap Tools
===============

For bootstrap builds, the option --disable-bootstrap-tools can be used
to make use of the javac and javah built as part of the langtools build,
rather than the bootstrap tools.  The default setting of this option is
to use the bootstrap tools when they support Java 1.7 (tested at
configure time).

Building Additional Virtual Machines
====================================

Although IcedTea can be built multiple times to use a different virtual
machine, additional VMs can be built without building the other components
multiple times.

On architectures where hotspot is available, use
   --with-additional-vms=cacao,zero  (or shark instead of zero)
on architectures where only zero (or shark) is available, use
   --with-additional-vms=cacao
to build the additional VMs.  It's not possible to build cacao as the
default VM, and zero as additional VM.
To build zero as the default VM and shark as an additional VM, use
   --enable-zero --with-additional-vms=shark

The additional VMs are available by calling the java with the option
`-cacao', `-zero' or `-shark', or by calling the java tools with
`-J-<vm name>'. If the build was configured with '--enable-shark',
use `-Xint' to just use the zero VM.

Please note that using this feature does not do as extensive testing
of the VM as would enabling it in the default full bootstrap mode,
which compiles IcedTea and then recompiles it using the just-built
image.