Merge
authorduke
Wed, 05 Jul 2017 18:42:42 +0200
changeset 15821 0e39dbe7fe97
parent 15820 8a6e09ace0d3 (current diff)
parent 15790 3a8903868eb2 (diff)
child 15830 f89fb3fb1554
Merge
--- a/.hgtags-top-repo	Fri Mar 01 04:45:51 2013 -0800
+++ b/.hgtags-top-repo	Wed Jul 05 18:42:42 2017 +0200
@@ -200,3 +200,4 @@
 278af9fc67e7eba2884936b49ec07345f423aabb jdk8-b76
 3933eebc659d58c597aa8cb4b3e58f2250ce3e1a jdk8-b77
 fd1a5574cf68af24bfd52decc37ac6361afb278a jdk8-b78
+91d35211e74464dca5edf9b66ab01d0d0d8cded7 jdk8-b79
--- a/README	Fri Mar 01 04:45:51 2013 -0800
+++ b/README	Wed Jul 05 18:42:42 2017 +0200
@@ -1,45 +1,40 @@
 README:
   This file should be located at the top of the OpenJDK Mercurial root
-  repository. This root repository will include a "make" directory,
-  and a Makefile for building the entire OpenJDK.
-  A full OpenJDK repository set (forest) should also include the following
-  6 nested repositories:
+  repository. A full OpenJDK repository set (forest) should also include
+  the following 6 nested repositories:
     "jdk", "hotspot", "langtools", "corba", "jaxws"  and "jaxp".
-  There are also several source downloads for the jax* repositories that
-  will be needed.
 
-  This one root repository can be obtained with something like:
-
+  The root repository can be obtained with something like:
     hg clone http://hg.openjdk.java.net/jdk8/jdk8 openjdk8
   
-  To make sure you have all the nested repositories, you can run the
-  get_source.sh script located in the same respository as this file:
-
+  You can run the get_source.sh script located in the root repository to get
+  the other needed repositories:
     cd openjdk8 && sh ./get_source.sh
 
   People unfamiliar with Mercurial should read the first few chapters of
   the Mercurial book: http://hgbook.red-bean.com/read/
 
-  See http://openjdk.java.net/ for more information about the OpenJDK.
+  See http://openjdk.java.net/ for more information about OpenJDK.
 
 Simple Build Instructions:
   
   0. Get the necessary system software/packages installed on your system, see
-     http://hg.openjdk.java.net/jdk8/build/raw-file/tip/README-builds.html
+     http://hg.openjdk.java.net/jdk8/jdk8/raw-file/tip/README-builds.html
 
-  1. If you don't have a jdk6 installed, download and install a JDK 6 from
+  1. If you don't have a jdk7u7 or newer jdk, download and install it from
      http://java.sun.com/javase/downloads/index.jsp
-     Set the environment variable ALT_BOOTDIR to the location of JDK 6.
+     Add the /bin directory of this installation to your PATH environment
+     variable.
 
-  2. Check the sanity of doing a build with your current system:
-       make sanity
-     See README-builds.html if you run into problems.
+  2. Configure the build:
+       bash ./configure
   
-  3. Do a complete build of the OpenJDK:
+  3. Build the OpenJDK:
        make all
-     The resulting JDK image should be found in build/*/j2sdk-image
+     The resulting JDK image should be found in build/*/images/j2sdk-image
 
 where make is GNU make 3.81 or newer, /usr/bin/make on Linux usually
-is 3.81 or newer.
+is 3.81 or newer. Note that on Solaris, GNU make is called "gmake".
 
-Complete details are available in README-builds.html.
+Complete details are available in the file:
+     http://hg.openjdk.java.net/jdk8/jdk8/raw-file/tip/README-builds.html
--- a/README-builds.html	Fri Mar 01 04:45:51 2013 -0800
+++ b/README-builds.html	Wed Jul 05 18:42:42 2017 +0200
@@ -3,14 +3,15 @@
     <head>
         <title>OpenJDK Build README</title>
     </head>
-    <body style="background-color:lightcyan">
+    <body style="background-color:aquamarine">
+
         <!-- ====================================================== -->
         <table width="100%">
             <tr>
                 <td align="center">
                     <img alt="OpenJDK" 
                          src="http://openjdk.java.net/images/openjdk.png" 
-                         width=256 />
+                         width=256>
                 </td>
             </tr>
             <tr>
@@ -19,109 +20,116 @@
                 </td>
             </tr>
         </table>
-        <!-- ------------------------------------------------------ --> 
+
+        <!-- ====================================================== -->
         <hr>
         <h2><a name="introduction">Introduction</a></h2>
         <blockquote>
-            <p>
-                This README file contains build instructions for the
-                <a href="http://openjdk.java.net"  target="_blank">OpenJDK</a>.
-                Building the source code for the
-                OpenJDK
-                requires
-                a certain degree of technical expertise.
+            This README file contains build instructions for the
+            <a href="http://openjdk.java.net"  target="_blank">OpenJDK</a>.
+            Building the source code for the
+            OpenJDK
+            requires
+            a certain degree of technical expertise.
+
+            <!-- ====================================================== -->
+            <h3>!!!!!!!!!!!!!!! THIS IS A MAJOR RE-WRITE of this document. !!!!!!!!!!!!!</h3>
+            <blockquote>
+                Some Headlines:
+                <ul>
+                    <li>
+                        The build is now a "<code>configure &amp;&amp; make</code>" style build
+                    </li>
+                    <li>
+                        Any GNU make 3.81 or newer should work
+                    </li>
+                    <li>
+                        The build should scale, i.e. more processors should
+                        cause the build to be done in less wall-clock time
+                    </li>
+                    <li>
+                        Nested or recursive make invocations have been significantly
+                        reduced, as has the total fork/exec or spawning
+                        of sub processes during the build
+                    </li>
+                    <li>
+                        Windows MKS usage is no longer supported
+                    </li>
+                    <li>
+                        Windows Visual Studio <code>vsvars*.bat</code> and 
+                        <code>vcvars*.bat</code> files are run automatically
+                    </li>
+                    <li>
+                        Ant is no longer used when building the OpenJDK
+                    </li>
+                    <li>
+                        Use of ALT_* environment variables for configuring the
+                        build is no longer supported
+                    </li>
+                </ul>
+            </blockquote>
         </blockquote>
-        <!-- ------------------------------------------------------ -->
+
+        <!-- ====================================================== -->
         <hr>
         <h2><a name="contents">Contents</a></h2>
         <blockquote>
             <ul>
                 <li><a href="#introduction">Introduction</a></li>
+
                 <li><a href="#hg">Use of Mercurial</a>
                     <ul>
                         <li><a href="#get_source">Getting the Source</a></li>
+                        <li><a href="#repositories">Repositories</a></li>
                     </ul>
                 </li>
-                <li><a href="#MBE">Minimum Build Environments</a></li>
-                <li><a href="#SDBE">Specific Developer Build Environments</a>
+
+                <li><a href="#building">Building</a>
                     <ul>
-                        <li><a href="#fedora">Fedora Linux</a> </li>
-                        <li><a href="#centos">CentOS Linux</a> </li>
-                        <li><a href="#debian">Debian GNU/Linux</a></li>
-                        <li><a href="#ubuntu">Ubuntu Linux</a> </li>
-                        <li><a href="#opensuse">OpenSUSE</a></li>
-                        <li><a href="#mandriva">Mandriva</a></li>
-                        <li><a href="#opensolaris">OpenSolaris</a></li>
-                    </ul>
-                </li>
-                <li><a href="#directories">Source Directory Structure</a> 
-                    <ul>
-                        <li><a href="#drops">Managing the Source Drops</a></li>
+                        <li><a href="#setup">System Setup</a>
+                            <ul>
+                                <li><a href="#linux">Linux</a></li>
+                                <li><a href="#solaris">Solaris</a></li>
+                                <li><a href="#macosx">Mac OS X</a></li>
+                                <li><a href="#windows">Windows</a></li>
+                            </ul>
+                        </li>
+                        <li><a href="#configure">Configure</a></li>
+                        <li><a href="#make">Make</a></li>
                     </ul>
                 </li>
-                <li><a href="#building">Build Information</a>
+                <li><a href="#testing">Testing</a></li>
+            </ul>
+            <hr>
+            <ul>
+                <li><a href="#hints">Appendix A: Hints and Tips</a>
                     <ul>
-                        <li><a href="#gmake">GNU Make (<tt><i>gmake</i></tt>)</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="#windows">Basic Windows System Setup</a> </li>
-                        <li><a href="#macosx">Basic Mac OS X System Setup</a></li>
-                        <li><a href="#dependencies">Build Dependencies</a>
-                            <ul>
-                                <li><a href="#bootjdk">Bootstrap JDK</a> </li>
-                                <li><a href="#importjdk">Optional Import JDK</a> </li>
-                                <li><a href="#ant">Ant 1.7.1</a> </li>
-                                <li><a href="#cacerts">Certificate Authority File (cacert)</a> </li>
-                                <li><a href="#compilers">Compilers</a>
-                                    <ul>
-                                        <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="#mssdk64">Microsoft Windows SDK for 64 bit</a> </li>
-                                        <li><a href="#gcc">Linux gcc/binutils</a> </li>
-                                        <li><a href="#studio">Sun Studio</a> </li>
-                                    </ul>
-                                </li>
-                                <li><a href="#zip">Zip and Unzip</a> </li>
-                                <li><a href="#freetype">FreeType2 Fonts</a> </li>
-                                <li>Linux and Solaris:
-                                    <ul>
-                                        <li><a href="#cups">CUPS Include files</a> </li>
-                                        <li><a href="#xrender">XRender Include files</a></li>
-                                    </ul>
-                                </li>
-                                <li>Linux only:
-                                    <ul>
-                                        <li><a href="#alsa">ALSA files</a> </li>
-                                    </ul>
-                                </li>
-                                <li>Windows only:
-                                    <ul>
-                                        <li>Unix Command Tools (<a href="#cygwin">CYGWIN</a>) <strong>or</strong></li>
-                                        <li>Minimalist GNU for Windows (<a href="#msys">MinGW/MSYS</a>)</li>
-                                        <li><a href="#dxsdk">DirectX 9.0 SDK</a> </li>
-                                    </ul>
-                                </li>
-                            </ul>
-                        </li>
+                        <li><a href="#faq">FAQ</a></li>
+                        <li><a href="#performance">Build Performance Tips</a></li>
+                        <li><a href="#troubleshooting">Troubleshooting</a></li>
                     </ul>
                 </li>
-                <li><a href="#creating">Creating the Build</a> </li>
-                <li><a href="#testing">Testing the Build</a> </li>
-                <li><a href="#variables">Environment/Make Variables</a></li>
-                <li><a href="#troubleshooting">Troubleshooting</a></li>
-                <li><a href="#newbuild">The New Build</a></li>
+                <li><a href="#gmake">Appendix B: GNU Make Information</a></li>
+                <li><a href="#buildenvironments">Appendix C: Build Environments</a></li>
+
+                <!-- Leave out
+                <li><a href="#mapping">Appendix D: Mapping Old Builds to the New Builds</a></li>    
+                -->
+
             </ul>
         </blockquote>
 
-        <!-- ------------------------------------------------------ -->
+        <!-- ====================================================== -->
         <hr>
         <h2><a name="hg">Use of Mercurial</a></h2>
         <blockquote>
             The OpenJDK sources are maintained with the revision control system
             <a href="http://mercurial.selenic.com/wiki/Mercurial">Mercurial</a>.
             If you are new to Mercurial, please see the
-            <a href="http://mercurial.selenic.com/wiki/BeginnersGuides">Beginner Guides</a>
-            or refer to the <a href="http://hgbook.red-bean.com/">Mercurial Book</a>.
+            <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>
@@ -130,578 +138,1631 @@
                 Developer Guide: Installing and Configuring Mercurial</a>
             section for more information.
 
-            <!-- ------------------------------------------------------ -->
             <h3><a name="get_source">Getting the Source</a></h3>
             <blockquote>
                 To get the entire set of OpenJDK Mercurial repositories
-                use the script <code>get_source.sh</code> located in the root repository:
+                use the script <code>get_source.sh</code> located in the 
+                root repository:
                 <blockquote>
-                    <tt>
-                        hg clone http://hg.openjdk.java.net/jdk8/jdk8 <i>YourOpenJDK</i>
-                        <br>cd <i>YourOpenJDK</i>
-                        <br>sh ./get_source.sh
-                    </tt>
+                    <code>
+                        hg clone http://hg.openjdk.java.net/jdk8/jdk8 
+                        <i>YourOpenJDK</i>
+                        <br>
+                        cd <i>YourOpenJDK</i>
+                        <br>
+                        bash ./get_source.sh
+                    </code>
+                </blockquote>
+                Once you have all the repositories, keep in mind that each
+                repository is it's own independent repository.
+                You can also re-run <code>./get_source.sh</code> anytime to
+                pull over all the latest changesets in all the repositories.
+                This set of nested repositories has been given the term
+                "forest" and there are various ways to apply the same
+                <code>hg</code> command to each of the repositories.
+                For example, the script <code>make/scripts/hgforest.sh</code>
+                can be used to repeat the same <code>hg</code>
+                command on every repository, e.g.
+                <blockquote>
+                    <code>
+                        cd <i>YourOpenJDK</i>
+                        <br>
+                        bash ./make/scripts/hgforest.sh status
+                    </code>
                 </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>
+            </blockquote>
+
+            <h3><a name="repositories">Repositories</a></h3>
+            <blockquote>
+                <p>The set of repositories and what they contain:</p>
+                <table border="1">
+                    <thead>
+                        <tr>
+                            <th>Repository</th>
+                            <th>Contains</th>
+                        </tr>
+                    </thead>                   
+                    <tbody>
+                        <tr>
+                            <td>
+                                . (root)
+                            </td>
+                            <td>
+                                common configure and makefile logic
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                hotspot
+                            </td>
+                            <td>
+                                source code and make files for building
+                                the OpenJDK Hotspot Virtual Machine                         
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                langtools
+                            </td>
+                            <td>
+                                source code for the OpenJDK javac and language tools
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                jdk
+                            </td>
+                            <td>
+                                source code and make files for building
+                                the OpenJDK runtime libraries and misc files
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                jaxp
+                            </td>
+                            <td>
+                                source code for the OpenJDK JAXP functionality
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                jaxws
+                            </td>
+                            <td>
+                                source code for the OpenJDK JAX-WS functionality
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>
+                                corba
+                            </td>
+                            <td>
+                                source code for the OpenJDK Corba functionality
+                            </td>
+                        </tr>
+                    </tbody>
+                </table>
+            </blockquote>
+
+            <h3><a name="guidelines">Repository Source Guidelines</a></h3>
+            <blockquote>
+                There are some very basic guidelines:
+                <ul>
+                    <li>
+                        Use of whitespace in source files
+                        (.java, .c, .h, .cpp, and .hpp files)
+                        is restricted.
+                        No TABs, no trailing whitespace on lines, and files
+                        should not terminate in more than one blank line.
+                    </li>
+                    <li>
+                        Files with execute permissions should not be added
+                        to the source repositories.
+                    </li>
+                    <li>
+                        All generated files need to be kept isolated from 
+                        the files
+                        maintained or managed by the source control system.
+                        The standard area for generated files is the top level
+                        <code>build/</code> directory.
+                    </li>
+                    <li>
+                        The default build process should be to build the product
+                        and nothing else, in one form, e.g. a product (optimized),
+                        debug (non-optimized, -g plus assert logic), or
+                        fastdebug (optimized, -g plus assert logic).
+                    </li>
+                    <li>
+                        The <tt>.hgignore</tt> file in each repository
+                        must exist and should
+                        include <tt>^build/</tt>, <tt>^dist/</tt> and 
+                        optionally any
+                        <tt>nbproject/private</tt> directories.
+                        <strong>It should NEVER</strong> include 
+                        anything in the
+                        <tt>src/</tt> or <tt>test/</tt>
+                        or any managed directory area of a repository.
+                    </li>
+                    <li>
+                        Directory names and file names should never contain
+                        blanks or
+                        non-printing characters.
+                    </li>
+                    <li>
+                        Generated source or binary files should NEVER be added to
+                        the repository (that includes <tt>javah</tt> output).
+                        There are some exceptions to this rule, in particular
+                        with some of the generated configure scripts.
+                    </li>
+                    <li>
+                        Files not needed for typical building
+                        or testing of the repository
+                        should not be added to the repository.
+                    </li>
+                </ul>
             </blockquote>
 
         </blockquote>
 
-        <!-- ------------------------------------------------------ -->
+        <!-- ====================================================== -->
         <hr>
-        <h2><a name="MBE">Minimum Build Environments</a></h2>
-        <blockquote>
-            This file often describes specific requirements for what we call the
-            "minimum build environments" (MBE) for this 
-            specific release of the JDK,
-            Building with the MBE will generate the most compatible
-            bits that install on, and run correctly on, the most variations
-            of the same base OS and hardware architecture.
-            These usually represent what is often called the
-            least common denominator platforms.
-            It is understood that most developers will NOT be using these 
-            specific platforms, and in fact creating these specific platforms
-            may be difficult due to the age of some of this software.
-            <p>
-                The minimum OS and C/C++ compiler versions needed for building the
-                OpenJDK:
-            <p>
-            <table border="1">
-                <thead>
-                    <tr>
-                        <th>Base OS and Architecture</th>
-                        <th>OS</th>
-                        <th>C/C++ Compiler</th>
-                        <th>BOOT JDK</th>
-                    </tr>
-                </thead>
-                <tbody>
-                    <tr>
-                        <td>Linux X86 (32-bit)</td>
-                        <td>Fedora 9</td>
-                        <td>gcc 4.3 </td>
-                        <td>JDK 6u18</td>
-                    </tr>
-                    <tr>
-                        <td>Linux X64 (64-bit)</td>
-                        <td>Fedora 9</td>
-                        <td>gcc 4.3 </td>
-                        <td>JDK 6u18</td>
-                    </tr>
-                    <tr>
-                        <td>Solaris SPARC (32-bit)</td>
-                        <td>Solaris 10 Update 6</td>
-                        <td>Sun Studio 12 Update 1 + patches</td>
-                        <td>JDK 6u18</td>
-                    </tr>
-                    <tr>
-                        <td>Solaris SPARCV9 (64-bit)</td>
-                        <td>Solaris 10 Update 6</td>
-                        <td>Sun Studio 12 Update 1 + patches</td>
-                        <td>JDK 6u18</td>
-                    </tr>
-                    <tr>
-                        <td>Solaris X86 (32-bit)</td>
-                        <td>Solaris 10 Update 6</td>
-                        <td>Sun Studio 12 Update 1 + patches</td>
-                        <td>JDK 6u18</td>
-                    </tr>
-                    <tr>
-                        <td>Solaris X64 (64-bit)</td>
-                        <td>Solaris 10 Update 6</td>
-                        <td>Sun Studio 12 Update 1 + patches</td>
-                        <td>JDK 6u18</td>
-                    </tr>
-                    <tr>
-                        <td>Windows X86 (32-bit)</td>
-                        <td>Windows XP</td>
-                        <td>Microsoft Visual Studio C++ 2010 Professional Edition</td>
-                        <td>JDK 6u18</td>
-                    </tr>
-                    <tr>
-                        <td>Windows X64 (64-bit)</td>
-                        <td>Windows Server 2003 - Enterprise x64 Edition</td>
-                        <td>Microsoft Visual Studio C++ 2010 Professional Edition</td>
-                        <td>JDK 6u18</td>
-                    </tr>
-                    <tr>
-                        <td>Mac OS X X64 (64-bit)</td>
-                        <td>Mac OS X 10.7.3 "Lion"</td>
-                        <td>XCode 4.1 or later</td>
-                        <td>Java for OS X Lion Update 1</td>
-                    </tr>
-                </tbody>
-            </table>
-            <p>
-            These same sources do indeed build on many more systems than the
-            above older generation systems, again the above is just a minimum.
-            <p>
-            Compilation problems with newer or different C/C++ compilers is a
-            common problem.
-            Similarly, compilation problems related to changes to the
-                <tt>/usr/include</tt> or system header files is also a
-            common problem with newer or unreleased OS versions.
-            Please report these types of problems as bugs so that they
-            can be dealt with accordingly.
-        </blockquote>
-        <!-- ------------------------------------------------------ -->
-        <hr>
-        <h2><a name="SDBE">Specific Developer Build Environments</a></h2>
-        <blockquote>
-            We won't be listing all the possible environments, but
-            we will try to provide what information we have available to us.
-        </blockquote>
-        <!-- ------------------------------------------------------ -->
-        <h3><a name="fedora">Fedora</a></h3>
+        <h2><a name="building">Building</a></h2>
         <blockquote>
-            <h4>Fedora 9</h4>
-            <p>
-            <blockquote>
-                After installing <a href="http://fedoraproject.org">Fedora</a> 9
-              you need to install several build dependencies. The simplest
-              way to do it is to execute the following commands as user 
-                <tt>root</tt>:
-                <p/>
-                <code>yum-builddep java-1.6.0-openjdk</code>
-                <p/>
-                <code>yum install gcc gcc-c++</code>
-                <p/>
-              In addition, it's necessary to set a few environment variables for the build:
-
-                <p/>
-                <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code>
-            </blockquote>
-            <h4>Fedora 10</h4>
-            <p>
+            The very first step in building the OpenJDK is making sure the
+            system itself has everything it needs to do OpenJDK builds.
+            Once a system is setup, it generally doesn't need to be done again.
+            <br>
+            Building the OpenJDK is now done with running a 
+            <a href="#configure"><code>configure</code></a>
+            script which will try and find and verify you have everything
+            you need, followed by running
+            <a href="#gmake"><code>make</code></a>, e.g.
             <blockquote>
-                After installing <a href="http://fedoraproject.org">Fedora</a> 10
-              you need to install several build dependencies. The simplest
-              way to do it is to execute the following commands as user 
-                <tt>root</tt>:
-                <p/>
-                <code>yum-builddep java-1.6.0-openjdk</code>
-                <p/>
-                <code>yum install gcc gcc-c++</code>
-                <p/>
-              In addition, it's necessary to set a few environment variables for the build:
-
-                <p/>
-                <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code>
-            </blockquote>
-            <h4>Fedora 11</h4>
-            <p>
-            <blockquote>
-                After installing <a href="http://fedoraproject.org">Fedora</a> 11
-              you need to install several build dependencies. The simplest
-              way to do it is to execute the following commands as user 
-                <tt>root</tt>:
-                <p/>
-                <code>yum-builddep java-1.6.0-openjdk</code>
-                <p/>
-                <code>yum install gcc gcc-c++</code>
-                <p/>
-              In addition, it's necessary to set a few environment variables for the build:
-
-                <p/>
-                <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code>
+                <b>
+                    <code>
+                        bash ./configure<br>
+                        make all
+                    </code>
+                </b>
             </blockquote>
-        </blockquote>
-        <!-- ------------------------------------------------------ -->
-        <h3><a name="centos">CentOS 5.5</a></h3>
-        <blockquote>
-            After installing
-            <a href="http://www.centos.org/">CentOS 5.5</a>
-            you need to make sure you have
-            the following Development bundles installed:
+            Where possible the <code>configure</code> script will attempt to located the
+            various components in the default locations or via component
+            specific variable settings.
+            When the normal defaults fail or components cannot be found,
+            additional <code>configure</code> options may be necessary to help <code>configure</code>
+            find the necessary tools for the build, or you may need to
+            re-visit the setup of your system due to missing software
+            packages.
+            <br>
+            <strong>NOTE:</strong> The <code>configure</code> script
+            file does not have
+            execute permissions and will need to be explicitly run with
+            <code>bash</code>,
+            see the <a href="#guidelines">source guidelines</a>.
+
+            <!-- ====================================================== -->
+            <hr>
+            <h3><a name="setup">System Setup</a></h3>
             <blockquote>
+                Before even attempting to use a system to build the OpenJDK
+                there are some very basic system setups needed.
+                For all systems:
                 <ul>
-                    <li>Development Libraries</li>
-                    <li>Development Tools</li>
-                    <li>Java Development</li>
-                    <li>X Software Development (Including XFree86-devel)</li>
+                    <li>
+                        Be sure the GNU make utility is version 3.81 or newer,
+                        e.g. run "<code>make -version</code>"
+                    </li>
+                    <li>
+                        Install a
+                        <a name="bootjdk">Bootstrap JDK</a>
+                        <br>
+                        All OpenJDK builds require access to a previously released
+                        JDK, this is often called a bootstrap JDK.
+                        Currently, for this JDK release we require
+                        JDK 7 Update 7 or newer.
+                        The JDK 7 binaries can be downloaded from Oracle's 
+                        <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html"
+                           target="_blank">JDK 7 download site</a>.
+                        For build performance reasons
+                        is very important that this bootstrap JDK be made available 
+                        on the local disk of the machine doing the build.
+                        You should add its <code>bin</code> directory
+                        to the <code>PATH</code> environment variable.
+                        If <code>configure</code> has any issues finding this JDK, you may
+                        need to use the <code>configure</code> option
+                        <code>--with-boot-jdk</code>.
+                    </li>
+                    <li>
+                        Insure that GNU make, the Bootstrap JDK,
+                        and the compilers are all
+                        in your PATH environment variable
+                    </li>
                 </ul>
