README:
  This file should be located at the top of the OpenJDK Mercurial root
  repository. This root repository will include a "make" directory,
  and a Makefile for building the entire OpenJDK.
  A full OpenJDK repository set (forest) should also include the following
  6 nested repositories:
    "jdk", "hotspot", "langtools", "corba", "jaxws"  and "jaxp".
  There are also several source downloads for the jax* repositories that
  will be needed.

  This one root repository can be obtained with something like:

    hg clone http://hg.openjdk.java.net/jdk8/jdk8 openjdk8
  
  To make sure you have all the nested repositories, you can run the
  get_source.sh script located in the same respository as this file:

    cd openjdk8 && sh ./get_source.sh

  People unfamiliar with Mercurial should read the first few chapters of
  the Mercurial book: http://hgbook.red-bean.com/read/

  See http://openjdk.java.net/ for more information about the OpenJDK.

Simple Build Instructions:
  
  0. Get the necessary system software/packages installed on your system, see
     http://hg.openjdk.java.net/jdk8/build/raw-file/tip/README-builds.html

  1. If you don't have a jdk6 installed, download and install a JDK 6 from
     http://java.sun.com/javase/downloads/index.jsp
     Set the environment variable ALT_BOOTDIR to the location of JDK 6.

  2. Check the sanity of doing a build with your current system:
       make sanity
     See README-builds.html if you run into problems.
  
  3. Do a complete build of the OpenJDK:
       make all
     The resulting JDK image should be found in build/*/j2sdk-image

where make is GNU make 3.81 or newer, /usr/bin/make on Linux usually
is 3.81 or newer.

Complete details are available in README-builds.html.
