Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8
提交
bff706ff
D
dragonwell8
项目概览
openanolis
/
dragonwell8
通知
5
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
bff706ff
编写于
12月 24, 2010
作者:
O
ohair
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
f3438857
1a912a0c
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
798 addition
and
661 deletion
+798
-661
Makefile
Makefile
+1
-12
README
README
+24
-14
README-builds.html
README-builds.html
+636
-635
get_source.sh
get_source.sh
+33
-0
make/scripts/hgforest.sh
make/scripts/hgforest.sh
+104
-0
未找到文件。
Makefile
浏览文件 @
bff706ff
...
...
@@ -156,12 +156,6 @@ ifeq ($(BUILD_DEPLOY), true)
clobber
::
deploy-clobber
endif
ifeq
($(BUILD_JDK), true)
ifeq
($(BUNDLE_RULES_AVAILABLE), true)
generic_build_repo_series
::
openjdk-binary-plugs-bundles
endif
endif
# The debug build, fastdebug or debug. Needs special handling.
# Note that debug builds do NOT do INSTALL steps, but must be done
# after the product build and before the INSTALL step of the product build.
...
...
@@ -301,7 +295,6 @@ ifneq ($(SKIP_OPENJDK_BUILD), true)
ifeq
($(BUILD_JDK), true)
ifeq
($(BUNDLE_RULES_AVAILABLE), true)
OPENJDK_PLUGS
=
$(ABS_OUTPUTDIR)
/
$(OPENJDK_BINARY_PLUGS_INAME)
OPENJDK_OUTPUTDIR
=
$(ABS_OUTPUTDIR)
/open-output
OPENJDK_BUILD_NAME
\
=
openjdk-$(JDK_MINOR_VERSION)-$(BUILD_NUMBER)-$(PLATFORM)-$(ARCH)-$(BUNDLE_DATE)
...
...
@@ -330,7 +323,6 @@ openjdk_build:
GENERATE_DOCS
=
false
\
ALT_JDK_DEVTOOLS_DIR
=
$(JDK_DEVTOOLS_DIR)
\
ALT_OUTPUTDIR
=
$(OPENJDK_OUTPUTDIR)
\
ALT_BINARY_PLUGS_PATH
=
$(OPENJDK_PLUGS)
\
ALT_BOOTDIR
=
$(OPENJDK_BOOTDIR)
\
ALT_JDK_IMPORT_PATH
=
$(OPENJDK_IMPORTJDK)
\
product_build
)
...
...
@@ -456,7 +448,6 @@ CACERTS_FILE.desc = Location of certificates file
DEVTOOLS_PATH.desc
=
Directory containing zip and gnumake
CUPS_HEADERS_PATH.desc
=
Include directory location
for
CUPS header files
DXSDK_PATH.desc
=
Root directory of DirectX SDK
MSDEVTOOLS_PATH.desc
=
Root directory of VC++ tools
(
e.g. rc.exe
)
MSVCRT_DLL_PATH.desc
=
Directory containing mscvrt.dll
# Make variables to print out (description and value)
...
...
@@ -487,12 +478,10 @@ ifeq ($(PLATFORM), windows)
VARIABLE_PRINTVAL_LIST
+=
\
DXSDK_PATH
\
MSDEVTOOLS_PATH
\
MSVCRT_DLL_PATH
VARIABLE_CHECKDIR_LIST
+=
\
DXSDK_PATH
\
MSDEVTOOLS_PATH
\
MSVCRT_DLL_PATH
endif
...
...
@@ -548,7 +537,7 @@ examples_help:
"
################################################################
# Source
and binary plug
bundling
# Source bundling
################################################################
ifeq
($(BUNDLE_RULES_AVAILABLE), true)
include
$(BUNDLE_RULES)
...
...
README
浏览文件 @
bff706ff
README:
This file should be located at the top of the OpenJDK Mercurial repository
forest. This top or enclosing repository will include a "make" directory,
and a Makefile at the very top of the repository.
It should also include the 6 repositories: "jdk", "hotspot", "langtools",
"corba", "jaxws" and "jaxp".
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/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.
Simple Build Instructions:
1. 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 this JDK 6.
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
2. Download and install the Binary Plugs for the most recent JDK7 from
http://download.java.net/openjdk/jdk7/
Set the environment variable ALT_BINARY_PLUGS_PATH to the location of
these binary plugs.
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.
3. Check the sanity of doing a build with the current machine
:
2. Check the sanity of doing a build with your current system
:
gnumake sanity
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
The resulting JDK image should be found in build/*/j2sdk-image
...
...
README-builds.html
浏览文件 @
bff706ff
...
...
@@ -37,6 +37,11 @@
<blockquote>
<ul>
<li><a
href=
"#introduction"
>
Introduction
</a></li>
<li><a
href=
"#hg"
>
Use of Mercurial
</a>
<ul>
<li><a
href=
"#get_source"
>
Getting the Source
</a></li>
</ul>
</li>
<li><a
href=
"#MBE"
>
Minimum Build Environments
</a></li>
<li><a
href=
"#SDBE"
>
Specific Developer Build Environments
</a>
<ul>
...
...
@@ -56,10 +61,9 @@
<li><a
href=
"#linux"
>
Basic Linux System Setup
</a>
</li>
<li><a
href=
"#solaris"
>
Basic Solaris System Setup
</a>
</li>
<li><a
href=
"#windows"
>
Basic Windows System Setup
</a>
</li>
<li><a
href=
"#dependencies"
>
Build Dependencies
</a>
</li>
<li><a
href=
"#dependencies"
>
Build Dependencies
</a>
<ul>
<li><a
href=
"#bootjdk"
>
Bootstrap JDK
</a>
</li>
<li><a
href=
"#binaryplugs"
>
Binary Plugs
</a>
</li>
<li><a
href=
"#importjdk"
>
Optional Import JDK
</a>
</li>
<li><a
href=
"#ant"
>
Ant
</a>
</li>
<li><a
href=
"#cacerts"
>
Certificate Authority File (cacert)
</a>
</li>
...
...
@@ -92,6 +96,7 @@
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li><a
href=
"#creating"
>
Creating the Build
</a>
</li>
...
...
@@ -100,6 +105,76 @@
<li><a
href=
"#troubleshooting"
>
Troubleshooting
</a></li>
</ul>
</blockquote>
<!-- ------------------------------------------------------ -->
<hr>
<h2><a
name=
"hg"
>
Use of Mercurial
</a></h2>
<blockquote>
The OpenJDK sources are maintained with the revision control system
<a
href=
"http://mercurial.selenic.com/wiki/Mercurial"
>
Mercurial
</a>
.
If you are new to Mercurial, please see the
<a
href=
"http://mercurial.selenic.com/wiki/BeginnersGuides"
>
Beginner Guides
</a>
or refer to the
<a
href=
""
http:
//
hgbook.red-bean.com
/"
>
Mercurial Book
</a>
.
The first few chapters of the book provide an excellent overview of
Mercurial, what it is and how it works.
<br>
For using Mercurial with the OpenJDK refer to the
<a
href=
""
http:
//
openjdk.java.net
/
guide
/
repositories.html#installConfig
"
>
Developer Guide: Installing and Configuring Mercurial
</a>
section for more information.
The Forest Extension is not part of the Mercurial install,
and is optional,
but can be obtained with the following commands:
<blockquote>
<tt>
hg clone https://bitbucket.org/pmezard/hgforest-crew/overview/
<i>
YourHgForest
</i>
</tt>
</blockquote>
Once you have the file
<tt>
forest.py
</tt>
, you need to add these
lines to your
<tt>
${HOME}/.hgrc
</tt>
file:
<blockquote>
<tt>
[extensions]
<br>
forest =
<i>
YourHgForest
</i>
/forest.py
</tt>
</blockquote>
<!-- ------------------------------------------------------ -->
<h3><a
name=
"get_source"
>
Getting the Source
</a></h3>
<blockquote>
To get the entire set of OpenJDK Mercurial repositories
using the Forest Extension:
<blockquote>
<tt>
hg fclone http://openjdk.java.net/jdk7/jdk7
<i>
YourOpenJDK
</i>
</tt>
</blockquote>
To get the entire set of OpenJDK Mercurial repositories
without using the Forest Extension:
<blockquote>
<tt>
hg clone http://openjdk.java.net/jdk7/jdk7
<i>
YourOpenJDK
</i>
<br>
cd
<i>
YourOpenJDK
</i>
<br>
sh ./get_source.sh
</tt>
</blockquote>
Once you have all the repositories, the
script
<tt>
make/scripts/hgforest.sh
</tt>
can be used to repeat the same
<tt>
hg
</tt>
command on every repository in the forest, e.g.
<blockquote>
<tt>
cd
<i>
YourOpenJDK
</i>
<br>
sh ./make/scripts/hgforest.sh pull -u
</tt>
</blockquote>
You may find this script
<tt>
make/scripts/hgforest.sh
</tt>
faster
than the
<tt>
hg
</tt>
forest commands provided by the
Forest Extension.
</blockquote>
</blockquote>
<!-- ------------------------------------------------------ -->
<hr>
<h2><a
name=
"MBE"
>
Minimum Build Environments
</a></h2>
...
...
@@ -628,11 +703,6 @@
<a
href=
"#bootjdk"
>
Bootstrap JDK
</a>
, set
<tt><a
href=
"#ALT_BOOTDIR"
>
ALT_BOOTDIR
</a></tt>
.
</li>
<li>
Install the
<a
href=
"#binaryplugs"
>
Binary Plugs
</a>
, set
<tt><a
href=
"#ALT_BINARY_PLUGS_PATH"
>
ALT_BINARY_PLUGS_PATH
</a></tt>
.
</li>
<li>
<a
href=
"#importjdk"
>
Optional Import JDK
</a>
, set
<tt><a
href=
"#ALT_JDK_IMPORT_PATH"
>
ALT_JDK_IMPORT_PATH
</a></tt>
.
...
...
@@ -687,11 +757,6 @@
<a
href=
"#bootjdk"
>
Bootstrap JDK
</a>
, set
<tt><a
href=
"#ALT_BOOTDIR"
>
ALT_BOOTDIR
</a></tt>
.
</li>
<li>
Install the
<a
href=
"#binaryplugs"
>
Binary Plugs
</a>
, set
<tt><a
href=
"#ALT_BINARY_PLUGS_PATH"
>
ALT_BINARY_PLUGS_PATH
</a></tt>
.
</li>
<li>
<a
href=
"#importjdk"
>
Optional Import JDK
</a>
, set
<tt><a
href=
"#ALT_JDK_IMPORT_PATH"
>
ALT_JDK_IMPORT_PATH
</a></tt>
.
...
...
@@ -779,11 +844,6 @@
<a
href=
"#bootjdk"
>
Bootstrap JDK
</a>
, set
<tt><a
href=
"#ALT_BOOTDIR"
>
ALT_BOOTDIR
</a></tt>
.
</li>
<li>
Install the
<a
href=
"#binaryplugs"
>
Binary Plugs
</a>
, set
<tt><a
href=
"#ALT_BINARY_PLUGS_PATH"
>
ALT_BINARY_PLUGS_PATH
</a></tt>
..
</li>
<li>
<a
href=
"#importjdk"
>
Optional Import JDK
</a>
, set
<tt><a
href=
"#ALT_JDK_IMPORT_PATH"
>
ALT_JDK_IMPORT_PATH
</a></tt>
.
...
...
@@ -849,38 +909,6 @@
the makefiles will look in that location for a JDK it can use.
</blockquote>
<!-- ------------------------------------------------------ -->
<h4><a
name=
"binaryplugs"
>
Binary Plugs
</a></h4>
<blockquote>
Not all of the source code that makes up the JDK is available
under an open-source license.
This is a temporary situation and these binary plugs will be
replaced with fully open source replacements as soon as possible.
So currently, in order to build a complete OpenJDK image,
you must first download and install the appropriate
binary plug bundles for the OpenJDK, go to the
<a
href=
"http://openjdk.java.net"
target=
"_blank"
>
OpenJDK
</a>
site and select
the
"
<b>
Bundles(7)
</b>
"
link and download the binaryplugs for
your particular platform.
The file downloaded is a jar file that must be extracted by running
the jar file with:
<blockquote>
<pre>
<tt><b>
java -jar jdk-7-ea-plug-b
<i>
nn
</i>
-
<i>
os
</i>
-
<i>
arch
</i>
-
<i>
dd
</i>
_
<i>
month
</i>
_
<i>
year
</i>
.jar
</b></tt>
</pre>
</blockquote>
A prompt will be issued for acceptance of these binary plug files.
During the OpenJDK build process these "binary plugs"
for the encumbered components will be copied into your
resulting OpenJDK binary build image.
These binary plug files are only for the purpose of
building an OpenJDK binary.
Make sure you set
<tt><a
href=
"#ALT_BINARY_PLUGS_PATH"
>
ALT_BINARY_PLUGS_PATH
</a></tt>
to the root of this installation.
</blockquote>
<!-- ------------------------------------------------------ -->
<h4><a
name=
"importjdk"
>
Optional Import JDK
</a></h4>
<blockquote>
The
<tt><a
href=
"#ALT_JDK_IMPORT_PATH"
>
ALT_JDK_IMPORT_PATH
</a></tt>
...
...
@@ -1018,20 +1046,20 @@
</blockquote>
<strong><a
name=
"msvc32"
>
Windows i586: Microsoft Visual Studio 2010 Compilers
</a></strong>
<blockquote>
<p>
<b>
BEGIN WARNING
</b>
: At this time (Spring/Summer 2010) JDK 7 is starting a transition to
use the newest VS2010 Microsoft compilers. These build instructions are updated
to show where we are going. We have a QA process to go through before
official builds actually use VS2010. So for now, official builds are
still using VS2003. No other compilers are known to build the entire JDK,
including non-open portions.
So for now you should be able to build with either VS2003 or VS2010.
We do not guarantee that VS2008 will work, although there is sufficient
makefile support to make at least basic JDK builds plausible.
Visual Studio 2010 Express compilers are now able to build all the
open source repositories, but this is 32 bit only. To build 64 bit
Windows binaries use the the 7.1 Windows SDK.
<b>
END WARNING.
</b>
<p>
<p>
<b>
BEGIN WARNING
</b>
: At this time (Spring/Summer 2010) JDK 7 is starting a transition to
use the newest VS2010 Microsoft compilers. These build instructions are updated
to show where we are going. We have a QA process to go through before
official builds actually use VS2010. So for now, official builds are
still using VS2003. No other compilers are known to build the entire JDK,
including non-open portions.
So for now you should be able to build with either VS2003 or VS2010.
We do not guarantee that VS2008 will work, although there is sufficient
makefile support to make at least basic JDK builds plausible.
Visual Studio 2010 Express compilers are now able to build all the
open source repositories, but this is 32 bit only. To build 64 bit
Windows binaries use the the 7.1 Windows SDK.
<b>
END WARNING.
</b>
<p>
The 32-bit OpenJDK Windows build
requires
Microsoft Visual Studio C++ 2010 (VS2010) Professional
...
...
@@ -1071,20 +1099,20 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
<strong><a
name=
"mssdk64"
>
Windows x64: Microsoft Windows 7.1 SDK 64 bit compilers.
</a></strong>
For a free alternative for 64 bit builds, use the 7.1 SDK.
Microsoft say that to set up your paths for this run
<pre>
<pre>
c:\Program Files\Microsoft SDKs\Windows\v7.1\bin\setenv.cmd /x64.
</pre>
</pre>
What was tested is just directly setting up LIB, INCLUDE,
PATH and based on the installation directories using the
DOS short name appropriate for the system, (you will
need to set them for yours, not just blindly copy this) eg :
<pre>
<pre>
set VSINSTALLDIR=c:\PROGRA~2\MICROS~1.0
set WindowsSdkDir=c:\PROGRA~1\MICROS~1\Windows\v7.1
set PATH=%VSINSTALLDIR%\vc\bin\amd64;%VSINSTALLDIR%\Common7\IDE;%WindowsSdkDir%\bin;%PATH%
set INCLUDE=%VSINSTALLDIR%\vc\include;%WindowsSdkDir%\include
set LIB=%VSINSTALLDIR%\vc\lib\amd64;%WindowsSdkDir%\lib\x64
</pre>
</pre>
</blockquote>
<!-- ------------------------------------------------------ -->
<h4><a
name=
"zip"
>
Zip and Unzip
</a></h4>
...
...
@@ -1450,16 +1478,18 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
The default output directory is
<tt>
build/
<i>
platform
</i></tt>
,
where
<tt><i>
platform
</i></tt>
is one of
<tt><ul>
<li>
solaris-sparc
</li>
<li>
solaris-sparcv9
</li>
<li>
solaris-i586
</li>
<li>
solaris-amd64
</li>
<li>
linux-i586
</li>
<li>
linux-amd64
</li>
<li>
windows-i586
</li>
<li>
windows-amd64
</li>
</ul></tt>
<blockquote>
<ul>
<li><tt>
solaris-sparc
</tt></li>
<li><tt>
solaris-sparcv9
</tt></li>
<li><tt>
solaris-i586
</tt></li>
<li><tt>
solaris-amd64
</tt></li>
<li><tt>
linux-i586
</tt></li>
<li><tt>
linux-amd64
</tt></li>
<li><tt>
windows-i586
</tt></li>
<li><tt>
windows-amd64
</tt></li>
</ul>
</blockquote>
In particular, the
<tt>
build/
<i>
platform
</i>
/j2sdk-image/bin
</tt>
directory should contain executables for the
...
...
@@ -1523,14 +1553,6 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
You should always install your own local Bootstrap JDK and
always set
<tt>
ALT_BOOTDIR
</tt>
explicitly.
</dd>
<dt><a
name=
"ALT_BINARY_PLUGS_PATH"
><tt>
ALT_BINARY_PLUGS_PATH
</tt></a></dt>
<dd>
The location of the binary plugs installation.
See
<a
href=
"#binaryplugs"
>
Binary Plugs
</a>
for more information.
You should always have a local copy of a
recent Binary Plugs install image
and set this variable to that location.
</dd>
<dt><a
name=
"ALT_JDK_IMPORT_PATH"
><tt>
ALT_JDK_IMPORT_PATH
</tt></a></dt>
<dd>
The location of a previously built JDK installation.
...
...
@@ -1627,36 +1649,19 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
Where each of these directories contain the import JDK image
for that platform.
</dd>
<dt><a
name=
"ALT_BUILD_BINARY_PLUGS_PATH"
><tt>
ALT_BUILD_BINARY_PLUGS_PATH
</tt></a></dt>
<dd>
These are useful in managing builds on multiple platforms.
The default network location for all of the binary plug images
for all platforms.
If
<tt><a
href=
"#ALT_BINARY_PLUGS_PATH"
>
ALT_BINARY_PLUGS_PATH
</a></tt>
is not set, this directory will be used and should contain
the following directories:
<tt>
solaris-sparc
</tt>
,
<tt>
solaris-i586
</tt>
,
<tt>
solaris-sparcv9
</tt>
,
<tt>
solaris-amd64
</tt>
,
<tt>
linux-i586
</tt>
,
<tt>
linux-amd64
</tt>
,
<tt>
windows-i586
</tt>
,
and
<tt>
windows-amd64
</tt>
.
Where each of these directories contain the binary plugs image
for that platform.
</dd>
<dt><strong>
Windows specific:
</strong></dt>
<dd>
<dl>
<dt><a
name=
"ALT_
MSDEVTOOLS_PATH"
><tt>
ALT_MSDEVTOOLS_PATH
</tt></a>
</dt>
<dt><a
name=
"ALT_
WINDOWSSDKDIR"
><tt>
ALT_WINDOWSSDKDIR
</tt></a>
</dt>
<dd>
The location of the
Microsoft Visual Studio
tools 'bin' directory.
The default is usually derived from
<a
href=
"#ALT_COMPILER_PATH"
><tt>
ALT_COMPILER_PATH
</tt></a>
.
Microsoft Windows SDK where some tools will be
located.
The default is whatever WINDOWSSDKDIR is set to
(or WindowsSdkDir) or the path
<pre>
c:\Program Files\Microsoft SDKs\Windows\v6.1a
</pre>
</dd>
<dt><tt><a
name=
"ALT_DXSDK_PATH"
>
ALT_DXSDK_PATH
</a></tt>
</dt>
<dd>
...
...
@@ -1781,18 +1786,15 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
performance reasons.
<p>
To completely disable SELinux:
<tt>
<ol>
<li>
$ su root
</li>
<li>
# system-config-securitylevel
</li>
<li>
In the window that appears, select the SELinux tab
</li>
<li>
Disable SELinux
</li>
<li><tt>
$ su root
</tt>
</li>
<li><tt>
# system-config-securitylevel
</tt>
</li>
<li><tt>
In the window that appears, select the SELinux tab
</tt>
</li>
<li><tt>
Disable SELinux
</tt>
</li>
</ol>
</tt>
<p>
Alternatively, instead of completely disabling it you could
disable just this one check.
<tt>
<ol>
<li>
Select System->Administration->SELinux Management
</li>
<li>
In the SELinux Management Tool which appears,
...
...
@@ -1801,7 +1803,6 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
<li>
Check the first item, labeled
"Allow all unconfined executables to use libraries requiring text relocation ..."
</li>
</ol>
</tt>
</blockquote>
</li>
<li>
...
...
get_source.sh
0 → 100644
浏览文件 @
bff706ff
#!/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
make/scripts/hgforest.sh
0 → 100644
浏览文件 @
bff706ff
#!/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
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录