-            </blockquote>
-            <p>
-                Plus the following packages:
-            <blockquote>
-                <ul>
-                    <li>cups devel: Cups Development Package</li>
-                    <li>alsa devel: Alsa Development Package</li>
-                    <li>ant: Ant Package</li>
-                    <li>Xi devel: libXi.so Development Package</li>
-                </ul>
+                And for specific systems:
+                <table border="1">
+                    <thead>
+                        <tr>
+                            <th>Linux</th>
+                            <th>Solaris</th>
+                            <th>Windows</th>
+                            <th>Mac OS X</th>
+                        </tr>
+                    </thead>                   
+                    <tbody>
+                        <tr>
+                            <td>
+                                Install all the software development
+                                packages needed including
+                                <a href="#alsa">alsa</a>,
+                                <a href="#freetype">freetype</a>,
+                                <a href="#cups">cups</a>, and
+                                <a href="#xrender">xrender</a>.
+                                <br>
+                                See
+                                <a href="#SDBE">specific system packages</a>.
+                            </td>
+                            <td>
+                                Install all the software development
+                                packages needed  including
+                                <a href="#studio">Studio Compilers</a>,
+                                <a href="#freetype">freetype</a>,
+                                <a href="#cups">cups</a>, and
+                                <a href="#xrender">xrender</a>.
+                                <br>
+                                See
+                                <a href="#SDBE">specific system packages</a>.
+                            </td>
+                            <td>
+                                <ul>
+                                    <li>
+                                        Install one of
+                                        <a href="#cygwin">CYGWIN</a> or
+                                        <a href="#msys">MinGW/MSYS</a>
+                                    </li>
+                                    <li>
+                                        Install
+                                        <a href="#vs2010">Visual Studio 2010</a>
+                                    </li>
+                                    <li>
+                                        Install the
+                                        <a href="#dxsdk">Microsoft DirectX SDK</a>
+                                    </li>
+                                </ul>
+                            </td>
+                            <td>
+                                Install 
+                                <a href="https://developer.apple.com/xcode/">XCode 4.5.2</a> 
+                                and also install the "Command line tools" found under the
+                                preferences pane "Downloads"
+                            </td>
+                        </tr>
+                    </tbody>
+                </table>
+
+                <h4><a name="linux">Linux</a></h4>
+                <blockquote>
+                    With Linux, try and favor the system packages over 
+                    building your own
+                    or getting packages from other areas.
+                    Most Linux builds should be possible with the system's
+                    available packages.
+                    <br>
+                    Note that some Linux systems have a habit of pre-populating
+                    your environment variables for you, for example <code>JAVA_HOME</code>
+                    might get pre-defined for you to refer to the JDK installed on
+                    your Linux system.
+                    You will need to unset <code>JAVA_HOME</code>.
+                    It's a good idea to run <code>env</code> and verify the
+                    environment variables you are getting from the default system
+                    settings make sense for building the OpenJDK.
+
+                </blockquote>
+
+                <h4><a name="solaris">Solaris</a></h4>
+                <blockquote>
+                    <h5><a name="studio">Studio Compilers</a></h5>
+                    <blockquote>
+                        At a minimum, the
+                        <a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.htm" target="_blank">
+                            Studio 12 Update 1 Compilers</a>
+                        (containing version 5.10 of the C and C++ compilers) is required,
+                        including specific patches.
+                        <p>
+                            The Solaris SPARC patch list is:
+                        <ul>
+                            <li>
+                                118683-05: SunOS 5.10: Patch for profiling libraries and assembler
+                            </li>
+                            <li>
+                                119963-21: SunOS 5.10: Shared library patch for C++
+                            </li>
+                            <li>
+                                120753-08: SunOS 5.10: Microtasking libraries (libmtsk) patch
+                            </li>
+                            <li>
+                                128228-09: Sun Studio 12 Update 1: Patch for Sun C++ Compiler
+                            </li>
+                            <li>
+                                141860-03: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95
+                            </li>
+                            <li>
+                                141861-05: Sun Studio 12 Update 1: Patch for Sun C Compiler
+                            </li>
+                            <li>
+                                142371-01: Sun Studio 12.1 Update 1: Patch for dbx
+                            </li>
+                            <li>
+                                143384-02: Sun Studio 12 Update 1: Patch for debuginfo handling
+                            </li>
+                            <li>
+                                143385-02: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95
+                            </li>
+                            <li>
+                                142369-01: Sun Studio 12.1: Patch for Performance Analyzer Tools
+                            </li>
+                        </ul>
+                        <p>
+                            The Solaris X86 patch list is:
+                        <ul>
+                            <li>
+                                119961-07: SunOS 5.10_x86, x64, Patch for profiling libraries and assembler
+                            </li>
+                            <li>
+                                119964-21: SunOS 5.10_x86: Shared library patch for C++_x86
+                            </li>
+                            <li>
+                                120754-08: SunOS 5.10_x86: Microtasking libraries (libmtsk) patch
+                            </li>
+                            <li>
+                                141858-06: Sun Studio 12 Update 1_x86: Sun Compiler Common patch for x86 backend
+                            </li>
+                            <li>
+                                128229-09: Sun Studio 12 Update 1_x86: Patch for C++ Compiler
+                            </li>
+                            <li>
+                                142363-05: Sun Studio 12 Update 1_x86: Patch for C Compiler
+                            </li>
+                            <li>
+                                142368-01: Sun Studio 12.1_x86: Patch for Performance Analyzer Tools
+                            </li>
+                        </ul>
+                        <p> 
+                            Place the <code>bin</code> directory in <code>PATH</code>.
+                        <p>
+                            The Oracle Solaris Studio Express compilers at:
+                            <a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index-jsp-142582.html" target="_blank">
+                                Oracle Solaris Studio Express Download site</a>
+                            are also an option, although these compilers have not
+                            been extensively used yet.
+                    </blockquote>
+
+                </blockquote> <!-- Solaris -->
+
+                <h4><a name="windows">Windows</a></h4>
+                <blockquote>
+
+                    <h5><a name="toolkit">Windows Unix Toolkit</a></h5>
+                    <blockquote>
+                        Building on Windows requires a Unix-like environment, notably a 
+                        Unix-like shell.
+                        There are several such environments available of which 
+                        <a href="http://www.cygwin.com/">Cygwin</a> and 
+                        <a href="http://www.mingw.org/wiki/MSYS">MinGW/MSYS</a> are 
+                        currently supported for
+                        the OpenJDK build. One of the differences of these 
+                        systems from standard Windows tools is the way
+                        they handle Windows path names, particularly path names which contain
+                        spaces, backslashes as path separators and possibly drive letters. 
+                        Depending
+                        on the use case and the specifics of each environment these path 
+                        problems can
+                        be solved by a combination of quoting whole paths, translating 
+                        backslashes to
+                        forward slashes, escaping backslashes with additional backslashes and
+                        translating the path names to their 
+                        <a href="http://en.wikipedia.org/wiki/8.3_filename">
+                            "8.3" version</a>.
+
+                        <h6><a name="cygwin">CYGWIN</a></h6>
+                        <blockquote>
+                            CYGWIN is an open source, Linux-like environment which tries to emulate
+                            a complete POSIX layer on Windows. It tries to be smart about path names
+                            and can usually handle all kinds of paths if they are correctly quoted
+                            or escaped although internally it maps drive letters <code>&lt;drive&gt;:</code> 
+                            to a virtual directory <code>/cygdrive/&lt;drive&gt;</code>.
+                            <p>
+                                You can always use the <code>cygpath</code> utility to map pathnames with spaces
+                                or the backslash character into the <code>C:/</code> style of pathname
+                                (called 'mixed'), e.g. <code>cygpath -s -m "<i>path</i>"</code>.
+                            </p>
+                            <p>
+                                Note that the use of CYGWIN creates a unique problem with regards to
+                                setting <a href="#path"><code>PATH</code></a>. Normally on Windows
+                                the <code>PATH</code> variable contains directories
+                                separated with the ";" character (Solaris and Linux use ":").
+                                With CYGWIN, it uses ":", but that means that paths like "C:/path"
+                                cannot be placed in the CYGWIN version  of <code>PATH</code> and
+                                instead CYGWIN uses something like <code>/cygdrive/c/path</code>
+                                which CYGWIN understands, but only CYGWIN understands.
+                            </p>
+                            <p>
+                                The OpenJDK build requires CYGWIN version 1.7.16 or newer.
+                                Information about CYGWIN can
+                                be obtained from the CYGWIN website at
+                                <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
+                                the OpenJDK.
+                                Along with the default installation, you need to install
+                                the following tools.
+                            <blockquote>
+                                <table border="1">
+                                    <thead>
+                                        <tr>
+                                            <td>Binary Name</td>
+                                            <td>Category</td>
+                                            <td>Package</td>
+                                            <td>Description</td>
+                                        </tr>
+                                    </thead>
+                                    <tbody>
+                                        <tr>
+                                            <td>ar.exe</td>
+                                            <td>Devel</td>
+                                            <td>binutils</td>
+                                            <td>
+                                                The GNU assembler, linker and binary utilities
+                                            </td>
+                                        </tr>
+                                        <tr>
+                                            <td>make.exe</td>
+                                            <td>Devel</td>
+                                            <td>make</td>
+                                            <td>
+                                                The GNU version of the 'make' utility built for CYGWIN
+                                            </td>
+                                        </tr>
+                                        <tr>
+                                            <td>m4.exe</td>
+                                            <td>Interpreters</td>
+                                            <td>m4</td>
+                                            <td>
+                                                GNU implementation of the traditional Unix macro
+                                                processor
+                                            </td>
+                                        </tr>
+                                        <tr>
+                                            <td>cpio.exe</td>
+                                            <td>Utils</td>
+                                            <td>cpio</td>
+                                            <td>
+                                                A program to manage archives of files
+                                            </td>
+                                        </tr>
+                                        <tr>
+                                            <td>gawk.exe</td>
+                                            <td>Utils</td>
+                                            <td>awk</td>
+                                            <td>
+                                                Pattern-directed scanning and processing language
+                                            </td>
+                                        </tr>
+                                        <tr>
+                                            <td>file.exe</td>
+                                            <td>Utils</td>
+                                            <td>file</td>
+                                            <td>
+                                                Determines file type using 'magic' numbers
+                                            </td>
+                                        </tr>
+                                        <tr>
+                                            <td>zip.exe</td>
+                                            <td>Archive</td>
+                                            <td>zip</td>
+                                            <td>
+                                                Package and compress (archive) files
+                                            </td>
+                                        </tr>
+                                        <tr>
+                                            <td>unzip.exe</td>
+                                            <td>Archive</td>
+                                            <td>unzip</td>
+                                            <td>
+                                                Extract compressed files in a ZIP archive
+                                            </td>
+                                        </tr>
+                                        <tr>
+                                            <td>free.exe</td>
+                                            <td>System</td>
+                                            <td>procps</td>
+                                            <td>
+                                                Display amount of free and used memory in the system
+                                            </td>
+                                        </tr>
+                                    </tbody>
+                                </table>
+                            </blockquote>
+                            Note that the CYGWIN software can conflict with other non-CYGWIN
+                            software on your Windows system.
+                            CYGWIN provides a
+                            <a href="http://cygwin.com/faq/faq.using.html" target="_blank">FAQ</a> for
+                            known issues and problems, of particular interest is the
+                            section on
+                            <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank">
+                                BLODA (applications that interfere with CYGWIN)</a>.
+                        </blockquote>
+
+                        <h6><a name="msys">MinGW/MSYS</a></h6> 
+                        <blockquote>
+                            MinGW ("Minimalist GNU for Windows") is a collection of free Windows
+                            specific header files and import libraries combined with GNU toolsets that
+                            allow one to produce native Windows programs that do not rely on any
+                            3rd-party C runtime DLLs. MSYS is a supplement to MinGW which allows building
+                            applications and programs which rely on traditional UNIX tools to
+                            be present. Among others this includes tools like <code>bash</code>
+                            and <code>make</code>.
+                            See <a href="http://www.mingw.org/wiki/MSYS" target="_blank">MinGW/MSYS</a>
+                            for more information.
+                            <p>
+                                Like Cygwin, MinGW/MSYS can handle different types of path formats. They
+                                are internally converted to paths with forward slashes and drive letters
+                                <code>&lt;drive&gt;:</code> replaced by a virtual
+                                directory <code>/&lt;drive&gt;</code>.  Additionally, MSYS automatically
+                                detects binaries compiled for the MSYS environment and feeds them with the
+                                internal, Unix-style path names. If native Windows applications are called
+                                from within MSYS programs their path arguments are automatically converted
+                                back to Windows style path names with drive letters and backslashes as
+                                path separators. This may cause problems for Windows applications which
+                                use forward slashes as parameter separator (e.g. <code>cl /nologo /I</code>)
+                                because MSYS may wrongly <a href="http://mingw.org/wiki/Posix_path_conversion">
+                                    replace such parameters by drive letters</a>.
+                            </p>
+                            <p>
+                                In addition to the tools which will be installed
+                                by default, you have
+                                to manually install the
+                                <code>msys-zip</code> and
+                                <code>msys-unzip</code> packages.
+                                This can be easily done with the MinGW command line installer:
+                            <blockquote> 
+                                <code>mingw-get.exe install msys-zip</code>
+                                <br>
+                                <code>mingw-get.exe install msys-unzip</code>
+                            </blockquote> 
+                        </blockquote>
+
+                    </blockquote>
+
+                    <h5><a name="vs2010">Visual Studio 2010 Compilers</a></h5>
+                    <blockquote>
+                        <p>
+                            The 32-bit and 64-bit OpenJDK Windows build requires
+                            Microsoft Visual Studio C++ 2010 (VS2010) Professional
+                            Edition or Express compiler.
+                            The compiler and other tools are expected to reside
+                            in the location defined by the variable
+                            <code>VS100COMNTOOLS</code> which
+                            is set by the Microsoft Visual Studio installer.
+                        </p>
+                        <p>
+                            Only the C++ part of VS2010 is needed.
+                            Try to let the installation go to the default 
+                            install directory.
+                            Always reboot your system after installing VS2010.
+                            The system environment variable VS100COMNTOOLS 
+                            should be
+                            set in your environment.
+                        </p>
+                        <p>
+                            Make sure that TMP and TEMP are also set 
+                            in the environment
+                            and refer to Windows paths that exist, 
+                            like <code>C:\temp</code>,
+                            not <code>/tmp</code>, not <code>/cygdrive/c/temp</code>, 
+                            and not <code>C:/temp</code>.
+                            <code>C:\temp</code> is just an example, 
+                            it is assumed that this area is
+                            private to the user, so by default 
+                            after installs you should
+                            see a unique user path in these variables.
+                        </p>
+                    </blockquote>
+
+
+                </blockquote> <!-- Windows -->
+
+                <h4><a name="macosx">Mac OS X</a></h4>
+                <blockquote>
+                    Make sure you get the right XCode version.
+                </blockquote> <!-- Mac OS X -->
+
             </blockquote>
-            <p>
-                The freetype 2.3 packages don't seem to be available,
-                but the freetype 2.3 sources can be downloaded, built,
-                and installed easily enough from
-                <a href="http://downloads.sourceforge.net/freetype">
-                    the freetype site</a>.
-                Build and install with something like:
+
+            <!-- ====================================================== -->
+            <hr>
+            <h3><a name="configure">Configure</a></h3>
             <blockquote>
-                <tt>./configure && make && sudo -u root make install</tt>
+                The basic invocation of the <code>configure</code> script
+                looks like:
+                <blockquote>
+                    <b><code>bash ./configure [<i>options</i>]</code></b>
+                </blockquote>
+                This will create an output directory containing the
+                "configuration" and setup an area for the build result.
+                This directory typically looks like:
+                <blockquote>
+                    <b><code>build/linux-x64-normal-server-release</code></b>
+                </blockquote>
+                <code>configure</code> will try to figure out what system you are running on 
+                and where all necessary build components are.
+                If you have all prerequisites for building installed,
+                it should find everything.
+                If it fails to detect any component automatically,
+                it will exit and inform you about the problem.
+                When this happens, read more below in
+                <a href="#configureoptions">the <code>configure</code> options</a>.
+                <p>
+                    Some examples:
+                </p>
+                <table border="1">
+                    <thead>
+                        <tr>
+                            <th>Description</th>
+                            <th>Configure Command Line</th>
+                        </tr>
+                    </thead>                   
+                    <tbody>
+                        <tr>
+                            <td>Windows 32bit build with freetype specified</td>
+                            <td>
+                                <code>bash ./configure --with-freetype=/cygdrive/c/freetype-i586 --with-target-bits=32</code>   
+                            </td>
+                        </tr>
+                        <tr>
+                            <td>Debug 64bit Build</td>
+                            <td>
+                                <code>bash ./configure --enable-debug --with-target-bits=64</code>   
+                            </td>
+                        </tr>
+                    </tbody>
+                </table>
+
+                <!-- ====================================================== -->
+                <h4><a name="configureoptions">Configure Options</a></h4>
+                <blockquote>
+                    Complete details on all the OpenJDK <code>configure</code> options can
+                    be seen with:
+                    <blockquote>
+                        <b><code>bash ./configure --help=short</code></b>
+                    </blockquote>
+                    Use <code>-help</code> to see all the <code>configure</code> options
+                    available.
+
+                    You can generate any number of different configurations,
+                    e.g. debug, release, 32, 64, etc.
+
+                    Some of the more commonly used <code>configure</code> options are:
+
+                    <table border="1">
+                        <thead>
+                            <tr>
+                                <th width="300">OpenJDK Configure Option</th>
+                                <th>Description</th>
+                            </tr>
+                        </thead>                   
+                        <tbody>
+                            <tr>
+                                <td><b><code>--enable-debug</code></b></td>
+                                <td>
+                                    set the debug level to fastdebug (this is a shorthand for
+                                    <code>--with-debug-level=fastdebug</code>)
+                                </td>
+                            </tr>
+                            <tr>
+                                <td><b><code>--with-alsa=</code></b><i>path</i></td>
+                                <td>
+                                    select the location of the
+                                    <a name="alsa">Advanced Linux Sound Architecture (ALSA)</a>
+                                    <br>                        
+                                    Version 0.9.1 or newer of the ALSA files are
+                                    required for building the OpenJDK on Linux.
+                                    These Linux files are usually available from an "alsa"
+                                    of "libasound"
+                                    development package,
+                                    and it's highly recommended that you try and use
+                                    the package provided by the particular version of Linux that
+                                    you are using.
+                                </td>
+                            </tr>   
+                            <tr>
+                                <td><b><code>--with-boot-jdk=</code></b><i>path</i></td>
+                                <td>
+                                    select the <a href="#bootjdk">Bootstrap JDK</a>
+                                </td>
+                            </tr>                      
+                            <tr>
+                                <td><b><code>--with-boot-jdk-jvmargs=</code></b>"<i>args</i>"</td>
+                                <td>
+                                    provide the JVM options to be used to run the 
+                                    <a href="#bootjdk">Bootstrap JDK</a>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td><b><code>--with-cacerts=</code></b><i>path</i></td>
+                                <td>
+                                    select the path to the cacerts file.
+                                    <br>
+                                    See <a href="http://en.wikipedia.org/wiki/Certificate_Authority" target="_blank">
+                                        http://en.wikipedia.org/wiki/Certificate_Authority</a>
+                                    for a better understanding of the Certificate Authority (CA).
+                                    A certificates file named "cacerts"
+                                    represents a system-wide keystore with CA certificates. 
+                                    In JDK and JRE
+                                    binary bundles, the "cacerts" file contains root CA certificates from
+                                    several public CAs (e.g., VeriSign, Thawte, and Baltimore).
+                                    The source contain a cacerts file
+                                    without CA root certificates. 
+                                    Formal JDK builders will need to secure
+                                    permission from each public CA and include the certificates into their
+                                    own custom cacerts file. 
+                                    Failure to provide a populated cacerts file
+                                    will result in verification errors of a certificate chain during runtime.
+                                    By default an empty cacerts file is provided and that should be
+                                    fine for most JDK developers.
+                                </td>
+                            </tr>    
+                            <tr>
+                                <td><b><code>--with-cups=</code></b><i>path</i></td>
+                                <td>
+                                    select the CUPS install location
+                                    <br>
+                                    The
+                                    <a name="cups">Common UNIX Printing System (CUPS) Headers</a>
+                                    are required for building the 
+                                    OpenJDK on Solaris and Linux.
+                                    The Solaris header files can be obtained by installing 
+                                    the package <strong>SFWcups</strong> from the Solaris Software
+                                    Companion CD/DVD, these often will be installed into the
+                                    directory <code>/opt/sfw/cups</code>.
+                                    <br>
+                                    The CUPS header files can always be downloaded from
+                                    <a href="http://www.cups.org" target="_blank">www.cups.org</a>.
+                                </td>
+                            </tr>    
+                            <tr>
+                                <td><b><code>--with-cups-include=</code></b><i>path</i></td>
+                                <td>
+                                    select the CUPS include directory location
+                                </td>
+                            </tr>                           
+                            <tr>
+                                <td><b><code>--with-debug-level=</code></b><i>level</i></td>
+                                <td>
+                                    select the debug information level of release,
+                                    fastdebug, or slowdebug
+                                </td>
+                            </tr>                          
+                            <tr>
+                                <td><b><code>--with-dev-kit=</code></b><i>path</i></td>
+                                <td>
+                                    select location of the compiler install or
+                                    developer install location
+                                </td>
+                            </tr>       
+                            <tr>
+                                <td><b><code>--with-dxsdk=</code></b><i>path</i></td>
+                                <td>
+                                    select location of the Windows Direct X SDK install
+                                    <br>
+                                    The <a name="dxsdk">Microsoft DirectX 9.0 SDK</a>
+                                    header files and libraries
+                                    from the Summer 2004 edition
+                                    are required for building OpenJDK.
+                                    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">
+                                        Microsoft DirectX 9.0 SDK (Summer 2004)</a>.
+                                    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>
+                                    (search with "DirectX 9.0 SDK Update Summer 2004"). 
+                                    Installation usually will set the environment variable
+                                    <code>DXSDK_DIR</code> to it's install location.
+                                </td>
+                            </tr>       
+                            <tr>
+                                <td><b><code>--with-freetype=</code></b><i>path</i></td>
+                                <td>
+                                    select the freetype files to use.
+                                    <br>
+                                    Expecting the
+                                    <a name="freetype">freetype</a> libraries under
+                                    <code>lib/</code> and the
+                                    headers under <code>include/</code>.
+                                    <br>
+                                    Version 2.3 or newer of FreeType is required.
+                                    On Unix systems required files can be available as part of your
+                                    distribution (while you still may need to upgrade them).
+                                    Note that you need development version of package that 
+                                    includes both the FreeType library and header files.
+                                    <br>
+                                    You can always download latest FreeType version from the
+                                    <a href="http://www.freetype.org" target="_blank">FreeType website</a>.
+                                    <br>
+                                    Building the freetype 2 libraries from scratch is also possible,
+                                    however on Windows refer to the
+                                    <a href="http://freetype.freedesktop.org/wiki/FreeType_DLL">
+                                        Windows FreeType DLL build instructions</a>.
+                                    <br>
+                                    Note that by default FreeType is built with byte code hinting
+                                    support disabled due to licensing restrictions.
+                                    In this case, text appearance and metrics are expected to
+                                    differ from Sun's official JDK build.
+                                    See
+                                    <a href="http://freetype.sourceforge.net/freetype2/index.html">
+                                        the SourceForge FreeType2 Home Page
+                                    </a>
+                                    for more information.
+                                </td>
+                            </tr>                          
+                            <tr>
+                                <td><b><code>--with-import-hotspot=</code></b><i>path</i></td>
+                                <td>
+                                    select the location to find hotspot
+                                    binaries from a previous build to avoid building
+                                    hotspot
+                                </td>
+                            </tr>                          
+                            <tr>
+                                <td><b><code>--with-target-bits=</code></b><i>arg</i></td>
+                                <td>
+                                    select 32 or 64 bit build
+                                </td>
+                            </tr>                           
+                            <tr>
+                                <td><b><code>--with-jvm-variants=</code></b><i>variants</i></td>
+                                <td>
+                                    select the JVM variants to build from, comma
+                                    separated list that can include:
+                                    server, client, kernel, zero and zeroshark
+                                </td>
+                            </tr>                           
+                            <tr>
+                                <td><b><code>--with-memory-size=</code></b><i>size</i></td>
+                                <td>
+                                    select the RAM size that GNU make will think
+                                    this system has
+                                </td>
+                            </tr>                            
+                            <tr>
+                                <td><a name="msvcrNN"><b><code>--with-msvcr-dll=</code></b><i>path</i></a></td>
+                                <td>
+                                    select the <code>msvcr100.dll</code>
+                                    file to include in the
+                                    Windows builds (C/C++ runtime library for
+                                    Visual Studio).
+                                    <br>
+                                    This is usually picked up automatically
+                                    from the redist
+                                    directories of Visual Studio 2010.
+                                </td>
+                            </tr>                            
+                            <tr>
+                                <td><b><code>--with-num-cores=</code></b><i>cores</i></td>
+                                <td>
+                                    select the number of cores to use (processor
+                                    count or CPU count)
+                                </td>
+                            </tr>
+                            <tr>
+                                <td><b><code>--with-x=</code></b><i>path</i></td>
+                                <td>
+                                    select the location of the X11 and xrender files.
+                                    <br>
+                                    The
+                                    <a name="xrender">XRender Extension Headers</a>
+                                    are required for building the
+                                    OpenJDK on Solaris and Linux.
+                                    <br>
+                                    The Linux header files are usually available from a "Xrender"
+                                    development package, it's recommended that you try and use
+                                    the package provided by the particular distribution of Linux that
+                                    you are using.
+                                    <br>
+                                    The Solaris XRender header files is
+                                    included with the other X11 header files
+                                    in the package <strong>SFWxwinc</strong>
+                                    on new enough versions of
+                                    Solaris and will be installed in
+                                    <code>/usr/X11/include/X11/extensions/Xrender.h</code> or
+                                    <code>/usr/openwin/share/include/X11/extensions/Xrender.h</code>
+                                </td>
+                            </tr>
+                        </tbody>
+                    </table>
+                </blockquote>
+
             </blockquote>
-            <p>
-                Mercurial packages could not be found easily, but a Google
-                search should find ones, and they usually include Python if
-                it's needed.
-        </blockquote>
-        <!-- ------------------------------------------------------ -->
-        <h3><a name="debian">Debian</a></h3>
-        <blockquote>
-            <h4>Debian 5.0 (Lenny)</h4>
-            <p>
+
+            <!-- ====================================================== -->
+            <hr>
+            <h3><a name="make">Make</a></h3>
             <blockquote>
-                After installing <a href="http://debian.org">Debian</a> 5 
-                you need to install several build dependencies. 
-                The simplest way to install the build dependencies is to 
-                execute the following commands as user <tt>root</tt>:
-                <p/>
-                <code>aptitude build-dep openjdk-6</code>
-                <p/>
-                <code>aptitude install openjdk-6-jdk libmotif-dev</code>
-                <p/>
-                In addition, it's necessary to set a few environment variables for the build:
-                <p/>
-                <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code>
+                The basic invocation of the <code>make</code> utility
+                looks like:
+                <blockquote>
+                    <b><code>make all</code></b>
+                </blockquote>
+                This will start the build to the output directory containing the
+                "configuration" that was created by the <code>configure</code>
+                script. Run <code>make help</code> for more information on
+                the available targets.
+                <br>
+                There are some of the make targets that
+                are of general interest:
+                <table border="1">
+                    <thead>
+                        <tr>
+                            <th>Make Target</th>
+                            <th>Description</th>
+                        </tr>
+                    </thead>                   
+                    <tbody>
+                        <tr>
+                            <td><i>empty</i></td>
+                            <td>build everything but no images</td>
+                        </tr>
+                        <tr>
+                            <td><b><code>all</code></b></td>
+                            <td>build everything including images</td>
+                        </tr>
+                        <tr>
+                            <td><b><code>all-conf</code></b></td>
+                            <td>build all configurations</td>
+                        </tr>
+                        <tr>
+                            <td><b><code>images</code></b></td>
+                            <td>create complete j2sdk and j2re images</td>
+                        </tr>
+                        <tr>
+                            <td><b><code>install</code></b></td>
+                            <td>install the generated images locally, 
+                                typically in <code>/usr/local</code></td>
+                        </tr>
+                        <tr>
+                            <td><b><code>clean</code></b></td>
+                            <td>remove all files generated by make, 
+                                but not those generated by <code>configure</code></td>
+                        </tr>
+                        <tr>
+                            <td><b><code>dist-clean</code></b></td>
+                            <td>remove all files generated by both 
+                                and <code>configure</code> (basically killing the configuration)</td>
+                        </tr>
+                        <tr>
+                            <td><b><code>help</code></b></td>
+                            <td>give some help on using <code>make</code>, 
+                                including some interesting make targets</td>
+                        </tr>
+                    </tbody>
+                </table>
             </blockquote>
         </blockquote>
+
         <!-- ====================================================== -->
-        <h3><a name="ubuntu">Ubuntu</a></h3>
-        <blockquote>
-            <h4>Ubuntu 8.04</h4>
-            <p>
-            <blockquote>
-                After installing <a href="http://ubuntu.org">Ubuntu</a> 8.04 
-                you need to install several build dependencies. 
-                <p/>
-                First, you need to enable the universe repository in the 
-                Software Sources application and reload the repository 
-                information. The Software Sources application is available 
-                under the System/Administration menu. 
-                <p/>
-                The simplest way to install the build dependencies is to 
-                execute the following commands:
-                <p/>
-                <code>sudo aptitude build-dep openjdk-6</code>
-                <p/>
-                <code>sudo aptitude install openjdk-6-jdk</code>
-                <p/>
-                In addition, it's necessary to set a few environment variables for the build:
-                <p/>
-                <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code>
-            </blockquote>
-            <h4>Ubuntu 8.10</h4>
-            <p>
-            <blockquote>
-                After installing <a href="http://ubuntu.org">Ubuntu</a> 8.10 
-                you need to install several build dependencies. The simplest
-                way to do it is to execute the following commands:
-                <p/>
-                <code>sudo aptitude build-dep openjdk-6</code>
-                <p/>
-                <code>sudo aptitude install openjdk-6-jdk</code>
-                <p/>
-                In addition, it's necessary to set a few environment variables for the build:
-                <p/>
-                <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code>
-            </blockquote>
-            <h4>Ubuntu 9.04</h4>
-            <p>
-            <blockquote>
-                After installing <a href="http://ubuntu.org">Ubuntu</a> 9.04 
-                you need to install several build dependencies. The simplest
-                way to do it is to execute the following commands:
-                <p/>
-                <code>sudo aptitude build-dep openjdk-6</code>
-                <p/>
-                <code>sudo aptitude install openjdk-6-jdk</code>
-                <p/>
-                In addition, it's necessary to set a few environment variables for the build:
-                <p/>
-                <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code>
-            </blockquote>
-        </blockquote>
-        <!-- ====================================================== -->
-        <h3><a name="opensuse">OpenSUSE</a></h3>
+        <hr>
+        <h2><a name="testing">Testing</a></h2>
         <blockquote>
-            <h4>OpenSUSE 11.1</h4>
-            <p>
-            <blockquote>
-                After installing <a href="http://opensuse.org">OpenSUSE</a> 11.1 
-                you need to install several build dependencies. 
-                The simplest way to install the build dependencies is to 
-                execute the following commands:
-                <p/>
-                <code>sudo zypper source-install -d java-1_6_0-openjdk</code>
-                <p/>
-                <code>sudo zypper install make</code>
-                <p/>
-                In addition, it is necessary to set a few environment variables for the build:
-                <p/>
-                <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code>
-                <p/>
-                Finally, you need to unset the <code>JAVA_HOME</code> environment variable:
-                <p/>
-                <code>export -n JAVA_HOME</code>
-            </blockquote>
-        </blockquote>
-        <!-- ====================================================== -->
-        <h3><a name="mandriva">Mandriva</a></h3>
-        <blockquote>
-            <h4>Mandriva Linux One 2009 Spring</h4>
-            <p>
+            When the build is completed, you should see the generated
+            binaries and associated files in the <code>j2sdk-image</code> 
+            directory in the output directory. 
+            In particular, the 
+            <code>build/<i>*</i>/images/j2sdk-image/bin</code>
+            directory should contain executables for the 
+            OpenJDK tools and utilities for that configuration.
+            The testing tool <code>jtreg</code> will be needed
+            and can be found at:
+            <a href="http://openjdk.java.net/jtreg/" target="_blank">
+                the jtreg site</a>.
+            The provided regression tests in the repositories
+            can be run with the command:
             <blockquote>
