mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-25 22:04:51 +02:00
7003845: README-builds document proper location of forest extension, provide alternatives
Reviewed-by: robilad
This commit is contained in:
parent
5c49b6b99d
commit
213481a24b
4 changed files with 791 additions and 570 deletions
38
README
38
README
|
@ -1,28 +1,38 @@
|
||||||
README:
|
README:
|
||||||
This file should be located at the top of the OpenJDK Mercurial repository
|
This file should be located at the top of the OpenJDK Mercurial root
|
||||||
forest. This top or enclosing repository will include a "make" directory,
|
repository. This root repository will include a "make" directory,
|
||||||
and a Makefile at the very top of the repository.
|
and a Makefile for building the entire OpenJDK.
|
||||||
It should also include the 6 repositories: "jdk", "hotspot", "langtools",
|
A full OpenJDK repository set (forest) should also include the following
|
||||||
"corba", "jaxws" and "jaxp".
|
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/jdk7/jdk7 openjdk7
|
||||||
|
To make sure you have all the nested repositories, you can run:
|
||||||
|
cd openjdk7 && sh ./get_source.sh
|
||||||
|
(This is identical to using the Mercurial Forest Extension command
|
||||||
|
'hg fclone http://hg.openjdk.java.net/jdk7/jdk7 openjdk7').
|
||||||
|
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.
|
See http://openjdk.java.net/ for more information about the OpenJDK.
|
||||||
|
|
||||||
Simple Build Instructions:
|
Simple Build Instructions:
|
||||||
|
|
||||||
|
0. Get the necessary system software/packages installed on your system, see
|
||||||
|
http://hg.openjdk.java.net/jdk7/build/raw-file/tip/README-builds.html
|
||||||
|
|
||||||
1. Download and install a JDK 6 from
|
1. If you don't have a jdk6 installed, download and install a JDK 6 from
|
||||||
http://java.sun.com/javase/downloads/index.jsp
|
http://java.sun.com/javase/downloads/index.jsp
|
||||||
Set the environment variable ALT_BOOTDIR to the location of this JDK 6.
|
Set the environment variable ALT_BOOTDIR to the location of JDK 6.
|
||||||
|
|
||||||
2. Download and install the Binary Plugs for the most recent JDK7 from
|
2. Check the sanity of doing a build with your current system:
|
||||||
http://download.java.net/openjdk/jdk7/
|
|
||||||
Set the environment variable ALT_BINARY_PLUGS_PATH to the location of
|
|
||||||
these binary plugs.
|
|
||||||
|
|
||||||
3. Check the sanity of doing a build with the current machine:
|
|
||||||
gnumake sanity
|
gnumake sanity
|
||||||
See README-builds.html if you run into problems.
|
See README-builds.html if you run into problems.
|
||||||
|
|
||||||
4. Do a complete build of the jdk:
|
3. Do a complete build of the OpenJDK:
|
||||||
gnumake all
|
gnumake all
|
||||||
The resulting JDK image should be found in build/*/j2sdk-image
|
The resulting JDK image should be found in build/*/j2sdk-image
|
||||||
|
|
||||||
|
|
1186
README-builds.html
1186
README-builds.html
File diff suppressed because it is too large
Load diff
33
get_source.sh
Normal file
33
get_source.sh
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
|
#
|
||||||
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License version 2 only, as
|
||||||
|
# published by the Free Software Foundation. Oracle designates this
|
||||||
|
# particular file as subject to the "Classpath" exception as provided
|
||||||
|
# by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
#
|
||||||
|
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
# version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
# accompanied this code).
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License version
|
||||||
|
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
|
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
|
# or visit www.oracle.com if you need additional information or have any
|
||||||
|
# questions.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Get clones of all nested repositories
|
||||||
|
sh ./make/scripts/hgforest.sh clone
|
||||||
|
|
||||||
|
# Update all existing repositories to the latest sources
|
||||||
|
sh ./make/scripts/hgforest.sh pull -u
|
||||||
|
|
104
make/scripts/hgforest.sh
Normal file
104
make/scripts/hgforest.sh
Normal file
|
@ -0,0 +1,104 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
|
#
|
||||||
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License version 2 only, as
|
||||||
|
# published by the Free Software Foundation.
|
||||||
|
#
|
||||||
|
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
# version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
# accompanied this code).
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License version
|
||||||
|
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
|
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
|
# or visit www.oracle.com if you need additional information or have any
|
||||||
|
# questions.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Shell script for a fast parallel forest command
|
||||||
|
|
||||||
|
tmp=/tmp/forest.$$
|
||||||
|
rm -f -r ${tmp}
|
||||||
|
mkdir -p ${tmp}
|
||||||
|
|
||||||
|
# Remove tmp area on A. B. Normal termination
|
||||||
|
trap 'rm -f -r ${tmp}' KILL
|
||||||
|
trap 'rm -f -r ${tmp}' EXIT
|
||||||
|
|
||||||
|
# Only look in specific locations for possible forests (avoids long searches)
|
||||||
|
pull_default=""
|
||||||
|
if [ "$1" = "clone" -o "$1" = "fclone" ] ; then
|
||||||
|
subrepos="corba jaxp jaxws langtools jdk hotspot"
|
||||||
|
if [ -f .hg/hgrc ] ; then
|
||||||
|
pull_default=`hg paths default`
|
||||||
|
fi
|
||||||
|
if [ "${pull_default}" = "" ] ; then
|
||||||
|
echo "ERROR: Need initial clone with 'hg paths default' defined"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
repos=""
|
||||||
|
for i in ${subrepos} ; do
|
||||||
|
if [ ! -f ${i}/.hg/hgrc ] ; then
|
||||||
|
repos="${repos} ${i}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
at_a_time=2
|
||||||
|
else
|
||||||
|
hgdirs=`ls -d ./.hg ./*/.hg ./*/*/.hg ./*/*/*/.hg ./*/*/*/*/.hg 2>/dev/null`
|
||||||
|
# Derive repository names from the .hg directory locations
|
||||||
|
repos=""
|
||||||
|
for i in ${hgdirs} ; do
|
||||||
|
repos="${repos} `echo ${i} | sed -e 's@/.hg$@@'`"
|
||||||
|
done
|
||||||
|
at_a_time=8
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Any repos to deal with?
|
||||||
|
if [ "${repos}" = "" ] ; then
|
||||||
|
echo "No repositories to process."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Echo out what repositories we will process
|
||||||
|
echo "# Repos: ${repos}"
|
||||||
|
|
||||||
|
# Run the supplied command on all repos in parallel, save output until end
|
||||||
|
n=0
|
||||||
|
for i in ${repos} ; do
|
||||||
|
echo "Starting on ${i}"
|
||||||
|
n=`expr ${n} '+' 1`
|
||||||
|
(
|
||||||
|
(
|
||||||
|
if [ "$1" = "clone" -o "$1" = "fclone" ] ; then
|
||||||
|
cline="hg $* ${pull_default}/${i} ${i}"
|
||||||
|
echo "# ${cline}"
|
||||||
|
( eval "${cline}" )
|
||||||
|
else
|
||||||
|
cline="hg $*"
|
||||||
|
echo "# cd ${i} && ${cline}"
|
||||||
|
( cd ${i} && eval "${cline}" )
|
||||||
|
fi
|
||||||
|
echo "# exit code $?"
|
||||||
|
) > ${tmp}/repo.${n} 2>&1 ; cat ${tmp}/repo.${n} ) &
|
||||||
|
if [ `expr ${n} '%' ${at_a_time}` -eq 0 ] ; then
|
||||||
|
sleep 5
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Wait for all hg commands to complete
|
||||||
|
wait
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
rm -f -r ${tmp}
|
||||||
|
|
||||||
|
# Terminate with exit 0 all the time (hard to know when to say "failed")
|
||||||
|
exit 0
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue