Goals

Prerequisites

Setup

Install the Mercurial "forest" extension:

cd /tmp
hg clone http://bitbucket.org/pmezard/hgforest-crew/
cp hgforest-crew/forest.py ~/.forest.py

Add the following lines to your: ~/.hgrc

[extensions]
hgext.forest=~/.forest.py

Source

hg fclone http://hg.openjdk.java.net/macosx-port/macosx-port

Build

CC=/Developer/usr/bin/llvm-gcc-4.2 CXX=/Developer/usr/bin/llvm-g++-4.2 ALLOW_DOWNLOADS=true SA_APPLE_BOOT_JAVA=true ALWAYS_PASS_TEST_GAMMA=true ALT_BOOTDIR=`/usr/libexec/java_home -v 1.6` make

Install

cp -R build/macosx-universal/j2sdk-bundle/1.7.0.jdk ~/Library/Java/JavaVirtualMachines

The "1.7.0.jdk" bundle can be copied or symlinked to ~/Library/Java/JavaVirtualMachines or /Library/Java/JavaVirtualMachines.

Once installed, the build will be discovered by /Applications/Utilities/Java Preferences.app, and found using the /usr/libexec/java_home tool, when passing it "--version 1.7".

By dragging the 1.7.0 version to the top of the Java Preferences lists, it will become the default JVM for command line use (since CommandLine is currently the only capability it supports).

Run

export JAVA_HOME=`/usr/libexec/java_home --version 1.7`
$JAVA_HOME/bin/java -version

Test

The linux jtreg is just a shell script that runs fine on Mac OS X. It will run all the tests under $SRC/jdk/.

cd $SRC/jdk/
(path to jtreg)/linux/bin/jtreg .

Caveats

If your version of Xcode is older than 3.2.5, the 32-bit build won't run, but the 64-bit build will.