-                After installing <a href="http://mandriva.org">Mandriva</a> Linux One 2009 Spring 
-                you need to install several build dependencies. 
-                The simplest way to install the build dependencies is to 
-                execute the following commands as user <tt>root</tt>:
-                <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>
-                <p/>
-                In addition, it is necessary to set a few environment variables for the build:
-                <p/>
-                <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code>
-            </blockquote>
-        </blockquote>
-        <!-- ====================================================== -->
-        <h3><a name="opensolaris">OpenSolaris</a></h3>
-        <blockquote>
-            <h4>OpenSolaris 2009.06</h4>
-            <p>
-            <blockquote>
-                After installing <a href="http://opensolaris.org">OpenSolaris</a> 2009.06 
-                you need to install several build dependencies. 
-                The simplest way to install the build dependencies is to 
-                execute the following commands:
-                <p/>
-                <code>pfexec pkg install SUNWgmake SUNWj6dev SUNWant sunstudioexpress SUNWcups SUNWzip SUNWunzip SUNWxwhl SUNWxorg-headers SUNWaudh SUNWfreetype2</code>
-                <p/>
-                In addition, it is necessary to set a few environment variables for the build:
-                <p/>
-                <code>export LANG=C ALT_COMPILER_PATH=/opt/SunStudioExpress/bin/ ALT_CUPS_HEADERS_PATH=/usr/include/</code>
-                <p/>
-                Finally, you need to make sure that the build process can find the Sun Studio compilers:
-                <p/>
-                <code>export PATH=$PATH:/opt/SunStudioExpress/bin/</code>
+                <code><b>cd test &amp;&amp; make PRODUCT_HOME=`pwd`/../build/*/images/j2sdk-image all</b></code>
             </blockquote>
         </blockquote>
-        <!-- ------------------------------------------------------ -->  
+
+        <!-- ====================================================== -->
+        <!-- ====================================================== -->
+        <!-- ====================================================== -->
+        <!-- ====================================================== -->
+        <!-- ====================================================== -->
+        <!-- ====================================================== -->
+        <!-- ====================================================== -->
+        <!-- ====================================================== -->
+        <!-- ====================================================== -->
+
+        <!-- ====================================================== -->
         <hr>
-        <h2><a name="directories">Source Directory Structure</a></h2>
+        <h2><a name="hints">Appendix A: Hints and Tips</a></h2>
         <blockquote>
-            <p>
-                The source code for the OpenJDK is delivered in a set of
-                directories:
-                <tt>hotspot</tt>,
-                <tt>langtools</tt>,
-                <tt>corba</tt>,
-                <tt>jaxws</tt>,
-                <tt>jaxp</tt>,
-                and
-                <tt>jdk</tt>.
-                The <tt>hotspot</tt> directory contains the source code and make
-                files for building the OpenJDK Hotspot Virtual Machine.
-                The <tt>langtools</tt> directory contains the source code and make
-                files for building the OpenJDK javac and language tools.
-                The <tt>corba</tt> directory contains the source code and make
-                files for building the OpenJDK Corba files.
-                The <tt>jaxws</tt> directory contains the source code and make
-                files for building the OpenJDK JAXWS files.
-                The <tt>jaxp</tt> directory contains the source code and make
-                files for building the OpenJDK JAXP files.
-                The <tt>jdk</tt> directory contains the source code and make files for
-                building the OpenJDK runtime libraries and misc files.
-                The top level <tt>Makefile</tt>
-                is used to build the entire OpenJDK.
+
+            <h3><a name="faq">FAQ</a></h3>
+            <blockquote>
 
-            <h3><a name="drops">Managing the Source Drops</a></h3>
-            <blockquote>
+                <p>
+                    <b>Q:</b> The <code>configure</code> file looks horrible! 
+                    How are you going to edit it?
+                    <br>
+                    <b>A:</b> The <code>configure</code> file is generated (think
+                    "compiled") by the autoconf tools. The source code is
+                    in <code>configure.ac</code> various .m4 files in common/autoconf,
+                    which are
+                    much more readable.
+                </p>
+
                 <p>
-                    The repositories <tt>jaxp</tt> and <tt>jaxws</tt> actually
-                    do not contain the sources for JAXP or JAX-WS.
-                    These products have their own open source procedures at their
-                    <a href="http://jaxp.java.net/">JAXP</a> and
-                    <a href="http://jax-ws.java.net/">JAX-WS</a> home pages.
-                    The OpenJDK project does need access to these sources to build
-                    a complete JDK image because JAXP and JAX-WS are part of the JDK.
-                    The current process for delivery of the JAXP and JAX-WS sources
-                    involves so called "source drop bundles" downloaded from a public
-                    website.
-                    There are many reasons for this current mechanism, and it is
-                    understood that this is not ideal for the open source community.
-                    It is possible this process could change in the future.
+                    <b>Q:</b> 
+                    Why is the <code>configure</code> file checked in, 
+                    if it is generated?
                     <br>
-                    <b>NOTE:</b> The <a href="http://download.java.net/openjdk/jdk8/">
-                        Complete OpenJDK Source Bundles</a> <u>will</u> contain the JAXP and
-                    JAX-WS sources.
+                    <b>A:</b> 
+                    If it was not generated, every user would need to have the autoconf 
+                    tools installed, and re-generate the <code>configure</code> file
+                    as the first step. 
+                    Our goal is to minimize the work needed to be done by the user 
+                    to start building OpenJDK, and to minimize
+                    the number of external dependencies required.
                 </p>
 
-                <h4><a name="dropcreation">Creation of New Source Drop Bundles</a></h4>
+                <p>
+                    <b>Q:</b>
+                    Do you require a specific version of autoconf for regenerating
+                    <code>configure</code>?
+                    <br>
+                    <b>A:</b>
+                    Currently, no, but this will likely be the case when things have 
+                    settled down a bit more. (The reason for this is to avoid
+                    large spurious changes in <code>configure</code> 
+                    in commits that made small changes to <code>configure.ac</code>).
+                </p>
+
+                <p>
+                    <b>Q:</b> 
+                    What are the files in <code>common/makefiles/support/*</code> for? 
+                    They look like gibberish.
+                    <br>
+                    <b>A:</b>
+                    They are a somewhat ugly hack to compensate for command line length
+                    limitations on certain platforms (Windows, Solaris).
+                    Due to a combination of limitations in make and the shell, 
+                    command lines containing too many files will not work properly. 
+                    These
+                    helper files are part of an elaborate hack that will compress the
+                    command line in the makefile and then uncompress it safely. 
+                    We're
+                    not proud of it, but it does fix the problem. 
+                    If you have any better suggestions, we're all ears! :-)
+                </p>
+
+                <p>
+                    <b>Q:</b> 
+                    I want to see the output of the commands that make runs, 
+                    like in the old build. How do I do that?
+                    <br>
+                    <b>A:</b> 
+                    You specify the <code>LOG</code> variable to make. There are
+                    several log levels:
+                </p>
                 <blockquote>
-                    <ol>
+                    <ul>
                         <li>
-                            The JAXP or JAX-WS team prepares a new zip bundle,
-                            places a copy in a public download area on java.net,
-                            sends us a link and a list of CRs (Change Request Numbers).
-                            The older download bundles should not be deleted.
-                            It is the responsibility of the JAXP and JAX-WS team to
-                            place the proper GPL legal notices on the sources
-                            and do any filtering or java re-packaging for the
-                            OpenJDK instances of these classes.
+                            <b><code>warn</code></b> &mdash; Default and very quiet.
                         </li>
                         <li>
-                            The OpenJDK team copies this new bundle into shared
-                            area (e.g. <tt>/java/devtools/share/jdk8-drops</tt>).
-                            Older bundles are never deleted so we retain the history.
+                            <b><code>info</code></b> &mdash; Shows more progress information
+                            than warn.
                         </li>
                         <li>
-                            The OpenJDK team edits the ant property file
-                            <tt>jaxp/jaxp.properties</tt> or
-                            <tt>jaxws/jaxws.properties</tt> to update the
-                            base URL, the zip bundle name, and the MD5 checksum
-                            of the zip bundle
-                            (on Solaris: <tt>sum -c md5 <i>bundlename</i></tt>)
+                            <b><code>debug</code></b> &mdash; Echos all command lines and
+                            prints all macro calls for compilation definitions.
                         </li>
                         <li>
-                            OpenJDK team reviews and commits those changes with the
-                            given CRs.
+                            <b><code>trace</code></b> &mdash; Echos all $(shell) command
+                            lines as well.
                         </li>
-                    </ol>
+                    </ul>
                 </blockquote>
 
-                <h4><a name="dropusage">Using Source Drop Bundles</a></h4>
+                <p>
+                    <b>Q:</b> 
+                    When do I have to re-run <code>configure</code>?
+                    <br>
+                    <b>A:</b> 
+                    Normally you will run <code>configure</code> only once for creating a 
+                    configuration. 
+                    You need to re-run configuration only if you want to change any
+                    configuration options, 
+                    or if you pull down changes to the <code>configure</code> script.
+                </p>
+
+                <p>
+                    <b>Q:</b> 
+                    I have added a new source file. Do I need to modify the makefiles?
+                    <br>
+                    <b>A:</b> 
+                    Normally, no. If you want to create e.g. a new native
+                    library, 
+                    you will need to modify the makefiles. But for normal file
+                    additions or removals, no changes are needed. There are certan
+                    exceptions for some native libraries where the source files are spread
+                    over many directories which also contain courses for other
+                    libraries. In these cases it was simply easier to create include lists
+                    rather thane excludes.
+                </p>
+
+                <p>
+                    <b>Q:</b>
+                    When I run <code>configure --help</code>, I see many strange options, 
+                    like <code>--dvidir</code>. What is this?
+                    <br>
+                    <b>A:</b> 
+                    Configure provides a slew of options by default, to all projects 
+                    that use autoconf. Most of them are not used in OpenJDK,
+                    so you can safely ignore them. To list only OpenJDK specific features, 
+                    use <code>configure --help=short</code> instead.
+                </p>
+
+                <p>
+                    <b>Q:</b> 
+                    <code>configure</code> provides OpenJDK-specific features such as
+                    <code>--enable-jigsaw</code> or <code>--with-builddeps-server</code>
+                    that are not described in this document. What about those?
+                    <br>
+                    <b>A:</b>
+                    Try them out if you like! But be aware that most of these are 
+                    experimental features. 
+                    Many of them don't do anything at all at the moment; the option 
+                    is just a placeholder. Other depends on
+                    pieces of code or infrastructure that is currently 
+                    not ready for prime time.
+                </p>
+
+                <p>
+                    <b>Q:</b> 
+                    How will you make sure you don't break anything?
+                    <br>
+                    <b>A:</b> 
+                    We have a script that compares the result of the new build system
+                    with the result of the old. For most part, we aim for (and achieve)
+                    byte-by-byte identical output. There are however technical issues 
+                    with e.g. native binaries, which might differ in a byte-by-byte 
+                    comparison, even
+                    when building twice with the old build system. 
+                    For these, we compare relevant aspects 
+                    (e.g. the symbol table and file size). 
+                    Note that we still don't have 100%
+                    equivalence, but we're close.
+                </p>
+
+                <p>
+                    <b>Q:</b> 
+                    I noticed this thing X in the build that looks very broken by design. 
+                    Why don't you fix it?
+                    <br>
+                    <b>A:</b>
+                    Our goal is to produce a build output that is as close as 
+                    technically possible to the old build output. 
+                    If things were weird in the old build,
+                    they will be weird in the new build. 
+                    Often, things were weird before due to obscurity, 
+                    but in the new build system the weird stuff comes up to the surface.
+                    The plan is to attack these things at a later stage, 
+                    after the new build system is established.
+                </p>
+
+                <p>
+                    <b>Q:</b> 
+                    The code in the new build system is not that well-structured.
+                    Will you fix this?
+                    <br>
+                    <b>A:</b>
+                    Yes! The new build system has grown bit by bit as we converted 
+                    the old system. When all of the old build system is converted,
+                    we can take a step back and clean up the structure of the new build
+                    system. Some of this we plan to do before replacing the old build
+                    system and some will need to wait until after.
+                </p>
+
+                <p>
+                    <b>Q:</b> What is @GenerateNativeHeaders?
+                    <br>
+                    <b>A:</b> 
+                    To speed up compilation, we added a flag to javac which makes it 
+                    do the job of javah as well, as a by-product; that is, generating
+                    native .h header files. These files are only generated 
+                    if a class contains native methods. However, sometimes 
+                    a class contains no native method,
+                    but still contains constants that native code needs to use. 
+                    The new GenerateNativeHeaders annotation tells javac to
+                    force generation of a
+                    header file in these cases. (We don't want to generate 
+                    native headers for all classes that contains constants 
+                    but no native methods, since
+                    that would slow down the compilation process needlessly.)
+                </p>
+
+                <p>
+                    <b>Q:</b> 
+                    Is anything able to use the results of the new build's default make target?
+                    <br>
+                    <b>A:</b> 
+                    Yes, this is the minimal (or roughly minimal) 
+                    set of compiled output needed for a developer to actually 
+                    execute the newly built JDK. The idea is that in an incremental 
+                    development fashion, when doing a normal make, 
+                    you should only spend time recompiling what's changed 
+                    (making it purely incremental) and only do the work that's 
+                    needed to actually run and test your code.
+                    The packaging stuff that is part of the <code>images</code>
+                    target is not needed for a normal developer who wants to
+                    test his new code. Even if it's quite fast, it's still unnecessary. 
+                    We're targeting sub-second incremental rebuilds! ;-) 
+                    (Or, well, at least single-digit seconds...)
+                </p>
+
+                <p>
+                    <b>Q:</b>
+                    I usually set a specific environment variable when building, 
+                    but I can't find the equivalent in the new build. 
+                    What should I do?
+                    <br>
+                    <b>A:</b>
+                    It might very well be that we have missed to add support for
+                    an option that was actually used from outside the build system.
+                    Email us and we will
+                    add support for it!
+                </p>
+
+            </blockquote>
+
+            <h3><a name="performance">Build Performance Tips</a></h3>
+            <blockquote>
+
+                <p>Building OpenJDK requires a lot of horsepower. 
+                    Some of the build tools can be adjusted to utilize more or less
+                    of resources such as
+                    parallel threads and memory. 
+                    The <code>configure</code> script analyzes your system and selects reasonable 
+                    values for such options based on your hardware.
+                    If you encounter resource problems, such as out of memory conditions, 
+                    you can modify the detected values with:</p>
+
+                <ul>
+                    <li>
+                        <b><code>--with-num-cores</code></b> 
+                        &mdash; 
+                        number of cores in the build system,
+                        e.g. <code>--with-num-cores=8</code>
+                    </li>
+                    <li>
+                        <b><code>--with-memory-size</code></b> 
+                        &mdash; memory (in MB) available in the build system,
+                        e.g. <code>--with-memory-size=1024</code>
+                    </li>
+                </ul>
+
+                <p>It might also be necessary to specify the JVM arguments passed 
+                    to the Bootstrap JDK, using e.g.
+                    <code>--with-boot-jdk-jvmargs="-Xmx8G -enableassertions"</code>. 
+                    Doing this will override the default JVM arguments 
+                    passed to the Bootstrap JDK.</p>
+
+
+                <p>One of the top goals of the new build system is to improve the
+                    build performance and decrease the time needed to build. This will
+                    soon also apply to the java compilation when the Smart Javac wrapper
+                    is making its way into jdk8. It can be tried in the build-infra
+                    repository already. You are likely to find that the new build system
+                    is faster than the old one even without this feature.</p>
+
+                <p>At the end of a successful execution of <code>configure</code>, 
+                    you will get a performance summary, 
+                    indicating how well the build will perform. Here you will
+                    also get performance hints. 
+                    If you want to build fast, pay attention to those!</p>
+
+                <h4>Building with ccache</h4>
+
+                <p>A simple way to radically speed up compilation of native code
+                    (typically hotspot and native libraries in JDK) is to install
+                    ccache. This will cache and reuse prior compilation results, if the
+                    source code is unchanged. However, ccache versions prior to 3.1.4
+                    does not work correctly with the precompiled headers used in
+                    OpenJDK. So if your platform supports ccache at 3.1.4 or later, we
+                    highly recommend installing it. This is currently only supported on
+                    linux.</p> 
+
+                <h4>Building on local disk</h4>
+
+                <p>If you are using network shares, e.g. via NFS, for your source code, 
+                    make sure the build directory is situated on local disk. 
+                    The performance
+                    penalty is extremely high for building on a network share, 
+                    close to unusable.</p>
+
+                <h4>Building only one JVM</h4>
+
+                <p>The old build builds multiple JVMs on 32-bit systems (client and
+                    server; and on Windows kernel as well). In the new build we have
+                    changed this default to only build server when it's available. This
+                    improves build times for those not interested in multiple JVMs. To
+                    mimic the old behavior on platforms that support it, 
+                    use <code>--with-jvm-variants=client,server</code>.</p>
+
+                <h4>Selecting the number of cores to build on</h4>
+
+                <p>By default, <code>configure</code> will analyze your machine and run the make
+                    process in parallel with as many threads as you have cores. This
+                    behavior can be overridden, either "permanently" (on a <code>configure</code>
+                    basis) using <code>--with-num-cores=N</code> or for a single build
+                    only (on a make basis), using <code>make JOBS=N</code>.</p>
+
+                <p>If you want to make a slower build just this time, to save some CPU
+                    power for other processes, you can run
+                    e.g. <code>make JOBS=2</code>. This will force the makefiles
+                    to only run 2 parallel processes, or even <code>make JOBS=1</code>
+                    which will disable parallelism.</p>
+
+                <p>If you want to have it the other way round, namely having slow 
+                    builds default and override with fast if you're
+                    impatient, you should call <code>configure</code> with 
+                    <code>--with-num-cores=2</code>, making 2 the default. 
+                    If you want to run with more
+                    cores, run <code>make JOBS=8</code></p>
+
+            </blockquote>
+
+            <h3><a name="troubleshooting">Troubleshooting</a></h3>
+            <blockquote>
+
+                <h4>Solving build problems</h4>
+
                 <blockquote>
-                    <p>
-                        The ant scripts that build <tt>jaxp</tt> and <tt>jaxws</tt>
-                        will attempt to locate these zip bundles from the directory
-                        in the environment variable
-                        <tt><a href="#ALT_DROPS_DIR">ALT_DROPS_DIR</a></tt>.
-                        The checksums protect from getting the wrong, corrupted, or
-                        improperly modified sources.
-                        Once the sources are made available, the population will not
-                        happen again unless a <tt>make clobber</tt> is requested
-                        or the <tt>jaxp/drop/</tt> or <tt>jaxws/drop/</tt>
-                        directory is explicitly deleted.
-                        <br>
-                        <b>NOTE:</b> The default Makefile and ant script behavior
-                        is to NOT download these bundles from the public http site.
-                        In general, doing downloads
-                        during the build process is not advised, it creates too much
-                        unpredictability in the build process.
-                        However, you can use <tt>make ALLOW_DOWNLOADS=true</tt> to
-                        tell the ant script that the download of the zip bundle is
-                        acceptable.
-                    </p>
-                    <p>
-                        The recommended procedure for keeping a cache of these
-                        source bundles would be to download them once, place them
-                        in a directory outside the repositories, and then set
-                        <tt><a href="#ALT_DROPS_DIR">ALT_DROPS_DIR</a></tt> to refer
-                        to that directory.
-                        These drop bundles do change occasionally, so the newer
-                        bundles may need to be added to this area from time to time.
-                    </p>
+                    If the build fails (and it's not due to a compilation error in 
+                    a source file you've changed), the first thing you should do
+                    is to re-run the build with more verbosity. 
+                    Do this by adding <code>LOG=debug</code> to your make command line.
+                    <br>
+                    The build log (with both stdout and stderr intermingled,
+                    basically the same as you see on your console) can be found as
+                    <code>build.log</code> in your build directory.
+                    <br>
+                    You can ask for help on build problems with the new build system 
+                    on either the
+                    <a href="http://mail.openjdk.java.net/mailman/listinfo/build-dev">
+                        build-dev</a>
+                    or the
+                    <a href="http://mail.openjdk.java.net/mailman/listinfo/build-infra-dev">
+                        build-infra-dev</a>
+                    mailing lists. Please include the relevant parts
+                    of the build log.
+                    <br>
+                    A build can fail for any number of reasons. 
+                    Most failures
+                    are a result of trying to build in an environment in which all the
+                    pre-build requirements have not been met. 
+                    The first step in
+                    troubleshooting a build failure is to recheck that you have satisfied
+                    all the pre-build requirements for your platform.
+                    Scanning the <code>configure</code> log is a good first step, making
+                    sure that what it found makes sense for your system.
+                    Look for strange error messages or any difficulties that
+                    <code>configure</code> had in finding things.
+                    <br>
+                    Some of the more common problems with builds are briefly
+                    described
+                    below, with suggestions for remedies.
+                    <ul>
+                        <li>
+                            <b>Corrupted Bundles on Windows:</b>
+                            <blockquote>
+                                Some virus scanning software has been known to 
+                                corrupt the
+                                downloading of zip bundles.
+                                It may be necessary to disable the 'on access' or 
+                                'real time'
+                                virus scanning features to prevent this corruption.
+                                This type of "real time" virus scanning can also 
+                                slow down the
+                                build process significantly.
+                                Temporarily disabling the feature, or excluding the build
+                                output directory may be necessary to get correct and
+                                faster builds.
+                            </blockquote>
+                        </li>
+                        <li>
+                            <b>Slow Builds:</b>
+                            <blockquote>
+                                If your build machine seems to be overloaded from too many
+                                simultaneous C++ compiles, try setting the 
+                                <code>JOBS=1</code> on the <code>make</code> command line.
+                                Then try increasing the count slowly to an acceptable
+                                level for your system. Also:
+                                <blockquote>
+                                    Creating the javadocs can be very slow, 
+                                    if you are running
+                                    javadoc, consider skipping that step.
+                                    <br>
+                                    Faster CPUs, more RAM, and a faster DISK usually helps.
+                                    The VM build tends to be CPU intensive 
+                                    (many C++ compiles),
+                                    and the rest of the JDK will often be disk intensive.
+                                    <br>
+                                    Faster compiles are possible using a tool called
+                                    <a href="http://ccache.samba.org/" target="_blank">ccache</a>.
+                                </blockquote>
+                            </blockquote>
+                        </li>
+                        <li>
+                            <b>File time issues:</b>
+                            <blockquote>
+                                If you see warnings that refer to file time stamps, e.g.
+                                <blockquote>
+                                    <i>Warning message:</i><code> 
+                                        File `xxx' has modification time in
+                                        the future.</code>
+                                    <br>
+                                    <i>Warning message:</i> <code> Clock skew detected. 
+                                        Your build may
+                                        be incomplete.</code>
+                                </blockquote>
+                                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
+                                unrelated but in fact caused by the clock skew, 
+                                can occur along with
+                                the clock skew warnings. 
+                                These secondary errors may tend to obscure the
+                                fact that the true root cause of the problem 
+                                is an out-of-sync clock.
+                                <p>
+                                    If you see these warnings, reset the clock on the
+                                    build
+                                    machine, run "<code><i>gmake</i> clobber</code>" 
+                                    or delete the directory
+                                    containing the build output, and restart the 
+                                    build from the beginning.
+                            </blockquote>
+                        </li>
+                        <li>
+                            <b>Error message: 
+                                <code>Trouble writing out table to disk</code></b>
+                            <blockquote>
+                                Increase the amount of swap space on your build machine.
+                                This  could be caused by overloading the system and
+                                it may be necessary to use:
+                                <blockquote>
+                                    <code>make JOBS=1</code>
+                                </blockquote>
+                                to reduce the load on the system.
+                            </blockquote>
+                        </li>
+                        <li>
+                            <b>Error Message: 
+                                <code>libstdc++ not found:</code></b>
+                            <blockquote>
+                                This is caused by a missing libstdc++.a library.
+                                This is installed as part of a specific package
+                                (e.g. libstdc++.so.devel.386).
+                                By default some 64-bit Linux versions (e.g. Fedora)
+                                only install the 64-bit version of the libstdc++ package.
+                                Various parts of the JDK build require a static
+                                link of the C++ runtime libraries to allow for maximum
+                                portability of the built images.
+                            </blockquote>
+                        </li>
+                        <li>
+                            <b>Linux Error Message:
+                                <code>cannot restore segment prot after reloc</code></b>
+                            <blockquote>
+                                This is probably an issue with SELinux (See
+                                <a href="http://en.wikipedia.org/wiki/SELinux" target="_blank">
+                                    http://en.wikipedia.org/wiki/SELinux</a>).
+                                Parts of the VM is built without the <code>-fPIC</code> for
+                                performance reasons.
+                                <p>
+                                    To completely disable SELinux:
+                                <ol>
+                                    <li><code>$ su root</code></li>
+                                    <li><code># system-config-securitylevel</code></li>
+                                    <li><code>In the window that appears, select the SELinux tab</code></li>
+                                    <li><code>Disable SELinux</code></li>
+                                </ol>
+                                <p>
+                                    Alternatively, instead of completely disabling it you could
+                                    disable just this one check.
+                                <ol>
+                                    <li>Select System->Administration->SELinux Management</li>
+                                    <li>In the SELinux Management Tool which appears,
+                                        select "Boolean" from the menu on the left</li>
+                                    <li>Expand the "Memory Protection" group</li>
+                                    <li>Check the first item, labeled
+                                        "Allow all unconfined executables to use 
+                                        libraries requiring text relocation ..."</li>
+                                </ol>
+                            </blockquote>
+                        </li>
+                        <li>
+                            <b>Windows Error Messages:</b>
+                            <br>
+                            <code>*** fatal error - couldn't allocate heap, ... </code>
+                            <br>
+                            <code>rm fails with "Directory not empty"</code>
+                            <br>
+                            <code>unzip fails with "cannot create ... Permission denied"</code>
+                            <br>
+                            <code>unzip fails with "cannot create ... Error 50"</code>
+                            <br>
+                            <blockquote>
+                                The CYGWIN software can conflict with other non-CYGWIN
+                                software. See the CYGWIN FAQ section on
+                                <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank">
+                                    BLODA (applications that interfere with CYGWIN)</a>.
+                            </blockquote>
+                        </li>
+                        <li>
+                            <b>Windows Error Message: <code>spawn failed</code></b>
+                            <blockquote>
+                                Try rebooting the system, or there could be some kind of
+                                issue with the disk or disk partition being used.
+                                Sometimes it comes with a "Permission Denied" message.
+                            </blockquote>
+                        </li>
+                    </ul>
                 </blockquote>
-            </blockquote>
-        </blockquote>
-        <!-- ------------------------------------------------------ -->
+
+            </blockquote> <!-- Troubleshooting -->
+
+        </blockquote> <!-- Appendix A -->
+
+        <!-- ====================================================== -->
         <hr>
-        <h2><a name="building">Build Information</a></h2>
+        <h2><a name="gmake">Appendix B: GNU make</a></h2>
         <blockquote>
-            Building the OpenJDK
-            is done with a <a href="#gmake">GNU <tt>make</tt></a> command line
-            and various
-            environment or make variable settings that direct the makefile rules
-            to where various components have been installed.
-            Where possible the makefiles will attempt to located the various
-            components in the default locations or any component specific 
-            variable settings.
-            When the normal defaults fail or components cannot be found,
-            the various
-            <tt>ALT_*</tt> variables (alternates)
-            can be used to help the makefiles locate components.
-            <p>
-                Refer to the bash/sh/ksh setup file
-                <tt>jdk/make/jdk_generic_profile.sh</tt>
-                if you need help in setting up your environment variables.
-                A build could be as simple as:
-            <blockquote>
-                <pre><tt>
-                bash
-                . jdk/make/jdk_generic_profile.sh
-                <a href="#gmake"><tt>make</tt></a> sanity &amp;&amp; <a href="#gmake"><tt>make</tt></a>
-                </tt></pre>
-            </blockquote>
-            <p>
-                Of course ksh or sh would work too.
-                But some customization will probably be necessary.
-                The <tt>sanity</tt> rule will make some basic checks on build
-                dependencies and generate appropriate warning messages
-                regarding missing, out of date, or newer than expected components
-                found on your system.
-        </blockquote>
-        <!-- ------------------------------------------------------ -->
-        <hr>
-        <h3><a name="gmake">GNU make (<tt><i>gmake</i></tt>)</a></h3>
-        <blockquote>
+
             The Makefiles in the OpenJDK are only valid when used with the 
-            GNU version of the utility command <tt>make</tt>
-            (<tt><i>gmake</i></tt>).
+            GNU version of the utility command <code>make</code>
+            (usually called <code>gmake</code> on Solaris).
             A few notes about using GNU make:
             <ul>
                 <li>
                     You need GNU make version 3.81 or newer.
-                </li>
-                <li>
-                    Place the location of the GNU make binary in the <tt>PATH</tt>. 
+                    If the GNU make utility on your systems is not
+                    3.81 or newer,
+                    see <a href="#buildgmake">"Building GNU make"</a>.
                 </li>
                 <li>
-                    <strong>Linux:</strong>
-                    The <tt>/usr/bin/make</tt> should be 3.81 or newer
-                    and should work fine for you.
-                    If this version is not 3.81 or newer,
-                    see the <a href="#buildgmake">"Building GNU make"</a> section.
+                    Place the location of the GNU make binary in the
+                    <code>PATH</code>. 
                 </li>
                 <li>
                     <strong>Solaris:</strong>
-                    Do NOT use <tt>/usr/bin/make</tt> on Solaris.
+                    Do NOT use <code>/usr/bin/make</code> on Solaris.
                     If your Solaris system has the software
-                    from the Solaris Companion CD installed, 
-                    you should try and use <tt>gmake</tt>
-                    which will be located in either the <tt>/opt/sfw/bin</tt> or 
-                    <tt>/usr/sfw/bin</tt> directory.
-                    In more recent versions of Solaris GNU make might be found
-                    at <tt>/usr/bin/gmake</tt>.<br>
-                    <b>NOTE:</b> It is very likely that this <tt>gmake</tt>
-                    could be 3.80, you need 3.81, in which case,
-                    see the <a href="#buildgmake">"Building GNU make"</a> section.
+                    from the Solaris Developer Companion CD installed, 
+                    you should try and use <code>gmake</code>
+                    which will be located in either the
+                    <code>/usr/bin</code>, <code>/opt/sfw/bin</code> or 
+                    <code>/usr/sfw/bin</code> directory.
                 </li>
                 <li>
                     <strong>Windows:</strong>
-                    Make sure you start your build inside a bash/sh/ksh shell and are
-                    using a <tt>make.exe</tt> utility built for that environment.<br/>
-                    <strong>MKS</strong> builds need a native Windows version of GNU make
-                    (see <a href="#buildgmake">Building GNU make</a>).<br/>
-                    <strong>Cygwin</strong> builds need
-                    a make version which was specially compiled for the Cygwin environment
-                    (see <a href="#buildgmake">Building GNU make</a>). <strong>WARNING:</strong>
-                    the OpenJDK build with the make utility provided by Cygwin will <strong>not</strong>
-                    work because it does not support drive letters in paths. Make sure that
-                    your version of make will be found before the Cygwins default make by 
-                    setting an appropriate <tt>PATH</tt> environment variable or by removing
-                    Cygwin's make after you built your own make version.<br/>
-                    <strong>MinGW/MSYS</strong> builds can use the default make which 
-                    comes with the environment.
+                    Make sure you start your build inside a bash shell.
+                </li>
+                <li>
+                    <strong>Mac OS X:</strong>
+                    The XCode "command line tools" must be installed on your Mac.
                 </li>
             </ul>
             <p>
@@ -714,1539 +1775,728 @@
                 <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank">
                     ftp.gnu.org/pub/gnu/make/</a>.
             </p>
-            <!-- ------------------------------------------------------ -->
-            <h4><a name="buildgmake">Building GNU make</a></h4>
+
+            <h3><a name="buildgmake">Building GNU make</a></h3>
             <blockquote>
-                First step is to get the GNU make 3.81 (or newer) source from
+                First step is to get the GNU make 3.81 or newer source from
                 <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank">
                     ftp.gnu.org/pub/gnu/make/</a>.
-                Building is a little different depending on the OS and unix toolset
-                on Windows:
-                <ul>
-                    <li>
-                        <strong>Linux:</strong>
-                        <tt>./configure && make</tt>
-                    </li>
-                    <li>
-                        <strong>Solaris:</strong>
-                        <tt>./configure && gmake CC=gcc</tt>
-                    </li>
-                    <li>
-                        <strong>Windows for CYGWIN:</strong><br/>
-                        <tt>./configure</tt><br/>
-                        Add the line <tt>#define HAVE_CYGWIN_SHELL 1</tt> to the end of <tt>config.h</tt><br/>
-                        <tt>make</tt><br/>
-                        <br/>
-                        This should produce <tt>make.exe</tt> in the current directory.
-                    </li>
-                    <li>
-                        <strong>Windows for MKS:</strong><br/>
-                        Edit <tt>config.h.W32</tt> and uncomment the line <tt>#define HAVE_MKS_SHELL 1</tt><br/>
-                        Set the environment for your native compiler (e.g. by calling:<br/>
-                        <tt>"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /Release /xp /x64)</tt>
-                        <tt>nmake -f NMakefile.win32</tt>
-                        <br/>
-                        This should produce <tt>WinDebug/make.exe</tt> and <tt>WinRel/make.exe</tt>
-                        <br/>
-                        If you get the error: <tt>NMAKE : fatal error U1045: spawn failed : Permission denied</tt>
-                        you have to set the <tt>Read &amp; execute</tt> permission for the file <tt>subproc.bat</tt>.
-                    </li>
-                </ul>
-            </blockquote>
-        </blockquote>
-        <!-- ------------------------------------------------------ -->
-        <hr>
-        <h3><a name="linux">Basic Linux System Setup</a></h3>
-        <blockquote>
-            <strong>i586 only:</strong>
-            The minimum recommended hardware for building the Linux version
-            is a Pentium class processor or better, at least 256 MB of RAM, and
-            approximately 1.5 GB of free disk space.
-            <p> 
-                <strong>X64 only:</strong>
-                The minimum recommended hardware for building the Linux
-                version is an AMD Opteron class processor, at least 512 MB of RAM, and
-                approximately 4 GB of free disk space.
-            <p> 
-                The build will use the tools contained in
-                <tt>/bin</tt> and
-                <tt>/usr/bin</tt>
-                of a standard installation of the Linux operating environment.
-                You should ensure that these directories are in your
-                <tt>PATH</tt>.
-            <p>
-                Note that some Linux systems have a habit of pre-populating
-                your environment variables for you, for example <tt>JAVA_HOME</tt>
-                might get pre-defined for you to refer to the JDK installed on
-                your Linux system.
-                You will need to unset <tt>JAVA_HOME</tt>.
-                It's a good idea to run <tt>env</tt> and verify the
-                environment variables you are getting from the default system
-                settings make sense for building the
-                OpenJDK.
-        </blockquote>
-        <!-- ------------------------------------------------------ -->
-        <h4><a name="linux_checklist">Basic Linux Check List</a></h4>
-        <blockquote>
-            <ol>
-                <li>
-                    Install the
-                    <a href="#bootjdk">Bootstrap JDK</a>, set
-                    <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
-                </li>
-                <li>
-                    <a href="#importjdk">Optional Import JDK</a>, set
-                    <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>.
-                </li>
-                <li>
-                    Install or upgrade the <a href="#freetype">FreeType development
-                        package</a>.
-                </li>
-                <li>
-                    Install
-                    <a href="#ant">Ant 1.7.1 or newer</a>,
-                    make sure it is in your PATH.
-                </li>
-            </ol>
-        </blockquote>
-        <!-- ------------------------------------------------------ -->
-        <hr>
-        <h3><a name="solaris">Basic Solaris System Setup</a></h3>
-        <blockquote>
-            The minimum recommended hardware for building the
-            Solaris SPARC version is an UltraSPARC with 512 MB of RAM. 
-            For building
-            the Solaris x86 version, a Pentium class processor or better and at
-            least 512 MB of RAM are recommended. 
-            Approximately 1.4 GB of free disk
-            space is needed for a 32-bit build.
-            <p>
-                If you are building the 64-bit version, you should
-                run the command "isainfo -v" to verify that you have a
-                64-bit installation, it should say <tt>sparcv9</tt> or
-                <tt>amd64</tt>.
-                An additional 7 GB of free disk space is needed
-                for a 64-bit build.
-            <p> 
-                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
-                the Solaris operating environment.
-            <p> 
-                Solaris patches specific to the JDK can be downloaded from the
-                <a href="http://sunsolve.sun.com/show.do?target=patches/JavaSE" target="_blank">
-                    SunSolve JDK Solaris patches download page</a>.
-                You should ensure that the latest patch cluster for
-                your version of the Solaris operating environment has also
-                been installed.
-        </blockquote>
-        <!-- ------------------------------------------------------ -->
-        <h4><a name="solaris_checklist">Basic Solaris Check List</a></h4>
-        <blockquote>
-            <ol>
-                <li>
-                    Install the
-                    <a href="#bootjdk">Bootstrap JDK</a>, set
-                    <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
-                </li>
-                <li>
-                    <a href="#importjdk">Optional Import JDK</a>, set
-                    <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>.
-                </li>
-                <li>
-                    Install the
-                    <a href="#studio">Sun Studio Compilers</a>, set
-                    <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>.
-                </li>
-                <li>
-                    Install the
-                    <a href="#cups">CUPS Include files</a>, set
-                    <tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt>.
-                </li>
-                <li>
-                    Install the <a href="#xrender">XRender Include files</a>.
-                </li>
-                <li>
-                    Install
-                    <a href="#ant">Ant 1.7.1 or newer</a>,
-                    make sure it is in your PATH.
-                </li>
-            </ol>
-        </blockquote>
-        <!-- ------------------------------------------------------ -->
-        <hr>
-        <h3><a name="windows">Basic Windows System Setup</a></h3>
-        <blockquote> 
-            <strong>i586 only:</strong>
-            The minimum recommended hardware for building the 32-bit or X86
-            Windows version is an Pentium class processor or better, at least
-            512 MB of RAM, and approximately 600 MB of free disk space.
-            <strong>
-                NOTE: The Windows build machines need to use the
-                file system NTFS. 
-                Build machines formatted to FAT32 will not work 
-                because FAT32 doesn't support case-sensitivity in file names.
-            </strong>
-            <p> 
-                <strong>X64 only:</strong>
-                The minimum recommended hardware for building
-                the Windows X64 version is an AMD Opteron class processor, at least 1
-                GB of RAM, and approximately 10 GB of free disk space.
-        </blockquote>
-        <!-- ------------------------------------------------------ -->
-        <h4><a name="paths">Windows Paths</a></h4>
-        <blockquote>
-            <strong>Windows:</strong>
-            Note that GNU make, the shell and other Unix-tools required during the build
-            do not tolerate the Windows habit
-            of having spaces in pathnames or the use of the <tt>\</tt>characters in pathnames.
-            Luckily on most Windows systems, you can use <tt>/</tt>instead of <tt>\</tt>, and
-            there is always a short <a href="http://en.wikipedia.org/wiki/8.3_filename">
-	    "8.3" pathname</a> without spaces for any path that contains spaces.
-            Unfortunately, this short pathname is somewhat dynamic (i.e. dependant on the
-            other files and directories inside a given directory) and can not be 
-            algorithmicly calculated by only looking at a specific path name.
-            <p>
-                The makefiles will try to translate any pathnames supplied
-                to it into the <tt>C:/</tt> style automatically.
-            </p>
-            <p>
-                Special care has to be taken if native Windows applications
-                like <tt>nmake</tt> or <tt>cl</tt> are called with file arguments processed
-                by Unix-tools like <tt>make</tt> or <tt>sh</tt>!
-            </p>
-        </blockquote>
-        <!-- ------------------------------------------------------ -->
-        <h4><a name="paths">Windows build environments</a></h4>
-        <blockquote>
-            Building on Windows requires a Unix-like environment, notably a Unix-like shell.
-            There are several such environments available of which 
-            <a href="http://www.mkssoftware.com/products/tk/ds_tkdev.asp">MKS</a>, 
-            <a href="http://www.cygwin.com/">Cygwin</a> and 
-            <a href="http://www.mingw.org/wiki/MSYS">MinGW/MSYS</a> are currently supported for
-            the OpenJDK build. One of the differences of these three systems is the way
-            they handle Windows path names, particularly path names which contain
-            spaces, backslashes as path separators and possibly drive letters. Depending
-            on the use case and the specifics of each environment these path problems can
-            be solved by a combination of quoting whole paths, translating backslashes to
-            forward slashes, escaping backslashes with additional backslashes and
-            translating the path names to their <a href="http://en.wikipedia.org/wiki/8.3_filename">
-	    "8.3" version</a>.
-            <p>
-                As of this writing (MKS ver. 9.4, Cygwin ver. 1.7.9, MinGW/MSYS 1.0.17),
-                MKS builds are known to be the fastest Windows builds while MingGW/MSYS
-                builds are slightly slower (about 10%) than MKS builds and Cygwin builds
-                require nearly twice the time (about 180%) of MKS builds (e.g. on a
-                DualCore i7 notebook with 8GB of RAM, HDD and 64-bit Windows 7 operating system
-                the complete OpenJDK 8 product build takes about 49min with MKS, 54min with
-                MinGW/MSYS and 88min with Cygwin).
-            </p>
-            <p>
-                Mixing tools from the different Unix emulation environments is not a good
-                idea and will probably not work!
-            </p>
-            <p>
-                <strong>MKS:</strong> is a commercial product which includes
-                all the Unix utilities which are required to build the OpenJDK except GNU
-                make. In pre-OpenJDK times it was the only supported build environment on
-                Windows. The MKS tools support Windows paths with drive letters and
-                forward slashes as path separator. Paths in environment variables like (for
-                example) <tt>PATH</tt> are separated by semicolon '<tt>;</tt>'.
-            </p>
-            <p>
-                Recent versions of MKS provide the <tt>dosname</tt> utility to convert paths
-                with spaces to short (8.3) path names,e .g.
-                <tt>dosname -s "<i>path</i>"</tt>.   
-            </p>
-            <p>
-                If you are using the MKS environment, you need a native Windows version
-                of Gnu make <a href="#buildgmake">which you can easily build yourself</a>. 
-            </p>
-            <p>
-                <strong>Cygwin:</strong>
-                is an open source, Linux-like environment which tries to emulate
-                a complete POSIX layer on Windows. It tries to be smart about path names
-                and can usually handle all kinds of paths if they are correctly quoted
-                or escaped although internally it maps drive letters <tt>&lt;drive&gt;:</tt> 
-                to a virtual directory <tt>/cygdrive/&lt;drive&gt;</tt>.
-            </p>
-            <p>
-                You can always use the <tt>cygpath</tt> utility to map pathnames with spaces
-                or the backslash character into the <tt>C:/</tt> style of pathname
-                (called 'mixed'), e.g. <tt>cygpath -s -m "<i>path</i>"</tt>.
-            </p>
-            <p>
-                Note that the use of CYGWIN creates a unique problem with regards to
-                setting <a href="#path"><tt>PATH</tt></a>. Normally on Windows
-                the <tt>PATH</tt> variable contains directories
-                separated with the ";" character (Solaris and Linux use ":").
-                With CYGWIN, it uses ":", but that means that paths like "C:/path"
-                cannot be placed in the CYGWIN version  of <tt>PATH</tt> and
-                instead CYGWIN uses something like <tt>/cygdrive/c/path</tt>
-                which CYGWIN understands, but only CYGWIN understands.
-            </p>
-            <p>
-                If you are using the Cygwin environment, you need to 
-                <a href="#buildgmake">compile your own version</a>
-                of GNU make because the default Cygwin make can not handle drive letters in paths. 
-            </p>
-            <p>
-                <strong>MinGW/MSYS:</strong> 
-                MinGW ("Minimalist GNU for Windows") is a collection of free Windows
-                specific header files and import libraries combined with GNU toolsets that
-                allow one to produce native Windows programs that do not rely on any
-                3rd-party C runtime DLLs. MSYS is a supplement to MinGW which allows building
-                applications and programs which rely on traditional UNIX tools to
-                be present. Among others this includes tools like <tt>bash</tt> and <tt>make</tt>.
-            </p>
-            <p>
-                Like Cygwin, MinGW/MSYS can handle different types of path formats. They
-                are internally converted to paths with forward slashes and drive letters
-                <tt>&lt;drive&gt;:</tt> replaced by a virtual
-                directory <tt>/&lt;drive&gt;</tt>.  Additionally, MSYS automatically
-                detects binaries compiled for the MSYS environment and feeds them with the
-                internal, Unix-style path names. If native Windows applications are called
-                from within MSYS programs their path arguments are automatically converted
-                back to Windows style path names with drive letters and backslashes as
-                path separators. This may cause problems for Windows applications which
-                use forward slashes as parameter separator (e.g. <tt>cl /nologo /I</tt>)
-                because MSYS may wrongly <a href="http://mingw.org/wiki/Posix_path_conversion">
-                replace such parameters by drive letters</a>.
-            </p>
-            <p>
-                If you are using the MinGW/MSYS system you can use the default make
-                version supplied by the environment.
-            </p>
-        </blockquote>
-        <!-- ------------------------------------------------------ -->
-        <h4><a name="windows_checklist">Basic Windows Check List</a></h4>
-        <blockquote>
-            <ol>
-                <li>
-                    Install one of the 
-                    <a href="#cygwin">CYGWIN</a>, <a href="#msys">MinGW/MSYS</a> or 
-                    <a href="http://www.mkssoftware.com/products/tk/ds_tkdev.asp">MKS</a> environments. 
-                </li>
-                <li>
-                    Install the 
-                    <a href="#bootjdk">Bootstrap JDK</a>, set
-                    <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
-                </li>
-                <li>
-                    <a href="#importjdk">Optional Import JDK</a>, set
-                    <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>.
-                </li>
-                <li>
-                    Install the
-                    <a href="#msvc32">Microsoft Visual Studio Compilers</a>).
-                </li>
-                <li>
-                    Setup all environment variables for compilers 
-                    (see <a href="#msvc32">compilers</a>).
-                </li>
-                <li>
-                    Install 
-                    <a href="#dxsdk">Microsoft DirectX SDK</a>.
-                </li>
-                <li>
-                    Install
-                    <a href="#ant">Ant 1.7.1 or newer</a>,
-                    make sure it is in your PATH and set
-                    <tt><a href="#ANT_HOME">ANT_HOME</a></tt>.
-                </li>
-            </ol>
-        </blockquote>
-        <!-- ------------------------------------------------------ -->
-        <hr>
-        <h3><a name="macosx">Basic Mac OS X System Setup</a></h3>
-        <blockquote> 
-            <strong>X64 only:</strong>
-            The minimum recommended hardware for building
-            the Mac OS X version is any 64-bit capable Intel processor, at least 2
-            GB of RAM, and approximately 3 GB of free disk space. You should also
-            have OS X Lion 10.7.3 installed.
-        </blockquote>
-        <!-- ------------------------------------------------------ -->
-
-        <h4><a name="macosx_checklist">Basic Mac OS X Check List</a></h4>
-        <blockquote>
-            <ol>
-                <li>
-                    Install <a href="https://developer.apple.com/xcode/">XCode 4.1</a> or newer. 
-		    If you install XCode 4.3 or newer, make sure you also install 
-		    "Command line tools" found under the preferences pane "Downloads".
-                </li>
-                <li>
-                    Install <a href="http://support.apple.com/kb/dl1421" target="_blank">"Java for OS X Lion Update 1"</a>, 
-                    set <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a> to <code>`/usr/libexec/java_home -v 1.6`</code></tt>
-                </li>
-                <li>
-                    <a href="#importjdk">Optional Import JDK</a>, set
-                    <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>.
-                </li>
-            </ol>
-        </blockquote>
-        <!-- ------------------------------------------------------ -->
-        <hr>
-        <h3><a name="dependencies">Build Dependencies</a></h3>
-        <blockquote>
-            Depending on the platform, the OpenJDK build process has some basic
-            dependencies on components not part of the OpenJDK sources.
-            Some of these are specific to a platform, some even specific to
-            an architecture.
-            Each dependency will have a set of ALT variables that can be set
-            to tell the makefiles where to locate the component.
-            In most cases setting these ALT variables may not be necessary
-            and the makefiles will find defaults on the system in standard
-            install locations or through component specific variables.
-            <!-- ------------------------------------------------------ -->
-            <h4><a name="bootjdk">Bootstrap JDK</a></h4>
-            <blockquote>
-                All OpenJDK builds require access to the previously released 
-                JDK 6, this is often called a bootstrap JDK.
-                The JDK 6 binaries can be downloaded from Sun's 
-                <a href="http://java.sun.com/javase/downloads/index.jsp"
-                   target="_blank">JDK 6 download site</a>.
-                For build performance reasons
-                is very important that this bootstrap JDK be made available on the
-                local disk of the machine doing the build.
-                You should always set 
-                <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>
-                to point to the location of
-                the bootstrap JDK installation, this is the directory pathname
-                that contains a <tt>bin, lib, and include</tt>
-                It's also a good idea to also place its <tt>bin</tt> directory
-                in the <tt>PATH</tt> environment variable, although it's
-                not required.
-                <p>
-                    <strong>Solaris:</strong>
-                    Some pre-installed JDK images may be available to you in the
-                    directory <tt>/usr/jdk/instances</tt>.
-                    If you don't set
-                    <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>
-                    the makefiles will look in that location for a JDK it can use.
-            </blockquote>
-            <!-- ------------------------------------------------------ -->
-            <h4><a name="importjdk">Optional Import JDK</a></h4>
-            <blockquote>
-                The <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>
-                setting is only needed if you are not building the entire
-                JDK. For example, if you have built the entire JDK once, and
-                wanted to avoid repeatedly building the Hotspot VM, you could
-                set this to the location of the previous JDK install image
-                and the build will copy the needed files from this import area.
-            </blockquote>
-            <!-- ------------------------------------------------------ -->
-            <h4><a name="ant">Ant</a></h4>
-            <blockquote>
-                All OpenJDK builds require access to least Ant 1.7.1.
-                The Ant tool is available from the 
-                <a href="http://archive.apache.org/dist/ant/binaries/apache-ant-1.7.1-bin.zip" target="_blank">
-                    Ant 1.7.1 archive download site</a>.
-                You should always make sure <tt>ant</tt> is in your PATH, and
-                on Windows you may also need to set 
-                <tt><a href="#ANT_HOME">ANT_HOME</a></tt>
-                to point to the location of
-                the Ant installation, this is the directory pathname
-                that contains a <tt>bin and lib</tt>.
-                <br>
-                <b>WARNING:</b> Ant versions used from IDE tools like NetBeans
-                or installed via system packages may not operate the same
-                as the one obtained from the Ant download bundles.
-                These system and IDE installers sometimes choose to change
-                the ant installation enough to cause differences.
-            </blockquote>
-            <!-- ------------------------------------------------------ -->
-            <h4><a name="cacerts">Certificate Authority File (cacert)</a></h4>
-            <blockquote>
-                See <a href="http://en.wikipedia.org/wiki/Certificate_Authority" target="_blank">
-                    http://en.wikipedia.org/wiki/Certificate_Authority</a>
-                for a better understanding of the Certificate Authority (CA).
-                A certificates file named "cacerts"
-                represents a system-wide keystore with CA certificates. 
-                In JDK and JRE
-                binary bundles, the "cacerts" file contains root CA certificates from
-                several public CAs (e.g., VeriSign, Thawte, and Baltimore).
-                The source contain a cacerts file
-                without CA root certificates. 
-                Formal JDK builders will need to secure
-                permission from each public CA and include the certificates into their
-                own custom cacerts file. 
-                Failure to provide a populated cacerts file
-                will result in verification errors of a certificate chain during runtime.
-                The variable 
-                <tt><a href="#ALT_CACERTS_FILE">ALT_CACERTS_FILE</a></tt>
-                can be used to override the default location of the
-                cacerts file that will get placed in your build.
-                By default an empty cacerts file is provided and that should be
-                fine for most JDK developers.
-            </blockquote>
-            <!-- ------------------------------------------------------ -->
-            <h4><a name="compilers">Compilers</a></h4>
-            <blockquote>
-                <strong><a name="gcc">Linux gcc/binutils</a></strong>
+                Building is a little different depending on the OS but is
+                basically done with:
                 <blockquote>
-                    The GNU gcc compiler version should be 4.3 or newer.
-                    The compiler used should be the default compiler installed
-                    in <tt>/usr/bin</tt>.
-                </blockquote>
-                <strong><a name="studio">Solaris: Sun Studio</a></strong>
-                <blockquote>
-                    At a minimum, the
-                    <a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.htm" target="_blank">
-                        Sun Studio 12 Update 1 Compilers</a>
-                    (containing version 5.10 of the C and C++ compilers) is required,
-                    including specific patches.
-                    <p>
-                    The Solaris SPARC patch list is:
-                    <ul>
-                        <li>
-                            118683-05: SunOS 5.10: Patch for profiling libraries and assembler
-                        </li>
-                        <li>
-                            119963-21: SunOS 5.10: Shared library patch for C++
-                        </li>
-                        <li>
-                            120753-08: SunOS 5.10: Microtasking libraries (libmtsk) patch
-                        </li>
-                        <li>
-                            128228-09: Sun Studio 12 Update 1: Patch for Sun C++ Compiler
-                        </li>
-                        <li>
-                            141860-03: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95
-                        </li>
-                        <li>
-                            141861-05: Sun Studio 12 Update 1: Patch for Sun C Compiler
-                        </li>
-                        <li>
-                            142371-01: Sun Studio 12.1 Update 1: Patch for dbx
-                        </li>
-                        <li>
-                            143384-02: Sun Studio 12 Update 1: Patch for debuginfo handling
-                        </li>
-                        <li>
-                            143385-02: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95
-                        </li>
-                        <li>
-                            142369-01: Sun Studio 12.1: Patch for Performance Analyzer Tools
-                        </li>
-                    </ul>
-                    <p>
-                        The Solaris X86 patch list is:
-                    <ul>
-                        <li>
-                            119961-07: SunOS 5.10_x86, x64, Patch for profiling libraries and assembler
-                        </li>
-                        <li>
-                            119964-21: SunOS 5.10_x86: Shared library patch for C++_x86
-                        </li>
-                        <li>
-                            120754-08: SunOS 5.10_x86: Microtasking libraries (libmtsk) patch
-                        </li>
-                        <li>
-                            141858-06: Sun Studio 12 Update 1_x86: Sun Compiler Common patch for x86 backend
-                        </li>
-                        <li>
-                            128229-09: Sun Studio 12 Update 1_x86: Patch for C++ Compiler
-                        </li>
-                        <li>
-                            142363-05: Sun Studio 12 Update 1_x86: Patch for C Compiler
-                        </li>
-                        <li>
-                            142368-01: Sun Studio 12.1_x86: Patch for Performance Analyzer Tools
-                        </li>
-                    </ul>
-                    <p> 
-                        Set
-                        <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>
-                        to point to the location of
-                        the compiler binaries, and place this location in the <tt>PATH</tt>.
-                    <p>
-                        The Oracle Solaris Studio Express compilers at:
-                        <a href="http://developers.sun.com/sunstudio/downloads/express.jsp" target="_blank">
-                            Oracle Solaris Studio Express Download site</a>
-                        are also an option, although these compilers have not
-                        been extensively used yet.
-                </blockquote>
-                <strong><a name="msvc32">Windows i586: Microsoft Visual Studio 2010 Compilers</a></strong>
-                <blockquote>
-                    <p>
-                        <b>BEGIN WARNING</b>: JDK 7 has transitioned to
-                        use the newest VS2010 Microsoft compilers.
-                        No other compilers are known to build the entire JDK,
-                        including non-open portions.
-                        Visual Studio 2010 Express compilers are now able to build all the
-                        open source repositories, but this is 32 bit only. To build 64 bit
-                        Windows binaries use the the 7.1 Windows SDK.
-                        <b>END WARNING.</b>
-                    <p>
-                        The 32-bit OpenJDK Windows build requires
-                        Microsoft Visual Studio C++ 2010 (VS2010) Professional
-                        Edition or Express compiler.
-                        The compiler and other tools are expected to reside
-                        in the location defined by the variable
-                        <tt>VS100COMNTOOLS</tt> which
-                        is set by the Microsoft Visual Studio installer.
-                    <p> 
-                        Once the compiler is installed,
-                        it is recommended that you run <tt>VCVARS32.BAT</tt>
-                        to set the compiler environment variables
-                        <tt>INCLUDE</tt>,
-                        <tt>LIB</tt>, and
-                        <tt>PATH</tt>
-                        prior to building the
-                        OpenJDK.
-                        The above environment variables <b>MUST</b> be set.
-                        This compiler also contains the Windows SDK v 7.0a,
-                        which is an update to the Windows 7 SDK.
-                    <p>
-                        <b>WARNING:</b> Make sure you check out the
-                        <a href="#cygwin">CYGWIN link.exe WARNING</a>.
-                        The path <tt>/usr/bin</tt> must be after the path to the
-                        Visual Studio product.
-                </blockquote>
-                <strong><a name="msvc64">Windows x64: Microsoft Visual Studio 2010 Professional Compiler</a></strong>
-                <blockquote>
-                    For <b>X64</b>, the set up is much the same as 32 bit
-                    except that you run <tt>amd64\VCVARS64.BAT</tt>
-                    to set the compiler environment variables.
-                    Previously 64 bit builds had to use the 64 bit compiler in
-                    an unbundled Windows SDK but this is no longer necessary if
-                    you have VS2010 Professional.
-                </blockquote>
-                <strong><a name="mssdk64">Windows x64: Microsoft Windows 7.1 SDK 64 bit compilers.</a></strong>
-                For a free alternative for 64 bit builds, use the 7.1 SDK.
-                Microsoft say that to set up your paths for this run
-                <pre>
-    c:\Program Files\Microsoft SDKs\Windows\v7.1\bin\setenv.cmd /x64.
-                </pre>
-                What was tested is just directly setting up LIB, INCLUDE,
-                PATH and based on the installation directories using the
-                DOS short name appropriate for the system, (you will
-                need to set them for yours, not just blindly copy this) eg :
-                <pre>
-    set VSINSTALLDIR=c:\PROGRA~2\MICROS~1.0
-    set WindowsSdkDir=c:\PROGRA~1\MICROS~1\Windows\v7.1
-    set PATH=%VSINSTALLDIR%\vc\bin\amd64;%VSINSTALLDIR%\Common7\IDE;%WindowsSdkDir%\bin;%PATH%
-    set INCLUDE=%VSINSTALLDIR%\vc\include;%WindowsSdkDir%\include
-    set LIB=%VSINSTALLDIR%\vc\lib\amd64;%WindowsSdkDir%\lib\x64
-                </pre>
-                <strong><a name="llvmgcc">OS X Lion 10.7.3: LLVM GCC</a></strong>
-                <blockquote>
-                   LLVM GCC is bundled with XCode. The version should be at least 4.2.1.
+                    <code>bash ./configure</code>
+                    <br>
+                    <code>make</code>
                 </blockquote>
             </blockquote>
-            <!-- ------------------------------------------------------ --> 
-            <h4><a name="zip">Zip and Unzip</a></h4>
-            <blockquote>
-                Version 2.2 (November 3rd 1997) or newer of the zip utility 
-                and version 5.12 or newer of the unzip utility is needed 
-                to build the JDK.
-                With Solaris, Linux, and Windows CYGWIN, the zip and unzip
-                utilities installed on the system should be fine.
-                Information and the source code for
-                ZIP.EXE and UNZIP.EXE is available on the
-                <a href="http://www.info-zip.org" 
-                   target="_blank">info-zip web site</a>.
-            </blockquote>
-            <!-- ------------------------------------------------------ -->
-            <h4><a name="cups">Common UNIX Printing System (CUPS) Headers (Solaris &amp; Linux)</a></h4>
-            <blockquote>
-                <strong>Solaris:</strong>
-                CUPS header files are required for building the 
-                OpenJDK on Solaris.
-                The Solaris header files can be obtained by installing 
-                the package <strong>SFWcups</strong> from the Solaris Software
-                Companion CD/DVD, these often will be installed into 
-                <tt>/opt/sfw/cups</tt>.
-                <p>
-                    <strong>Linux:</strong>
-                    CUPS header files are required for building the
-                    OpenJDK on Linux.
-                    The Linux header files are usually available from a "cups"
-                    development package, it's recommended that you try and use
-                    the package provided by the particular version of Linux that
-                    you are using.
-                <p>
-                    The CUPS header files can always be downloaded from
-                    <a href="http://www.cups.org" target="_blank">www.cups.org</a>.
-                    The variable
-                    <tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt>
-                    can be used to override the default location of the
-                    CUPS Header files.
-            </blockquote>
-            <!-- ------------------------------------------------------ -->
-            <h4><a name="xrender">XRender Extension Headers (Solaris &amp; Linux)</a></h4>
-            <blockquote>
-                <p>
-                    <strong>Solaris:</strong>
-                    XRender header files are required for building the
-                    OpenJDK on Solaris.
-                    The XRender header file is included with the other X11 header files
-                    in the package <strong>SFWxwinc</strong> on new enough versions of
-                    Solaris and will be installed in
-                    <tt>/usr/X11/include/X11/extensions/Xrender.h</tt> or
-                    <tt>/usr/openwin/share/include/X11/extensions/Xrender.h</tt>
-                </p><p>
-                    <strong>Linux:</strong>
-                    XRender header files are required for building the
-                    OpenJDK on Linux.
-                    The Linux header files are usually available from a "Xrender"
-                    development package, it's recommended that you try and use
-                    the package provided by the particular distribution of Linux that
-                    you are using.
-                </p>
-            </blockquote>
-            <!-- ------------------------------------------------------ -->
-            <h4><a name="freetype">FreeType 2</a></h4>
-            <blockquote>
-                Version 2.3 or newer of FreeType is required for building the OpenJDK.
-                On Unix systems required files can be available as part of your
-                distribution (while you still may need to upgrade them).
-                Note that you need development version of package that 
-                includes both FreeType library and header files.
-                <p>
-                    You can always download latest FreeType version from the
-                    <a href="http://www.freetype.org" target="_blank">FreeType website</a>.
-                <p>
-                    Makefiles will try to pick FreeType from /usr/lib and /usr/include.
-                    In case it is installed elsewhere you will need to set environment
-                    variables
-                    <tt><a href="#ALT_FREETYPE_LIB_PATH">ALT_FREETYPE_LIB_PATH</a></tt>
-                    and
-                    <tt><a href="#ALT_FREETYPE_HEADERS_PATH">ALT_FREETYPE_HEADERS_PATH</a></tt>
-                    to refer to place where library and header files are installed.
-                <p>
-                    Building the freetype 2 libraries from scratch is also possible,
-                    however on Windows refer to the
-                    <a href="http://freetype.freedesktop.org/wiki/FreeType_DLL">
-                        Windows FreeType DLL build instructions</a>.
-                <p>
-                    Note that by default FreeType is built with byte code hinting
-                    support disabled due to licensing restrictions.
-                    In this case, text appearance and metrics are expected to
-                    differ from Sun's official JDK build.
-                    See
-                    <a href="http://freetype.sourceforge.net/freetype2/index.html">
-                        the SourceForge FreeType2 Home Page
-                    </a>
-                    for more information.
-            </blockquote>    
-            <!-- ------------------------------------------------------ -->
-            <h4><a name="alsa">Advanced Linux Sound Architecture (ALSA) (Linux only)</a></h4>
-            <blockquote>
-                <strong>Linux only:</strong>
-                Version 0.9.1 or newer of the ALSA files are
-                required for building the OpenJDK on Linux.
-                These Linux files are usually available from an "alsa"
-                of "libasound"
-                development package, it's highly recommended that you try and use
-                the package provided by the particular version of Linux that
-                you are using.
-                The makefiles will check this emit a sanity error if it is
-                missing or the wrong version.
-                <p>
-                    In particular, older Linux systems will likely not have the
-                    right version of ALSA installed, for example
-                    Redhat AS 2.1 U2 and SuSE 8.1 do not include a sufficiently
-                    recent ALSA distribution.
-                    On rpm-based systems, you can see if ALSA is installed by
-                    running this command:
-                <pre>
-                    <tt>rpm -qa | grep alsa</tt>
-                </pre>
-                Both <tt>alsa</tt> and <tt>alsa-devel</tt> packages are needed.
-                <p> 
-                    If your distribution does not come with ALSA, and you can't
-                    find ALSA packages built for your particular system,
-                    you can try to install the pre-built ALSA rpm packages from
-                    <a href="http://www.freshrpms.net/" target="_blank">
-                        <tt>www.freshrpms.net</tt></a>.
-                    Note that installing a newer ALSA could
-                    break sound output if an older version of ALSA was previously
-                    installed on the system, but it will enable JDK compilation.
-                <blockquote>
-                    Installation: execute as root<br>
-                    [i586]: <code>rpm -Uv --force alsa-lib-devel-0.9.1-rh61.i386.rpm</code><br>
-                    [x64]: <code>rpm -Uv --force alsa-lib-devel-0.9.8-amd64.x86_64.rpm</code><br>
-                    Uninstallation:<br>
-                    [i586]: <code>rpm -ev alsa-lib-devel-0.9.1-rh61</code><br>
-                    [x64]:<code>rpm -ev alsa-lib-devel-0.9.8-amd64</code><br>
-                    Make sure that you do not link to the static library
-                    (<tt>libasound.a</tt>),
-                    by verifying that the dynamic library (<tt>libasound.so</tt>) is
-                    correctly installed in <tt>/usr/lib</tt>.
-                </blockquote>
-                As a last resort you can go to the
-                <a href="http://www.alsa-project.org" target="_blank">
-                    Advanced Linux Sound Architecture Site</a> and build it from
-                source.
-                <blockquote>
-                    Download driver and library
-                    source tarballs from 
-                    <a href="http://www.alsa-project.org" target="_blank">ALSA's homepage</a>. 
-                    As root, execute the following
-                    commands (you may need to adapt the version number):
-                    <pre>
-                        <tt>
-                            $ tar xjf alsa-driver-0.9.1.tar.bz2
-                            $ cd alsa-driver-0.9.1
-                            $ ./configure
-                            $ make install
-                            $ cd ..
-                            $ tar xjf alsa-lib-0.9.1.tar.bz2
-                            $ cd alsa-lib-0.9.1
-                            $ ./configure
-                            $ make install
-                        </tt>
-                    </pre>
-                    Should one of the above steps fail, refer to the documentation on
-                    ALSA's home page.
-                </blockquote>
-                Note that this is a minimum install that enables
-                building the JDK platform. To actually use ALSA sound drivers, more
-                steps are necessary as outlined in the documentation on ALSA's homepage.
-                <p>
-                    ALSA can be uninstalled by executing <tt>make uninstall</tt> first in
-                    the <tt>alsa-lib-0.9.1</tt> directory and then in
-                    <tt>alsa-driver-0.9.1</tt>.
-            </blockquote>
-            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:
-            <tt>/usr/include/alsa</tt> and <tt>/usr/lib/libasound.so</tt>.
-        </blockquote>
-        <!-- ------------------------------------------------------ -->
-        <h4>Windows Specific Dependencies</h4>
-        <blockquote>
-            <strong>Unix Command Tools (<a name="cygwin">CYGWIN</a>)</strong>
-            <blockquote> 
-                The OpenJDK requires access to a set of unix command tools
-                on Windows which can be supplied by 
-                <a href="http://www.cygwin.com" target="_blank">CYGWIN</a>. 
-                <p>
-                    The OpenJDK build requires CYGWIN version 1.5.12 or newer.
-                    Information about CYGWIN can
-                    be obtained from the CYGWIN website at
-                    <a href="http://www.cygwin.com" target="_blank">www.cygwin.com</a>.
-                <p>
-                    By default CYGWIN doesn't install all the tools required for building
-                    the OpenJDK.
-                    Along with the default installation, you need to install
-                    the following tools.
-                <blockquote>
-                    <table border="1">
-                        <thead>
-                            <tr>
-                                <td>Binary Name</td>
-                                <td>Category</td>
-                                <td>Package</td>
-                                <td>Description</td>
-                            </tr>
-                        </thead>
-                        <tbody>
-                            <tr>
-                                <td>ar.exe</td>
-                                <td>Devel</td>
-                                <td>binutils</td>
-                                <td>The GNU assembler, linker and binary
-                                    utilities</td>
-                            </tr>
-                            <tr>
-                                <td>make.exe</td>
-                                <td>Devel</td>
-                                <td>make</td>
-                                <td>The GNU version of the 'make' utility built for CYGWIN.<br>
-                                    <b>NOTE</b>: the Cygwin make can not be used to build the 
-                                    OpenJDK.  You only need it to build your own version of make 
-                                    (see <a href="#gmake">the GNU make section</a>)</td>
-                            </tr>
-                            <tr>
-                                <td>m4.exe</td>
-                                <td>Interpreters</td>
-                                <td>m4</td>
-                                <td>GNU implementation of the traditional Unix macro
-                                    processor</td>
-                            </tr>
-                            <tr>
-                                <td>cpio.exe</td>
-                                <td>Utils</td>
-                                <td>cpio</td>
-                                <td>A program to manage archives of files</td>
-                            </tr>
-                            <tr>
-                                <td>gawk.exe</td>
-                                <td>Utils</td>
-                                <td>awk</td>
-                                <td>Pattern-directed scanning and processing language</td>
-                            </tr>
-                            <tr>
-                                <td>file.exe</td>
-                                <td>Utils</td>
-                                <td>file</td>
-                                <td>Determines file type using 'magic' numbers</td>
-                            </tr>
-                            <tr>
-                                <td>zip.exe</td>
-                                <td>Archive</td>
-                                <td>zip</td>
-                                <td>Package and compress (archive) files</td>
-                            </tr>
-                            <tr>
-                                <td>unzip.exe</td>
-                                <td>Archive</td>
-                                <td>unzip</td>
-                                <td>Extract compressed files in a ZIP archive</td>
-                            </tr>
-                            <tr>
-                                <td>free.exe</td>
-                                <td>System</td>
-                                <td>procps</td>
-                                <td>Display amount of free and used memory in the system</td>
-                            </tr>
-                        </tbody>
-                    </table>
-                </blockquote>
-                <p>
-                    Note that the CYGWIN software can conflict with other non-CYGWIN
-                    software on your Windows system.
-                    CYGWIN provides a
-                    <a href="http://cygwin.com/faq/faq.using.html" target="_blank">FAQ</a> for
-                    known issues and problems, of particular interest is the
-                    section on
-                    <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank">
-                        BLODA (applications that interfere with CYGWIN)</a>.
-                <p>
-                    <b>WARNING:</b>
-                    Be very careful with <b><tt>link.exe</tt></b>, it will conflict
-                    with the Visual Studio version. You need the Visual Studio
-                    version of <tt>link.exe</tt>, not the CYGWIN one.
-                    So it's important that the Visual Studio paths in PATH preceed
-                    the CYGWIN path <tt>/usr/bin</tt>.
-            </blockquote>
-            <strong> Minimalist GNU for Windows (<a name="msys">MinGW/MSYS</a>)</strong>
-            <blockquote> 
-                Alternatively, the set of unix command tools for the OpenJDK build on 
-                Windows can be supplied by 
-                <a href="http://www.mingw.org/wiki/MSYS" target="_blank">MinGW/MSYS</a>.
-                <p>
-                    In addition to the tools which will be installed by default, you have
-                    to manually install the <tt>msys-zip</tt> and <tt>msys-unzip</tt> packages.
-                    This can be easily done with the MinGW command line installer:<br/>
-                    <tt><br/>
-                        mingw-get.exe install msys-zip<br/>
-                        mingw-get.exe install msys-unzip<br/>
-                    </tt>
-                </p>
-            </blockquote>
-            <strong><a name="dxsdk">Microsoft DirectX 9.0 SDK header files and libraries</a></strong>
-            <blockquote>
-                Microsoft DirectX 9.0 SDK (Summer 2004)
-                headers are required for building
-                OpenJDK.
-                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">
-                    Microsoft DirectX 9.0 SDK (Summer 2004)</a>.
-                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>
-                (search with "DirectX 9.0 SDK Update Summer 2004"). 
-                The location of this SDK can be set with 
-                <tt><a href="#ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt>
-                but it's normally found via the DirectX environment variable
-                <tt>DXSDK_DIR</tt>.
-            </blockquote>
-            <strong><a name="msvcrNN"><tt>MSVCR100.DLL</tt></a></strong>
-            <blockquote> 
-                The OpenJDK build requires access to a redistributable
-                <tt>MSVCR100.DLL</tt>.
-                This is usually picked up automatically from the redist
-                directories of Visual Studio 2010.
-                If this cannot be found set the 
-                <a href="#ALT_MSVCRNN_DLL_PATH"><tt>ALT_MSVCRNN_DLL_PATH</tt></a>
-                variable to the location of this file.
-                <p> 
-            </blockquote>
-        </blockquote>
-        <!-- ------------------------------------------------------ -->
+
+        </blockquote> <!-- Appendix B -->
+
+        <!-- ====================================================== -->
         <hr>
-        <h2><a name="creating">Creating the Build</a></h2>
-        <blockquote>
-            Once a machine is setup to build the OpenJDK,
-            the steps to create the build are fairly simple.
-            The various ALT settings can either be made into  variables
-            or can be supplied on the 
-            <a href="#gmake"><tt><i>gmake</i></tt></a> 
-            command.
-            <ol>
-                <li>Use the sanity rule to double check all the ALT settings:
-                    <blockquote>
-                        <tt>
-                            <i>gmake</i> 
-                            sanity
-                            [ARCH_DATA_MODEL=<i>32 or 64</i>]
-                            [other "ALT_" overrides]
-                        </tt>
-                    </blockquote>
-                </li>
-                <li>Start the build with the command:
-                    <blockquote>
-                        <tt>
-                            <i>gmake</i> 
-                            [ARCH_DATA_MODEL=<i>32 or 64</i>]
-                            [ALT_OUTPUTDIR=<i>output_directory</i>] 
-                            [other "ALT_" overrides] 
-                        </tt>
-                    </blockquote>
-                </li>
-            </ol>
-            <p>
-                <strong>Solaris:</strong>
-                Note that ARCH_DATA_MODEL is really only needed on Solaris to
-                indicate you want to built the 64-bit version.
-                And before the Solaris 64-bit binaries can be used, they
-                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 selection occurring at runtime
-                with the <tt>-d32</tt> or <tt>-d64</tt> options.
-        </blockquote>
-        <!-- ------------------------------------------------------ -->
-        <hr>
-        <h2><a name="testing">Testing the Build</a></h2>
-        <blockquote>
-            When the build is completed, you should see the generated
-            binaries and associated files in the <tt>j2sdk-image</tt> 
-            directory in the output directory. 
-            The default output directory is
-            <tt>build/<i>platform</i></tt>,
-            where <tt><i>platform</i></tt> is one of
-            <blockquote>
-                <ul>
-                    <li><tt>solaris-sparc</tt></li>
-                    <li><tt>solaris-sparcv9</tt></li>
-                    <li><tt>solaris-i586</tt></li>
-                    <li><tt>solaris-amd64</tt></li>
-                    <li><tt>linux-i586</tt></li>
-                    <li><tt>linux-amd64</tt></li>
-                    <li><tt>windows-i586</tt></li>
-                    <li><tt>windows-amd64</tt></li>
-                </ul>
-            </blockquote>
-            In particular, the 
-            <tt>build/<i>platform</i>/j2sdk-image/bin</tt>
-            directory should contain executables for the 
-            OpenJDK tools and utilities.
-            <p>
-                You can test that the build completed properly by using the build
-                to run the various demos that you will find in the
-                <tt>build/<i>platform</i>/j2sdk-image/demo</tt>
-                directory.
-            <p>
-                The provided regression tests can be run with the <tt>jtreg</tt>
-                utility from
-                <a href="http://openjdk.java.net/jtreg/" target="_blank">the jtreg site</a>.
-        </blockquote>
-        <!-- ------------------------------------------------------ -->
-        <hr>
-        <h2><a name="variables">Environment/Make Variables</a></h2>
-        <p>
-            Some of the
-            environment or make variables (just called <b>variables</b> in this
-            document) that can impact the build are:
+        <h2><a name="buildenvironments">Appendix C: Build Environments</a></h2>
         <blockquote>
-            <dl>
-                <dt><a name="path"><tt>PATH</tt></a> </dt>
-                <dd>Typically you want to set the <tt>PATH</tt> to include:
-                    <ul>
-                        <li>The location of the GNU make binary</li>
-                        <li>The location of the Bootstrap JDK <tt>java</tt> 
-                            (see <a href="#bootjdk">Bootstrap JDK</a>)</li>
-                        <li>The location of the C/C++ compilers 
-                            (see <a href="#compilers"><tt>compilers</tt></a>)</li>
-                        <li>The location or locations for the Unix command utilities
-                            (e.g. <tt>/usr/bin</tt>)</li>
-                    </ul>
-                </dd>
-                <dt><tt>MILESTONE</tt> </dt>
-                <dd>
-                    The milestone name for the build (<i>e.g.</i>"beta"). 
-                    The default value is "internal".
-                </dd>
-                <dt><tt>BUILD_NUMBER</tt> </dt>
-                <dd>
-                    The build number for the build (<i>e.g.</i> "b27"). 
-                    The default value is "b00".
-                </dd>
-                <dt><a name="arch_data_model"><tt>ARCH_DATA_MODEL</tt></a></dt>
-                <dd>The <tt>ARCH_DATA_MODEL</tt> variable
-                    is used to specify whether the build is to generate 32-bit or 64-bit
-                    binaries. 
-                    The Solaris build supports either 32-bit or 64-bit builds, but
-                    Windows and Linux will support only one, depending on the specific
-                    OS being used.
-                    Normally, setting this variable is only necessary on Solaris.
-                    Set <tt>ARCH_DATA_MODEL</tt> to <tt>32</tt> for generating 32-bit binaries, 
-                    or to <tt>64</tt> for generating 64-bit binaries.
-                </dd>
-                <dt><a name="ALT_BOOTDIR"><tt>ALT_BOOTDIR</tt></a></dt>
-                <dd>
-                    The location of the bootstrap JDK installation. 
-                    See <a href="#bootjdk">Bootstrap JDK</a> for more information.
-                    You should always install your own local Bootstrap JDK and
-                    always set <tt>ALT_BOOTDIR</tt> explicitly.
-                </dd>
-                <dt><a name="ALT_JDK_IMPORT_PATH"><tt>ALT_JDK_IMPORT_PATH</tt></a></dt>
-                <dd>
-                    The location of a previously built JDK installation. 
-                    See <a href="#importjdk">Optional Import JDK</a> for more information.
-                </dd>
-                <dt><a name="ALT_OUTPUTDIR"><tt>ALT_OUTPUTDIR</tt></a> </dt>
-                <dd>
-                    An override for specifying the (absolute) path of where the
-                    build output is to go.
-                    The default output directory will be build/<i>platform</i>.
-                </dd>
-                <dt><a name="ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a> </dt>
-                <dd>
-                    The location of the C/C++ compiler.
-                    The default varies depending on the platform. 
-                </dd>
-                <dt><tt><a name="ALT_CACERTS_FILE">ALT_CACERTS_FILE</a></tt></dt>
-                <dd>
-                    The location of the <a href="#cacerts">cacerts</a> file.
-                    The default will refer to 
-                    <tt>jdk/src/share/lib/security/cacerts</tt>.
-                </dd>
-                <dt><a name="ALT_CUPS_HEADERS_PATH"><tt>ALT_CUPS_HEADERS_PATH</tt></a> </dt>
-                <dd>
-                    The location of the CUPS header files.
-                    See <a href="#cups">CUPS information</a> for more information.
-                    If this path does not exist the fallback path is 
-                    <tt>/usr/include</tt>.
-                </dd>
-                <dt><a name="ALT_FREETYPE_LIB_PATH"><tt>ALT_FREETYPE_LIB_PATH</tt></a></dt>
-                <dd>
-                    The location of the FreeType shared library. 
-                    See <a href="#freetype">FreeType information</a> for details. 
-                </dd>
-                <dt><a name="ALT_FREETYPE_HEADERS_PATH"><tt>ALT_FREETYPE_HEADERS_PATH</tt></a></dt>
-                <dd>
-                    The location of the FreeType header files.
-                    See <a href="#freetype">FreeType information</a> for details. 
-                </dd>
-                <dt><a name="ALT_JDK_DEVTOOLS_PATH"><tt>ALT_JDK_DEVTOOLS_PATH</tt></a></dt>
-                <dd>
-                    The default root location of the devtools.
-                    The default value is 
-                    <tt>$(ALT_SLASH_JAVA)/devtools</tt>.
-                </dd>
-                <dt><tt><a name="ALT_DEVTOOLS_PATH">ALT_DEVTOOLS_PATH</a></tt> </dt>
-                <dd>
-                    The location of tools like the 
-                    <a href="#zip"><tt>zip</tt> and <tt>unzip</tt></a>
-                    binaries, but might also contain the GNU make utility
-                    (<tt><i>gmake</i></tt>).
-                    So this area is a bit of a grab bag, especially on Windows.
-                    The default value depends on the platform and
-                    Unix Commands being used.
-                    On Linux the default will be 
-                    <tt>$(ALT_JDK_DEVTOOLS_PATH)/linux/bin</tt>, 
-                    on Solaris
-                    <tt>$(ALT_JDK_DEVTOOLS_PATH)/<i>{sparc,i386}</i>/bin</tt>, 
-                    and on Windows with CYGWIN
-                    <tt>/usr/bin</tt>.
-                </dd>
-                <dt><tt><a name="ALT_DROPS_DIR">ALT_DROPS_DIR</a></tt> </dt>
-                <dd>
-                    The location of any source drop bundles
-                    (see <a href="#drops">Managing the Source Drops</a>).
-                    The default will be
-                    <tt>$(ALT_JDK_DEVTOOLS_PATH)/share/jdk8-drops</tt>.
-                </dd>
-                <dt><a name="ALT_UNIXCCS_PATH"><tt>ALT_UNIXCCS_PATH</tt></a></dt>
-                <dd>
-                    <strong>Solaris only:</strong>
-                    An override for specifying where the Unix CCS
-                    command set are located.
-                    The default location is <tt>/usr/ccs/bin</tt> 
-                </dd>
-                <dt><a name="ALT_SLASH_JAVA"><tt>ALT_SLASH_JAVA</tt></a></dt>
-                <dd>
-                    The default root location for many of the ALT path locations
-                    of the following ALT variables.
-                    The default value is 
-                    <tt>"/java"</tt> on Solaris and Linux, 
-                    <tt>"J:"</tt> on Windows.
-                </dd>
-                <dt><a name="ALT_BUILD_JDK_IMPORT_PATH"><tt>ALT_BUILD_JDK_IMPORT_PATH</tt></a></dt>
-                <dd>
-                    These are useful in managing builds on multiple platforms.
-                    The default network location for all of the import JDK images
-                    for all platforms. 
-                    If <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_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 import JDK image
-                    for that platform.
-                </dd>
-                <dt><a name="ALT_OPENWIN_HOME"><tt>ALT_OPENWIN_HOME</tt></a></dt>
-                <dd>
-                    The top-level directory of the libraries and include files for the platform's 
-                    graphical programming environment. The default location is platform specific. 
-                    For example, on Linux it defaults to <tt>/usr/X11R6/</tt>.
-                </dd>
-                <dt><strong>Windows specific:</strong></dt>
-                <dd>
-                    <dl>
-                        <dt><a name="ALT_WINDOWSSDKDIR"><tt>ALT_WINDOWSSDKDIR</tt></a> </dt>
-                        <dd>
-                            The location of the 
-                            Microsoft Windows SDK where some tools will be
-                            located.
-                            The default is whatever WINDOWSSDKDIR is set to
-                            (or WindowsSdkDir) or the path
-                            <br>
-                            <tt>c:\Program Files\Microsoft SDKs\Windows\v7.0a</tt>
-                        </dd>
-                        <dt><tt><a name="ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> </dt>
-                        <dd>
-                            The location of the 
-                            <a href="#dxsdk">Microsoft DirectX 9 SDK</a>.
-                            The default will be to try and use the DirectX environment
-                            variable <tt>DXSDK_DIR</tt>,
-                            failing that, look in <tt>C:/DXSDK</tt>.
-                        </dd>
-                        <dt><tt><a name="ALT_MSVCRNN_DLL_PATH">ALT_MSVCRNN_DLL_PATH</a></tt> </dt>
-                        <dd>
-                            The location of the 
-                            <a href="#msvcrNN"><tt>MSVCR100.DLL</tt></a>. 
-                        </dd>
-                    </dl>
-                </dd>
-                <dt><strong>Cross-Compilation Support:</strong></dt>
-                <dd>
-                    <dl>
-                        <dt><a name="CROSS_COMPILE_ARCH"><tt>CROSS_COMPILE_ARCH</tt></a> </dt>
-                        <dd>
-                            Set to the target architecture of a cross-compilation build. If set, this
-                            variable is used to signify that we are cross-compiling. The expectation
-                            is that <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a> is set
-                            to point to the cross-compiler and that any cross-compilation specific flags
-                            are passed using <a href="#EXTRA_CFLAGS"><tt>EXTRA_CFLAGS</tt></a>.
-                            The <a href="#ALT_OPENWIN_HOME"><tt>ALT_OPENWIN_HOME</tt></a> variable should 
-                            also be set to point to the graphical header files (e.g. X11) provided with 
-                            the cross-compiler.
-                            When cross-compiling we skip execution of any demos etc that may be built, and
-                            also skip binary-file verification.
-                        </dd>
-                        <dt><tt><a name="EXTRA_CFLAGS">EXTRA_CFLAGS</a></tt> </dt>
-                        <dd>
-                           Used to pass cross-compilation options to the cross-compiler.
-                           These are added to the <tt>CFLAGS</tt> and <tt>CXXFLAGS</tt> variables. 
-                        </dd>
-                        <dt><tt><a name="USE_ONLY_BOOTDIR_TOOLS">USE_ONLY_BOOTDIR_TOOLS</a></tt> </dt>
-                        <dd>
-                            Used primarily for cross-compilation builds (and always set in that case)
-                            this variable indicates that tools from the boot JDK should be used during
-                            the build process, not the tools (<tt>javac</tt>, <tt>javah</tt>, <tt>jar</tt>)
-                            just built (which can't execute on the build host).
-                        </dd>
-                        <dt><tt><a name="HOST_CC">HOST_CC</a></tt> </dt>
-                        <dd>
-                            The location of the C compiler to generate programs to run on the build host.
-                            Some parts of the build generate programs that are then compiled and executed
-                            to produce other parts of the build. Normally the primary C compiler is used
-                            to do this, but when cross-compiling that would be the cross-compiler and the
-                            resulting program could not be executed. 
-                            On Linux this defaults to <tt>/usr/bin/gcc</tt>; on other platforms it must be
-                            set explicitly.
-                        </dd>
-                    </dl>
-                <dt><strong>Specialized Build Options:</strong></dt>
-                <dd>
-                  Some build variables exist to support specialized build environments and/or specialized
-                  build products. Their use is only supported in those contexts:
-                    <dl>
-                        <dt><tt><a name="BUILD_CLIENT_ONLY">BUILD_CLIENT_ONLY</a></tt> </dt>
-                        <dd>
-                            Indicates this build will only contain the Hotspot client VM. In addition to
-                            controlling the Hotspot build target, it ensures that we don't try to copy
-                            any server VM files/directories, and defines a default <tt>jvm.cfg</tt> file
-                            suitable for a client-only environment. Using this in a 64-bit build will
-                            generate a sanity warning as 64-bit client builds are not directly supported.
-                        </dd>
-                        <dt><tt><a name="BUILD_HEADLESS_ONLY"></a>BUILD_HEADLESS_ONLY</tt> </dt>
-                        <dd>
-                            Used when the build environment has no graphical capabilities at all. This
-                            excludes building anything that requires graphical libraries to be available.
-                        </dd>
-                        <dt><tt><a name="JAVASE_EMBEDDED"></a>JAVASE_EMBEDDED</tt> </dt>
-                        <dd>
-                            Used to indicate this is a build of the Oracle Java SE Embedded product. 
-                            This will enable the directives included in the SE-Embedded specific build 
-                            files.
-                        </dd>
-                        <dt><tt><a name="LIBZIP_CAN_USE_MMAP">LIBZIP_CAN_USE_MMAP</a></tt> </dt>
-                        <dd>
-                            If set to false, disables the use of mmap by the zip utility. Otherwise,
-                            mmap will be used.
-                        </dd>
-                        <dt><tt><a name="COMPRESS_JARS"></a>COMPRESS_JARS</tt> </dt>
-                        <dd>
-                          If set to true, causes certain jar files that would otherwise be built without
-                          compression, to use compression.
-                        </dd>
-                    </dl>
-                </dd>
-            </dl>
-        </blockquote>
-        <!-- ------------------------------------------------------ -->
+
+            <h3><a name="MBE">Minimum Build Environments</a></h3>
+            <blockquote>
+                This file often describes specific requirements for what we 
+                call the
+                "minimum build environments" (MBE) for this 
+                specific release of the JDK.
+                What is listed below is what the Oracle Release
+                Engineering Team will use to build the Oracle JDK product.
+                Building with the MBE will hopefully generate the most compatible
+                bits that install on, and run correctly on, the most variations
+                of the same base OS and hardware architecture.
+                In some cases, these represent what is often called the
+                least common denominator, but each Operating System has different
+                aspects to it.
+                <p>
+                    In all cases, the Bootstrap JDK version minimum is critical,
+                    we cannot guarantee builds will work with older Bootstrap JDK's.
+                    Also in all cases, more RAM and more processors is better,
+                    the minimums listed below are simply recommendations.
+                <p>
+                    With Solaris and Mac OS X, the version listed below is the
+                    oldest release we can guarantee builds and works, and the
+                    specific version of the compilers used could be critical.
+                <p>
+                    With Windows the critical aspect is the Visual Studio compiler
+                    used, which due to it's runtime, generally dictates what Windows
+                    systems can do the builds and where the resulting bits can
+                    be used.<br>
+                    <b>NOTE: We expect a change here off these older Windows OS releases
+                        and to a 'less older' one, probably Windows 2008R2 X64.</b>
+                <p>
+                    With Linux, it was just a matter of picking a
+                    stable distribution that is a good representative for Linux
+                    in general.<br>
+                    <b>NOTE: We expect a change here from Fedora 9 to something else,
+                        but it has not been completely determined yet, possibly
+                        Ubuntu 12.04 X64, unbiased community feedback would be welcome on
+                        what a good choice would be here.</b>
+                <p>
+                    It is understood that most developers will NOT be using these 
+                    specific versions, and in fact creating these specific versions
+                    may be difficult due to the age of some of this software.
+                    It is expected that developers are more often using the more
+                    recent releases and distributions of these operating systems.
+                <p>
+                    Compilation problems with newer or different C/C++ compilers is a
+                    common problem.
+                    Similarly, compilation problems related to changes to the
+                    <code>/usr/include</code> or system header files is also a
+                    common problem with older, newer, or unreleased OS versions.
+                    Please report these types of problems as bugs so that they
+                    can be dealt with accordingly.
+                </p>
+                <table border="1">
+                    <thead>
+                        <tr>
+                            <th>Base OS and Architecture</th>
+                            <th>OS</th>
+                            <th>C/C++ Compiler</th>
+                            <th>Bootstrap JDK</th>
+                            <th>Processors</th>
+                            <th>RAM Minimum</th>
+                            <th>DISK Needs</th>
+                        </tr>
+                    </thead>
+                    <tbody>
+                        <tr>
+                            <td>Linux X86 (32-bit) and X64 (64-bit)</td>
+                            <td>Fedora 9</td>
+                            <td>gcc 4.3 </td>
+                            <td>JDK 7u7</td>
+                            <td>2 or more</td>
+                            <td>1 GB</td>
+                            <td>6 GB</td>
+                        </tr>
+                        <tr>
+                            <td>Solaris SPARC (32-bit) and SPARCV9 (64-bit)</td>
+                            <td>Solaris 10 Update 6</td>
+                            <td>Studio 12 Update 1 + patches</td>
+                            <td>JDK 7u7</td>
+                            <td>4 or more</td>
+                            <td>4 GB</td>
+                            <td>8 GB</td>
+                        </tr>
+                        <tr>
+                            <td>Solaris X86 (32-bit) and X64 (64-bit)</td>
+                            <td>Solaris 10 Update 6</td>
+                            <td>Studio 12 Update 1 + patches</td>
+                            <td>JDK 7u7</td>
+                            <td>4 or more</td>
+                            <td>4 GB</td>
+                            <td>8 GB</td>
+                        </tr>
+                        <tr>
+                            <td>Windows X86 (32-bit)</td>
+                            <td>Windows XP</td>
+                            <td>Microsoft Visual Studio C++ 2010 Professional Edition</td>
+                            <td>JDK 7u7</td>
+                            <td>2 or more</td>
+                            <td>2 GB</td>
+                            <td>6 GB</td>
+                        </tr>
+                        <tr>
+                            <td>Windows X64 (64-bit)</td>
+                            <td>Windows Server 2003 - Enterprise x64 Edition</td>
+                            <td>Microsoft Visual Studio C++ 2010 Professional Edition</td>
+                            <td>JDK 7u7</td>
+                            <td>2 or more</td>
+                            <td>2 GB</td>
+                            <td>6 GB</td>
+                        </tr>
+                        <tr>
+                            <td>Mac OS X X64 (64-bit)</td>
+                            <td>Mac OS X 10.7 "Lion"</td>
+                            <td>XCode 4.5.2 or newer</td>
+                            <td>JDK 7u7</td>
+                            <td>2 or more</td>
+                            <td>4 GB</td>
+                            <td>6 GB</td>
+                        </tr>
+                    </tbody>
+                </table>
+            </blockquote>
+
+            <!-- ====================================================== -->
+            <hr>
+            <h3><a name="SDBE">Specific Developer Build Environments</a></h3>
+            <blockquote>
+                We won't be listing all the possible environments, but
+                we will try to provide what information we have available to us.
+                <p>
+                    <strong>NOTE: The community can help out by updating
+                        this part of the document.
+                    </strong>
+
+                <h4><a name="fedora">Fedora</a></h4>
+                <blockquote>
+                    After installing the latest
+                    <a href="http://fedoraproject.org">Fedora</a>
+                    you need to install several build dependencies.
+                    The simplest way to do it is to execute the 
+                    following commands as user <code>root</code>:
+                    <blockquote>
+                        <code>yum-builddep java-1.7.0-openjdk</code>
+                        <br>
+                        <code>yum install gcc gcc-c++</code>
+                    </blockquote>
+                    <p>
+                        In addition, it's necessary to set a few environment 
+                        variables for the build:
+                    <blockquote>
+                        <code>export LANG=C</code>
+                        <br>
+                        <code>export PATH="/usr/lib/jvm/java-openjdk/bin:${PATH}"</code>
+                    </blockquote>
+                </blockquote>
+
+
+                <h4><a name="centos">CentOS 5.5</a></h4>
+                <blockquote>
+                    After installing
+                    <a href="http://www.centos.org/">CentOS 5.5</a>
+                    you need to make sure you have
+                    the following Development bundles installed:
+                    <blockquote>
+                        <ul>
+                            <li>Development Libraries</li>
+                            <li>Development Tools</li>
+                            <li>Java Development</li>
+                            <li>X Software Development (Including XFree86-devel)</li>
+                        </ul>
+                    </blockquote>
+                    <p>
+                        Plus the following packages:
+                    <blockquote>
+                        <ul>
+                            <li>cups devel: Cups Development Package</li>
+                            <li>alsa devel: Alsa Development Package</li>
+                            <li>Xi devel: libXi.so Development Package</li>
+                        </ul>
+                    </blockquote>
+                    <p>
+                        The freetype 2.3 packages don't seem to be available,
+                        but the freetype 2.3 sources can be downloaded, built,
+                        and installed easily enough from
+                        <a href="http://downloads.sourceforge.net/freetype">
+                            the freetype site</a>.
+                        Build and install with something like:
+                    <blockquote>
+                        <code>bash ./configure</code>
+                        <br>
+                        <code>make</code>
+                        <br>
+                        <code>sudo -u root make install</code>
+                    </blockquote>
+                    <p>
+                        Mercurial packages could not be found easily, but a Google
+                        search should find ones, and they usually include Python if
+                        it's needed.
+                </blockquote>
+
+                <h4><a name="debian">Debian 5.0 (Lenny)</a></h4>
+                <blockquote>
+                    After installing <a href="http://debian.org">Debian</a> 5 
+                    you need to install several build dependencies. 
+                    The simplest way to install the build dependencies is to 
+                    execute the following commands as user <code>root</code>:
+                    <blockquote>
+                        <code>aptitude build-dep openjdk-7</code>
+                        <br>
+                        <code>aptitude install openjdk-7-jdk libmotif-dev</code>
+                    </blockquote>
+                    <p>
+                        In addition, it's necessary to set a few environment 
+                        variables for the build:
+                    <blockquote>
+                        <code>export LANG=C</code>
+                        <br>
+                        <code>export PATH="/usr/lib/jvm/java-7-openjdk/bin:${PATH}"</code>
+                    </blockquote>
+                </blockquote>
+
+                <h4><a name="ubuntu">Ubuntu 12.04</a></h4>
+                <blockquote>                       
+                    After installing <a href="http://ubuntu.org">Ubuntu</a> 12.04 
+                    you need to install several build dependencies. The simplest
+                    way to do it is to execute the following commands:
+                    <blockquote>
+                        <code>sudo aptitude build-dep openjdk-7</code>
+                        <br>
+                        <code>sudo aptitude install openjdk-7-jdk</code>
+                    </blockquote>
+                    <p>
+                        In addition, it's necessary to set a few environment 
+                        variables for the build:
+                    <blockquote>
+                        <code>export LANG=C</code>
+                        <br>
+                        <code>export PATH="/usr/lib/jvm/java-7-openjdk/bin:${PATH}"</code>
+                    </blockquote>
+                </blockquote>
+
+                <h4><a name="opensuse">OpenSUSE 11.1</a></h4>
+                <blockquote>
+                    After installing <a href="http://opensuse.org">OpenSUSE</a> 11.1 
+                    you need to install several build dependencies. 
+                    The simplest way to install the build dependencies is to 
+                    execute the following commands:
+                    <blockquote>
+                        <code>sudo zypper source-install -d java-1_7_0-openjdk</code>
+                        <br>
+                        <code>sudo zypper install make</code>
+                    </blockquote>
+                    <p>
+                        In addition, it is necessary to set a few environment 
+                        variables for the build:
+                    <blockquote>
+                        <code>export LANG=C</code>
+                        <br>
+                        <code>export PATH="/usr/lib/jvm/java-1.7.0-openjdk/bin:$[PATH}"</code>
+                    </blockquote>
+                    <p>
+                        Finally, you need to unset the <code>JAVA_HOME</code> 
+                        environment variable:
+                    <blockquote>
+                        <code>export -n JAVA_HOME</code>
+                    </blockquote>
+                </blockquote>
+
+                <h4><a name="mandriva">Mandriva Linux One 2009 Spring</a></h4>
+                <blockquote>
+                    After installing <a href="http://mandriva.org">Mandriva</a>
+                    Linux One 2009 Spring 
+                    you need to install several build dependencies. 
+                    The simplest way to install the build dependencies is to 
+                    execute the following commands as user <code>root</code>:
+                    <blockquote>
+                        <code>urpmi java-1.7.0-openjdk-devel make gcc gcc-c++ 
+                            freetype-devel zip unzip libcups2-devel libxrender1-devel
+                            libalsa2-devel libstc++-static-devel libxtst6-devel 
+                            libxi-devel</code>
+                    </blockquote>
+                    <p>
+                        In addition, it is necessary to set a few environment 
+                        variables for the build:
+                    <blockquote>
+                        <code>export LANG=C</code>
+                        <br>
+                        <code>export PATH="/usr/lib/jvm/java-1.7.0-openjdk/bin:${PATH}"</code>
+                    </blockquote>
+                </blockquote>
+
+                <h4><a name="opensolaris">OpenSolaris 2009.06</a></h4>
+                <blockquote>
+                    After installing <a href="http://opensolaris.org">OpenSolaris</a> 2009.06 
+                    you need to install several build dependencies. 
+                    The simplest way to install the build dependencies is to 
+                    execute the following commands:
+                    <blockquote>
+                        <code>pfexec pkg install SUNWgmake SUNWj7dev 
+                            sunstudioexpress SUNWcups SUNWzip SUNWunzip SUNWxwhl 
+                            SUNWxorg-headers SUNWaudh SUNWfreetype2</code>
+                    </blockquote>
+                    <p>
+                        In addition, it is necessary to set a few environment 
+                        variables for the build:
+                    <blockquote>
+                        <code>export LANG=C</code>
+                        <br>
+                        <code>export PATH="/opt/SunStudioExpress/bin:${PATH}"</code>
+                    </blockquote>
+                </blockquote>
+
+            </blockquote>
+
+        </blockquote> <!-- Appendix C -->
+
+        <!-- ====================================================== -->
+
+        <!-- Leave out Appendix D --
+
+<hr>
+<h2><a name="mapping">Appendix D: Mapping Old to New</a></h2>
+<blockquote>
+    <p>This table will help you convert some idioms of the old build
+        system to the new build system.</p>
+    <table summary="Cheat sheet for converting from old to new build system">
+        <tr valign="top">
+            <th>In the old build system, you used to...</th>
+            <th>In the new build system, you should ...</th>
+        </tr>
+        <tr valign="top">
+            <td>run <code>make sanity</code></td>
+            <td>run <code>bash ./configure</code></td>
+        </tr>
+        <tr valign="top">
+            <td>set <code>ALT_OUTPUTDIR=build/my-special-output</code></td>
+            <td>before building the first time:
+                <br>
+                <code>cd build/my-special-output</code>
+                <br>
+                <code>bash ../../configure</code>
+                <br>
+                to build:
+                <br>
+                <code>cd build/my-special-output</code>
+                <br>
+                <code>make</code>
+            </td>
+        </tr>
+        <tr valign="top">
+            <td>set <code>ALT_BOOTDIR=/opt/java/jdk7</code></td>
+            <td>run <code>configure --with-boot-jdk=/opt/java/jdk7</code></td>
+        </tr>
+        <tr valign="top">
+            <td>run <code>make ARCH_DATA_MODEL=32</code></td>
+            <td>run <code>configure --with-target-bits=32</code></td>
+        </tr>
+        <tr valign="top">
+            <td>set <code>BUILD_CLIENT_ONLY=true</code></td>
+            <td>run <code>configure --with-jvm-variants=client</code></td>
+        </tr>
+        <tr valign="top">
+            <td>set <code>ALT_FREETYPE_LIB_PATH=/opt/freetype/lib</code> 
+                and <code>ALT_FREETYPE_HEADERS_PATH=/opt/freetype/include</code></td>
+            <td>run <code>configure --with-freetype=/opt/freetype</code></td>
+        </tr>
+        <tr valign="top">
+            <td>set <code>ALT_CUPS_HEADERS_PATH=/opt/cups/include</code></td>
+            <td>run <code>configure --with-cups=/opt/cups</code></td>
+        </tr>
+        <tr valign="top">
+            <td>set <code>ALT_OPENWIN_HOME=/opt/X11R6</code></td>
+            <td>run <code>configure --with-x=/opt/X11R6</code></td>
+        </tr>
+        <tr valign="top">
+            <td>set <code>ALT_MSVCRNN_DLL_PATH=c:/vc_redist</code></td>
+            <td>run <code>configure --with-msvcr100dll=/cygdrive/c/vc_redist</code></td>
+        </tr>
+        <tr valign="top">
+            <td>set <code>ALT_COMPILER_PATH=/opt/my-gcc/bin/gcc</code></td>
+            <td>run <code>CC=/opt/my-gcc/bin/gcc configure</code> 
+                or <code>CXX=/opt/my-gcc/bin/g++ configure</code>
+            </td>
+        </tr>
+        <tr valign="top">
+            <td>set <code>BUILD_HEADLESS_ONLY=true</code></td>
+            <td>run <code>configure --disable-headful</code></td>
+        </tr>
+        <tr valign="top">
+            <td>set <code>ALT_DEVTOOLS_PATH=/opt/mytools</code></td>
+            <td>just run <code>configure</code>, 
+                your tools should be detected automatically. 
+                If you have an unusual configuration, 
+                add the tools directory to your <code>PATH</code>.
+            </td>
+        </tr>
+        <tr valign="top">
+            <td>set <code>ALT_DROPS_DIR=/home/user/dropdir</code></td>
+            <td>source drops are not used anymore</td>
+        </tr>
+        <tr valign="top">
+            <td>set <code>USE_ONLY_BOOTDIR_TOOLS=true</code></td>
+            <td>not needed, <code>configure</code> should always do the Right Thing automatically</td>
+        </tr>
+        <tr valign="top">
+            <td>set <code>ALT_JDK_IMPORT_PATH=/opt/java/import-jdk</code>
+                or <code>ALT_BUILD_JDK_IMPORT_PATH=/opt/java/import-jdk</code>
+            </td>
+            <td>Importing JDKs is no longer possible, 
+                but hotspot can be imported using 
+                <code>--with-import-hotspot</code>. 
+                Documentation on how to achieve a 
+                similar solution will come soon!
+            </td>
+        </tr>
+        <tr valign="top">
+            <td>set <code>EXTRA_CFLAGS=-Xfoo</code></td>
+            <td>run <code>CFLAGS=-Xfoo configure</code></td>
+        </tr>
+        <tr valign="top">
+            <td>set <code>CROSS_COMPILE_ARCH=i586</code></td>
+            <td>see <a href="#sec7.3"> section 7.3, Cross-compilation</a></td>
+        </tr>
+        <tr valign="top">
+            <td>set <code>SKIP_BOOT_CYCLE=false</code></td>
+            <td>Run <code>make bootcycle-images</code>.</td>
+        </tr>
+    </table>
+
+    <h3><a name="variables">Environment/Make Variables</a></h3>
+    <p>
+        Some of the
+        environment or make variables (just called <b>variables</b> in this
+        document) that can impact the build are:
+    <blockquote>
+        <dl>
+            <dt><a name="path"><code>PATH</code></a> </dt>
+            <dd>Typically you want to set the <code>PATH</code> to include:
+                <ul>
+                    <li>The location of the GNU make binary</li>
+                    <li>The location of the Bootstrap JDK <code>java</code> 
+                        (see <a href="#bootjdk">Bootstrap JDK</a>)</li>
+                    <li>The location of the C/C++ compilers 
+                        (see <a href="#compilers"><code>compilers</code></a>)</li>
+                    <li>The location or locations for the Unix command utilities
+                        (e.g. <code>/usr/bin</code>)</li>
+                </ul>
+            </dd>
+            <dt><code>MILESTONE</code> </dt>
+            <dd>
+                The milestone name for the build (<i>e.g.</i>"beta"). 
+                The default value is "internal".
+            </dd>
+            <dt><code>BUILD_NUMBER</code> </dt>
+            <dd>
+                The build number for the build (<i>e.g.</i> "b27"). 
+                The default value is "b00".
+            </dd>
+            <dt><a name="arch_data_model"><code>ARCH_DATA_MODEL</code></a></dt>
+            <dd>The <code>ARCH_DATA_MODEL</code> variable
+                is used to specify whether the build is to generate 32-bit or 64-bit
+                binaries. 
+                The Solaris build supports either 32-bit or 64-bit builds, but
+                Windows and Linux will support only one, depending on the specific
+                OS being used.
+                Normally, setting this variable is only necessary on Solaris.
+                Set <code>ARCH_DATA_MODEL</code> to <code>32</code> for generating 32-bit binaries, 
+                or to <code>64</code> for generating 64-bit binaries.
+            </dd>
+            <dt><a name="ALT_BOOTDIR"><code>ALT_BOOTDIR</code></a></dt>
+            <dd>
+                The location of the bootstrap JDK installation. 
+                See <a href="#bootjdk">Bootstrap JDK</a> for more information.
+                You should always install your own local Bootstrap JDK and
+                always set <code>ALT_BOOTDIR</code> explicitly.
+            </dd>
+            <dt><a name="ALT_OUTPUTDIR"><code>ALT_OUTPUTDIR</code></a> </dt>
+            <dd>
+                An override for specifying the (absolute) path of where the
+                build output is to go.
+                The default output directory will be build/<i>platform</i>.
+            </dd>
+            <dt><a name="ALT_COMPILER_PATH"><code>ALT_COMPILER_PATH</code></a> </dt>
+            <dd>
+                The location of the C/C++ compiler.
+                The default varies depending on the platform. 
+            </dd>
+            <dt><code><a name="ALT_CACERTS_FILE">ALT_CACERTS_FILE</a></code></dt>
+            <dd>
+                The location of the <a href="#cacerts">cacerts</a> file.
+                The default will refer to 
+                <code>jdk/src/share/lib/security/cacerts</code>.
+            </dd>
+            <dt><a name="ALT_CUPS_HEADERS_PATH"><code>ALT_CUPS_HEADERS_PATH</code></a> </dt>
+            <dd>
+                The location of the CUPS header files.
+                See <a href="#cups">CUPS information</a> for more information.
+                If this path does not exist the fallback path is 
+                <code>/usr/include</code>.
+            </dd>
+            <dt><a name="ALT_FREETYPE_LIB_PATH"><code>ALT_FREETYPE_LIB_PATH</code></a></dt>
+            <dd>
+                The location of the FreeType shared library. 
+                See <a href="#freetype">FreeType information</a> for details. 
+            </dd>
+            <dt><a name="ALT_FREETYPE_HEADERS_PATH"><code>ALT_FREETYPE_HEADERS_PATH</code></a></dt>
+            <dd>
+                The location of the FreeType header files.
+                See <a href="#freetype">FreeType information</a> for details. 
+            </dd>
+            <dt><a name="ALT_JDK_DEVTOOLS_PATH"><code>ALT_JDK_DEVTOOLS_PATH</code></a></dt>
+            <dd>
+                The default root location of the devtools.
+                The default value is 
+                <code>$(ALT_SLASH_JAVA)/devtools</code>.
+            </dd>
+            <dt><code><a name="ALT_DEVTOOLS_PATH">ALT_DEVTOOLS_PATH</a></code> </dt>
+            <dd>
+                The location of tools like the 
+                <a href="#zip"><code>zip</code> and <code>unzip</code></a>
+                binaries, but might also contain the GNU make utility
+                (<code><i>gmake</i></code>).
+                So this area is a bit of a grab bag, especially on Windows.
+                The default value depends on the platform and
+                Unix Commands being used.
+                On Linux the default will be 
+                <code>$(ALT_JDK_DEVTOOLS_PATH)/linux/bin</code>, 
+                on Solaris
+                <code>$(ALT_JDK_DEVTOOLS_PATH)/<i>{sparc,i386}</i>/bin</code>, 
+                and on Windows with CYGWIN
+                <code>/usr/bin</code>.
+            </dd>
+            <dt><a name="ALT_UNIXCCS_PATH"><code>ALT_UNIXCCS_PATH</code></a></dt>
+            <dd>
+                <strong>Solaris only:</strong>
+                An override for specifying where the Unix CCS
+                command set are located.
+                The default location is <code>/usr/ccs/bin</code> 
+            </dd>
+            <dt><a name="ALT_SLASH_JAVA"><code>ALT_SLASH_JAVA</code></a></dt>
+            <dd>
+                The default root location for many of the ALT path locations
+                of the following ALT variables.
+                The default value is 
+                <code>"/java"</code> on Solaris and Linux, 
+                <code>"J:"</code> on Windows.
+            </dd>
+
+            <dt><a name="ALT_OPENWIN_HOME"><code>ALT_OPENWIN_HOME</code></a></dt>
+            <dd>
+                The top-level directory of the libraries and include files 
+                for the platform's 
+                graphical programming environment. 
+                The default location is platform specific. 
+                For example, on Linux it defaults to <code>/usr/X11R6/</code>.
+            </dd>
+            <dt><strong>Windows specific:</strong></dt>
+            <dd>
+                <dl>
+                    <dt><a name="ALT_WINDOWSSDKDIR"><code>ALT_WINDOWSSDKDIR</code></a> </dt>
+                    <dd>
+                        The location of the 
+                        Microsoft Windows SDK where some tools will be
+                        located.
+                        The default is whatever WINDOWSSDKDIR is set to
+                        (or WindowsSdkDir) or the path
+                        <br>
+                        <code>c:\Program Files\Microsoft SDKs\Windows\v7.0a</code>
+                    </dd>
+                    <dt><code><a name="ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></code> </dt>
+                    <dd>
+                        The location of the 
+                        <a href="#dxsdk">Microsoft DirectX 9 SDK</a>.
+                        The default will be to try and use the DirectX environment
+                        variable <code>DXSDK_DIR</code>,
+                        failing that, look in <code>C:/DXSDK</code>.
+                    </dd>
+                    <dt><code><a name="ALT_MSVCRNN_DLL_PATH">ALT_MSVCRNN_DLL_PATH</a></code> </dt>
+                    <dd>
+                        The location of the 
+                        <a href="#msvcrNN"><code>MSVCR100.DLL</code></a>. 
+                    </dd>
+                </dl>
+            </dd>
+            <dt><strong>Cross-Compilation Support:</strong></dt>
+            <dd>
+                <dl>
+                    <dt><a name="CROSS_COMPILE_ARCH"><code>CROSS_COMPILE_ARCH</code></a> </dt>
+                    <dd>
+                        Set to the target architecture of a 
+                        cross-compilation build. If set, this
+                        variable is used to signify that we are 
+                        cross-compiling. The expectation
+                        is that
+                        <a href="#ALT_COMPILER_PATH"><code>ALT_COMPILER_PATH</code></a> 
+                        is set
+                        to point to the cross-compiler and that any
+                        cross-compilation specific flags
+                        are passed using 
+                        <a href="#EXTRA_CFLAGS"><code>EXTRA_CFLAGS</code></a>.
+                        The <a href="#ALT_OPENWIN_HOME"><code>ALT_OPENWIN_HOME</code></a>
+                        variable should 
+                        also be set to point to the graphical header files
+                        (e.g. X11) provided with 
+                        the cross-compiler.
+                        When cross-compiling we skip execution of any demos 
+                        etc that may be built, and
+                        also skip binary-file verification.
+                    </dd>
+                    <dt><code><a name="EXTRA_CFLAGS">EXTRA_CFLAGS</a></code> </dt>
+                    <dd>
+                        Used to pass cross-compilation options to the 
+                        cross-compiler.
+                        These are added to the <code>CFLAGS</code> 
+                        and <code>CXXFLAGS</code> variables. 
+                    </dd>
+                    <dt><code><a name="USE_ONLY_BOOTDIR_TOOLS">USE_ONLY_BOOTDIR_TOOLS</a></code> </dt>
+                    <dd>
+                        Used primarily for cross-compilation builds
+                        (and always set in that case)
+                        this variable indicates that tools from the
+                        boot JDK should be used during
+                        the build process, not the tools
+                        (<code>javac</code>, <code>javah</code>, <code>jar</code>)
+                        just built (which can't execute on the build host).
+                    </dd>
+                    <dt><code><a name="HOST_CC">HOST_CC</a></code> </dt>
+                    <dd>
+                        The location of the C compiler to generate programs 
+                        to run on the build host.
+                        Some parts of the build generate programs that are
+                        then compiled and executed
+                        to produce other parts of the build. Normally the 
+                        primary C compiler is used
+                        to do this, but when cross-compiling that would be
+                        the cross-compiler and the
+                        resulting program could not be executed. 
+                        On Linux this defaults to <code>/usr/bin/gcc</code>; 
+                        on other platforms it must be
+                        set explicitly.
+                    </dd>
+                </dl>
+            <dt><strong>Specialized Build Options:</strong></dt>
+            <dd>
+                Some build variables exist to support specialized build 
+                environments and/or specialized
+                build products. Their use is only supported in those contexts:
+                <dl>
+                    <dt><code><a name="BUILD_CLIENT_ONLY">BUILD_CLIENT_ONLY</a></code> </dt>
+                    <dd>
+                        Indicates this build will only contain the 
+                        Hotspot client VM. In addition to
+                        controlling the Hotspot build target, 
+                        it ensures that we don't try to copy
+                        any server VM files/directories, 
+                        and defines a default <code>jvm.cfg</code> file
+                        suitable for a client-only environment. 
+                        Using this in a 64-bit build will
+                        generate a sanity warning as 64-bit client 
+                        builds are not directly supported.
+                    </dd>
+                    <dt><code><a name="BUILD_HEADLESS_ONLY"></a>BUILD_HEADLESS_ONLY</code> </dt>
+                    <dd>
+                        Used when the build environment has no graphical 
+                        capabilities at all. This
+                        excludes building anything that requires graphical 
+                        libraries to be available.
+                    </dd>
+                    <dt><code><a name="JAVASE_EMBEDDED"></a>JAVASE_EMBEDDED</code> </dt>
+                    <dd>
+                        Used to indicate this is a build of the Oracle 
+                        Java SE Embedded product. 
+                        This will enable the directives included in the 
+                        SE-Embedded specific build 
+                        files.
+                    </dd>
+                    <dt><code><a name="LIBZIP_CAN_USE_MMAP">LIBZIP_CAN_USE_MMAP</a></code> </dt>
+                    <dd>
+                        If set to false, disables the use of mmap by the
+                        zip utility. Otherwise,
+                        mmap will be used.
+                    </dd>
+                    <dt><code><a name="COMPRESS_JARS"></a>COMPRESS_JARS</code> </dt>
+                    <dd>
+                        If set to true, causes certain jar files that 
+                        would otherwise be built without
+                        compression, to use compression.
+                    </dd>
+                </dl>
+            </dd>
+        </dl>
+    </blockquote>
+
+</blockquote> <!-- Appendix D -->
+
+        <!-- ====================================================== -->
         <hr>
-        <h2><a name="hints">Hints and Tips</a></h2>
-        <blockquote>
-            You don't have to use all these hints and tips, and in fact people do actually
-            build with systems that contradict these, but they might prove to be
-            helpful to some.
-            <ul>
-                <li>
-                    If <tt>make sanity</tt> does not work, find out why, fix that
-                    before going any further. Or at least understand what the
-                    complaints are from it.
-                </li>
-                <li>
-                    JDK: Keep in mind that you are building a JDK, but you need
-                    a JDK (BOOTDIR JDK) to build this JDK.
-                </li>
-                <li>
-                    Ant: The ant utility is a java application and besides having
-                    ant available to you, it's important that ant finds the right
-                    java to run with. Make sure you can type <tt>ant -version</tt>
-                    and get clean results with no error messages.
-                </li>
-                <li>
-                    Linux: Try and favor the system packages over building your own
-                    or getting packages from other areas.
-                    Most Linux builds should be possible with the system's
-                    available packages.
-                </li>
-                <li>
-                    Solaris: Typically you will need to get compilers on your systems
-                    and occasionally GNU make 3.81 if a gmake binary is not available.
-                    The gmake binary might not be 3.81, be careful.
-                </li>
-                <li>
-                    Windows VS2010:
-                    <ul>
-                        <li>
-                            Only the C++ part of VS2010 is needed.
-                            Try to let the installation go to the default install directory.
-                            Always reboot your system after installing VS2010.
-                            The system environment variable VS100COMNTOOLS should be
-                            set in your environment.
-                        </li>
-                        <li>
-                            Make sure that TMP and TEMP are also set in the environment
-                            and refer to Windows paths that exist, like <tt>C:\temp</tt>,
-                            not <tt>/tmp</tt>, not <tt>/cygdrive/c/temp</tt>, and not <tt>C:/temp</tt>.
-                            <tt>C:\temp</tt> is just an example, it is assumed that this area is
-                            private to the user, so by default after installs you should
-                            see a unique user path in these variables.
-                        </li>
-                        <li>
-                            You need to use vsvars32.bat or vsvars64.bat to get the
-                            PATH, INCLUDE, LIB, LIBPATH, and WINDOWSSDKDIR
-                            variables set in your shell environment.
-                            These bat files are not easy to use from a shell environment.
-                            However, there is a script placed in the root jdk8 repository called
-                            vsvars.sh that can help, it should only be done once in a shell
-                            that will be doing the build, e.g.<br>
-                            <tt>sh ./make/scripts/vsvars.sh -v10 > settings<br>
-                                eval `cat settings`</tt><br>
-                            Or just <tt>eval `sh ./make/scripts/vsvars.sh -v10`</tt>.
-                        </li>
-                    </ul>
-                </li>
-                <li>
-                    Windows: PATH order is critical, see the
-                    <a href="#paths">paths</a> section for more information.
-                </li>
-                <li>
-                    Windows 64bit builds: Use ARCH_DATA_MODEL=64.
-                </li>
-            </ul>
-        </blockquote>
-        <!-- ------------------------------------------------------ -->
+        <p>End of OpenJDK README-builds.html document.<br>Please come again!
         <hr>
-        <h2><a name="troubleshooting">Troubleshooting</a></h2>
-        <blockquote>
-            A build can fail for any number of reasons. 
-            Most failures
-            are a result of trying to build in an environment in which all the
-            pre-build requirements have not been met. 
-            The first step in
-            troubleshooting a build failure is to recheck that you have satisfied
-            all the pre-build requirements for your platform.
-            Look for the check list of the platform you are building on in the
-            <a href="#contents">Table of Contents</a>.
-            <p>
-                You can validate your build environment by using the <tt>sanity</tt>
-                target.
-                Any errors listed
-                will stop the build from starting, and any warnings may result in
-                a flawed product build.
-                We strongly encourage you to evaluate every
-                sanity check warning and fix it if required, before you proceed
-                further with your build.
-            <p>
-                Some of the more common problems with builds are briefly described
-                below, with suggestions for remedies.
-            <ul>
-                <li>
-                    <b>Corrupted Bundles on Windows:</b>
-                    <blockquote>
-                        Some virus scanning software has been known to corrupt the
-                        downloading of zip bundles.
-                        It may be necessary to disable the 'on access' or 'real time'
-                        virus scanning features to prevent this corruption.
-                        This type of "real time" virus scanning can also slow down the
-                        build process significantly.
-                        Temporarily disabling the feature, or excluding the build
-                        output directory may be necessary to get correct and faster builds.
-                    </blockquote>
-                </li>
-                <li>
-                    <b>Slow Builds:</b>
-                    <blockquote>
-                        If your build machine seems to be overloaded from too many
-                        simultaneous C++ compiles, try setting the <tt>HOTSPOT_BUILD_JOBS</tt>
-                        variable to <tt>1</tt> (if you're using a multiple CPU
-                        machine, setting it to more than the the number of CPUs is probably
-                        not a good idea).
-                        <p>
-                            Creating the javadocs can be very slow, if you are running
-                            javadoc, consider skipping that step.
-                        <p>
-                            Faster hardware and more RAM always helps too.
-                            The VM build tends to be CPU intensive (many C++ compiles),
-                            and the rest of the JDK will often be disk intensive.
-                        <p>
-                            Faster compiles are possible using a tool called
-                            <a href="http://ccache.samba.org/" target="_blank">ccache</a>.
-                    </blockquote>
-                </li>
-                <li>
-                    <b>File time issues:</b>
-                    <blockquote>
-                        If you see warnings that refer to file time stamps, e.g.
-                        <blockquote>
-                            <i>Warning message:</i><tt> File `xxx' has modification time in
-                                the future.</tt>
-                            <br>
-                            <i>Warning message:</i> <tt> Clock skew detected. Your build may
-                                be incomplete.</tt>
-                        </blockquote>
-                        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
-                        unrelated but in fact caused by the clock skew, can occur along with
-                        the clock skew warnings. These secondary errors may tend to obscure the
-                        fact that the true root cause of the problem is an out-of-sync clock.
-                        For example, an out-of-sync clock has been known to cause an old
-                        version of javac to be used to compile some files, resulting in errors
-                        when the pre-1.4 compiler ran across the new <tt>assert</tt> keyword
-                        in the 1.4 source code.
-                        <p>
-                            If you see these warnings, reset the clock on the build
-                            machine, run "<tt><i>gmake</i> clobber</tt>" or delete the directory
-                            containing the build output, and restart the build from the beginning.
-                    </blockquote>
-                </li>
-                <li>
-                    <b>Error message: <tt>Trouble writing out table to disk</tt></b>
-                    <blockquote>
-                        Increase the amount of swap space on your build machine.
-                    </blockquote>
-                </li>
-                <li>
-                    <b>Error Message: <tt>libstdc++ not found:</tt></b>
-                    <blockquote>
-                        This is caused by a missing libstdc++.a library.
-                        This is installed as part of a specific package
-                        (e.g. libstdc++.so.devel.386).
-                        By default some 64-bit Linux versions (e.g. Fedora)
-                        only install the 64-bit version of the libstdc++ package.
-                        Various parts of the JDK build require a static
-                        link of the C++ runtime libraries to allow for maximum
-                        portability of the built images.
-                    </blockquote>
-                </li>
-                <li>
-                    <b>Error Message: <tt>cannot restore segment prot after reloc</tt></b>
-                    <blockquote>
-                        This is probably an issue with SELinux (See
-                        <a href="http://en.wikipedia.org/wiki/SELinux" target="_blank">
-                            http://en.wikipedia.org/wiki/SELinux</a>).
-                        Parts of the VM is built without the <tt>-fPIC</tt> for
-                        performance reasons.
-                        <p>
-                            To completely disable SELinux:
-                        <ol>
-                            <li><tt>$ su root</tt></li>
-                            <li><tt># system-config-securitylevel</tt></li>
-                            <li><tt>In the window that appears, select the SELinux tab</tt></li>
-                            <li><tt>Disable SELinux</tt></li>
-                        </ol>
-                        <p>
-                            Alternatively, instead of completely disabling it you could
-                            disable just this one check.
-                        <ol>
-                            <li>Select System->Administration->SELinux Management</li>
-                            <li>In the SELinux Management Tool which appears,
-                                select "Boolean" from the menu on the left</li>
-                            <li>Expand the "Memory Protection" group</li>
-                            <li>Check the first item, labeled
-                                "Allow all unconfined executables to use libraries requiring text relocation ..."</li>
-                        </ol>
-                    </blockquote>
-                </li>
-                <li>
-                    <b>Windows Error Messages:</b><br>
-                    <tt>*** fatal error - couldn't allocate heap, ... </tt><br>
-                    <tt>rm fails with "Directory not empty"</tt><br>
-                    <tt>unzip fails with "cannot create ... Permission denied"</tt><br>
-                    <tt>unzip fails with "cannot create ... Error 50"</tt><br>
-                    <blockquote>
-                        The CYGWIN software can conflict with other non-CYGWIN
-                        software. See the CYGWIN FAQ section on
-                        <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank">
-                            BLODA (applications that interfere with CYGWIN)</a>.
-                    </blockquote>
-                </li>
-                <li>
-                    <b>Windows Error Message: <tt>spawn failed</tt></b>
-                    <blockquote>
-                        Try rebooting the system, or there could be some kind of
-                        issue with the disk or disk partition being used.
-                        Sometimes it comes with a "Permission Denied" message.
-                    </blockquote>
-                </li>
-            </ul>
-        </blockquote>
-        <!-- ------------------------------------------------------ -->
-        <hr>
-        <h2><a name="newbuild">The New Build</a></h2>
-        <blockquote>
-            The <a href="http://openjdk.java.net/projects/build-infra/">
-            Build Infrastructure project</a> is working on a new 
-            build. For information on how to try it out, please see the
-            <a href="http://openjdk.java.net/projects/build-infra/guide.html">
-            Build Infra User Guide</a> 
-        </blockquote>
-        <hr>
+
     </body>
 </html>
--- a/common/autoconf/build-performance.m4	Fri Mar 01 04:45:51 2013 -0800
+++ b/common/autoconf/build-performance.m4	Wed Jul 05 18:42:42 2017 +0200
@@ -47,10 +47,6 @@
         FOUND_CORES=yes
     fi
 
-    # For c/c++ code we run twice as many concurrent build
-    # jobs than we have cores, otherwise we will stall on io.
-    CONCURRENT_BUILD_JOBS=`expr $NUM_CORES \* 2`
-
     if test "x$FOUND_CORES" = xyes; then
         AC_MSG_RESULT([$NUM_CORES])
     else
@@ -98,32 +94,62 @@
 
 AC_DEFUN_ONCE([BPERF_SETUP_BUILD_CORES],
 [
-# How many cores do we have on this build system?
-AC_ARG_WITH(num-cores, [AS_HELP_STRING([--with-num-cores],
+  # How many cores do we have on this build system?
+  AC_ARG_WITH(num-cores, [AS_HELP_STRING([--with-num-cores],
     [number of cores in the build system, e.g. --with-num-cores=8 @<:@probed@:>@])])
-if test "x$with_num_cores" = x; then
+  if test "x$with_num_cores" = x; then
     # The number of cores were not specified, try to probe them.
     BPERF_CHECK_CORES
-else
+  else
     NUM_CORES=$with_num_cores
-    CONCURRENT_BUILD_JOBS=`expr $NUM_CORES \* 2`
-fi
-AC_SUBST(NUM_CORES)
-AC_SUBST(CONCURRENT_BUILD_JOBS)
+  fi
+  AC_SUBST(NUM_CORES)
 ])
 
 AC_DEFUN_ONCE([BPERF_SETUP_BUILD_MEMORY],
 [
-# How much memory do we have on this build system?
-AC_ARG_WITH(memory-size, [AS_HELP_STRING([--with-memory-size],
+  # How much memory do we have on this build system?
+  AC_ARG_WITH(memory-size, [AS_HELP_STRING([--with-memory-size],
     [memory (in MB) available in the build system, e.g. --with-memory-size=1024 @<:@probed@:>@])])
-if test "x$with_memory_size" = x; then
+  if test "x$with_memory_size" = x; then
     # The memory size was not specified, try to probe it.
     BPERF_CHECK_MEMORY_SIZE
-else
+  else
     MEMORY_SIZE=$with_memory_size
-fi
-AC_SUBST(MEMORY_SIZE)
+  fi
+  AC_SUBST(MEMORY_SIZE)
+])
+
+AC_DEFUN_ONCE([BPERF_SETUP_BUILD_JOBS],
+[
+  # Provide a decent default number of parallel jobs for make depending on 
+  # number of cores, amount of memory and machine architecture.
+  AC_ARG_WITH(jobs, [AS_HELP_STRING([--with-jobs],
+    [number of parallel jobs to let make run @<:@calculated based on cores and memory@:>@])])
+  if test "x$with_jobs" = x; then
+    # Number of jobs was not specified, calculate.
+    AC_MSG_CHECKING([for appropriate number of jobs to run in parallel])
+    # Approximate memory in GB, rounding up a bit.
+    memory_gb=`expr $MEMORY_SIZE / 1100`
+    # Pick the lowest of memory in gb and number of cores.
+    if test "$memory_gb" -lt "$NUM_CORES"; then
+      JOBS="$memory_gb"
+    else
+      JOBS="$NUM_CORES"
+      # On bigger machines, leave some room for other processes to run
+      if test "$JOBS" -gt "4"; then
+        JOBS=`expr $JOBS '*' 90 / 100`
+      fi
+    fi
+    # Cap number of jobs to 16
+    if test "$JOBS" -gt "16"; then
+      JOBS=16
+    fi
+    AC_MSG_RESULT([$JOBS])
+  else
+    JOBS=$with_jobs
+  fi
+  AC_SUBST(JOBS)
 ])
 
 AC_DEFUN([BPERF_SETUP_CCACHE],
--- a/common/autoconf/configure.ac	Fri Mar 01 04:45:51 2013 -0800
+++ b/common/autoconf/configure.ac	Wed Jul 05 18:42:42 2017 +0200
@@ -204,6 +204,7 @@
 
 BPERF_SETUP_BUILD_CORES
 BPERF_SETUP_BUILD_MEMORY
+BPERF_SETUP_BUILD_JOBS
 
 # Setup smart javac (after cores and memory have been setup)
 BPERF_SETUP_SMART_JAVAC
--- a/common/autoconf/generated-configure.sh	Fri Mar 01 04:45:51 2013 -0800
+++ b/common/autoconf/generated-configure.sh	Wed Jul 05 18:42:42 2017 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for OpenJDK jdk8.
+# Generated by GNU Autoconf 2.67 for OpenJDK jdk8.
 #
 # Report bugs to <build-dev@openjdk.java.net>.
 #
@@ -91,7 +91,6 @@
 IFS=" ""	$as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
-as_myself=
 case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -217,18 +216,11 @@
   # We cannot yet assume a decent shell, so we have to provide a
 	# neutralization value for shells without unset; and this also
 	# works around shells that cannot unset nonexistent variables.
-	# Preserve -v and -x to the replacement shell.
 	BASH_ENV=/dev/null
 	ENV=/dev/null
 	(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
 	export CONFIG_SHELL
-	case $- in # ((((
-	  *v*x* | *x*v* ) as_opts=-vx ;;
-	  *v* ) as_opts=-v ;;
-	  *x* ) as_opts=-x ;;
-	  * ) as_opts= ;;
-	esac
-	exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
+	exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
 fi
 
     if test x$as_have_required = xno; then :
@@ -609,8 +601,8 @@
 ENABLE_SJAVAC
 SJAVAC_SERVER_CORES
 SJAVAC_SERVER_JAVA
+JOBS
 MEMORY_SIZE
-CONCURRENT_BUILD_JOBS
 NUM_CORES
 SALIB_NAME
 HOTSPOT_MAKE_ARGS
@@ -649,7 +641,7 @@
 CXXFLAGS_JDKLIB
 CFLAGS_JDKEXE
 CFLAGS_JDKLIB
-MACOSX_REQUIRED_VERSION
+MACOSX_VERSION_MIN
 PACKAGE_PATH
 LEGACY_EXTRA_LDFLAGS
 LEGACY_EXTRA_CXXFLAGS
@@ -1010,6 +1002,7 @@
 with_stdc__lib
 with_num_cores
 with_memory_size
+with_jobs
 with_sjavac_server_java
 with_sjavac_server_cores
 enable_sjavac
@@ -1442,7 +1435,7 @@
     $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
       $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
     ;;
 
   esac
@@ -1768,6 +1761,8 @@
                           --with-num-cores=8 [probed]
   --with-memory-size      memory (in MB) available in the build system, e.g.
                           --with-memory-size=1024 [probed]
+  --with-jobs             number of parallel jobs to let make run [calculated
+                          based on cores and memory]
   --with-sjavac-server-java
                           use this java binary for running the sjavac
                           background server [Boot JDK java]
@@ -1867,7 +1862,7 @@
 if $ac_init_version; then
   cat <<\_ACEOF
 OpenJDK configure jdk8
-generated by GNU Autoconf 2.68
+generated by GNU Autoconf 2.67
 
 Copyright (C) 2010 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
@@ -1913,7 +1908,7 @@
 
 	ac_retval=1
 fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_compile
@@ -1951,7 +1946,7 @@
 
 	ac_retval=1
 fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
   as_fn_set_status $ac_retval
 
 } # ac_fn_cxx_try_compile
@@ -1989,7 +1984,7 @@
 
 	ac_retval=1
 fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
   as_fn_set_status $ac_retval
 
 } # ac_fn_objc_try_compile
@@ -2026,7 +2021,7 @@
 
     ac_retval=1
 fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_cpp
@@ -2063,7 +2058,7 @@
 
     ac_retval=1
 fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
   as_fn_set_status $ac_retval
 
 } # ac_fn_cxx_try_cpp
@@ -2076,10 +2071,10 @@
 ac_fn_cxx_check_header_mongrel ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if eval \${$3+:} false; then :
+  if eval "test \"\${$3+set}\"" = set; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
+if eval "test \"\${$3+set}\"" = set; then :
   $as_echo_n "(cached) " >&6
 fi
 eval ac_res=\$$3
@@ -2146,7 +2141,7 @@
 esac
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
+if eval "test \"\${$3+set}\"" = set; then :
   $as_echo_n "(cached) " >&6
 else
   eval "$3=\$ac_header_compiler"
@@ -2155,7 +2150,7 @@
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
 fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 
 } # ac_fn_cxx_check_header_mongrel
 
@@ -2196,7 +2191,7 @@
        ac_retval=$ac_status
 fi
   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
   as_fn_set_status $ac_retval
 
 } # ac_fn_cxx_try_run
@@ -2210,7 +2205,7 @@
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
+if eval "test \"\${$3+set}\"" = set; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2228,7 +2223,7 @@
 eval ac_res=\$$3
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 
 } # ac_fn_cxx_check_header_compile
 
@@ -2405,7 +2400,7 @@
 rm -f conftest.val
 
   fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
   as_fn_set_status $ac_retval
 
 } # ac_fn_cxx_compute_int
@@ -2451,7 +2446,7 @@
   # interfere with the next link command; also delete a directory that is
   # left behind by Apple's compiler.  We do this before executing the actions.
   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
   as_fn_set_status $ac_retval
 
 } # ac_fn_cxx_try_link
@@ -2464,7 +2459,7 @@
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
+if eval "test \"\${$3+set}\"" = set; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2519,7 +2514,7 @@
 eval ac_res=\$$3
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 
 } # ac_fn_cxx_check_func
 
@@ -2532,7 +2527,7 @@
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
+if eval "test \"\${$3+set}\"" = set; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2550,7 +2545,7 @@
 eval ac_res=\$$3
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 
 } # ac_fn_c_check_header_compile
 cat >config.log <<_ACEOF
@@ -2558,7 +2553,7 @@
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by OpenJDK $as_me jdk8, which was
-generated by GNU Autoconf 2.68.  Invocation command line was
+generated by GNU Autoconf 2.67.  Invocation command line was
 
   $ $0 $@
 
@@ -2816,7 +2811,7 @@
       || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
   fi
 done
 
@@ -3337,6 +3332,8 @@
 
 
 
+
+
 #
 # Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -3732,7 +3729,7 @@
 #CUSTOM_AUTOCONF_INCLUDE
 
 # Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1361218904
+DATE_WHEN_GENERATED=1362411827
 
 ###############################################################################
 #
@@ -3770,7 +3767,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_BASENAME+:} false; then :
+if test "${ac_cv_path_BASENAME+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $BASENAME in
@@ -3829,7 +3826,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_BASH+:} false; then :
+if test "${ac_cv_path_BASH+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $BASH in
@@ -3888,7 +3885,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_CAT+:} false; then :
+if test "${ac_cv_path_CAT+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $CAT in
@@ -3947,7 +3944,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_CHMOD+:} false; then :
+if test "${ac_cv_path_CHMOD+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $CHMOD in
@@ -4006,7 +4003,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_CMP+:} false; then :
+if test "${ac_cv_path_CMP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $CMP in
@@ -4065,7 +4062,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_COMM+:} false; then :
+if test "${ac_cv_path_COMM+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $COMM in
@@ -4124,7 +4121,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_CP+:} false; then :
+if test "${ac_cv_path_CP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $CP in
@@ -4183,7 +4180,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_CPIO+:} false; then :
+if test "${ac_cv_path_CPIO+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $CPIO in
@@ -4242,7 +4239,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_CUT+:} false; then :
+if test "${ac_cv_path_CUT+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $CUT in
@@ -4301,7 +4298,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_DATE+:} false; then :
+if test "${ac_cv_path_DATE+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $DATE in
@@ -4360,7 +4357,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_DIFF+:} false; then :
+if test "${ac_cv_path_DIFF+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $DIFF in
@@ -4419,7 +4416,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_DIRNAME+:} false; then :
+if test "${ac_cv_path_DIRNAME+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $DIRNAME in
@@ -4478,7 +4475,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ECHO+:} false; then :
+if test "${ac_cv_path_ECHO+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $ECHO in
@@ -4537,7 +4534,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_EXPR+:} false; then :
+if test "${ac_cv_path_EXPR+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $EXPR in
@@ -4596,7 +4593,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_FILE+:} false; then :
+if test "${ac_cv_path_FILE+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $FILE in
@@ -4655,7 +4652,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_FIND+:} false; then :
+if test "${ac_cv_path_FIND+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $FIND in
@@ -4714,7 +4711,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_HEAD+:} false; then :
+if test "${ac_cv_path_HEAD+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $HEAD in
@@ -4773,7 +4770,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_LN+:} false; then :
+if test "${ac_cv_path_LN+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $LN in
@@ -4832,7 +4829,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_LS+:} false; then :
+if test "${ac_cv_path_LS+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $LS in
@@ -4891,7 +4888,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MKDIR+:} false; then :
+if test "${ac_cv_path_MKDIR+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $MKDIR in
@@ -4950,7 +4947,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MKTEMP+:} false; then :
+if test "${ac_cv_path_MKTEMP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $MKTEMP in
@@ -5009,7 +5006,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MV+:} false; then :
+if test "${ac_cv_path_MV+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $MV in
@@ -5068,7 +5065,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PRINTF+:} false; then :
+if test "${ac_cv_path_PRINTF+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $PRINTF in
@@ -5127,7 +5124,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_THEPWDCMD+:} false; then :
+if test "${ac_cv_path_THEPWDCMD+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $THEPWDCMD in
@@ -5186,7 +5183,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_RM+:} false; then :
+if test "${ac_cv_path_RM+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $RM in
@@ -5245,7 +5242,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_SH+:} false; then :
+if test "${ac_cv_path_SH+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $SH in
@@ -5304,7 +5301,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_SORT+:} false; then :
+if test "${ac_cv_path_SORT+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $SORT in
@@ -5363,7 +5360,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_TAIL+:} false; then :
+if test "${ac_cv_path_TAIL+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $TAIL in
@@ -5422,7 +5419,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_TAR+:} false; then :
+if test "${ac_cv_path_TAR+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $TAR in
@@ -5481,7 +5478,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_TEE+:} false; then :
+if test "${ac_cv_path_TEE+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $TEE in
@@ -5540,7 +5537,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_TOUCH+:} false; then :
+if test "${ac_cv_path_TOUCH+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $TOUCH in
@@ -5599,7 +5596,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_TR+:} false; then :
+if test "${ac_cv_path_TR+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $TR in
@@ -5658,7 +5655,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_UNAME+:} false; then :
+if test "${ac_cv_path_UNAME+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $UNAME in
@@ -5717,7 +5714,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_UNIQ+:} false; then :
+if test "${ac_cv_path_UNIQ+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $UNIQ in
@@ -5776,7 +5773,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_WC+:} false; then :
+if test "${ac_cv_path_WC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $WC in
@@ -5835,7 +5832,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_WHICH+:} false; then :
+if test "${ac_cv_path_WHICH+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $WHICH in
@@ -5894,7 +5891,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_XARGS+:} false; then :
+if test "${ac_cv_path_XARGS+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $XARGS in
@@ -5954,7 +5951,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AWK+:} false; then :
+if test "${ac_cv_prog_AWK+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AWK"; then
@@ -6004,7 +6001,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
 $as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
+if test "${ac_cv_path_GREP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$GREP"; then
@@ -6079,7 +6076,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
 $as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
+if test "${ac_cv_path_EGREP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
@@ -6158,7 +6155,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
 $as_echo_n "checking for fgrep... " >&6; }
-if ${ac_cv_path_FGREP+:} false; then :
+if test "${ac_cv_path_FGREP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
@@ -6237,7 +6234,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
 $as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if ${ac_cv_path_SED+:} false; then :
+if test "${ac_cv_path_SED+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
             ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
@@ -6323,7 +6320,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_NAWK+:} false; then :
+if test "${ac_cv_path_NAWK+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $NAWK in
@@ -6383,7 +6380,7 @@
 set dummy cygpath; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_CYGPATH+:} false; then :
+if test "${ac_cv_path_CYGPATH+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $CYGPATH in
@@ -6423,7 +6420,7 @@
 set dummy readlink; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_READLINK+:} false; then :
+if test "${ac_cv_path_READLINK+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $READLINK in
@@ -6463,7 +6460,7 @@
 set dummy df; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_DF+:} false; then :
+if test "${ac_cv_path_DF+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $DF in
@@ -6503,7 +6500,7 @@
 set dummy SetFile; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_SETFILE+:} false; then :
+if test "${ac_cv_path_SETFILE+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $SETFILE in
@@ -6549,7 +6546,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
 $as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
+if test "${ac_cv_build+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_build_alias=$build_alias
@@ -6565,7 +6562,7 @@
 $as_echo "$ac_cv_build" >&6; }
 case $ac_cv_build in
 *-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;;
 esac
 build=$ac_cv_build
 ac_save_IFS=$IFS; IFS='-'
@@ -6583,7 +6580,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
 $as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
+if test "${ac_cv_host+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test "x$host_alias" = x; then
@@ -6598,7 +6595,7 @@
 $as_echo "$ac_cv_host" >&6; }
 case $ac_cv_host in
 *-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;;
 esac
 host=$ac_cv_host
 ac_save_IFS=$IFS; IFS='-'
@@ -6616,7 +6613,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
 $as_echo_n "checking target system type... " >&6; }
-if ${ac_cv_target+:} false; then :
+if test "${ac_cv_target+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test "x$target_alias" = x; then
@@ -6631,7 +6628,7 @@
 $as_echo "$ac_cv_target" >&6; }
 case $ac_cv_target in
 *-*-*) ;;
-*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
+*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5 ;;
 esac
 target=$ac_cv_target
 ac_save_IFS=$IFS; IFS='-'
@@ -8097,7 +8094,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_PKGHANDLER+:} false; then :
+if test "${ac_cv_prog_PKGHANDLER+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$PKGHANDLER"; then
@@ -8462,7 +8459,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_CHECK_GMAKE+:} false; then :
+if test "${ac_cv_path_CHECK_GMAKE+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $CHECK_GMAKE in
@@ -8816,7 +8813,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_CHECK_MAKE+:} false; then :
+if test "${ac_cv_path_CHECK_MAKE+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $CHECK_MAKE in
@@ -9175,7 +9172,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_CHECK_TOOLSDIR_GMAKE+:} false; then :
+if test "${ac_cv_path_CHECK_TOOLSDIR_GMAKE+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $CHECK_TOOLSDIR_GMAKE in
@@ -9528,7 +9525,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_CHECK_TOOLSDIR_MAKE+:} false; then :
+if test "${ac_cv_path_CHECK_TOOLSDIR_MAKE+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $CHECK_TOOLSDIR_MAKE in
@@ -9924,7 +9921,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_UNZIP+:} false; then :
+if test "${ac_cv_path_UNZIP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $UNZIP in
@@ -9983,7 +9980,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ZIP+:} false; then :
+if test "${ac_cv_path_ZIP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $ZIP in
@@ -10042,7 +10039,7 @@
 set dummy ldd; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_LDD+:} false; then :
+if test "${ac_cv_path_LDD+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $LDD in
@@ -10088,7 +10085,7 @@
 set dummy otool; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_OTOOL+:} false; then :
+if test "${ac_cv_path_OTOOL+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $OTOOL in
@@ -10133,7 +10130,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_READELF+:} false; then :
+if test "${ac_cv_path_READELF+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $READELF in
@@ -10176,7 +10173,7 @@
 set dummy hg; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_HG+:} false; then :
+if test "${ac_cv_path_HG+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $HG in
@@ -10216,7 +10213,7 @@
 set dummy stat; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_STAT+:} false; then :
+if test "${ac_cv_path_STAT+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $STAT in
@@ -10256,7 +10253,7 @@
 set dummy time; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_TIME+:} false; then :
+if test "${ac_cv_path_TIME+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $TIME in
@@ -10301,7 +10298,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_COMM+:} false; then :
+if test "${ac_cv_path_COMM+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $COMM in
@@ -10365,7 +10362,7 @@
 set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKG_CONFIG+:} false; then :
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $PKG_CONFIG in
@@ -10408,7 +10405,7 @@
 set dummy pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $ac_pt_PKG_CONFIG in
@@ -10581,7 +10578,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_BDEPS_UNZIP+:} false; then :
+if test "${ac_cv_prog_BDEPS_UNZIP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$BDEPS_UNZIP"; then
@@ -10627,7 +10624,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_BDEPS_FTP+:} false; then :
+if test "${ac_cv_prog_BDEPS_FTP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$BDEPS_FTP"; then
@@ -11894,7 +11891,7 @@
 set dummy javac; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_JAVAC_CHECK+:} false; then :
+if test "${ac_cv_path_JAVAC_CHECK+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $JAVAC_CHECK in
@@ -11934,7 +11931,7 @@
 set dummy java; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_JAVA_CHECK+:} false; then :
+if test "${ac_cv_path_JAVA_CHECK+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $JAVA_CHECK in
@@ -15993,7 +15990,7 @@
 set dummy link; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_CYGWIN_LINK+:} false; then :
+if test "${ac_cv_path_CYGWIN_LINK+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $CYGWIN_LINK in
@@ -16982,7 +16979,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_BUILD_CC+:} false; then :
+if test "${ac_cv_path_BUILD_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $BUILD_CC in
@@ -17293,7 +17290,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_BUILD_CXX+:} false; then :
+if test "${ac_cv_path_BUILD_CXX+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $BUILD_CXX in
@@ -17602,7 +17599,7 @@
 set dummy ld; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_BUILD_LD+:} false; then :
+if test "${ac_cv_path_BUILD_LD+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $BUILD_LD in
@@ -18114,7 +18111,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_TOOLS_DIR_CC+:} false; then :
+if test "${ac_cv_path_TOOLS_DIR_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $TOOLS_DIR_CC in
@@ -18166,7 +18163,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_POTENTIAL_CC+:} false; then :
+if test "${ac_cv_path_POTENTIAL_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $POTENTIAL_CC in
@@ -18579,7 +18576,7 @@
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_PROPER_COMPILER_CC+:} false; then :
+if test "${ac_cv_prog_PROPER_COMPILER_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$PROPER_COMPILER_CC"; then
@@ -18623,7 +18620,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_PROPER_COMPILER_CC+:} false; then :
+if test "${ac_cv_prog_ac_ct_PROPER_COMPILER_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_PROPER_COMPILER_CC"; then
@@ -19073,7 +19070,7 @@
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
+if test "${ac_cv_prog_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -19117,7 +19114,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -19170,7 +19167,7 @@
 test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
 
 # Provide some information about the compiler.
 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -19285,7 +19282,7 @@
 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -19328,7 +19325,7 @@
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
 fi
 rm -f conftest conftest$ac_cv_exeext
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -19387,7 +19384,7 @@
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
     fi
   fi
 fi
@@ -19398,7 +19395,7 @@
 ac_clean_files=$ac_clean_files_save
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
 $as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
+if test "${ac_cv_objext+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -19439,7 +19436,7 @@
 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
 fi
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
@@ -19449,7 +19446,7 @@
 ac_objext=$OBJEXT
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
+if test "${ac_cv_c_compiler_gnu+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -19486,7 +19483,7 @@
 ac_save_CFLAGS=$CFLAGS
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
 $as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
+if test "${ac_cv_prog_cc_g+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_save_c_werror_flag=$ac_c_werror_flag
@@ -19564,7 +19561,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
+if test "${ac_cv_prog_cc_c89+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c89=no
@@ -19683,7 +19680,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_TOOLS_DIR_CXX+:} false; then :
+if test "${ac_cv_path_TOOLS_DIR_CXX+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $TOOLS_DIR_CXX in
@@ -19735,7 +19732,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_POTENTIAL_CXX+:} false; then :
+if test "${ac_cv_path_POTENTIAL_CXX+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $POTENTIAL_CXX in
@@ -20148,7 +20145,7 @@
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_PROPER_COMPILER_CXX+:} false; then :
+if test "${ac_cv_prog_PROPER_COMPILER_CXX+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$PROPER_COMPILER_CXX"; then
@@ -20192,7 +20189,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_PROPER_COMPILER_CXX+:} false; then :
+if test "${ac_cv_prog_ac_ct_PROPER_COMPILER_CXX+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_PROPER_COMPILER_CXX"; then
@@ -20646,7 +20643,7 @@
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CXX+:} false; then :
+if test "${ac_cv_prog_CXX+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CXX"; then
@@ -20690,7 +20687,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CXX+:} false; then :
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CXX"; then
@@ -20768,7 +20765,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if ${ac_cv_cxx_compiler_gnu+:} false; then :
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -20805,7 +20802,7 @@
 ac_save_CXXFLAGS=$CXXFLAGS
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
 $as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if ${ac_cv_prog_cxx_g+:} false; then :
+if test "${ac_cv_prog_cxx_g+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_save_cxx_werror_flag=$ac_cxx_werror_flag
@@ -20903,7 +20900,7 @@
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OBJC+:} false; then :
+if test "${ac_cv_prog_OBJC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OBJC"; then
@@ -20947,7 +20944,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OBJC+:} false; then :
+if test "${ac_cv_prog_ac_ct_OBJC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OBJC"; then
@@ -21023,7 +21020,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Objective C compiler" >&5
 $as_echo_n "checking whether we are using the GNU Objective C compiler... " >&6; }
-if ${ac_cv_objc_compiler_gnu+:} false; then :
+if test "${ac_cv_objc_compiler_gnu+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -21060,7 +21057,7 @@
 ac_save_OBJCFLAGS=$OBJCFLAGS
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $OBJC accepts -g" >&5
 $as_echo_n "checking whether $OBJC accepts -g... " >&6; }
-if ${ac_cv_prog_objc_g+:} false; then :
+if test "${ac_cv_prog_objc_g+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_save_objc_werror_flag=$ac_objc_werror_flag
@@ -21436,7 +21433,7 @@
 set dummy ${ac_tool_prefix}ar; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AR+:} false; then :
+if test "${ac_cv_prog_AR+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AR"; then
@@ -21476,7 +21473,7 @@
 set dummy ar; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AR+:} false; then :
+if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_AR"; then
@@ -21818,7 +21815,7 @@
 set dummy link; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_WINLD+:} false; then :
+if test "${ac_cv_prog_WINLD+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$WINLD"; then
@@ -22157,7 +22154,7 @@
 set dummy mt; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_MT+:} false; then :
+if test "${ac_cv_prog_MT+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$MT"; then
@@ -22478,7 +22475,7 @@
 set dummy rc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RC+:} false; then :
+if test "${ac_cv_prog_RC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$RC"; then
@@ -22869,7 +22866,7 @@
 set dummy lib; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_WINAR+:} false; then :
+if test "${ac_cv_prog_WINAR+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$WINAR"; then
@@ -23175,7 +23172,7 @@
 set dummy dumpbin; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DUMPBIN+:} false; then :
+if test "${ac_cv_prog_DUMPBIN+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$DUMPBIN"; then
@@ -23494,7 +23491,7 @@
   CPP=
 fi
 if test -z "$CPP"; then
-  if ${ac_cv_prog_CPP+:} false; then :
+  if test "${ac_cv_prog_CPP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
       # Double quotes because CPP needs to be expanded
@@ -23610,7 +23607,7 @@
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
 fi
 
 ac_ext=cpp
@@ -23894,7 +23891,7 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
 $as_echo_n "checking how to run the C++ preprocessor... " >&6; }
 if test -z "$CXXCPP"; then
-  if ${ac_cv_prog_CXXCPP+:} false; then :
+  if test "${ac_cv_prog_CXXCPP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
       # Double quotes because CXXCPP needs to be expanded
@@ -24010,7 +24007,7 @@
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
 fi
 
 ac_ext=cpp
@@ -24312,7 +24309,7 @@
 set dummy as; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_AS+:} false; then :
+if test "${ac_cv_path_AS+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $AS in
@@ -24626,7 +24623,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_NM+:} false; then :
+if test "${ac_cv_path_NM+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $NM in
@@ -24935,7 +24932,7 @@
 set dummy strip; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_STRIP+:} false; then :
+if test "${ac_cv_path_STRIP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $STRIP in
@@ -25241,7 +25238,7 @@
 set dummy mcs; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MCS+:} false; then :
+if test "${ac_cv_path_MCS+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $MCS in
@@ -25549,7 +25546,7 @@
 set dummy ${ac_tool_prefix}nm; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_NM+:} false; then :
+if test "${ac_cv_prog_NM+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$NM"; then
@@ -25589,7 +25586,7 @@
 set dummy nm; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_NM+:} false; then :
+if test "${ac_cv_prog_ac_ct_NM+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_NM"; then
@@ -25907,7 +25904,7 @@
 set dummy ${ac_tool_prefix}strip; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
+if test "${ac_cv_prog_STRIP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$STRIP"; then
@@ -25947,7 +25944,7 @@
 set dummy strip; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_STRIP"; then
@@ -26272,7 +26269,7 @@
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OBJCOPY+:} false; then :
+if test "${ac_cv_prog_OBJCOPY+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OBJCOPY"; then
@@ -26316,7 +26313,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OBJCOPY+:} false; then :
+if test "${ac_cv_prog_ac_ct_OBJCOPY+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OBJCOPY"; then
@@ -26643,7 +26640,7 @@
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OBJDUMP+:} false; then :
+if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OBJDUMP"; then
@@ -26687,7 +26684,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
+if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OBJDUMP"; then
@@ -27011,7 +27008,7 @@
 set dummy lipo; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_LIPO+:} false; then :
+if test "${ac_cv_path_LIPO+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $LIPO in
@@ -27326,7 +27323,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
 $as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
+if test "${ac_cv_header_stdc+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -27502,7 +27499,7 @@
 for ac_header in stdio.h
 do :
   ac_fn_cxx_check_header_mongrel "$LINENO" "stdio.h" "ac_cv_header_stdio_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdio_h" = xyes; then :
+if test "x$ac_cv_header_stdio_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_STDIO_H 1
 _ACEOF
@@ -27531,7 +27528,7 @@
 # This bug is HP SR number 8606223364.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int *" >&5
 $as_echo_n "checking size of int *... " >&6; }
-if ${ac_cv_sizeof_int_p+:} false; then :
+if test "${ac_cv_sizeof_int_p+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_cxx_compute_int "$LINENO" "(long int) (sizeof (int *))" "ac_cv_sizeof_int_p"        "$ac_includes_default"; then :
@@ -27541,7 +27538,7 @@
      { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "cannot compute sizeof (int *)
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
    else
      ac_cv_sizeof_int_p=0
    fi
@@ -27588,7 +27585,7 @@
 #
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
 $as_echo_n "checking whether byte ordering is bigendian... " >&6; }
-if ${ac_cv_c_bigendian+:} false; then :
+if test "${ac_cv_c_bigendian+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_c_bigendian=unknown
@@ -28242,10 +28239,17 @@
 fi
 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
     CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE"
-    # Adding these macros will make it an error to link to mac APIs newer than OS version 10.7
-    MACOSX_REQUIRED_VERSION=1070
-
-    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(MACOSX_REQUIRED_VERSION) -DMAC_OS_X_VERSION_MIN_REQUIRED=\$(MACOSX_REQUIRED_VERSION)"
+    # Setting these parameters makes it an error to link to macosx APIs that are
+    # newer than the given OS version and makes the linked binaries compatible even
+    # if built on a newer version of the OS.
+    # The expected format is X.Y.Z
+    MACOSX_VERSION_MIN=10.7.0
+
+    # The macro takes the version with no dots, ex: 1070
+    # Let the flags variables get resolved in make for easier override on make
+    # command line.
+    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
+    LDFLAGS_JDK="$LDFLAGS_JDK -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
 fi
 if test "x$OPENJDK_TARGET_OS" = xbsd; then
     CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DBSD -D_ALLBSD_SOURCE"
@@ -28592,8 +28596,8 @@
   have_x=disabled
 else
   case $x_includes,$x_libraries in #(
-    *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #(
-    *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then :
+    *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5 ;; #(
+    *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   # One or both of the vars are not set, and there is no cached value.
@@ -28870,7 +28874,7 @@
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5
 $as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; }
-if ${ac_cv_lib_dnet_dnet_ntoa+:} false; then :
+if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -28904,14 +28908,14 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
 $as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; }
-if test "x$ac_cv_lib_dnet_dnet_ntoa" = xyes; then :
+if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then :
   X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
 fi
 
     if test $ac_cv_lib_dnet_dnet_ntoa = no; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5
 $as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; }
-if ${ac_cv_lib_dnet_stub_dnet_ntoa+:} false; then :
+if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -28945,7 +28949,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
 $as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; }
-if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = xyes; then :
+if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = x""yes; then :
   X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
 fi
 
@@ -28964,14 +28968,14 @@
     # The functions gethostbyname, getservbyname, and inet_addr are
     # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
     ac_fn_cxx_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname"
-if test "x$ac_cv_func_gethostbyname" = xyes; then :
+if test "x$ac_cv_func_gethostbyname" = x""yes; then :
 
 fi
 
     if test $ac_cv_func_gethostbyname = no; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
 $as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
-if ${ac_cv_lib_nsl_gethostbyname+:} false; then :
+if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -29005,14 +29009,14 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5
 $as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
-if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then :
+if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then :
   X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
 fi
 
       if test $ac_cv_lib_nsl_gethostbyname = no; then
 	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5
 $as_echo_n "checking for gethostbyname in -lbsd... " >&6; }
-if ${ac_cv_lib_bsd_gethostbyname+:} false; then :
+if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -29046,7 +29050,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5
 $as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; }
-if test "x$ac_cv_lib_bsd_gethostbyname" = xyes; then :
+if test "x$ac_cv_lib_bsd_gethostbyname" = x""yes; then :
   X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
 fi
 
@@ -29061,14 +29065,14 @@
     # must be given before -lnsl if both are needed.  We assume that
     # if connect needs -lnsl, so does gethostbyname.
     ac_fn_cxx_check_func "$LINENO" "connect" "ac_cv_func_connect"
-if test "x$ac_cv_func_connect" = xyes; then :
+if test "x$ac_cv_func_connect" = x""yes; then :
 
 fi
 
     if test $ac_cv_func_connect = no; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5
 $as_echo_n "checking for connect in -lsocket... " >&6; }
-if ${ac_cv_lib_socket_connect+:} false; then :
+if test "${ac_cv_lib_socket_connect+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -29102,7 +29106,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5
 $as_echo "$ac_cv_lib_socket_connect" >&6; }
-if test "x$ac_cv_lib_socket_connect" = xyes; then :
+if test "x$ac_cv_lib_socket_connect" = x""yes; then :
   X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
 fi
 
@@ -29110,14 +29114,14 @@
 
     # Guillermo Gomez says -lposix is necessary on A/UX.
     ac_fn_cxx_check_func "$LINENO" "remove" "ac_cv_func_remove"
-if test "x$ac_cv_func_remove" = xyes; then :
+if test "x$ac_cv_func_remove" = x""yes; then :
 
 fi
 
     if test $ac_cv_func_remove = no; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5
 $as_echo_n "checking for remove in -lposix... " >&6; }
-if ${ac_cv_lib_posix_remove+:} false; then :
+if test "${ac_cv_lib_posix_remove+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -29151,7 +29155,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5
 $as_echo "$ac_cv_lib_posix_remove" >&6; }
-if test "x$ac_cv_lib_posix_remove" = xyes; then :
+if test "x$ac_cv_lib_posix_remove" = x""yes; then :
   X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
 fi
 
@@ -29159,14 +29163,14 @@
 
     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
     ac_fn_cxx_check_func "$LINENO" "shmat" "ac_cv_func_shmat"
-if test "x$ac_cv_func_shmat" = xyes; then :
+if test "x$ac_cv_func_shmat" = x""yes; then :
 
 fi
 
     if test $ac_cv_func_shmat = no; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5
 $as_echo_n "checking for shmat in -lipc... " >&6; }
-if ${ac_cv_lib_ipc_shmat+:} false; then :
+if test "${ac_cv_lib_ipc_shmat+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -29200,7 +29204,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5
 $as_echo "$ac_cv_lib_ipc_shmat" >&6; }
-if test "x$ac_cv_lib_ipc_shmat" = xyes; then :
+if test "x$ac_cv_lib_ipc_shmat" = x""yes; then :
   X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
 fi
 
@@ -29218,7 +29222,7 @@
   # John Interrante, Karl Berry
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5
 $as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; }
-if ${ac_cv_lib_ICE_IceConnectionNumber+:} false; then :
+if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -29252,7 +29256,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
 $as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; }
-if test "x$ac_cv_lib_ICE_IceConnectionNumber" = xyes; then :
+if test "x$ac_cv_lib_ICE_IceConnectionNumber" = x""yes; then :
   X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
 fi
 
@@ -30265,7 +30269,7 @@
             LDFLAGS="$FREETYPE2_LIBS"
             { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FT_Init_FreeType in -lfreetype" >&5
 $as_echo_n "checking for FT_Init_FreeType in -lfreetype... " >&6; }
-if ${ac_cv_lib_freetype_FT_Init_FreeType+:} false; then :
+if test "${ac_cv_lib_freetype_FT_Init_FreeType+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -30299,7 +30303,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_freetype_FT_Init_FreeType" >&5
 $as_echo "$ac_cv_lib_freetype_FT_Init_FreeType" >&6; }
-if test "x$ac_cv_lib_freetype_FT_Init_FreeType" = xyes; then :
+if test "x$ac_cv_lib_freetype_FT_Init_FreeType" = x""yes; then :
   FREETYPE2_FOUND=true
 else
   as_fn_error $? "Could not find freetype2! $HELP_MSG " "$LINENO" 5
@@ -30587,7 +30591,7 @@
 	    for ac_header in alsa/asoundlib.h
 do :
   ac_fn_cxx_check_header_mongrel "$LINENO" "alsa/asoundlib.h" "ac_cv_header_alsa_asoundlib_h" "$ac_includes_default"
-if test "x$ac_cv_header_alsa_asoundlib_h" = xyes; then :
+if test "x$ac_cv_header_alsa_asoundlib_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_ALSA_ASOUNDLIB_H 1
 _ACEOF
@@ -30646,7 +30650,7 @@
 USE_EXTERNAL_LIBJPEG=true
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ljpeg" >&5
 $as_echo_n "checking for main in -ljpeg... " >&6; }
-if ${ac_cv_lib_jpeg_main+:} false; then :
+if test "${ac_cv_lib_jpeg_main+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -30674,7 +30678,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_main" >&5
 $as_echo "$ac_cv_lib_jpeg_main" >&6; }
-if test "x$ac_cv_lib_jpeg_main" = xyes; then :
+if test "x$ac_cv_lib_jpeg_main" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBJPEG 1
 _ACEOF
@@ -30698,7 +30702,7 @@
 USE_EXTERNAL_LIBJPEG=true
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lgif" >&5
 $as_echo_n "checking for main in -lgif... " >&6; }
-if ${ac_cv_lib_gif_main+:} false; then :
+if test "${ac_cv_lib_gif_main+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -30726,7 +30730,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gif_main" >&5
 $as_echo "$ac_cv_lib_gif_main" >&6; }
-if test "x$ac_cv_lib_gif_main" = xyes; then :
+if test "x$ac_cv_lib_gif_main" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBGIF 1
 _ACEOF
@@ -30756,7 +30760,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compress in -lz" >&5
 $as_echo_n "checking for compress in -lz... " >&6; }
-if ${ac_cv_lib_z_compress+:} false; then :
+if test "${ac_cv_lib_z_compress+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -30790,7 +30794,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress" >&5
 $as_echo "$ac_cv_lib_z_compress" >&6; }
-if test "x$ac_cv_lib_z_compress" = xyes; then :
+if test "x$ac_cv_lib_z_compress" = x""yes; then :
    ZLIB_FOUND=yes
 else
    ZLIB_FOUND=no
@@ -30883,7 +30887,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5
 $as_echo_n "checking for cos in -lm... " >&6; }
-if ${ac_cv_lib_m_cos+:} false; then :
+if test "${ac_cv_lib_m_cos+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -30917,7 +30921,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5
 $as_echo "$ac_cv_lib_m_cos" >&6; }
-if test "x$ac_cv_lib_m_cos" = xyes; then :
+if test "x$ac_cv_lib_m_cos" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBM 1
 _ACEOF
@@ -30941,7 +30945,7 @@
 LIBS=""
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
@@ -30975,7 +30979,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBDL 1
 _ACEOF
@@ -31226,14 +31230,14 @@
 ###############################################################################
 
 
-# How many cores do we have on this build system?
+  # How many cores do we have on this build system?
 
 # Check whether --with-num-cores was given.
 if test "${with_num_cores+set}" = set; then :
   withval=$with_num_cores;
 fi
 
-if test "x$with_num_cores" = x; then
+  if test "x$with_num_cores" = x; then
     # The number of cores were not specified, try to probe them.
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for number of cores" >&5
@@ -31259,10 +31263,6 @@
         FOUND_CORES=yes
     fi
 
-    # For c/c++ code we run twice as many concurrent build
-    # jobs than we have cores, otherwise we will stall on io.
-    CONCURRENT_BUILD_JOBS=`expr $NUM_CORES \* 2`
-
     if test "x$FOUND_CORES" = xyes; then
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NUM_CORES" >&5
 $as_echo "$NUM_CORES" >&6; }
@@ -31274,22 +31274,20 @@
     fi
 
 
-else
+  else
     NUM_CORES=$with_num_cores
-    CONCURRENT_BUILD_JOBS=`expr $NUM_CORES \* 2`
-fi
-
-
-
-
-# How much memory do we have on this build system?
+  fi
+
+
+
+  # How much memory do we have on this build system?
 
 # Check whether --with-memory-size was given.
 if test "${with_memory_size+set}" = set; then :
   withval=$with_memory_size;
 fi
 
-if test "x$with_memory_size" = x; then
+  if test "x$with_memory_size" = x; then
     # The memory size was not specified, try to probe it.
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for memory size" >&5
@@ -31329,9 +31327,45 @@
 $as_echo "$as_me: WARNING: This might seriously impact build performance!" >&2;}
     fi
 
-else
+  else
     MEMORY_SIZE=$with_memory_size
-fi
+  fi
+
+
+
+  # Provide a decent default number of parallel jobs for make depending on
+  # number of cores, amount of memory and machine architecture.
+
+# Check whether --with-jobs was given.
+if test "${with_jobs+set}" = set; then :
+  withval=$with_jobs;
+fi
+
+  if test "x$with_jobs" = x; then
+    # Number of jobs was not specified, calculate.
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for appropriate number of jobs to run in parallel" >&5
+$as_echo_n "checking for appropriate number of jobs to run in parallel... " >&6; }
+    # Approximate memory in GB, rounding up a bit.
+    memory_gb=`expr $MEMORY_SIZE / 1100`
+    # Pick the lowest of memory in gb and number of cores.
+    if test "$memory_gb" -lt "$NUM_CORES"; then
+      JOBS="$memory_gb"
+    else
+      JOBS="$NUM_CORES"
+      # On bigger machines, leave some room for other processes to run
+      if test "$JOBS" -gt "4"; then
+        JOBS=`expr $JOBS '*' 90 / 100`
+      fi
+    fi
+    # Cap number of jobs to 16
+    if test "$JOBS" -gt "16"; then
+      JOBS=16
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JOBS" >&5
+$as_echo "$JOBS" >&6; }
+  else
+    JOBS=$with_jobs
+  fi
 
 
 
@@ -31619,7 +31653,7 @@
 set dummy ccache; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_CCACHE+:} false; then :
+if test "${ac_cv_path_CCACHE+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $CCACHE in
@@ -31880,21 +31914,10 @@
      :end' >>confcache
 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
   if test -w "$cache_file"; then
-    if test "x$cache_file" != "x/dev/null"; then
+    test "x$cache_file" != "x/dev/null" &&
       { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
 $as_echo "$as_me: updating cache $cache_file" >&6;}
-      if test ! -f "$cache_file" || test -h "$cache_file"; then
-	cat confcache >"$cache_file"
-      else
-        case $cache_file in #(
-        */* | ?:*)
-	  mv -f confcache "$cache_file"$$ &&
-	  mv -f "$cache_file"$$ "$cache_file" ;; #(
-        *)
-	  mv -f confcache "$cache_file" ;;
-	esac
-      fi
-    fi
+    cat confcache >$cache_file
   else
     { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
@@ -31926,7 +31949,7 @@
 
 
 
-: "${CONFIG_STATUS=./config.status}"
+: ${CONFIG_STATUS=./config.status}
 ac_write_fail=0
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
@@ -32027,7 +32050,6 @@
 IFS=" ""	$as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
-as_myself=
 case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -32335,7 +32357,7 @@
 # values after options handling.
 ac_log="
 This file was extended by OpenJDK $as_me jdk8, which was
-generated by GNU Autoconf 2.68.  Invocation command line was
+generated by GNU Autoconf 2.67.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -32398,7 +32420,7 @@
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
 OpenJDK config.status jdk8
-configured by $0, generated by GNU Autoconf 2.68,
+configured by $0, generated by GNU Autoconf 2.67,
   with options \\"\$ac_cs_config\\"
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -32527,7 +32549,7 @@
     "$OUTPUT_ROOT/spec.sh") CONFIG_FILES="$CONFIG_FILES $OUTPUT_ROOT/spec.sh:$AUTOCONF_DIR/spec.sh.in" ;;
     "$OUTPUT_ROOT/Makefile") CONFIG_FILES="$CONFIG_FILES $OUTPUT_ROOT/Makefile:$AUTOCONF_DIR/Makefile.in" ;;
 
