Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

This guide describes how to build Jikes RVM. The first section is an overview of the Jikes RVM build process and this is followed by your system requirements and a detailed description of the steps required to build Jikes RVM.

Note
titleNoteUsing buildit

Once you have things working, as described below, the buildit  script will provide a fast and easy way to build the system.  We recommend you get things working as described below first, so you can be sure you've met the requisite dependencies etc.

...

The majority of Jikes RVM is written in Java and will be compiled into class files just as with other Java applications. There is also a small portion of Jikes RVM that is written in C that must be compiled with a C compiler such as gcc.  Jikes RVM uses Ant version 1.7.0 or later as the build tool that orchestrates the build process and executes the steps required in building Jikes RVM.

Note
titleNoteInstallation of Ant

Jikes RVM requires a complete install of ant, including the optional tasks. These are present if you download and install ant manually. Some Linux distributions have decided to break ant into multiple packages. So if you are installing on a platform such as Debian you may need to install another package such as 'ant-optional'.

...

Setting the ant property classlib.provider to Harmony (see how to define ant properties) will change the build process to download and build the Apache Harmony class library.

...

target.name

Operating System

Instruction Architecture

Address Size

Status

ia32-linux

Linux

ia32

32 bits

OK

ia32-osx

OSX

ia32

32 bits

OK

ia32-solaris

Solaris

ia32

32 bits

OK

ia32-cygwin

Windows

ia32

32 bits

WIPNYI

ppc32-aix

AIX

PowerPC

32 bits

OK

ppc32-linux

Linux

PowerPC

32 bits

OK

ppc32-osx

OSX

PowerPC

32 bits

OK

ppc64-aix

AIX

PowerPC

64 bits

OK

ppc64-linux

Linux

PowerPC

64 bits

OK

x86_64-linux

Linux

ia32

32 bits*

OK

See note below

Note
titlex86_64 configurations are actually 32-bit

x86_64 is currently only supported using the legacy 32bit addressing mode and instructions (track progress on full 64bit support here). You need to install the 32-bit versions of the required libraries to build and use the x86_64 configurations.

Tool Requirements

Java Virtual Machine

...

Property

Description

Default

host.name

The name of the host environment used for building Jikes RVM. The host environment defines the paths to the tools used during the build, e.g. the path to the C compiler. The name should match one of the files located in the build/hosts/ directory minus the '.properties' extension.

None

target.name

The name of the target environment for Jikes RVM. The name should match one of the files located in the build/targets/ directory minus the '.properties' extension. This should only be specified when cross compiling the Jikes RVM. See Cross-Platform Building for a detailed description of cross compilation.

${host.name}

config.name

The name of the configuration used when building Jikes RVM. The name should match one of the files located in the build/configs/ directory minus the '.properties' extension. This setting is further described in the section Configuring the RVM.

None

patch.name

An identifier for the current patch applied to the source tree. See Building Patched Versions for a description of how this fits into the standard usage patterns of Jikes RVM.

""

components.dir

The directory where Ant looks for external components when building the RVM.

${jikesrvm.dir}/components

dist.dir

The directory where Ant stores the final Jikes RVM runtime.

${jikesrvm.dir}/dist

build.dir

The directory where Ant stores the intermediate artifacts generated when building the Jikes RVM.

${jikesrvm.dir}/target

protect.config-files

Define this property if you do not want the build process to update configuration files when auto downloading components.

(Undefined)

components.cache.dir

The directory where Ant caches downloaded components.  If you explicitly download a component, place it in this directory.

(Undefined, forcing download)

require.rvm-unit-testsIf set to true, run unit tests on the built rvm image. Use with care as it will significantly increase build times for configurations that are compiled using a non-optimizing compiler (see below).(Undefined, tests are not run)
require.checkstyle

Only useful if you want to contribute changes to the Jikes RVM. If set to true, run checkstyle during the build to check for violations of the Jikes RVM Coding Style. and Coding Conventions for assertions must be checked manually.

(Undefined, no checks run)

...