INSTALL
changeset 1890: cba3ed800419
parent 1795:7a561e7b887e
manifest: cba3ed800419
author: doko@ubuntu.com
date: Wed Jun 24 10:31:06 2009 +0200 (10 days ago)
permissions: -rw-r--r--
2009-06-24 Matthias Klose <doko@ubuntu.com>

* patches/cacao/no-strict-aliasing.patch: Apply for configure.ac.
        1 Building IcedTea6
        2 =================
        3 
        4 For convenience we've provided make targets that automatically
        5 download, extract and patch the source code from openjdk.java.net, in
        6 a default location.
        7 
        8 The build requirements are as follows:
        9 
       10 GNU libgcj 4.3.0 (or equivalent 1.5 class library, such as GNU Classpath >= 0.95)
       11 Eclipse Java Compiler
       12 CUPS
       13 libX11 (libXp, libXtst, libXi, libXt)
       14 Freetype2
       15 patch
       16 sed
       17 tar
       18 md5sum
       19 wget
       20 alsa
       21 xalan
       22 xerces
       23 firefox-devel 
       24 glib2-devel 
       25 gtk2-devel
       26 ant >= 1.6.5
       27 libXinerama-devel
       28 giflib-devel
       29 libpng-devel
       30 libjpeg-devel = 6b
       31 zlib-devel
       32 rhino (can be disabled using --without-rhino)
       33 
       34 For building the PulseAudio based mixer, you will need
       35 pulseaudio-libs-devel >= 0.9.11
       36 pulseaudio >= 0.9.11
       37 
       38 For building VisualVM, you will need
       39 netbeans = 6.5
       40 
       41 For building VisualVM, you will need
       42 netbeans = 6.5
       43 
       44 For building the zero-assembler port (see below), you will need libffi.
       45 
       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
       54 
       55 See ./configure --help if you need to override the defaults.
       56 
       57 To bootstrap IcedTea with ecj:
       58 autoreconf
       59 ./configure 
       60 make
       61 
       62 To build IcedTea with an older version of IcedTea, use:
       63 autoreconf
       64 ./configure --with-icedtea 
       65 	[default location: /usr/lib/jvm/java-icedtea, 
       66 		to specifiy location use --with-icedtea-home=/path/to/icedtea]
       67 make
       68 
       69 There is currently no install target.
       70 
       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.
       73 
       74 Rebuilding The IcedTea Plugs
       75 ----------------------------
       76 
       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.
       80 
       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.
       84 
       85 To view all targets that create stamp files, see 
       86 Makefile.am (section 'All Stamped Targets').
       87 
       88 The Zero Assembler Port
       89 -----------------------
       90 
       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
       98 --enable-zero option.
       99 
      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.
      104 
      105 CACAO
      106 -----
      107 
      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.
      116 
      117 Building additional virtual machines
      118 ------------------------------------
      119 
      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
      122 multiple times.
      123 
      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.
      130 
      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
      133 `-J-<vm name>'.