-  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
   esac
 done
 
@@ -32549,10 +32571,9 @@
 # after its creation but before its name has been assigned to `$tmp'.
 $debug ||
 {
-  tmp= ac_tmp=
+  tmp=
   trap 'exit_status=$?
-  : "${ac_tmp:=$tmp}"
-  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
 ' 0
   trap 'as_fn_exit 1' 1 2 13 15
 }
@@ -32560,13 +32581,12 @@
 
 {
   tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-  test -d "$tmp"
+  test -n "$tmp" && test -d "$tmp"
 }  ||
 {
   tmp=./conf$$-$RANDOM
   (umask 077 && mkdir "$tmp")
 } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
-ac_tmp=$tmp
 
 # Set up the scripts for CONFIG_FILES section.
 # No need to generate them if there are no CONFIG_FILES.
@@ -32588,7 +32608,7 @@
   ac_cs_awk_cr=$ac_cr
 fi
 
-echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+echo 'BEGIN {' >"$tmp/subs1.awk" &&
 _ACEOF
 
 
@@ -32616,7 +32636,7 @@
 rm -f conf$$subs.sh
 
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
 _ACEOF
 sed -n '
 h
@@ -32664,7 +32684,7 @@
 rm -f conf$$subs.awk
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 _ACAWK
-cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+cat >>"\$tmp/subs1.awk" <<_ACAWK &&
   for (key in S) S_is_set[key] = 1
   FS = ""
 
