提交 bff706ff 编写于 作者: O ohair

Merge

...@@ -156,12 +156,6 @@ ifeq ($(BUILD_DEPLOY), true) ...@@ -156,12 +156,6 @@ ifeq ($(BUILD_DEPLOY), true)
clobber:: deploy-clobber clobber:: deploy-clobber
endif 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. # The debug build, fastdebug or debug. Needs special handling.
# Note that debug builds do NOT do INSTALL steps, but must be done # 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. # after the product build and before the INSTALL step of the product build.
...@@ -301,7 +295,6 @@ ifneq ($(SKIP_OPENJDK_BUILD), true) ...@@ -301,7 +295,6 @@ ifneq ($(SKIP_OPENJDK_BUILD), true)
ifeq ($(BUILD_JDK), true) ifeq ($(BUILD_JDK), true)
ifeq ($(BUNDLE_RULES_AVAILABLE), true) ifeq ($(BUNDLE_RULES_AVAILABLE), true)
OPENJDK_PLUGS=$(ABS_OUTPUTDIR)/$(OPENJDK_BINARY_PLUGS_INAME)
OPENJDK_OUTPUTDIR=$(ABS_OUTPUTDIR)/open-output OPENJDK_OUTPUTDIR=$(ABS_OUTPUTDIR)/open-output
OPENJDK_BUILD_NAME \ OPENJDK_BUILD_NAME \
= openjdk-$(JDK_MINOR_VERSION)-$(BUILD_NUMBER)-$(PLATFORM)-$(ARCH)-$(BUNDLE_DATE) = openjdk-$(JDK_MINOR_VERSION)-$(BUILD_NUMBER)-$(PLATFORM)-$(ARCH)-$(BUNDLE_DATE)
...@@ -330,7 +323,6 @@ openjdk_build: ...@@ -330,7 +323,6 @@ openjdk_build:
GENERATE_DOCS=false \ GENERATE_DOCS=false \
ALT_JDK_DEVTOOLS_DIR=$(JDK_DEVTOOLS_DIR) \ ALT_JDK_DEVTOOLS_DIR=$(JDK_DEVTOOLS_DIR) \
ALT_OUTPUTDIR=$(OPENJDK_OUTPUTDIR) \ ALT_OUTPUTDIR=$(OPENJDK_OUTPUTDIR) \
ALT_BINARY_PLUGS_PATH=$(OPENJDK_PLUGS) \
ALT_BOOTDIR=$(OPENJDK_BOOTDIR) \ ALT_BOOTDIR=$(OPENJDK_BOOTDIR) \
ALT_JDK_IMPORT_PATH=$(OPENJDK_IMPORTJDK) \ ALT_JDK_IMPORT_PATH=$(OPENJDK_IMPORTJDK) \
product_build ) product_build )
...@@ -456,7 +448,6 @@ CACERTS_FILE.desc = Location of certificates file ...@@ -456,7 +448,6 @@ CACERTS_FILE.desc = Location of certificates file
DEVTOOLS_PATH.desc = Directory containing zip and gnumake DEVTOOLS_PATH.desc = Directory containing zip and gnumake
CUPS_HEADERS_PATH.desc = Include directory location for CUPS header files CUPS_HEADERS_PATH.desc = Include directory location for CUPS header files
DXSDK_PATH.desc = Root directory of DirectX SDK 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 MSVCRT_DLL_PATH.desc = Directory containing mscvrt.dll
# Make variables to print out (description and value) # Make variables to print out (description and value)
...@@ -487,12 +478,10 @@ ifeq ($(PLATFORM), windows) ...@@ -487,12 +478,10 @@ ifeq ($(PLATFORM), windows)
VARIABLE_PRINTVAL_LIST += \ VARIABLE_PRINTVAL_LIST += \
DXSDK_PATH \ DXSDK_PATH \
MSDEVTOOLS_PATH \
MSVCRT_DLL_PATH MSVCRT_DLL_PATH
VARIABLE_CHECKDIR_LIST += \ VARIABLE_CHECKDIR_LIST += \
DXSDK_PATH \ DXSDK_PATH \
MSDEVTOOLS_PATH \
MSVCRT_DLL_PATH MSVCRT_DLL_PATH
endif endif
...@@ -548,7 +537,7 @@ examples_help: ...@@ -548,7 +537,7 @@ examples_help:
" "
################################################################ ################################################################
# Source and binary plug bundling # Source bundling
################################################################ ################################################################
ifeq ($(BUNDLE_RULES_AVAILABLE), true) ifeq ($(BUNDLE_RULES_AVAILABLE), true)
include $(BUNDLE_RULES) include $(BUNDLE_RULES)
......
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
......
...@@ -24,12 +24,12 @@ ...@@ -24,12 +24,12 @@
<h2><a name="introduction">Introduction</a></h2> <h2><a name="introduction">Introduction</a></h2>
<blockquote> <blockquote>
<p> <p>
This README file contains build instructions for the This README file contains build instructions for the
<a href="http://openjdk.java.net" target="_blank">OpenJDK</a>. <a href="http://openjdk.java.net" target="_blank">OpenJDK</a>.
Building the source code for the Building the source code for the
OpenJDK OpenJDK
requires requires
a certain degree of technical expertise. a certain degree of technical expertise.
</blockquote> </blockquote>
<!-- ------------------------------------------------------ --> <!-- ------------------------------------------------------ -->
<hr> <hr>
...@@ -37,18 +37,23 @@ ...@@ -37,18 +37,23 @@
<blockquote> <blockquote>
<ul> <ul>
<li><a href="#introduction">Introduction</a></li> <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="#MBE">Minimum Build Environments</a></li>
<li><a href="#SDBE">Specific Developer Build Environments</a> <li><a href="#SDBE">Specific Developer Build Environments</a>
<ul> <ul>
<li><a href="#fedora">Fedora Linux</a> </li> <li><a href="#fedora">Fedora Linux</a> </li>
<li><a href="#centos">CentOS Linux</a> </li> <li><a href="#centos">CentOS Linux</a> </li>
<li><a href="#debian">Debian GNU/Linux</a></li> <li><a href="#debian">Debian GNU/Linux</a></li>
<li><a href="#ubuntu">Ubuntu Linux</a> </li> <li><a href="#ubuntu">Ubuntu Linux</a> </li>
<li><a href="#opensuse">OpenSUSE</a></li> <li><a href="#opensuse">OpenSUSE</a></li>
<li><a href="#mandriva">Mandriva</a></li> <li><a href="#mandriva">Mandriva</a></li>
<li><a href="#opensolaris">OpenSolaris</a></li> <li><a href="#opensolaris">OpenSolaris</a></li>
</ul> </ul>
</li> </li>
<li><a href="#directories">Source Directory Structure</a> </li> <li><a href="#directories">Source Directory Structure</a> </li>
<li><a href="#building">Build Information</a> <li><a href="#building">Build Information</a>
<ul> <ul>
...@@ -56,42 +61,42 @@ ...@@ -56,42 +61,42 @@
<li><a href="#linux">Basic Linux System Setup</a> </li> <li><a href="#linux">Basic Linux System Setup</a> </li>
<li><a href="#solaris">Basic Solaris 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="#windows">Basic Windows System Setup</a> </li>
<li><a href="#dependencies">Build Dependencies</a> </li> <li><a href="#dependencies">Build Dependencies</a>
<ul> <ul>
<li><a href="#bootjdk">Bootstrap JDK</a> </li> <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="#importjdk">Optional Import JDK</a> </li> <li><a href="#ant">Ant</a> </li>
<li><a href="#ant">Ant</a> </li> <li><a href="#cacerts">Certificate Authority File (cacert)</a> </li>
<li><a href="#cacerts">Certificate Authority File (cacert)</a> </li> <li><a href="#compilers">Compilers</a>
<li><a href="#compilers">Compilers</a> <ul>
<ul> <li><a href="#msvc32">Microsoft Visual Studio Professional/Express for 32 bit</a> </li>
<li><a href="#msvc32">Microsoft Visual Studio Professional/Express for 32 bit</a> </li> <li><a href="#msvc64">Microsoft Visual Studio Professional for 64 bit</a> </li>
<li><a href="#msvc64">Microsoft Visual Studio Professional for 64 bit</a> </li> <li><a href="#mssdk64">Microsoft Windows SDK for 64 bit</a> </li>
<li><a href="#mssdk64">Microsoft Windows SDK for 64 bit</a> </li> <li><a href="#gcc">Linux gcc/binutils</a> </li>
<li><a href="#gcc">Linux gcc/binutils</a> </li> <li><a href="#studio">Sun Studio</a> </li>
<li><a href="#studio">Sun Studio</a> </li> </ul>
</ul> </li>
</li> <li><a href="#zip">Zip and Unzip</a> </li>
<li><a href="#zip">Zip and Unzip</a> </li> <li><a href="#freetype">FreeType2 Fonts</a> </li>
<li><a href="#freetype">FreeType2 Fonts</a> </li> <li>Linux and Solaris:
<li>Linux and Solaris: <ul>
<ul> <li><a href="#cups">CUPS Include files</a> </li>
<li><a href="#cups">CUPS Include files</a> </li> <li><a href="#xrender">XRender Include files</a></li>
<li><a href="#xrender">XRender Include files</a></li> </ul>
</ul> </li>
</li> <li>Linux only:
<li>Linux only: <ul>
<ul> <li><a href="#alsa">ALSA files</a> </li>
<li><a href="#alsa">ALSA files</a> </li> </ul>
</ul> </li>
</li> <li>Windows only:
<li>Windows only: <ul>
<ul> <li>Unix Command Tools (<a href="#cygwin">CYGWIN</a>)</li>
<li>Unix Command Tools (<a href="#cygwin">CYGWIN</a>)</li> <li><a href="#dxsdk">DirectX 9.0 SDK</a> </li>
<li><a href="#dxsdk">DirectX 9.0 SDK</a> </li> </ul>
</ul> </li>
</li> </ul>
</ul> </li>
</ul> </ul>
</li> </li>
<li><a href="#creating">Creating the Build</a> </li> <li><a href="#creating">Creating the Build</a> </li>
...@@ -100,6 +105,76 @@ ...@@ -100,6 +105,76 @@
<li><a href="#troubleshooting">Troubleshooting</a></li> <li><a href="#troubleshooting">Troubleshooting</a></li>
</ul> </ul>
</blockquote> </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> <hr>
<h2><a name="MBE">Minimum Build Environments</a></h2> <h2><a name="MBE">Minimum Build Environments</a></h2>
...@@ -116,8 +191,8 @@ ...@@ -116,8 +191,8 @@
specific platforms, and in fact creating these specific platforms specific platforms, and in fact creating these specific platforms
may be difficult due to the age of some of this software. may be difficult due to the age of some of this software.
<p> <p>
The minimum OS and C/C++ compiler versions needed for building the The minimum OS and C/C++ compiler versions needed for building the
OpenJDK: OpenJDK:
<p> <p>
<table border="1"> <table border="1">
<thead> <thead>
...@@ -146,7 +221,7 @@ ...@@ -146,7 +221,7 @@
<td>Solaris 10u2 + patches <td>Solaris 10u2 + patches
<br> <br>
See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank"> See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
SunSolve</a> for patch downloads. SunSolve</a> for patch downloads.
</td> </td>
<td>Sun Studio 12 Update 1 + patches</td> <td>Sun Studio 12 Update 1 + patches</td>
<td>JDK 6u14 FCS </td> <td>JDK 6u14 FCS </td>
...@@ -156,7 +231,7 @@ ...@@ -156,7 +231,7 @@
<td>Solaris 10u2 + patches <td>Solaris 10u2 + patches
<br> <br>
See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank"> See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
SunSolve</a> for patch downloads. SunSolve</a> for patch downloads.
</td> </td>
<td>Sun Studio 12 Update 1 + patches</td> <td>Sun Studio 12 Update 1 + patches</td>
<td>JDK 6u14 FCS </td> <td>JDK 6u14 FCS </td>
...@@ -166,7 +241,7 @@ ...@@ -166,7 +241,7 @@
<td>Solaris 10u2 + patches <td>Solaris 10u2 + patches
<br> <br>
See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank"> See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
SunSolve</a> for patch downloads. SunSolve</a> for patch downloads.
</td> </td>
<td>Sun Studio 12 Update 1 + patches</td> <td>Sun Studio 12 Update 1 + patches</td>
<td>JDK 6u14 FCS </td> <td>JDK 6u14 FCS </td>
...@@ -176,7 +251,7 @@ ...@@ -176,7 +251,7 @@
<td>Solaris 10u2 + patches <td>Solaris 10u2 + patches
<br> <br>
See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank"> See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
SunSolve</a> for patch downloads. SunSolve</a> for patch downloads.
</td> </td>
<td>Sun Studio 12 Update 1 + patches</td> <td>Sun Studio 12 Update 1 + patches</td>
<td>JDK 6u14 FCS </td> <td>JDK 6u14 FCS </td>
...@@ -195,14 +270,14 @@ ...@@ -195,14 +270,14 @@
</tr> </tr>
</tbody> </tbody>
</table> </table>
<p> <p>
These same sources do indeed build on many more systems than the These same sources do indeed build on many more systems than the
above older generation systems, again the above is just a minimum. above older generation systems, again the above is just a minimum.
<p> <p>
Compilation problems with newer or different C/C++ compilers is a Compilation problems with newer or different C/C++ compilers is a
common problem. common problem.
Similarly, compilation problems related to changes to the Similarly, compilation problems related to changes to the
<tt>/usr/include</tt> or system header files is also a <tt>/usr/include</tt> or system header files is also a
common problem with newer or unreleased OS versions. common problem with newer or unreleased OS versions.
Please report these types of problems as bugs so that they Please report these types of problems as bugs so that they
can be dealt with accordingly. can be dealt with accordingly.
...@@ -217,57 +292,57 @@ ...@@ -217,57 +292,57 @@
<!-- ------------------------------------------------------ --> <!-- ------------------------------------------------------ -->
<h3><a name="fedora">Fedora</a></h3> <h3><a name="fedora">Fedora</a></h3>
<blockquote> <blockquote>
<h4>Fedora 9</h4> <h4>Fedora 9</h4>
<p> <p>
<blockquote> <blockquote>
After installing <a href="http://fedoraproject.org">Fedora</a> 9 After installing <a href="http://fedoraproject.org">Fedora</a> 9
you need to install several build dependencies. The simplest you need to install several build dependencies. The simplest
way to do it is to execute the following commands as user way to do it is to execute the following commands as user
<tt>root</tt>: <tt>root</tt>:
<p/> <p/>
<code>yum-builddep java-openjdk</code> <code>yum-builddep java-openjdk</code>
<p/> <p/>
<code>yum install gcc gcc-c++</code> <code>yum install gcc gcc-c++</code>
<p/> <p/>
In addition, it's necessary to set a few environment variables for the build: In addition, it's necessary to set a few environment variables for the build:
<p/> <p/>
<code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code> <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code>
</blockquote> </blockquote>
<h4>Fedora 10</h4> <h4>Fedora 10</h4>
<p> <p>
<blockquote> <blockquote>
After installing <a href="http://fedoraproject.org">Fedora</a> 10 After installing <a href="http://fedoraproject.org">Fedora</a> 10
you need to install several build dependencies. The simplest you need to install several build dependencies. The simplest
way to do it is to execute the following commands as user way to do it is to execute the following commands as user
<tt>root</tt>: <tt>root</tt>:
<p/> <p/>
<code>yum-builddep java-1.6.0-openjdk</code> <code>yum-builddep java-1.6.0-openjdk</code>
<p/> <p/>
<code>yum install gcc gcc-c++</code> <code>yum install gcc gcc-c++</code>
<p/> <p/>
In addition, it's necessary to set a few environment variables for the build: In addition, it's necessary to set a few environment variables for the build:
<p/> <p/>
<code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code> <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code>
</blockquote> </blockquote>
<h4>Fedora 11</h4> <h4>Fedora 11</h4>
<p> <p>
<blockquote> <blockquote>
After installing <a href="http://fedoraproject.org">Fedora</a> 11 After installing <a href="http://fedoraproject.org">Fedora</a> 11
you need to install several build dependencies. The simplest you need to install several build dependencies. The simplest
way to do it is to execute the following commands as user way to do it is to execute the following commands as user
<tt>root</tt>: <tt>root</tt>:
<p/> <p/>
<code>yum-builddep java-1.6.0-openjdk</code> <code>yum-builddep java-1.6.0-openjdk</code>
<p/> <p/>
<code>yum install gcc gcc-c++</code> <code>yum install gcc gcc-c++</code>
<p/> <p/>
In addition, it's necessary to set a few environment variables for the build: In addition, it's necessary to set a few environment variables for the build:
<p/> <p/>
<code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code> <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code>
</blockquote> </blockquote>
</blockquote> </blockquote>
<!-- ------------------------------------------------------ --> <!-- ------------------------------------------------------ -->
<h3><a name="centos">CentOS 5.2</a></h3> <h3><a name="centos">CentOS 5.2</a></h3>
...@@ -285,7 +360,7 @@ ...@@ -285,7 +360,7 @@
</ul> </ul>
</blockquote> </blockquote>
<p> <p>
Plus the following packages: Plus the following packages:
<blockquote> <blockquote>
<ul> <ul>
<li>cups devel: Cups Development Package</li> <li>cups devel: Cups Development Package</li>
...@@ -295,188 +370,188 @@ ...@@ -295,188 +370,188 @@
</ul> </ul>
</blockquote> </blockquote>
<p> <p>
The freetype 2.3 packages don't seem to be available, The freetype 2.3 packages don't seem to be available,
but the freetype 2.3 sources can be downloaded, built, but the freetype 2.3 sources can be downloaded, built,
and installed easily enough from and installed easily enough from
<a href="http://downloads.sourceforge.net/freetype"> <a href="http://downloads.sourceforge.net/freetype">
the freetype site</a>. the freetype site</a>.
Build and install with something like: Build and install with something like:
<blockquote> <blockquote>
<tt>./configure && make && sudo -u root make install</tt> <tt>./configure && make && sudo -u root make install</tt>
</blockquote> </blockquote>
<p> <p>
Mercurial packages could not be found easily, but a Google Mercurial packages could not be found easily, but a Google
search should find ones, and they usually include Python if search should find ones, and they usually include Python if
it's needed. it's needed.
</blockquote> </blockquote>
<!-- ------------------------------------------------------ --> <!-- ------------------------------------------------------ -->
<h3><a name="debian">Debian</a></h3> <h3><a name="debian">Debian</a></h3>
<blockquote> <blockquote>
<h4>Debian 5.0 (Lenny)</h4> <h4>Debian 5.0 (Lenny)</h4>
<p> <p>
<blockquote> <blockquote>
After installing <a href="http://debian.org">Debian</a> 5 After installing <a href="http://debian.org">Debian</a> 5
you need to install several build dependencies. you need to install several build dependencies.
The simplest way to install the build dependencies is to The simplest way to install the build dependencies is to
execute the following commands as user <tt>root</tt>: execute the following commands as user <tt>root</tt>:
<p/> <p/>
<code>aptitude build-dep openjdk-6</code> <code>aptitude build-dep openjdk-6</code>
<p/> <p/>
<code>aptitude install openjdk-6-jdk libmotif-dev</code> <code>aptitude install openjdk-6-jdk libmotif-dev</code>
<p/> <p/>
In addition, it's necessary to set a few environment variables for the build: In addition, it's necessary to set a few environment variables for the build:
<p/> <p/>
<code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code>
</blockquote> </blockquote>
</blockquote> </blockquote>
<!-- ====================================================== --> <!-- ====================================================== -->
<h3><a name="ubuntu">Ubuntu</a></h3> <h3><a name="ubuntu">Ubuntu</a></h3>
<blockquote> <blockquote>
<h4>Ubuntu 8.04</h4> <h4>Ubuntu 8.04</h4>
<p> <p>
<blockquote> <blockquote>
After installing <a href="http://ubuntu.org">Ubuntu</a> 8.04 After installing <a href="http://ubuntu.org">Ubuntu</a> 8.04
you need to install several build dependencies. you need to install several build dependencies.
<p/> <p/>
First, you need to enable the universe repository in the First, you need to enable the universe repository in the
Software Sources application and reload the repository Software Sources application and reload the repository
information. The Software Sources application is available information. The Software Sources application is available
under the System/Administration menu. under the System/Administration menu.
<p/> <p/>
The simplest way to install the build dependencies is to The simplest way to install the build dependencies is to
execute the following commands: execute the following commands:
<p/> <p/>
<code>sudo aptitude build-dep openjdk-6</code> <code>sudo aptitude build-dep openjdk-6</code>
<p/> <p/>
<code>sudo aptitude install openjdk-6-jdk</code> <code>sudo aptitude install openjdk-6-jdk</code>
<p/> <p/>
In addition, it's necessary to set a few environment variables for the build: In addition, it's necessary to set a few environment variables for the build:
<p/> <p/>
<code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code>
</blockquote> </blockquote>
<h4>Ubuntu 8.10</h4> <h4>Ubuntu 8.10</h4>
<p> <p>
<blockquote> <blockquote>
After installing <a href="http://ubuntu.org">Ubuntu</a> 8.10 After installing <a href="http://ubuntu.org">Ubuntu</a> 8.10
you need to install several build dependencies. The simplest you need to install several build dependencies. The simplest
way to do it is to execute the following commands: way to do it is to execute the following commands:
<p/> <p/>
<code>sudo aptitude build-dep openjdk-6</code> <code>sudo aptitude build-dep openjdk-6</code>
<p/> <p/>
<code>sudo aptitude install openjdk-6-jdk</code> <code>sudo aptitude install openjdk-6-jdk</code>
<p/> <p/>
In addition, it's necessary to set a few environment variables for the build: In addition, it's necessary to set a few environment variables for the build:
<p/> <p/>
<code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code>
</blockquote> </blockquote>
<h4>Ubuntu 9.04</h4> <h4>Ubuntu 9.04</h4>
<p> <p>
<blockquote> <blockquote>
After installing <a href="http://ubuntu.org">Ubuntu</a> 9.04 After installing <a href="http://ubuntu.org">Ubuntu</a> 9.04
you need to install several build dependencies. The simplest you need to install several build dependencies. The simplest
way to do it is to execute the following commands: way to do it is to execute the following commands:
<p/> <p/>
<code>sudo aptitude build-dep openjdk-6</code> <code>sudo aptitude build-dep openjdk-6</code>
<p/> <p/>
<code>sudo aptitude install openjdk-6-jdk</code> <code>sudo aptitude install openjdk-6-jdk</code>
<p/> <p/>
In addition, it's necessary to set a few environment variables for the build: In addition, it's necessary to set a few environment variables for the build:
<p/> <p/>
<code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code>
</blockquote> </blockquote>
</blockquote> </blockquote>
<!-- ====================================================== --> <!-- ====================================================== -->
<h3><a name="opensuse">OpenSUSE</a></h3> <h3><a name="opensuse">OpenSUSE</a></h3>
<blockquote> <blockquote>
<h4>OpenSUSE 11.1</h4> <h4>OpenSUSE 11.1</h4>
<p> <p>
<blockquote> <blockquote>
After installing <a href="http://opensuse.org">OpenSUSE</a> 11.1 After installing <a href="http://opensuse.org">OpenSUSE</a> 11.1
you need to install several build dependencies. you need to install several build dependencies.
The simplest way to install the build dependencies is to The simplest way to install the build dependencies is to
execute the following commands: execute the following commands:
<p/> <p/>
<code>sudo zypper source-install -d java-1_6_0-openjdk</code> <code>sudo zypper source-install -d java-1_6_0-openjdk</code>
<p/> <p/>
<code>sudo zypper install make</code> <code>sudo zypper install make</code>
<p/> <p/>
In addition, it is necessary to set a few environment variables for the build: In addition, it is necessary to set a few environment variables for the build:
<p/> <p/>
<code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code> <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code>
<p/> <p/>
Finally, you need to unset the <code>JAVA_HOME</code> environment variable: Finally, you need to unset the <code>JAVA_HOME</code> environment variable:
<p/> <p/>
<code>export -n JAVA_HOME</code> <code>export -n JAVA_HOME</code>
</blockquote> </blockquote>
</blockquote> </blockquote>
<!-- ====================================================== --> <!-- ====================================================== -->
<h3><a name="mandriva">Mandriva</a></h3> <h3><a name="mandriva">Mandriva</a></h3>
<blockquote> <blockquote>
<h4>Mandriva Linux One 2009 Spring</h4> <h4>Mandriva Linux One 2009 Spring</h4>
<p> <p>
<blockquote> <blockquote>
After installing <a href="http://mandriva.org">Mandriva</a> Linux One 2009 Spring After installing <a href="http://mandriva.org">Mandriva</a> Linux One 2009 Spring
you need to install several build dependencies. you need to install several build dependencies.
The simplest way to install the build dependencies is to The simplest way to install the build dependencies is to
execute the following commands as user <tt>root</tt>: execute the following commands as user <tt>root</tt>:
<p/> <p/>
<code>urpmi java-1.6.0-openjdk-devel ant make gcc gcc-c++ freetype-devel zip unzip libcups2-devel libxrender1-devel libalsa2-devel libstc++-static-devel libxtst6-devel libxi-devel</code> <code>urpmi java-1.6.0-openjdk-devel ant make gcc gcc-c++ freetype-devel zip unzip libcups2-devel libxrender1-devel libalsa2-devel libstc++-static-devel libxtst6-devel libxi-devel</code>
<p/> <p/>
In addition, it is necessary to set a few environment variables for the build: In addition, it is necessary to set a few environment variables for the build:
<p/> <p/>
<code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code> <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code>
</blockquote> </blockquote>
</blockquote> </blockquote>
<!-- ====================================================== --> <!-- ====================================================== -->
<h3><a name="opensolaris">OpenSolaris</a></h3> <h3><a name="opensolaris">OpenSolaris</a></h3>
<blockquote> <blockquote>
<h4>OpenSolaris 2009.06</h4> <h4>OpenSolaris 2009.06</h4>
<p> <p>
<blockquote> <blockquote>
After installing <a href="http://opensolaris.org">OpenSolaris</a> 2009.06 After installing <a href="http://opensolaris.org">OpenSolaris</a> 2009.06
you need to install several build dependencies. you need to install several build dependencies.
The simplest way to install the build dependencies is to The simplest way to install the build dependencies is to
execute the following commands: execute the following commands:
<p/> <p/>
<code>pfexec pkg install SUNWgmake SUNWj6dev SUNWant sunstudioexpress SUNWcups SUNWzip SUNWunzip SUNWxwhl SUNWxorg-headers SUNWaudh SUNWfreetype2</code> <code>pfexec pkg install SUNWgmake SUNWj6dev SUNWant sunstudioexpress SUNWcups SUNWzip SUNWunzip SUNWxwhl SUNWxorg-headers SUNWaudh SUNWfreetype2</code>
<p/> <p/>
In addition, it is necessary to set a few environment variables for the build: In addition, it is necessary to set a few environment variables for the build:
<p/> <p/>
<code>export LANG=C ALT_COMPILER_PATH=/opt/SunStudioExpress/bin/ ALT_CUPS_HEADERS_PATH=/usr/include/</code> <code>export LANG=C ALT_COMPILER_PATH=/opt/SunStudioExpress/bin/ ALT_CUPS_HEADERS_PATH=/usr/include/</code>
<p/> <p/>
Finally, you need to make sure that the build process can find the Sun Studio compilers: Finally, you need to make sure that the build process can find the Sun Studio compilers:
<p/> <p/>
<code>export PATH=$PATH:/opt/SunStudioExpress/bin/</code> <code>export PATH=$PATH:/opt/SunStudioExpress/bin/</code>
</blockquote> </blockquote>
</blockquote> </blockquote>
<!-- ------------------------------------------------------ --> <!-- ------------------------------------------------------ -->
<hr> <hr>
<h2><a name="directories">Source Directory Structure</a></h2> <h2><a name="directories">Source Directory Structure</a></h2>
<blockquote> <blockquote>
<p> <p>
The source code for the OpenJDK is delivered in a set of The source code for the OpenJDK is delivered in a set of
directories: directories:
<tt>hotspot</tt>, <tt>hotspot</tt>,
<tt>langtools</tt>, <tt>langtools</tt>,
<tt>corba</tt>, <tt>corba</tt>,
<tt>jaxws</tt>, <tt>jaxws</tt>,
<tt>jaxp</tt>, <tt>jaxp</tt>,
and and
<tt>jdk</tt>. <tt>jdk</tt>.
The <tt>hotspot</tt> directory contains the source code and make The <tt>hotspot</tt> directory contains the source code and make
files for building the OpenJDK Hotspot Virtual Machine. files for building the OpenJDK Hotspot Virtual Machine.
The <tt>langtools</tt> directory contains the source code and make The <tt>langtools</tt> directory contains the source code and make
files for building the OpenJDK javac and language tools. files for building the OpenJDK javac and language tools.
The <tt>corba</tt> directory contains the source code and make The <tt>corba</tt> directory contains the source code and make
files for building the OpenJDK Corba files. files for building the OpenJDK Corba files.
The <tt>jaxws</tt> directory contains the source code and make The <tt>jaxws</tt> directory contains the source code and make
files for building the OpenJDK JAXWS files. files for building the OpenJDK JAXWS files.
The <tt>jaxp</tt> directory contains the source code and make The <tt>jaxp</tt> directory contains the source code and make
files for building the OpenJDK JAXP files. files for building the OpenJDK JAXP files.
The <tt>jdk</tt> directory contains the source code and make files for The <tt>jdk</tt> directory contains the source code and make files for
building the OpenJDK runtime libraries and misc files. building the OpenJDK runtime libraries and misc files.
The top level <tt>Makefile</tt> The top level <tt>Makefile</tt>
is used to build the entire OpenJDK. is used to build the entire OpenJDK.
</blockquote> </blockquote>
<!-- ------------------------------------------------------ --> <!-- ------------------------------------------------------ -->
<hr> <hr>
...@@ -495,10 +570,10 @@ ...@@ -495,10 +570,10 @@
<tt>ALT_*</tt> variables (alternates) <tt>ALT_*</tt> variables (alternates)
can be used to help the makefiles locate components. can be used to help the makefiles locate components.
<p> <p>
Refer to the bash/sh/ksh setup file Refer to the bash/sh/ksh setup file
<tt>jdk/make/jdk_generic_profile.sh</tt> <tt>jdk/make/jdk_generic_profile.sh</tt>
if you need help in setting up your environment variables. if you need help in setting up your environment variables.
A build could be as simple as: A build could be as simple as:
<blockquote> <blockquote>
<pre><tt> <pre><tt>
bash bash
...@@ -507,12 +582,12 @@ ...@@ -507,12 +582,12 @@
</tt></pre> </tt></pre>
</blockquote> </blockquote>
<p> <p>
Of course ksh or sh would work too. Of course ksh or sh would work too.
But some customization will probably be necessary. But some customization will probably be necessary.
The <tt>sanity</tt> rule will make some basic checks on build The <tt>sanity</tt> rule will make some basic checks on build
dependencies and generate appropriate warning messages dependencies and generate appropriate warning messages
regarding missing, out of date, or newer than expected components regarding missing, out of date, or newer than expected components
found on your system. found on your system.
</blockquote> </blockquote>
<!-- ------------------------------------------------------ --> <!-- ------------------------------------------------------ -->
<hr> <hr>
...@@ -559,14 +634,14 @@ ...@@ -559,14 +634,14 @@
version that has this problem fixed. version that has this problem fixed.
The older 3.80 version of make.exe can be downloaded with this The older 3.80 version of make.exe can be downloaded with this
<a href="http://cygwin.paracoda.com/release/make/make-3.80-1.tar.bz2" target="_blank"> <a href="http://cygwin.paracoda.com/release/make/make-3.80-1.tar.bz2" target="_blank">
link</a>. link</a>.
Use of this older 3.80 make.exe may require that you install the Use of this older 3.80 make.exe may require that you install the
libintl2.dll library or libintl2 cygwin package which is libintl2.dll library or libintl2 cygwin package which is
no longer installed by default by the cygwin installer. no longer installed by default by the cygwin installer.
<br> <br>
Also see the Also see the
<a href="http://developer.mozilla.org/en/docs/Windows_build_prerequisites_using_cygwin#make" target="_blank"> <a href="http://developer.mozilla.org/en/docs/Windows_build_prerequisites_using_cygwin#make" target="_blank">
mozilla developer center</a> mozilla developer center</a>
on this topic. on this topic.
<br> <br>
It's hoped that when make 3.82 starts shipping in a future cygwin It's hoped that when make 3.82 starts shipping in a future cygwin
...@@ -574,19 +649,19 @@ ...@@ -574,19 +649,19 @@
In addition to the above 3.80 make.exe you can download In addition to the above 3.80 make.exe you can download
this this
<a href="http://www.cmake.org/files/cygwin/make.exe"> <a href="http://www.cmake.org/files/cygwin/make.exe">
www.cmake.org make.exe</a> which will not have a libintl2.dll www.cmake.org make.exe</a> which will not have a libintl2.dll
dependency. dependency.
</li> </li>
</ul> </ul>
<p> <p>
Information on GNU make, and access to ftp download sites, are Information on GNU make, and access to ftp download sites, are
available on the available on the
<a href="http://www.gnu.org/software/make/make.html" target="_blank"> <a href="http://www.gnu.org/software/make/make.html" target="_blank">
GNU make web site GNU make web site
</a>. </a>.
The latest source to GNU make is available at The latest source to GNU make is available at
<a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank"> <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank">
ftp.gnu.org/pub/gnu/make/</a>. ftp.gnu.org/pub/gnu/make/</a>.
</blockquote> </blockquote>
<!-- ------------------------------------------------------ --> <!-- ------------------------------------------------------ -->
<hr> <hr>
...@@ -597,27 +672,27 @@ ...@@ -597,27 +672,27 @@
is a Pentium class processor or better, at least 256 MB of RAM, and is a Pentium class processor or better, at least 256 MB of RAM, and
approximately 1.5 GB of free disk space. approximately 1.5 GB of free disk space.
<p> <p>
<strong>X64 only:</strong> <strong>X64 only:</strong>
The minimum recommended hardware for building the Linux The minimum recommended hardware for building the Linux
version is an AMD Opteron class processor, at least 512 MB of RAM, and version is an AMD Opteron class processor, at least 512 MB of RAM, and
approximately 4 GB of free disk space. approximately 4 GB of free disk space.
<p> <p>
The build will use the tools contained in The build will use the tools contained in
<tt>/bin</tt> and <tt>/bin</tt> and
<tt>/usr/bin</tt> <tt>/usr/bin</tt>
of a standard installation of the Linux operating environment. of a standard installation of the Linux operating environment.
You should ensure that these directories are in your You should ensure that these directories are in your
<tt>PATH</tt>. <tt>PATH</tt>.
<p> <p>
Note that some Linux systems have a habit of pre-populating Note that some Linux systems have a habit of pre-populating
your environment variables for you, for example <tt>JAVA_HOME</tt> your environment variables for you, for example <tt>JAVA_HOME</tt>
might get pre-defined for you to refer to the JDK installed on might get pre-defined for you to refer to the JDK installed on
your Linux system. your Linux system.
You will need to unset <tt>JAVA_HOME</tt>. You will need to unset <tt>JAVA_HOME</tt>.
It's a good idea to run <tt>env</tt> and verify the It's a good idea to run <tt>env</tt> and verify the
environment variables you are getting from the default system environment variables you are getting from the default system
settings make sense for building the settings make sense for building the
OpenJDK. OpenJDK.
</blockquote> </blockquote>
<!-- ------------------------------------------------------ --> <!-- ------------------------------------------------------ -->
<h4><a name="linux_checklist">Basic Linux Check List</a></h4> <h4><a name="linux_checklist">Basic Linux Check List</a></h4>
...@@ -628,18 +703,13 @@ ...@@ -628,18 +703,13 @@
<a href="#bootjdk">Bootstrap JDK</a>, set <a href="#bootjdk">Bootstrap JDK</a>, set
<tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>. <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
</li> </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> <li>
<a href="#importjdk">Optional Import JDK</a>, set <a href="#importjdk">Optional Import JDK</a>, set
<tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>. <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>.
</li> </li>
<li> <li>
Install or upgrade the <a href="#freetype">FreeType development Install or upgrade the <a href="#freetype">FreeType development
package</a>. package</a>.
</li> </li>
<li> <li>
Install Install
...@@ -660,23 +730,23 @@ ...@@ -660,23 +730,23 @@
Approximately 1.4 GB of free disk Approximately 1.4 GB of free disk
space is needed for a 32-bit build. space is needed for a 32-bit build.
<p> <p>
If you are building the 64-bit version, you should If you are building the 64-bit version, you should
run the command "isainfo -v" to verify that you have a run the command "isainfo -v" to verify that you have a
64-bit installation, it should say <tt>sparcv9</tt> or 64-bit installation, it should say <tt>sparcv9</tt> or
<tt>amd64</tt>. <tt>amd64</tt>.
An additional 7 GB of free disk space is needed An additional 7 GB of free disk space is needed
for a 64-bit build. for a 64-bit build.
<p> <p>
The build uses the tools contained in <tt>/usr/ccs/bin</tt> The build uses the tools contained in <tt>/usr/ccs/bin</tt>
and <tt>/usr/bin</tt> of a standard developer or full installation of and <tt>/usr/bin</tt> of a standard developer or full installation of
the Solaris operating environment. the Solaris operating environment.
<p> <p>
Solaris patches specific to the JDK can be downloaded from the Solaris patches specific to the JDK can be downloaded from the
<a href="http://sunsolve.sun.com/show.do?target=patches/JavaSE" target="_blank"> <a href="http://sunsolve.sun.com/show.do?target=patches/JavaSE" target="_blank">
SunSolve JDK Solaris patches download page</a>. SunSolve JDK Solaris patches download page</a>.
You should ensure that the latest patch cluster for You should ensure that the latest patch cluster for
your version of the Solaris operating environment has also your version of the Solaris operating environment has also
been installed. been installed.
</blockquote> </blockquote>
<!-- ------------------------------------------------------ --> <!-- ------------------------------------------------------ -->
<h4><a name="solaris_checklist">Basic Solaris Check List</a></h4> <h4><a name="solaris_checklist">Basic Solaris Check List</a></h4>
...@@ -687,11 +757,6 @@ ...@@ -687,11 +757,6 @@
<a href="#bootjdk">Bootstrap JDK</a>, set <a href="#bootjdk">Bootstrap JDK</a>, set
<tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>. <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
</li> </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> <li>
<a href="#importjdk">Optional Import JDK</a>, set <a href="#importjdk">Optional Import JDK</a>, set
<tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>. <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>.
...@@ -731,10 +796,10 @@ ...@@ -731,10 +796,10 @@
because FAT32 doesn't support case-sensitivity in file names. because FAT32 doesn't support case-sensitivity in file names.
</strong> </strong>
<p> <p>
<strong>X64 only:</strong> <strong>X64 only:</strong>
The minimum recommended hardware for building The minimum recommended hardware for building
the Windows X64 version is an AMD Opteron class processor, at least 1 the Windows X64 version is an AMD Opteron class processor, at least 1
GB of RAM, and approximately 10 GB of free disk space. GB of RAM, and approximately 10 GB of free disk space.
</blockquote> </blockquote>
<!-- ------------------------------------------------------ --> <!-- ------------------------------------------------------ -->
<h4><a name="paths">Windows Paths</a></h4> <h4><a name="paths">Windows Paths</a></h4>
...@@ -753,18 +818,18 @@ ...@@ -753,18 +818,18 @@
(called 'mixed'), e.g. (called 'mixed'), e.g.
<tt>cygpath -s -m "<i>path</i>"</tt>. <tt>cygpath -s -m "<i>path</i>"</tt>.
<p> <p>
The makefiles will try to translate any pathnames supplied The makefiles will try to translate any pathnames supplied
to it into the <tt>C:/</tt> style automatically. to it into the <tt>C:/</tt> style automatically.
<p> <p>
Note that use of CYGWIN creates a unique problem with regards to Note that use of CYGWIN creates a unique problem with regards to
setting <a href="#path"><tt>PATH</tt></a>. Normally on Windows setting <a href="#path"><tt>PATH</tt></a>. Normally on Windows
the <tt>PATH</tt> variable contains directories the <tt>PATH</tt> variable contains directories
separated with the ";" character (Solaris and Linux uses ":"). separated with the ";" character (Solaris and Linux uses ":").
With CYGWIN, it uses ":", but that means that paths like "C:/path" With CYGWIN, it uses ":", but that means that paths like "C:/path"
cannot be placed in the CYGWIN version of <tt>PATH</tt> and cannot be placed in the CYGWIN version of <tt>PATH</tt> and
instead CYGWIN uses something like <tt>/cygdrive/c/path</tt> instead CYGWIN uses something like <tt>/cygdrive/c/path</tt>
which CYGWIN understands, but only CYGWIN understands. which CYGWIN understands, but only CYGWIN understands.
So be careful with paths on Windows. So be careful with paths on Windows.
</blockquote> </blockquote>
<!-- ------------------------------------------------------ --> <!-- ------------------------------------------------------ -->
<h4><a name="windows_checklist">Basic Windows Check List</a></h4> <h4><a name="windows_checklist">Basic Windows Check List</a></h4>
...@@ -779,11 +844,6 @@ ...@@ -779,11 +844,6 @@
<a href="#bootjdk">Bootstrap JDK</a>, set <a href="#bootjdk">Bootstrap JDK</a>, set
<tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>. <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
</li> </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> <li>
<a href="#importjdk">Optional Import JDK</a>, set <a href="#importjdk">Optional Import JDK</a>, set
<tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>. <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>.
...@@ -828,7 +888,7 @@ ...@@ -828,7 +888,7 @@
JDK 6, this is often called a bootstrap JDK. JDK 6, this is often called a bootstrap JDK.
The JDK 6 binaries can be downloaded from Sun's The JDK 6 binaries can be downloaded from Sun's
<a href="http://java.sun.com/javase/downloads/index.jsp" <a href="http://java.sun.com/javase/downloads/index.jsp"
target="_blank">JDK 6 download site</a>. target="_blank">JDK 6 download site</a>.
For build performance reasons For build performance reasons
is very important that this bootstrap JDK be made available on the is very important that this bootstrap JDK be made available on the
local disk of the machine doing the build. local disk of the machine doing the build.
...@@ -841,44 +901,12 @@ ...@@ -841,44 +901,12 @@
in the <tt>PATH</tt> environment variable, although it's in the <tt>PATH</tt> environment variable, although it's
not required. not required.
<p> <p>
<strong>Solaris:</strong> <strong>Solaris:</strong>
Some pre-installed JDK images may be available to you in the Some pre-installed JDK images may be available to you in the
directory <tt>/usr/jdk/instances</tt>. directory <tt>/usr/jdk/instances</tt>.
If you don't set If you don't set
<tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt> <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>
the makefiles will look in that location for a JDK it can use. 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> </blockquote>
<!-- ------------------------------------------------------ --> <!-- ------------------------------------------------------ -->
<h4><a name="importjdk">Optional Import JDK</a></h4> <h4><a name="importjdk">Optional Import JDK</a></h4>
...@@ -896,7 +924,7 @@ ...@@ -896,7 +924,7 @@
All OpenJDK builds require access to least Ant 1.6.5. All OpenJDK builds require access to least Ant 1.6.5.
The Ant tool is available from the The Ant tool is available from the
<a href="http://ant.apache.org" target="_blank"> <a href="http://ant.apache.org" target="_blank">
Ant download site</a>. Ant download site</a>.
You should always make sure <tt>ant</tt> is in your PATH, and You should always make sure <tt>ant</tt> is in your PATH, and
on Windows you may also need to set on Windows you may also need to set
<tt><a href="#ANT_HOME">ANT_HOME</a></tt> <tt><a href="#ANT_HOME">ANT_HOME</a></tt>
...@@ -908,7 +936,7 @@ ...@@ -908,7 +936,7 @@
<h4><a name="cacerts">Certificate Authority File (cacert)</a></h4> <h4><a name="cacerts">Certificate Authority File (cacert)</a></h4>
<blockquote> <blockquote>
See <a href="http://en.wikipedia.org/wiki/Certificate_Authority" target="_blank"> See <a href="http://en.wikipedia.org/wiki/Certificate_Authority" target="_blank">
http://en.wikipedia.org/wiki/Certificate_Authority</a> http://en.wikipedia.org/wiki/Certificate_Authority</a>
for a better understanding of the Certificate Authority (CA). for a better understanding of the Certificate Authority (CA).
A certificates file named "cacerts" A certificates file named "cacerts"
represents a system-wide keystore with CA certificates. represents a system-wide keystore with CA certificates.
...@@ -942,121 +970,121 @@ ...@@ -942,121 +970,121 @@
<blockquote> <blockquote>
At a minimum, the At a minimum, the
<a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.htm" target="_blank"> <a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.htm" target="_blank">
Sun Studio 12 Update 1 Compilers</a> Sun Studio 12 Update 1 Compilers</a>
(containing version 5.10 of the C and C++ compilers) is required, (containing version 5.10 of the C and C++ compilers) is required,
including specific patches. including specific patches.
<p> <p>
The Solaris SPARC patch list is: The Solaris SPARC patch list is:
<ul> <ul>
<li> <li>
118683-05: SunOS 5.10: Patch for profiling libraries and assembler 118683-05: SunOS 5.10: Patch for profiling libraries and assembler
</li> </li>
<li> <li>
119963-21: SunOS 5.10: Shared library patch for C++ 119963-21: SunOS 5.10: Shared library patch for C++
</li> </li>
<li> <li>
120753-08: SunOS 5.10: Microtasking libraries (libmtsk) patch 120753-08: SunOS 5.10: Microtasking libraries (libmtsk) patch
</li> </li>
<li> <li>
128228-09: Sun Studio 12 Update 1: Patch for Sun C++ Compiler 128228-09: Sun Studio 12 Update 1: Patch for Sun C++ Compiler
</li> </li>
<li> <li>
141860-03: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95 141860-03: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95
</li> </li>
<li> <li>
141861-05: Sun Studio 12 Update 1: Patch for Sun C Compiler 141861-05: Sun Studio 12 Update 1: Patch for Sun C Compiler
</li> </li>
<li> <li>
142371-01: Sun Studio 12.1 Update 1: Patch for dbx 142371-01: Sun Studio 12.1 Update 1: Patch for dbx
</li> </li>
<li> <li>
143384-02: Sun Studio 12 Update 1: Patch for debuginfo handling 143384-02: Sun Studio 12 Update 1: Patch for debuginfo handling
</li> </li>
<li> <li>
143385-02: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95 143385-02: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95
</li> </li>
<li> <li>
142369-01: Sun Studio 12.1: Patch for Performance Analyzer Tools 142369-01: Sun Studio 12.1: Patch for Performance Analyzer Tools
</li> </li>
</ul> </ul>
<p> <p>
The Solaris X86 patch list is: The Solaris X86 patch list is:
<ul> <ul>
<li> <li>
119961-07: SunOS 5.10_x86, x64, Patch for profiling libraries and assembler 119961-07: SunOS 5.10_x86, x64, Patch for profiling libraries and assembler
</li> </li>
<li> <li>
119964-21: SunOS 5.10_x86: Shared library patch for C++_x86 119964-21: SunOS 5.10_x86: Shared library patch for C++_x86
</li> </li>
<li> <li>
120754-08: SunOS 5.10_x86: Microtasking libraries (libmtsk) patch 120754-08: SunOS 5.10_x86: Microtasking libraries (libmtsk) patch
</li> </li>
<li> <li>
141858-06: Sun Studio 12 Update 1_x86: Sun Compiler Common patch for x86 backend 141858-06: Sun Studio 12 Update 1_x86: Sun Compiler Common patch for x86 backend
</li> </li>
<li> <li>
128229-09: Sun Studio 12 Update 1_x86: Patch for C++ Compiler 128229-09: Sun Studio 12 Update 1_x86: Patch for C++ Compiler
</li> </li>
<li> <li>
142363-05: Sun Studio 12 Update 1_x86: Patch for C Compiler 142363-05: Sun Studio 12 Update 1_x86: Patch for C Compiler
</li> </li>
<li> <li>
142368-01: Sun Studio 12.1_x86: Patch for Performance Analyzer Tools 142368-01: Sun Studio 12.1_x86: Patch for Performance Analyzer Tools
</li> </li>
</ul> </ul>
<p> <p>
Set Set
<a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a> <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>
to point to the location of to point to the location of
the compiler binaries, and place this location in the <tt>PATH</tt>. the compiler binaries, and place this location in the <tt>PATH</tt>.
<p> <p>
The Oracle Solaris Studio Express compilers at: The Oracle Solaris Studio Express compilers at:
<a href="http://developers.sun.com/sunstudio/downloads/express.jsp" target="_blank"> <a href="http://developers.sun.com/sunstudio/downloads/express.jsp" target="_blank">
Oracle Solaris Studio Express Download site</a> Oracle Solaris Studio Express Download site</a>
are also an option, although these compilers have not are also an option, although these compilers have not
been extensively used yet. been extensively used yet.
</blockquote> </blockquote>
<strong><a name="msvc32">Windows i586: Microsoft Visual Studio 2010 Compilers</a></strong> <strong><a name="msvc32">Windows i586: Microsoft Visual Studio 2010 Compilers</a></strong>
<blockquote> <blockquote>
<p> <p>
<b>BEGIN WARNING</b>: At this time (Spring/Summer 2010) JDK 7 is starting a transition to <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 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 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 official builds actually use VS2010. So for now, official builds are
still using VS2003. No other compilers are known to build the entire JDK, still using VS2003. No other compilers are known to build the entire JDK,
including non-open portions. including non-open portions.
So for now you should be able to build with either VS2003 or VS2010. 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 We do not guarantee that VS2008 will work, although there is sufficient
makefile support to make at least basic JDK builds plausible. makefile support to make at least basic JDK builds plausible.
Visual Studio 2010 Express compilers are now able to build all the 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 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> Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
<p> <p>
The 32-bit OpenJDK Windows build The 32-bit OpenJDK Windows build
requires requires
Microsoft Visual Studio C++ 2010 (VS2010) Professional Microsoft Visual Studio C++ 2010 (VS2010) Professional
Edition or Express compiler. Edition or Express compiler.
The compiler and other tools are expected to reside The compiler and other tools are expected to reside
in the location defined by the variable in the location defined by the variable
<tt>VS100COMNTOOLS</tt> which <tt>VS100COMNTOOLS</tt> which
is set by the Microsoft Visual Studio installer. is set by the Microsoft Visual Studio installer.
<p> <p>
Once the compiler is installed, Once the compiler is installed,
it is recommended that you run <tt>VCVARS32.BAT</tt> it is recommended that you run <tt>VCVARS32.BAT</tt>
to set the compiler environment variables to set the compiler environment variables
<tt>INCLUDE</tt>, <tt>INCLUDE</tt>,
<tt>LIB</tt>, and <tt>LIB</tt>, and
<tt>PATH</tt> <tt>PATH</tt>
prior to building the prior to building the
OpenJDK. OpenJDK.
The above environment variables <b>MUST</b> be set. The above environment variables <b>MUST</b> be set.
This compiler also contains the Windows SDK v 7.0a, This compiler also contains the Windows SDK v 7.0a,
which is an update to the Windows 7 SDK. which is an update to the Windows 7 SDK.
<p> <p>
<b>WARNING:</b> Make sure you check out the <b>WARNING:</b> Make sure you check out the
<a href="#cygwin">CYGWIN link.exe WARNING</a>. <a href="#cygwin">CYGWIN link.exe WARNING</a>.
The path <tt>/usr/bin</tt> must be after the path to the The path <tt>/usr/bin</tt> must be after the path to the
Visual Studio product. Visual Studio product.
</blockquote> </blockquote>
<strong><a name="msvc64">Windows x64: Microsoft Visual Studio 2010 Professional Compiler</a></strong> <strong><a name="msvc64">Windows x64: Microsoft Visual Studio 2010 Professional Compiler</a></strong>
<blockquote> <blockquote>
...@@ -1069,22 +1097,22 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> ...@@ -1069,22 +1097,22 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
you have VS2010 Professional. you have VS2010 Professional.
</blockquote> </blockquote>
<strong><a name="mssdk64">Windows x64: Microsoft Windows 7.1 SDK 64 bit compilers.</a></strong> <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. For a free alternative for 64 bit builds, use the 7.1 SDK.
Microsoft say that to set up your paths for this run 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. c:\Program Files\Microsoft SDKs\Windows\v7.1\bin\setenv.cmd /x64.
</pre> </pre>
What was tested is just directly setting up LIB, INCLUDE, What was tested is just directly setting up LIB, INCLUDE,
PATH and based on the installation directories using the PATH and based on the installation directories using the
DOS short name appropriate for the system, (you will DOS short name appropriate for the system, (you will
need to set them for yours, not just blindly copy this) eg : need to set them for yours, not just blindly copy this) eg :
<pre> <pre>
set VSINSTALLDIR=c:\PROGRA~2\MICROS~1.0 set VSINSTALLDIR=c:\PROGRA~2\MICROS~1.0
set WindowsSdkDir=c:\PROGRA~1\MICROS~1\Windows\v7.1 set WindowsSdkDir=c:\PROGRA~1\MICROS~1\Windows\v7.1
set PATH=%VSINSTALLDIR%\vc\bin\amd64;%VSINSTALLDIR%\Common7\IDE;%WindowsSdkDir%\bin;%PATH% set PATH=%VSINSTALLDIR%\vc\bin\amd64;%VSINSTALLDIR%\Common7\IDE;%WindowsSdkDir%\bin;%PATH%
set INCLUDE=%VSINSTALLDIR%\vc\include;%WindowsSdkDir%\include set INCLUDE=%VSINSTALLDIR%\vc\include;%WindowsSdkDir%\include
set LIB=%VSINSTALLDIR%\vc\lib\amd64;%WindowsSdkDir%\lib\x64 set LIB=%VSINSTALLDIR%\vc\lib\amd64;%WindowsSdkDir%\lib\x64
</pre> </pre>
</blockquote> </blockquote>
<!-- ------------------------------------------------------ --> <!-- ------------------------------------------------------ -->
<h4><a name="zip">Zip and Unzip</a></h4> <h4><a name="zip">Zip and Unzip</a></h4>
...@@ -1110,41 +1138,41 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> ...@@ -1110,41 +1138,41 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
Companion CD/DVD, these often will be installed into Companion CD/DVD, these often will be installed into
<tt>/opt/sfw/cups</tt>. <tt>/opt/sfw/cups</tt>.
<p> <p>
<strong>Linux:</strong> <strong>Linux:</strong>
CUPS header files are required for building the CUPS header files are required for building the
OpenJDK on Linux. OpenJDK on Linux.
The Linux header files are usually available from a "cups" The Linux header files are usually available from a "cups"
development package, it's recommended that you try and use development package, it's recommended that you try and use
the package provided by the particular version of Linux that the package provided by the particular version of Linux that
you are using. you are using.
<p> <p>
The CUPS header files can always be downloaded from The CUPS header files can always be downloaded from
<a href="http://www.cups.org" target="_blank">www.cups.org</a>. <a href="http://www.cups.org" target="_blank">www.cups.org</a>.
The variable The variable
<tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt> <tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt>
can be used to override the default location of the can be used to override the default location of the
CUPS Header files. CUPS Header files.
</blockquote> </blockquote>
<!-- ------------------------------------------------------ --> <!-- ------------------------------------------------------ -->
<h4><a name="xrender">XRender Extension Headers (Solaris &amp; Linux)</a></h4> <h4><a name="xrender">XRender Extension Headers (Solaris &amp; Linux)</a></h4>
<blockquote> <blockquote>
<p> <p>
<strong>Solaris:</strong> <strong>Solaris:</strong>
XRender header files are required for building the XRender header files are required for building the
OpenJDK on Solaris. OpenJDK on Solaris.
The XRender header file is included with the other X11 header files The XRender header file is included with the other X11 header files
in the package <strong>SFWxwinc</strong> on new enough versions of in the package <strong>SFWxwinc</strong> on new enough versions of
Solaris and will be installed in Solaris and will be installed in
<tt>/usr/X11/include/X11/extensions/Xrender.h</tt> <tt>/usr/X11/include/X11/extensions/Xrender.h</tt>
</p><p> </p><p>
<strong>Linux:</strong> <strong>Linux:</strong>
XRender header files are required for building the XRender header files are required for building the
OpenJDK on Linux. OpenJDK on Linux.
The Linux header files are usually available from a "Xrender" The Linux header files are usually available from a "Xrender"
development package, it's recommended that you try and use development package, it's recommended that you try and use
the package provided by the particular distribution of Linux that the package provided by the particular distribution of Linux that
you are using. you are using.
</p> </p>
</blockquote> </blockquote>
<!-- ------------------------------------------------------ --> <!-- ------------------------------------------------------ -->
<h4><a name="freetype">FreeType 2</a></h4> <h4><a name="freetype">FreeType 2</a></h4>
...@@ -1155,31 +1183,31 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> ...@@ -1155,31 +1183,31 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
Note that you need development version of package that Note that you need development version of package that
includes both FreeType library and header files. includes both FreeType library and header files.
<p> <p>
You can always download latest FreeType version from the You can always download latest FreeType version from the
<a href="http://www.freetype.org" target="_blank">FreeType website</a>. <a href="http://www.freetype.org" target="_blank">FreeType website</a>.
<p> <p>
Makefiles will try to pick FreeType from /usr/lib and /usr/include. Makefiles will try to pick FreeType from /usr/lib and /usr/include.
In case it is installed elsewhere you will need to set environment In case it is installed elsewhere you will need to set environment
variables variables
<tt><a href="#ALT_FREETYPE_LIB_PATH">ALT_FREETYPE_LIB_PATH</a></tt> <tt><a href="#ALT_FREETYPE_LIB_PATH">ALT_FREETYPE_LIB_PATH</a></tt>
and and
<tt><a href="#ALT_FREETYPE_HEADERS_PATH">ALT_FREETYPE_HEADERS_PATH</a></tt> <tt><a href="#ALT_FREETYPE_HEADERS_PATH">ALT_FREETYPE_HEADERS_PATH</a></tt>
to refer to place where library and header files are installed. to refer to place where library and header files are installed.
<p> <p>
Building the freetype 2 libraries from scratch is also possible, Building the freetype 2 libraries from scratch is also possible,
however on Windows refer to the however on Windows refer to the
<a href="http://freetype.freedesktop.org/wiki/FreeType_DLL"> <a href="http://freetype.freedesktop.org/wiki/FreeType_DLL">
Windows FreeType DLL build instructions</a>. Windows FreeType DLL build instructions</a>.
<p> <p>
Note that by default FreeType is built with byte code hinting Note that by default FreeType is built with byte code hinting
support disabled due to licensing restrictions. support disabled due to licensing restrictions.
In this case, text appearance and metrics are expected to In this case, text appearance and metrics are expected to
differ from Sun's official JDK build. differ from Sun's official JDK build.
See See
<a href="http://freetype.sourceforge.net/freetype2/index.html"> <a href="http://freetype.sourceforge.net/freetype2/index.html">
the SourceForge FreeType2 Home Page the SourceForge FreeType2 Home Page
</a> </a>
for more information. for more information.
</blockquote> </blockquote>
<!-- ------------------------------------------------------ --> <!-- ------------------------------------------------------ -->
<h4><a name="alsa">Advanced Linux Sound Architecture (ALSA) (Linux only)</a></h4> <h4><a name="alsa">Advanced Linux Sound Architecture (ALSA) (Linux only)</a></h4>
...@@ -1195,25 +1223,25 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> ...@@ -1195,25 +1223,25 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
The makefiles will check this emit a sanity error if it is The makefiles will check this emit a sanity error if it is
missing or the wrong version. missing or the wrong version.
<p> <p>
In particular, older Linux systems will likely not have the In particular, older Linux systems will likely not have the
right version of ALSA installed, for example right version of ALSA installed, for example
Redhat AS 2.1 U2 and SuSE 8.1 do not include a sufficiently Redhat AS 2.1 U2 and SuSE 8.1 do not include a sufficiently
recent ALSA distribution. recent ALSA distribution.
On rpm-based systems, you can see if ALSA is installed by On rpm-based systems, you can see if ALSA is installed by
running this command: running this command:
<pre> <pre>
<tt>rpm -qa | grep alsa</tt> <tt>rpm -qa | grep alsa</tt>
</pre> </pre>
Both <tt>alsa</tt> and <tt>alsa-devel</tt> packages are needed. Both <tt>alsa</tt> and <tt>alsa-devel</tt> packages are needed.
<p> <p>
If your distribution does not come with ALSA, and you can't If your distribution does not come with ALSA, and you can't
find ALSA packages built for your particular system, find ALSA packages built for your particular system,
you can try to install the pre-built ALSA rpm packages from you can try to install the pre-built ALSA rpm packages from
<a href="http://www.freshrpms.net/" target="_blank"> <a href="http://www.freshrpms.net/" target="_blank">
<tt>www.freshrpms.net</tt></a>. <tt>www.freshrpms.net</tt></a>.
Note that installing a newer ALSA could Note that installing a newer ALSA could
break sound output if an older version of ALSA was previously break sound output if an older version of ALSA was previously
installed on the system, but it will enable JDK compilation. installed on the system, but it will enable JDK compilation.
<blockquote> <blockquote>
Installation: execute as root<br> Installation: execute as root<br>
[i586]: <code>rpm -Uv --force alsa-lib-devel-0.9.1-rh61.i386.rpm</code><br> [i586]: <code>rpm -Uv --force alsa-lib-devel-0.9.1-rh61.i386.rpm</code><br>
...@@ -1228,7 +1256,7 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> ...@@ -1228,7 +1256,7 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
</blockquote> </blockquote>
As a last resort you can go to the As a last resort you can go to the
<a href="http://www.alsa-project.org" target="_blank"> <a href="http://www.alsa-project.org" target="_blank">
Advanced Linux Sound Architecture Site</a> and build it from Advanced Linux Sound Architecture Site</a> and build it from
source. source.
<blockquote> <blockquote>
Download driver and library Download driver and library
...@@ -1256,9 +1284,9 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> ...@@ -1256,9 +1284,9 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
building the JDK platform. To actually use ALSA sound drivers, more building the JDK platform. To actually use ALSA sound drivers, more
steps are necessary as outlined in the documentation on ALSA's homepage. steps are necessary as outlined in the documentation on ALSA's homepage.
<p> <p>
ALSA can be uninstalled by executing <tt>make uninstall</tt> first in ALSA can be uninstalled by executing <tt>make uninstall</tt> first in
the <tt>alsa-lib-0.9.1</tt> directory and then in the <tt>alsa-lib-0.9.1</tt> directory and then in
<tt>alsa-driver-0.9.1</tt>. <tt>alsa-driver-0.9.1</tt>.
</blockquote> </blockquote>
There are no ALT* variables to change the assumed locations of ALSA, There are no ALT* variables to change the assumed locations of ALSA,
the makefiles will expect to find the ALSA include files and library at: the makefiles will expect to find the ALSA include files and library at:
...@@ -1273,15 +1301,15 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> ...@@ -1273,15 +1301,15 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
on Windows which can be supplied by on Windows which can be supplied by
<a href="http://www.cygwin.com" target="_blank">CYGWIN</a>. <a href="http://www.cygwin.com" target="_blank">CYGWIN</a>.
<p> <p>
The OpenJDK build requires CYGWIN version 1.5.12 or newer. The OpenJDK build requires CYGWIN version 1.5.12 or newer.
Information about CYGWIN can Information about CYGWIN can
be obtained from the CYGWIN website at be obtained from the CYGWIN website at
<a href="http://www.cygwin.com" target="_blank">www.cygwin.com</a>. <a href="http://www.cygwin.com" target="_blank">www.cygwin.com</a>.
<p> <p>
By default CYGWIN doesn't install all the tools required for building By default CYGWIN doesn't install all the tools required for building
the OpenJDK. the OpenJDK.
Along with the default installation, you need to install Along with the default installation, you need to install
the following tools. the following tools.
<blockquote> <blockquote>
<table border="1"> <table border="1">
<thead> <thead>
...@@ -1298,21 +1326,21 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> ...@@ -1298,21 +1326,21 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
<td>Devel</td> <td>Devel</td>
<td>binutils</td> <td>binutils</td>
<td>The GNU assembler, linker and binary <td>The GNU assembler, linker and binary
utilities</td> utilities</td>
</tr> </tr>
<tr> <tr>
<td>make.exe</td> <td>make.exe</td>
<td>Devel</td> <td>Devel</td>
<td>make</td> <td>make</td>
<td>The GNU version of the 'make' utility built for CYGWIN.<br> <td>The GNU version of the 'make' utility built for CYGWIN.<br>
<b>NOTE</b>: See <a href="#gmake">the GNU make section</a></td> <b>NOTE</b>: See <a href="#gmake">the GNU make section</a></td>
</tr> </tr>
<tr> <tr>
<td>m4.exe</td> <td>m4.exe</td>
<td>Interpreters</td> <td>Interpreters</td>
<td>m4</td> <td>m4</td>
<td>GNU implementation of the traditional Unix macro <td>GNU implementation of the traditional Unix macro
processor</td> processor</td>
</tr> </tr>
<tr> <tr>
<td>cpio.exe</td> <td>cpio.exe</td>
...@@ -1354,21 +1382,21 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> ...@@ -1354,21 +1382,21 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
</table> </table>
</blockquote> </blockquote>
<p> <p>
Note that the CYGWIN software can conflict with other non-CYGWIN Note that the CYGWIN software can conflict with other non-CYGWIN
software on your Windows system. software on your Windows system.
CYGWIN provides a CYGWIN provides a
<a href="http://cygwin.com/faq/faq.using.html" target="_blank">FAQ</a> for <a href="http://cygwin.com/faq/faq.using.html" target="_blank">FAQ</a> for
known issues and problems, of particular interest is the known issues and problems, of particular interest is the
section on section on
<a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank"> <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank">
BLODA (applications that interfere with CYGWIN)</a>. BLODA (applications that interfere with CYGWIN)</a>.
<p> <p>
<b>WARNING:</b> <b>WARNING:</b>
Be very careful with <b><tt>link.exe</tt></b>, it will conflict Be very careful with <b><tt>link.exe</tt></b>, it will conflict
with the Visual Studio version. You need the Visual Studio with the Visual Studio version. You need the Visual Studio
version of <tt>link.exe</tt>, not the CYGWIN one. version of <tt>link.exe</tt>, not the CYGWIN one.
So it's important that the Visual Studio paths in PATH preceed So it's important that the Visual Studio paths in PATH preceed
the CYGWIN path <tt>/usr/bin</tt>. the CYGWIN path <tt>/usr/bin</tt>.
</blockquote> </blockquote>
<strong><a name="dxsdk">Microsoft DirectX 9.0 SDK header files and libraries</a></strong> <strong><a name="dxsdk">Microsoft DirectX 9.0 SDK header files and libraries</a></strong>
<blockquote> <blockquote>
...@@ -1377,7 +1405,7 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> ...@@ -1377,7 +1405,7 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
OpenJDK. OpenJDK.
This SDK can be downloaded from This SDK can be downloaded from
<a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FD044A42-9912-42A3-9A9E-D857199F888E&amp;displaylang=en" target="_blank"> <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FD044A42-9912-42A3-9A9E-D857199F888E&amp;displaylang=en" target="_blank">
Microsoft DirectX 9.0 SDK (Summer 2004)</a>. Microsoft DirectX 9.0 SDK (Summer 2004)</a>.
If the link above becomes obsolete, the SDK can be found from If the link above becomes obsolete, the SDK can be found from
<a href="http://download.microsoft.com" target="_blank">the Microsoft Download Site</a> <a href="http://download.microsoft.com" target="_blank">the Microsoft Download Site</a>
(search with "DirectX 9.0 SDK Update Summer 2004"). (search with "DirectX 9.0 SDK Update Summer 2004").
...@@ -1431,14 +1459,14 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> ...@@ -1431,14 +1459,14 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
</li> </li>
</ol> </ol>
<p> <p>
<strong>Solaris:</strong> <strong>Solaris:</strong>
Note that ARCH_DATA_MODEL is really only needed on Solaris to Note that ARCH_DATA_MODEL is really only needed on Solaris to
indicate you want to built the 64-bit version. indicate you want to built the 64-bit version.
And before the Solaris 64-bit binaries can be used, they And before the Solaris 64-bit binaries can be used, they
must be merged with the binaries from a separate 32-bit build. must be merged with the binaries from a separate 32-bit build.
The merged binaries may then be used in either 32-bit or 64-bit mode, with The merged binaries may then be used in either 32-bit or 64-bit mode, with
the selection occurring at runtime the selection occurring at runtime
with the <tt>-d32</tt> or <tt>-d64</tt> options. with the <tt>-d32</tt> or <tt>-d64</tt> options.
</blockquote> </blockquote>
<!-- ------------------------------------------------------ --> <!-- ------------------------------------------------------ -->
<hr> <hr>
...@@ -1450,37 +1478,39 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> ...@@ -1450,37 +1478,39 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
The default output directory is The default output directory is
<tt>build/<i>platform</i></tt>, <tt>build/<i>platform</i></tt>,
where <tt><i>platform</i></tt> is one of where <tt><i>platform</i></tt> is one of
<tt><ul> <blockquote>
<li>solaris-sparc</li> <ul>
<li>solaris-sparcv9</li> <li><tt>solaris-sparc</tt></li>
<li>solaris-i586</li> <li><tt>solaris-sparcv9</tt></li>
<li>solaris-amd64</li> <li><tt>solaris-i586</tt></li>
<li>linux-i586</li> <li><tt>solaris-amd64</tt></li>
<li>linux-amd64</li> <li><tt>linux-i586</tt></li>
<li>windows-i586</li> <li><tt>linux-amd64</tt></li>
<li>windows-amd64</li> <li><tt>windows-i586</tt></li>
</ul></tt> <li><tt>windows-amd64</tt></li>
</ul>
</blockquote>
In particular, the In particular, the
<tt>build/<i>platform</i>/j2sdk-image/bin</tt> <tt>build/<i>platform</i>/j2sdk-image/bin</tt>
directory should contain executables for the directory should contain executables for the
OpenJDK tools and utilities. OpenJDK tools and utilities.
<p> <p>
You can test that the build completed properly by using the build You can test that the build completed properly by using the build
to run the various demos that you will find in the to run the various demos that you will find in the
<tt>build/<i>platform</i>/j2sdk-image/demo</tt> <tt>build/<i>platform</i>/j2sdk-image/demo</tt>
directory. directory.
<p> <p>
The provided regression tests can be run with the <tt>jtreg</tt> The provided regression tests can be run with the <tt>jtreg</tt>
utility from utility from
<a href="http://openjdk.java.net/jtreg/" target="_blank">the jtreg site</a>. <a href="http://openjdk.java.net/jtreg/" target="_blank">the jtreg site</a>.
</blockquote> </blockquote>
<!-- ------------------------------------------------------ --> <!-- ------------------------------------------------------ -->
<hr> <hr>
<h2><a name="variables">Environment/Make Variables</a></h2> <h2><a name="variables">Environment/Make Variables</a></h2>
<p> <p>
Some of the Some of the
environment or make variables (just called <b>variables</b> in this environment or make variables (just called <b>variables</b> in this
document) that can impact the build are: document) that can impact the build are:
<blockquote> <blockquote>
<dl> <dl>
<dt><a name="path"><tt>PATH</tt></a> </dt> <dt><a name="path"><tt>PATH</tt></a> </dt>
...@@ -1488,11 +1518,11 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> ...@@ -1488,11 +1518,11 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
<ul> <ul>
<li>The location of the GNU make binary</li> <li>The location of the GNU make binary</li>
<li>The location of the Bootstrap JDK <tt>java</tt> <li>The location of the Bootstrap JDK <tt>java</tt>
(see <a href="#bootjdk">Bootstrap JDK</a>)</li> (see <a href="#bootjdk">Bootstrap JDK</a>)</li>
<li>The location of the C/C++ compilers <li>The location of the C/C++ compilers
(see <a href="#compilers"><tt>compilers</tt></a>)</li> (see <a href="#compilers"><tt>compilers</tt></a>)</li>
<li>The location or locations for the Unix command utilities <li>The location or locations for the Unix command utilities
(e.g. <tt>/usr/bin</tt>)</li> (e.g. <tt>/usr/bin</tt>)</li>
</ul> </ul>
</dd> </dd>
<dt><tt>MILESTONE</tt> </dt> <dt><tt>MILESTONE</tt> </dt>
...@@ -1523,14 +1553,6 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> ...@@ -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 You should always install your own local Bootstrap JDK and
always set <tt>ALT_BOOTDIR</tt> explicitly. always set <tt>ALT_BOOTDIR</tt> explicitly.
</dd> </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> <dt><a name="ALT_JDK_IMPORT_PATH"><tt>ALT_JDK_IMPORT_PATH</tt></a></dt>
<dd> <dd>
The location of a previously built JDK installation. 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> ...@@ -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 Where each of these directories contain the import JDK image
for that platform. for that platform.
</dd> </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> <dt><strong>Windows specific:</strong></dt>
<dd> <dd>
<dl> <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> <dd>
The location of the The location of the
Microsoft Visual Studio Microsoft Windows SDK where some tools will be
tools 'bin' directory. located.
The default is usually derived from The default is whatever WINDOWSSDKDIR is set to
<a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>. (or WindowsSdkDir) or the path
<pre>
c:\Program Files\Microsoft SDKs\Windows\v6.1a
</pre>
</dd> </dd>
<dt><tt><a name="ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> </dt> <dt><tt><a name="ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> </dt>
<dd> <dd>
...@@ -1694,17 +1699,17 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> ...@@ -1694,17 +1699,17 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
Look for the check list of the platform you are building on in the Look for the check list of the platform you are building on in the
<a href="#contents">Table of Contents</a>. <a href="#contents">Table of Contents</a>.
<p> <p>
You can validate your build environment by using the <tt>sanity</tt> You can validate your build environment by using the <tt>sanity</tt>
target. target.
Any errors listed Any errors listed
will stop the build from starting, and any warnings may result in will stop the build from starting, and any warnings may result in
a flawed product build. a flawed product build.
We strongly encourage you to evaluate every We strongly encourage you to evaluate every
sanity check warning and fix it if required, before you proceed sanity check warning and fix it if required, before you proceed
further with your build. further with your build.
<p> <p>
Some of the more common problems with builds are briefly described Some of the more common problems with builds are briefly described
below, with suggestions for remedies. below, with suggestions for remedies.
<ul> <ul>
<li> <li>
<b>Slow Builds:</b> <b>Slow Builds:</b>
...@@ -1715,15 +1720,15 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> ...@@ -1715,15 +1720,15 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
machine, setting it to more than the the number of CPUs is probably machine, setting it to more than the the number of CPUs is probably
not a good idea). not a good idea).
<p> <p>
Creating the javadocs can be very slow, if you are running Creating the javadocs can be very slow, if you are running
javadoc, consider skipping that step. javadoc, consider skipping that step.
<p> <p>
Faster hardware and more RAM always helps too. Faster hardware and more RAM always helps too.
The VM build tends to be CPU intensive (many C++ compiles), The VM build tends to be CPU intensive (many C++ compiles),
and the rest of the JDK will often be disk intensive. and the rest of the JDK will often be disk intensive.
<p> <p>
Faster compiles are possible using a tool called Faster compiles are possible using a tool called
<a href="http://ccache.samba.org/" target="_blank">ccache</a>. <a href="http://ccache.samba.org/" target="_blank">ccache</a>.
</blockquote> </blockquote>
</li> </li>
<li> <li>
...@@ -1732,10 +1737,10 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> ...@@ -1732,10 +1737,10 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
If you see warnings that refer to file time stamps, e.g. If you see warnings that refer to file time stamps, e.g.
<blockquote> <blockquote>
<i>Warning message:</i><tt> File `xxx' has modification time in <i>Warning message:</i><tt> File `xxx' has modification time in
the future.</tt> the future.</tt>
<br> <br>
<i>Warning message:</i> <tt> Clock skew detected. Your build may <i>Warning message:</i> <tt> Clock skew detected. Your build may
be incomplete.</tt> be incomplete.</tt>
</blockquote> </blockquote>
These warnings can occur when the clock on the build machine is out of These warnings can occur when the clock on the build machine is out of
sync with the timestamps on the source files. Other errors, apparently sync with the timestamps on the source files. Other errors, apparently
...@@ -1747,9 +1752,9 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> ...@@ -1747,9 +1752,9 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
when the pre-1.4 compiler ran across the new <tt>assert</tt> keyword when the pre-1.4 compiler ran across the new <tt>assert</tt> keyword
in the 1.4 source code. in the 1.4 source code.
<p> <p>
If you see these warnings, reset the clock on the build If you see these warnings, reset the clock on the build
machine, run "<tt><i>gmake</i> clobber</tt>" or delete the directory machine, run "<tt><i>gmake</i> clobber</tt>" or delete the directory
containing the build output, and restart the build from the beginning. containing the build output, and restart the build from the beginning.
</blockquote> </blockquote>
</li> </li>
<li> <li>
...@@ -1776,32 +1781,28 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> ...@@ -1776,32 +1781,28 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
<blockquote> <blockquote>
This is probably an issue with SELinux (See This is probably an issue with SELinux (See
<a href="http://en.wikipedia.org/wiki/SELinux" target="_blank"> <a href="http://en.wikipedia.org/wiki/SELinux" target="_blank">
http://en.wikipedia.org/wiki/SELinux</a>). http://en.wikipedia.org/wiki/SELinux</a>).
Parts of the VM is built without the <tt>-fPIC</tt> for Parts of the VM is built without the <tt>-fPIC</tt> for
performance reasons. performance reasons.
<p> <p>
To completely disable SELinux: To completely disable SELinux:
<tt> <ol>
<ol> <li><tt>$ su root</tt></li>
<li>$ su root</li> <li><tt># system-config-securitylevel</tt></li>
<li># system-config-securitylevel</li> <li><tt>In the window that appears, select the SELinux tab</tt></li>
<li>In the window that appears, select the SELinux tab</li> <li><tt>Disable SELinux</tt></li>
<li>Disable SELinux</li> </ol>
</ol>
</tt>
<p> <p>
Alternatively, instead of completely disabling it you could Alternatively, instead of completely disabling it you could
disable just this one check. disable just this one check.
<tt> <ol>
<ol> <li>Select System->Administration->SELinux Management</li>
<li>Select System->Administration->SELinux Management</li> <li>In the SELinux Management Tool which appears,
<li>In the SELinux Management Tool which appears,
select "Boolean" from the menu on the left</li> select "Boolean" from the menu on the left</li>
<li>Expand the "Memory Protection" group</li> <li>Expand the "Memory Protection" group</li>
<li>Check the first item, labeled <li>Check the first item, labeled
"Allow all unconfined executables to use libraries requiring text relocation ..."</li> "Allow all unconfined executables to use libraries requiring text relocation ..."</li>
</ol> </ol>
</tt>
</blockquote> </blockquote>
</li> </li>
<li> <li>
...@@ -1810,7 +1811,7 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> ...@@ -1810,7 +1811,7 @@ Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
The CYGWIN software can conflict with other non-CYGWIN The CYGWIN software can conflict with other non-CYGWIN
software. See the CYGWIN FAQ section on software. See the CYGWIN FAQ section on
<a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank"> <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank">
BLODA (applications that interfere with CYGWIN)</a>. BLODA (applications that interfere with CYGWIN)</a>.
</blockquote> </blockquote>
</li> </li>
<li> <li>
......
#!/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
#!/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.
先完成此消息的编辑!
想要评论请 注册