@@ -32696,7 +32716,7 @@
   sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
 else
   cat
-fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
   || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
 _ACEOF
 
@@ -32730,7 +32750,7 @@
 # No need to generate them if there are no CONFIG_HEADERS.
 # This happens for instance with `./config.status Makefile'.
 if test -n "$CONFIG_HEADERS"; then
-cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
+cat >"$tmp/defines.awk" <<\_ACAWK ||
 BEGIN {
 _ACEOF
 
@@ -32742,8 +32762,8 @@
 # handling of long lines.
 ac_delim='%!_!# '
 for ac_last_try in false false :; do
-  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
-  if test -z "$ac_tt"; then
+  ac_t=`sed -n "/$ac_delim/p" confdefs.h`
+  if test -z "$ac_t"; then
     break
   elif $ac_last_try; then
     as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
@@ -32844,7 +32864,7 @@
   esac
   case $ac_mode$ac_tag in
   :[FHL]*:*);;
-  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
   :[FH]-) ac_tag=-:-;;
   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
   esac
@@ -32863,7 +32883,7 @@
     for ac_f
     do
       case $ac_f in
-      -) ac_f="$ac_tmp/stdin";;
+      -) ac_f="$tmp/stdin";;
       *) # Look for the file first in the build tree, then in the source tree
 	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
 	 # because $ac_f cannot contain `:'.
@@ -32872,7 +32892,7 @@
 	   [\\/$]*) false;;
 	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
 	   esac ||
-	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
       esac
       case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
       as_fn_append ac_file_inputs " '$ac_f'"
@@ -32898,8 +32918,8 @@
     esac
 
     case $ac_tag in
-    *:-:* | *:-) cat >"$ac_tmp/stdin" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+    *:-:* | *:-) cat >"$tmp/stdin" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5  ;;
     esac
     ;;
   esac
@@ -33024,22 +33044,21 @@
 s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
 $ac_datarootdir_hack
 "
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
-  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
+  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
 
 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
-  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
-      "$ac_tmp/out"`; test -z "$ac_out"; } &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&5
 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&2;}
 
-  rm -f "$ac_tmp/stdin"
+  rm -f "$tmp/stdin"
   case $ac_file in
-  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
-  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+  -) cat "$tmp/out" && rm -f "$tmp/out";;
+  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
   esac \
   || as_fn_error $? "could not create $ac_file" "$LINENO" 5
  ;;
@@ -33050,20 +33069,20 @@
   if test x"$ac_file" != x-; then
     {
       $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
-    } >"$ac_tmp/config.h" \
+      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
+    } >"$tmp/config.h" \
       || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+    if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
 $as_echo "$as_me: $ac_file is unchanged" >&6;}
     else
       rm -f "$ac_file"
-      mv "$ac_tmp/config.h" "$ac_file" \
+      mv "$tmp/config.h" "$ac_file" \
 	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
     fi
   else
     $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
       || as_fn_error $? "could not create -" "$LINENO" 5
   fi
  ;;
@@ -33159,7 +33178,7 @@
 
 printf "\n"
 printf "Build performance summary:\n"
-printf "* Cores to use:   $NUM_CORES\n"
+printf "* Cores to use:   $JOBS\n"
 printf "* Memory limit:   $MEMORY_SIZE MB\n"
 printf "* ccache status:  $CCACHE_STATUS\n"
 printf "\n"
--- a/common/autoconf/help.m4	Fri Mar 01 04:45:51 2013 -0800
+++ b/common/autoconf/help.m4	Wed Jul 05 18:42:42 2017 +0200
@@ -174,7 +174,7 @@
 
 printf "\n"
 printf "Build performance summary:\n"
-printf "* Cores to use:   $NUM_CORES\n"
+printf "* Cores to use:   $JOBS\n"
 printf "* Memory limit:   $MEMORY_SIZE MB\n"
 printf "* ccache status:  $CCACHE_STATUS\n"
 printf "\n"
--- a/common/autoconf/hotspot-spec.gmk.in	Fri Mar 01 04:45:51 2013 -0800
+++ b/common/autoconf/hotspot-spec.gmk.in	Wed Jul 05 18:42:42 2017 +0200
@@ -80,7 +80,7 @@
 
 HOTSPOT_MAKE_ARGS:=@HOTSPOT_MAKE_ARGS@ @STATIC_CXX_SETTING@
 # This is used from the libjvm build for C/C++ code.
-HOTSPOT_BUILD_JOBS:=@CONCURRENT_BUILD_JOBS@
+HOTSPOT_BUILD_JOBS:=$(JOBS)
 # Control wether Hotspot runs Queens test after building
 TEST_IN_BUILD=@TEST_IN_BUILD@
 
--- a/common/autoconf/spec.gmk.in	Fri Mar 01 04:45:51 2013 -0800
+++ b/common/autoconf/spec.gmk.in	Wed Jul 05 18:42:42 2017 +0200
@@ -260,6 +260,9 @@
 # the sjavac server log files.
 SJAVAC_SERVER_DIR:=@SJAVAC_SERVER_DIR@
 
+# Number of parallel jobs to use for compilation
+JOBS?=@JOBS@
+
 # The OpenJDK makefiles should be changed to using the standard
 # configure output ..._CFLAGS and ..._LIBS. In the meantime we
 # extract the information here.
@@ -283,7 +286,7 @@
 OPENWIN_HOME:=@OPENWIN_HOME@
 
 # The lowest required version of macosx to enforce compatiblity for
-MACOSX_REQUIRED_VERSION=@MACOSX_REQUIRED_VERSION@
+MACOSX_VERSION_MIN=@MACOSX_VERSION_MIN@
 
 # There are two types: CC or CL
 # CC is gcc and others behaving reasonably similar.
--- a/common/autoconf/toolchain.m4	Fri Mar 01 04:45:51 2013 -0800
+++ b/common/autoconf/toolchain.m4	Wed Jul 05 18:42:42 2017 +0200
@@ -876,10 +876,17 @@
 fi
 if test "x$OPENJDK_TARGET_OS" = xmacosx; then
     CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE"
-    # Adding these macros will make it an error to link to mac APIs newer than OS version 10.7
-    MACOSX_REQUIRED_VERSION=1070
-    AC_SUBST(MACOSX_REQUIRED_VERSION)
-    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(MACOSX_REQUIRED_VERSION) -DMAC_OS_X_VERSION_MIN_REQUIRED=\$(MACOSX_REQUIRED_VERSION)" 
+    # Setting these parameters makes it an error to link to macosx APIs that are 
+    # newer than the given OS version and makes the linked binaries compatible even
+    # if built on a newer version of the OS.
+    # The expected format is X.Y.Z
+    MACOSX_VERSION_MIN=10.7.0
+    AC_SUBST(MACOSX_VERSION_MIN)
+    # The macro takes the version with no dots, ex: 1070
+    # Let the flags variables get resolved in make for easier override on make
+    # command line.
+    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
+    LDFLAGS_JDK="$LDFLAGS_JDK -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
 fi
 if test "x$OPENJDK_TARGET_OS" = xbsd; then
     CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DBSD -D_ALLBSD_SOURCE"
--- a/common/makefiles/JavaCompilation.gmk	Fri Mar 01 04:45:51 2013 -0800
+++ b/common/makefiles/JavaCompilation.gmk	Wed Jul 05 18:42:42 2017 +0200
@@ -501,7 +501,7 @@
 		$(ECHO) Compiling $1
 		($$($1_JVM) $$($1_SJAVAC) \
 			$$($1_REMOTE) \
-			-j $(NUM_CORES) \
+			-j $(JOBS) \
 			--permit-unidentified-artifacts \
 			--permit-sources-without-package \
 			--compare-found-sources $$($1_BIN)/_the.batch.tmp \
--- a/common/makefiles/Main.gmk	Fri Mar 01 04:45:51 2013 -0800
+++ b/common/makefiles/Main.gmk	Wed Jul 05 18:42:42 2017 +0200
@@ -58,9 +58,6 @@
 
 # Setup number of jobs to use. -jN is unfortunately not available for us to parse from the command line,
 # hence this workaround.
-ifeq ($(JOBS),)
-    JOBS=$(NUM_CORES)
-endif
 MAKE_ARGS:=$(MAKE_ARGS) -j$(JOBS)
 
 ### Main targets