Merge

Tue, 05 Mar 2013 11:46:02 -0800

author
lana
date
Tue, 05 Mar 2013 11:46:02 -0800
changeset 649
c022bc48b7ed
parent 647
cb0ac8979caa
parent 634
0adf9c626bb1
child 650
c4901c0e0579

Merge

common/autoconf/generated-configure.sh file | annotate | diff | comparison | revisions
common/autoconf/spec.gmk.in file | annotate | diff | comparison | revisions
     1.1 --- a/.hgtags	Tue Feb 26 09:25:44 2013 -0800
     1.2 +++ b/.hgtags	Tue Mar 05 11:46:02 2013 -0800
     1.3 @@ -199,3 +199,5 @@
     1.4  2a713921952cbd77a1e699626976cb6cdfe3e57e jdk8-b75
     1.5  278af9fc67e7eba2884936b49ec07345f423aabb jdk8-b76
     1.6  3933eebc659d58c597aa8cb4b3e58f2250ce3e1a jdk8-b77
     1.7 +fd1a5574cf68af24bfd52decc37ac6361afb278a jdk8-b78
     1.8 +91d35211e74464dca5edf9b66ab01d0d0d8cded7 jdk8-b79
     2.1 --- a/README	Tue Feb 26 09:25:44 2013 -0800
     2.2 +++ b/README	Tue Mar 05 11:46:02 2013 -0800
     2.3 @@ -1,45 +1,40 @@
     2.4  README:
     2.5    This file should be located at the top of the OpenJDK Mercurial root
     2.6 -  repository. This root repository will include a "make" directory,
     2.7 -  and a Makefile for building the entire OpenJDK.
     2.8 -  A full OpenJDK repository set (forest) should also include the following
     2.9 -  6 nested repositories:
    2.10 +  repository. A full OpenJDK repository set (forest) should also include
    2.11 +  the following 6 nested repositories:
    2.12      "jdk", "hotspot", "langtools", "corba", "jaxws"  and "jaxp".
    2.13 -  There are also several source downloads for the jax* repositories that
    2.14 -  will be needed.
    2.15  
    2.16 -  This one root repository can be obtained with something like:
    2.17 -
    2.18 +  The root repository can be obtained with something like:
    2.19      hg clone http://hg.openjdk.java.net/jdk8/jdk8 openjdk8
    2.20    
    2.21 -  To make sure you have all the nested repositories, you can run the
    2.22 -  get_source.sh script located in the same respository as this file:
    2.23 -
    2.24 +  You can run the get_source.sh script located in the root repository to get
    2.25 +  the other needed repositories:
    2.26      cd openjdk8 && sh ./get_source.sh
    2.27  
    2.28    People unfamiliar with Mercurial should read the first few chapters of
    2.29    the Mercurial book: http://hgbook.red-bean.com/read/
    2.30  
    2.31 -  See http://openjdk.java.net/ for more information about the OpenJDK.
    2.32 +  See http://openjdk.java.net/ for more information about OpenJDK.
    2.33  
    2.34  Simple Build Instructions:
    2.35    
    2.36    0. Get the necessary system software/packages installed on your system, see
    2.37 -     http://hg.openjdk.java.net/jdk8/build/raw-file/tip/README-builds.html
    2.38 +     http://hg.openjdk.java.net/jdk8/jdk8/raw-file/tip/README-builds.html
    2.39  
    2.40 -  1. If you don't have a jdk6 installed, download and install a JDK 6 from
    2.41 +  1. If you don't have a jdk7u7 or newer jdk, download and install it from
    2.42       http://java.sun.com/javase/downloads/index.jsp
    2.43 -     Set the environment variable ALT_BOOTDIR to the location of JDK 6.
    2.44 +     Add the /bin directory of this installation to your PATH environment
    2.45 +     variable.
    2.46  
    2.47 -  2. Check the sanity of doing a build with your current system:
    2.48 -       make sanity
    2.49 -     See README-builds.html if you run into problems.
    2.50 +  2. Configure the build:
    2.51 +       bash ./configure
    2.52    
    2.53 -  3. Do a complete build of the OpenJDK:
    2.54 +  3. Build the OpenJDK:
    2.55         make all
    2.56 -     The resulting JDK image should be found in build/*/j2sdk-image
    2.57 +     The resulting JDK image should be found in build/*/images/j2sdk-image
    2.58  
    2.59  where make is GNU make 3.81 or newer, /usr/bin/make on Linux usually
    2.60 -is 3.81 or newer.
    2.61 +is 3.81 or newer. Note that on Solaris, GNU make is called "gmake".
    2.62  
    2.63 -Complete details are available in README-builds.html.
    2.64 +Complete details are available in the file:
    2.65 +     http://hg.openjdk.java.net/jdk8/jdk8/raw-file/tip/README-builds.html
     3.1 --- a/README-builds.html	Tue Feb 26 09:25:44 2013 -0800
     3.2 +++ b/README-builds.html	Tue Mar 05 11:46:02 2013 -0800
     3.3 @@ -3,14 +3,15 @@
     3.4      <head>
     3.5          <title>OpenJDK Build README</title>
     3.6      </head>
     3.7 -    <body style="background-color:lightcyan">
     3.8 +    <body style="background-color:aquamarine">
     3.9 +
    3.10          <!-- ====================================================== -->
    3.11          <table width="100%">
    3.12              <tr>
    3.13                  <td align="center">
    3.14                      <img alt="OpenJDK" 
    3.15                           src="http://openjdk.java.net/images/openjdk.png" 
    3.16 -                         width=256 />
    3.17 +                         width=256>
    3.18                  </td>
    3.19              </tr>
    3.20              <tr>
    3.21 @@ -19,109 +20,116 @@
    3.22                  </td>
    3.23              </tr>
    3.24          </table>
    3.25 -        <!-- ------------------------------------------------------ --> 
    3.26 +
    3.27 +        <!-- ====================================================== -->
    3.28          <hr>
    3.29          <h2><a name="introduction">Introduction</a></h2>
    3.30          <blockquote>
    3.31 -            <p>
    3.32 -                This README file contains build instructions for the
    3.33 -                <a href="http://openjdk.java.net"  target="_blank">OpenJDK</a>.
    3.34 -                Building the source code for the
    3.35 -                OpenJDK
    3.36 -                requires
    3.37 -                a certain degree of technical expertise.
    3.38 +            This README file contains build instructions for the
    3.39 +            <a href="http://openjdk.java.net"  target="_blank">OpenJDK</a>.
    3.40 +            Building the source code for the
    3.41 +            OpenJDK
    3.42 +            requires
    3.43 +            a certain degree of technical expertise.
    3.44 +
    3.45 +            <!-- ====================================================== -->
    3.46 +            <h3>!!!!!!!!!!!!!!! THIS IS A MAJOR RE-WRITE of this document. !!!!!!!!!!!!!</h3>
    3.47 +            <blockquote>
    3.48 +                Some Headlines:
    3.49 +                <ul>
    3.50 +                    <li>
    3.51 +                        The build is now a "<code>configure &amp;&amp; make</code>" style build
    3.52 +                    </li>
    3.53 +                    <li>
    3.54 +                        Any GNU make 3.81 or newer should work
    3.55 +                    </li>
    3.56 +                    <li>
    3.57 +                        The build should scale, i.e. more processors should
    3.58 +                        cause the build to be done in less wall-clock time
    3.59 +                    </li>
    3.60 +                    <li>
    3.61 +                        Nested or recursive make invocations have been significantly
    3.62 +                        reduced, as has the total fork/exec or spawning
    3.63 +                        of sub processes during the build
    3.64 +                    </li>
    3.65 +                    <li>
    3.66 +                        Windows MKS usage is no longer supported
    3.67 +                    </li>
    3.68 +                    <li>
    3.69 +                        Windows Visual Studio <code>vsvars*.bat</code> and 
    3.70 +                        <code>vcvars*.bat</code> files are run automatically
    3.71 +                    </li>
    3.72 +                    <li>
    3.73 +                        Ant is no longer used when building the OpenJDK
    3.74 +                    </li>
    3.75 +                    <li>
    3.76 +                        Use of ALT_* environment variables for configuring the
    3.77 +                        build is no longer supported
    3.78 +                    </li>
    3.79 +                </ul>
    3.80 +            </blockquote>
    3.81          </blockquote>
    3.82 -        <!-- ------------------------------------------------------ -->
    3.83 +
    3.84 +        <!-- ====================================================== -->
    3.85          <hr>
    3.86          <h2><a name="contents">Contents</a></h2>
    3.87          <blockquote>
    3.88              <ul>
    3.89                  <li><a href="#introduction">Introduction</a></li>
    3.90 +
    3.91                  <li><a href="#hg">Use of Mercurial</a>
    3.92                      <ul>
    3.93                          <li><a href="#get_source">Getting the Source</a></li>
    3.94 +                        <li><a href="#repositories">Repositories</a></li>
    3.95                      </ul>
    3.96                  </li>
    3.97 -                <li><a href="#MBE">Minimum Build Environments</a></li>
    3.98 -                <li><a href="#SDBE">Specific Developer Build Environments</a>
    3.99 +
   3.100 +                <li><a href="#building">Building</a>
   3.101                      <ul>
   3.102 -                        <li><a href="#fedora">Fedora Linux</a> </li>
   3.103 -                        <li><a href="#centos">CentOS Linux</a> </li>
   3.104 -                        <li><a href="#debian">Debian GNU/Linux</a></li>
   3.105 -                        <li><a href="#ubuntu">Ubuntu Linux</a> </li>
   3.106 -                        <li><a href="#opensuse">OpenSUSE</a></li>
   3.107 -                        <li><a href="#mandriva">Mandriva</a></li>
   3.108 -                        <li><a href="#opensolaris">OpenSolaris</a></li>
   3.109 +                        <li><a href="#setup">System Setup</a>
   3.110 +                            <ul>
   3.111 +                                <li><a href="#linux">Linux</a></li>
   3.112 +                                <li><a href="#solaris">Solaris</a></li>
   3.113 +                                <li><a href="#macosx">Mac OS X</a></li>
   3.114 +                                <li><a href="#windows">Windows</a></li>
   3.115 +                            </ul>
   3.116 +                        </li>
   3.117 +                        <li><a href="#configure">Configure</a></li>
   3.118 +                        <li><a href="#make">Make</a></li>
   3.119                      </ul>
   3.120                  </li>
   3.121 -                <li><a href="#directories">Source Directory Structure</a> 
   3.122 +                <li><a href="#testing">Testing</a></li>
   3.123 +            </ul>
   3.124 +            <hr>
   3.125 +            <ul>
   3.126 +                <li><a href="#hints">Appendix A: Hints and Tips</a>
   3.127                      <ul>
   3.128 -                        <li><a href="#drops">Managing the Source Drops</a></li>
   3.129 +                        <li><a href="#faq">FAQ</a></li>
   3.130 +                        <li><a href="#performance">Build Performance Tips</a></li>
   3.131 +                        <li><a href="#troubleshooting">Troubleshooting</a></li>
   3.132                      </ul>
   3.133                  </li>
   3.134 -                <li><a href="#building">Build Information</a>
   3.135 -                    <ul>
   3.136 -                        <li><a href="#gmake">GNU Make (<tt><i>gmake</i></tt>)</a> </li>
   3.137 -                        <li><a href="#linux">Basic Linux System Setup</a> </li>
   3.138 -                        <li><a href="#solaris">Basic Solaris System Setup</a> </li>
   3.139 -                        <li><a href="#windows">Basic Windows System Setup</a> </li>
   3.140 -                        <li><a href="#macosx">Basic Mac OS X System Setup</a></li>
   3.141 -                        <li><a href="#dependencies">Build Dependencies</a>
   3.142 -                            <ul>
   3.143 -                                <li><a href="#bootjdk">Bootstrap JDK</a> </li>
   3.144 -                                <li><a href="#importjdk">Optional Import JDK</a> </li>
   3.145 -                                <li><a href="#ant">Ant 1.7.1</a> </li>
   3.146 -                                <li><a href="#cacerts">Certificate Authority File (cacert)</a> </li>
   3.147 -                                <li><a href="#compilers">Compilers</a>
   3.148 -                                    <ul>
   3.149 -                                        <li><a href="#msvc32">Microsoft Visual Studio Professional/Express for 32 bit</a> </li>
   3.150 -                                        <li><a href="#msvc64">Microsoft Visual Studio Professional for 64 bit</a> </li>
   3.151 -                                        <li><a href="#mssdk64">Microsoft Windows SDK for 64 bit</a> </li>
   3.152 -                                        <li><a href="#gcc">Linux gcc/binutils</a> </li>
   3.153 -                                        <li><a href="#studio">Sun Studio</a> </li>
   3.154 -                                    </ul>
   3.155 -                                </li>
   3.156 -                                <li><a href="#zip">Zip and Unzip</a> </li>
   3.157 -                                <li><a href="#freetype">FreeType2 Fonts</a> </li>
   3.158 -                                <li>Linux and Solaris:
   3.159 -                                    <ul>
   3.160 -                                        <li><a href="#cups">CUPS Include files</a> </li>
   3.161 -                                        <li><a href="#xrender">XRender Include files</a></li>
   3.162 -                                    </ul>
   3.163 -                                </li>
   3.164 -                                <li>Linux only:
   3.165 -                                    <ul>
   3.166 -                                        <li><a href="#alsa">ALSA files</a> </li>
   3.167 -                                    </ul>
   3.168 -                                </li>
   3.169 -                                <li>Windows only:
   3.170 -                                    <ul>
   3.171 -                                        <li>Unix Command Tools (<a href="#cygwin">CYGWIN</a>) <strong>or</strong></li>
   3.172 -                                        <li>Minimalist GNU for Windows (<a href="#msys">MinGW/MSYS</a>)</li>
   3.173 -                                        <li><a href="#dxsdk">DirectX 9.0 SDK</a> </li>
   3.174 -                                    </ul>
   3.175 -                                </li>
   3.176 -                            </ul>
   3.177 -                        </li>
   3.178 -                    </ul>
   3.179 -                </li>
   3.180 -                <li><a href="#creating">Creating the Build</a> </li>
   3.181 -                <li><a href="#testing">Testing the Build</a> </li>
   3.182 -                <li><a href="#variables">Environment/Make Variables</a></li>
   3.183 -                <li><a href="#troubleshooting">Troubleshooting</a></li>
   3.184 -                <li><a href="#newbuild">The New Build</a></li>
   3.185 +                <li><a href="#gmake">Appendix B: GNU Make Information</a></li>
   3.186 +                <li><a href="#buildenvironments">Appendix C: Build Environments</a></li>
   3.187 +
   3.188 +                <!-- Leave out
   3.189 +                <li><a href="#mapping">Appendix D: Mapping Old Builds to the New Builds</a></li>    
   3.190 +                -->
   3.191 +
   3.192              </ul>
   3.193          </blockquote>
   3.194  
   3.195 -        <!-- ------------------------------------------------------ -->
   3.196 +        <!-- ====================================================== -->
   3.197          <hr>
   3.198          <h2><a name="hg">Use of Mercurial</a></h2>
   3.199          <blockquote>
   3.200              The OpenJDK sources are maintained with the revision control system
   3.201              <a href="http://mercurial.selenic.com/wiki/Mercurial">Mercurial</a>.
   3.202              If you are new to Mercurial, please see the
   3.203 -            <a href="http://mercurial.selenic.com/wiki/BeginnersGuides">Beginner Guides</a>
   3.204 -            or refer to the <a href="http://hgbook.red-bean.com/">Mercurial Book</a>.
   3.205 +            <a href="http://mercurial.selenic.com/wiki/BeginnersGuides">
   3.206 +                Beginner Guides</a>
   3.207 +            or refer to the <a href="http://hgbook.red-bean.com/">
   3.208 +                Mercurial Book</a>.
   3.209              The first few chapters of the book provide an excellent overview of
   3.210              Mercurial, what it is and how it works.
   3.211              <br>
   3.212 @@ -130,578 +138,1631 @@
   3.213                  Developer Guide: Installing and Configuring Mercurial</a>
   3.214              section for more information.
   3.215  
   3.216 -            <!-- ------------------------------------------------------ -->
   3.217              <h3><a name="get_source">Getting the Source</a></h3>
   3.218              <blockquote>
   3.219                  To get the entire set of OpenJDK Mercurial repositories
   3.220 -                use the script <code>get_source.sh</code> located in the root repository:
   3.221 +                use the script <code>get_source.sh</code> located in the 
   3.222 +                root repository:
   3.223                  <blockquote>
   3.224 -                    <tt>
   3.225 -                        hg clone http://hg.openjdk.java.net/jdk8/jdk8 <i>YourOpenJDK</i>
   3.226 -                        <br>cd <i>YourOpenJDK</i>
   3.227 -                        <br>sh ./get_source.sh
   3.228 -                    </tt>
   3.229 +                    <code>
   3.230 +                        hg clone http://hg.openjdk.java.net/jdk8/jdk8 
   3.231 +                        <i>YourOpenJDK</i>
   3.232 +                        <br>
   3.233 +                        cd <i>YourOpenJDK</i>
   3.234 +                        <br>
   3.235 +                        bash ./get_source.sh
   3.236 +                    </code>
   3.237                  </blockquote>
   3.238 -                Once you have all the repositories, the
   3.239 -                script <tt>make/scripts/hgforest.sh</tt>
   3.240 -                can be used to repeat the same <tt>hg</tt>
   3.241 -                command on every repository in the forest, e.g.
   3.242 +                Once you have all the repositories, keep in mind that each
   3.243 +                repository is it's own independent repository.
   3.244 +                You can also re-run <code>./get_source.sh</code> anytime to
   3.245 +                pull over all the latest changesets in all the repositories.
   3.246 +                This set of nested repositories has been given the term
   3.247 +                "forest" and there are various ways to apply the same
   3.248 +                <code>hg</code> command to each of the repositories.
   3.249 +                For example, the script <code>make/scripts/hgforest.sh</code>
   3.250 +                can be used to repeat the same <code>hg</code>
   3.251 +                command on every repository, e.g.
   3.252                  <blockquote>
   3.253 -                    <tt>
   3.254 +                    <code>
   3.255                          cd <i>YourOpenJDK</i>
   3.256 -                        <br>sh ./make/scripts/hgforest.sh pull -u
   3.257 -                    </tt>
   3.258 +                        <br>
   3.259 +                        bash ./make/scripts/hgforest.sh status
   3.260 +                    </code>
   3.261                  </blockquote>
   3.262              </blockquote>
   3.263  
   3.264 +            <h3><a name="repositories">Repositories</a></h3>
   3.265 +            <blockquote>
   3.266 +                <p>The set of repositories and what they contain:</p>
   3.267 +                <table border="1">
   3.268 +                    <thead>
   3.269 +                        <tr>
   3.270 +                            <th>Repository</th>
   3.271 +                            <th>Contains</th>
   3.272 +                        </tr>
   3.273 +                    </thead>                   
   3.274 +                    <tbody>
   3.275 +                        <tr>
   3.276 +                            <td>
   3.277 +                                . (root)
   3.278 +                            </td>
   3.279 +                            <td>
   3.280 +                                common configure and makefile logic
   3.281 +                            </td>
   3.282 +                        </tr>
   3.283 +                        <tr>
   3.284 +                            <td>
   3.285 +                                hotspot
   3.286 +                            </td>
   3.287 +                            <td>
   3.288 +                                source code and make files for building
   3.289 +                                the OpenJDK Hotspot Virtual Machine                         
   3.290 +                            </td>
   3.291 +                        </tr>
   3.292 +                        <tr>
   3.293 +                            <td>
   3.294 +                                langtools
   3.295 +                            </td>
   3.296 +                            <td>
   3.297 +                                source code for the OpenJDK javac and language tools
   3.298 +                            </td>
   3.299 +                        </tr>
   3.300 +                        <tr>
   3.301 +                            <td>
   3.302 +                                jdk
   3.303 +                            </td>
   3.304 +                            <td>
   3.305 +                                source code and make files for building
   3.306 +                                the OpenJDK runtime libraries and misc files
   3.307 +                            </td>
   3.308 +                        </tr>
   3.309 +                        <tr>
   3.310 +                            <td>
   3.311 +                                jaxp
   3.312 +                            </td>
   3.313 +                            <td>
   3.314 +                                source code for the OpenJDK JAXP functionality
   3.315 +                            </td>
   3.316 +                        </tr>
   3.317 +                        <tr>
   3.318 +                            <td>
   3.319 +                                jaxws
   3.320 +                            </td>
   3.321 +                            <td>
   3.322 +                                source code for the OpenJDK JAX-WS functionality
   3.323 +                            </td>
   3.324 +                        </tr>
   3.325 +                        <tr>
   3.326 +                            <td>
   3.327 +                                corba
   3.328 +                            </td>
   3.329 +                            <td>
   3.330 +                                source code for the OpenJDK Corba functionality
   3.331 +                            </td>
   3.332 +                        </tr>
   3.333 +                    </tbody>
   3.334 +                </table>
   3.335 +            </blockquote>
   3.336 +
   3.337 +            <h3><a name="guidelines">Repository Source Guidelines</a></h3>
   3.338 +            <blockquote>
   3.339 +                There are some very basic guidelines:
   3.340 +                <ul>
   3.341 +                    <li>
   3.342 +                        Use of whitespace in source files
   3.343 +                        (.java, .c, .h, .cpp, and .hpp files)
   3.344 +                        is restricted.
   3.345 +                        No TABs, no trailing whitespace on lines, and files
   3.346 +                        should not terminate in more than one blank line.
   3.347 +                    </li>
   3.348 +                    <li>
   3.349 +                        Files with execute permissions should not be added
   3.350 +                        to the source repositories.
   3.351 +                    </li>
   3.352 +                    <li>
   3.353 +                        All generated files need to be kept isolated from 
   3.354 +                        the files
   3.355 +                        maintained or managed by the source control system.
   3.356 +                        The standard area for generated files is the top level
   3.357 +                        <code>build/</code> directory.
   3.358 +                    </li>
   3.359 +                    <li>
   3.360 +                        The default build process should be to build the product
   3.361 +                        and nothing else, in one form, e.g. a product (optimized),
   3.362 +                        debug (non-optimized, -g plus assert logic), or
   3.363 +                        fastdebug (optimized, -g plus assert logic).
   3.364 +                    </li>
   3.365 +                    <li>
   3.366 +                        The <tt>.hgignore</tt> file in each repository
   3.367 +                        must exist and should
   3.368 +                        include <tt>^build/</tt>, <tt>^dist/</tt> and 
   3.369 +                        optionally any
   3.370 +                        <tt>nbproject/private</tt> directories.
   3.371 +                        <strong>It should NEVER</strong> include 
   3.372 +                        anything in the
   3.373 +                        <tt>src/</tt> or <tt>test/</tt>
   3.374 +                        or any managed directory area of a repository.
   3.375 +                    </li>
   3.376 +                    <li>
   3.377 +                        Directory names and file names should never contain
   3.378 +                        blanks or
   3.379 +                        non-printing characters.
   3.380 +                    </li>
   3.381 +                    <li>
   3.382 +                        Generated source or binary files should NEVER be added to
   3.383 +                        the repository (that includes <tt>javah</tt> output).
   3.384 +                        There are some exceptions to this rule, in particular
   3.385 +                        with some of the generated configure scripts.
   3.386 +                    </li>
   3.387 +                    <li>
   3.388 +                        Files not needed for typical building
   3.389 +                        or testing of the repository
   3.390 +                        should not be added to the repository.
   3.391 +                    </li>
   3.392 +                </ul>
   3.393 +            </blockquote>
   3.394 +
   3.395          </blockquote>
   3.396  
   3.397 -        <!-- ------------------------------------------------------ -->
   3.398 +        <!-- ====================================================== -->
   3.399          <hr>
   3.400 -        <h2><a name="MBE">Minimum Build Environments</a></h2>
   3.401 +        <h2><a name="building">Building</a></h2>
   3.402          <blockquote>
   3.403 -            This file often describes specific requirements for what we call the
   3.404 -            "minimum build environments" (MBE) for this 
   3.405 -            specific release of the JDK,
   3.406 -            Building with the MBE will generate the most compatible
   3.407 -            bits that install on, and run correctly on, the most variations
   3.408 -            of the same base OS and hardware architecture.
   3.409 -            These usually represent what is often called the
   3.410 -            least common denominator platforms.
   3.411 -            It is understood that most developers will NOT be using these 
   3.412 -            specific platforms, and in fact creating these specific platforms
   3.413 -            may be difficult due to the age of some of this software.
   3.414 -            <p>
   3.415 -                The minimum OS and C/C++ compiler versions needed for building the
   3.416 -                OpenJDK:
   3.417 -            <p>
   3.418 -            <table border="1">
   3.419 -                <thead>
   3.420 -                    <tr>
   3.421 -                        <th>Base OS and Architecture</th>
   3.422 -                        <th>OS</th>
   3.423 -                        <th>C/C++ Compiler</th>
   3.424 -                        <th>BOOT JDK</th>
   3.425 -                    </tr>
   3.426 -                </thead>
   3.427 -                <tbody>
   3.428 -                    <tr>
   3.429 -                        <td>Linux X86 (32-bit)</td>
   3.430 -                        <td>Fedora 9</td>
   3.431 -                        <td>gcc 4.3 </td>
   3.432 -                        <td>JDK 6u18</td>
   3.433 -                    </tr>
   3.434 -                    <tr>
   3.435 -                        <td>Linux X64 (64-bit)</td>
   3.436 -                        <td>Fedora 9</td>
   3.437 -                        <td>gcc 4.3 </td>
   3.438 -                        <td>JDK 6u18</td>
   3.439 -                    </tr>
   3.440 -                    <tr>
   3.441 -                        <td>Solaris SPARC (32-bit)</td>
   3.442 -                        <td>Solaris 10 Update 6</td>
   3.443 -                        <td>Sun Studio 12 Update 1 + patches</td>
   3.444 -                        <td>JDK 6u18</td>
   3.445 -                    </tr>
   3.446 -                    <tr>
   3.447 -                        <td>Solaris SPARCV9 (64-bit)</td>
   3.448 -                        <td>Solaris 10 Update 6</td>
   3.449 -                        <td>Sun Studio 12 Update 1 + patches</td>
   3.450 -                        <td>JDK 6u18</td>
   3.451 -                    </tr>
   3.452 -                    <tr>
   3.453 -                        <td>Solaris X86 (32-bit)</td>
   3.454 -                        <td>Solaris 10 Update 6</td>
   3.455 -                        <td>Sun Studio 12 Update 1 + patches</td>
   3.456 -                        <td>JDK 6u18</td>
   3.457 -                    </tr>
   3.458 -                    <tr>
   3.459 -                        <td>Solaris X64 (64-bit)</td>
   3.460 -                        <td>Solaris 10 Update 6</td>
   3.461 -                        <td>Sun Studio 12 Update 1 + patches</td>
   3.462 -                        <td>JDK 6u18</td>
   3.463 -                    </tr>
   3.464 -                    <tr>
   3.465 -                        <td>Windows X86 (32-bit)</td>
   3.466 -                        <td>Windows XP</td>
   3.467 -                        <td>Microsoft Visual Studio C++ 2010 Professional Edition</td>
   3.468 -                        <td>JDK 6u18</td>
   3.469 -                    </tr>
   3.470 -                    <tr>
   3.471 -                        <td>Windows X64 (64-bit)</td>
   3.472 -                        <td>Windows Server 2003 - Enterprise x64 Edition</td>
   3.473 -                        <td>Microsoft Visual Studio C++ 2010 Professional Edition</td>
   3.474 -                        <td>JDK 6u18</td>
   3.475 -                    </tr>
   3.476 -                    <tr>
   3.477 -                        <td>Mac OS X X64 (64-bit)</td>
   3.478 -                        <td>Mac OS X 10.7.3 "Lion"</td>
   3.479 -                        <td>XCode 4.1 or later</td>
   3.480 -                        <td>Java for OS X Lion Update 1</td>
   3.481 -                    </tr>
   3.482 -                </tbody>
   3.483 -            </table>
   3.484 -            <p>
   3.485 -            These same sources do indeed build on many more systems than the
   3.486 -            above older generation systems, again the above is just a minimum.
   3.487 -            <p>
   3.488 -            Compilation problems with newer or different C/C++ compilers is a
   3.489 -            common problem.
   3.490 -            Similarly, compilation problems related to changes to the
   3.491 -                <tt>/usr/include</tt> or system header files is also a
   3.492 -            common problem with newer or unreleased OS versions.
   3.493 -            Please report these types of problems as bugs so that they
   3.494 -            can be dealt with accordingly.
   3.495 -        </blockquote>
   3.496 -        <!-- ------------------------------------------------------ -->
   3.497 -        <hr>
   3.498 -        <h2><a name="SDBE">Specific Developer Build Environments</a></h2>
   3.499 -        <blockquote>
   3.500 -            We won't be listing all the possible environments, but
   3.501 -            we will try to provide what information we have available to us.
   3.502 -        </blockquote>
   3.503 -        <!-- ------------------------------------------------------ -->
   3.504 -        <h3><a name="fedora">Fedora</a></h3>
   3.505 -        <blockquote>
   3.506 -            <h4>Fedora 9</h4>
   3.507 -            <p>
   3.508 +            The very first step in building the OpenJDK is making sure the
   3.509 +            system itself has everything it needs to do OpenJDK builds.
   3.510 +            Once a system is setup, it generally doesn't need to be done again.
   3.511 +            <br>
   3.512 +            Building the OpenJDK is now done with running a 
   3.513 +            <a href="#configure"><code>configure</code></a>
   3.514 +            script which will try and find and verify you have everything
   3.515 +            you need, followed by running
   3.516 +            <a href="#gmake"><code>make</code></a>, e.g.
   3.517              <blockquote>
   3.518 -                After installing <a href="http://fedoraproject.org">Fedora</a> 9
   3.519 -              you need to install several build dependencies. The simplest
   3.520 -              way to do it is to execute the following commands as user 
   3.521 -                <tt>root</tt>:
   3.522 -                <p/>
   3.523 -                <code>yum-builddep java-1.6.0-openjdk</code>
   3.524 -                <p/>
   3.525 -                <code>yum install gcc gcc-c++</code>
   3.526 -                <p/>
   3.527 -              In addition, it's necessary to set a few environment variables for the build:
   3.528 +                <b>
   3.529 +                    <code>
   3.530 +                        bash ./configure<br>
   3.531 +                        make all
   3.532 +                    </code>
   3.533 +                </b>
   3.534 +            </blockquote>
   3.535 +            Where possible the <code>configure</code> script will attempt to located the
   3.536 +            various components in the default locations or via component
   3.537 +            specific variable settings.
   3.538 +            When the normal defaults fail or components cannot be found,
   3.539 +            additional <code>configure</code> options may be necessary to help <code>configure</code>
   3.540 +            find the necessary tools for the build, or you may need to
   3.541 +            re-visit the setup of your system due to missing software
   3.542 +            packages.
   3.543 +            <br>
   3.544 +            <strong>NOTE:</strong> The <code>configure</code> script
   3.545 +            file does not have
   3.546 +            execute permissions and will need to be explicitly run with
   3.547 +            <code>bash</code>,
   3.548 +            see the <a href="#guidelines">source guidelines</a>.
   3.549  
   3.550 -                <p/>
   3.551 -                <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code>
   3.552 +            <!-- ====================================================== -->
   3.553 +            <hr>
   3.554 +            <h3><a name="setup">System Setup</a></h3>
   3.555 +            <blockquote>
   3.556 +                Before even attempting to use a system to build the OpenJDK
   3.557 +                there are some very basic system setups needed.
   3.558 +                For all systems:
   3.559 +                <ul>
   3.560 +                    <li>
   3.561 +                        Be sure the GNU make utility is version 3.81 or newer,
   3.562 +                        e.g. run "<code>make -version</code>"
   3.563 +                    </li>
   3.564 +                    <li>
   3.565 +                        Install a
   3.566 +                        <a name="bootjdk">Bootstrap JDK</a>
   3.567 +                        <br>
   3.568 +                        All OpenJDK builds require access to a previously released
   3.569 +                        JDK, this is often called a bootstrap JDK.
   3.570 +                        Currently, for this JDK release we require
   3.571 +                        JDK 7 Update 7 or newer.
   3.572 +                        The JDK 7 binaries can be downloaded from Oracle's 
   3.573 +                        <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html"
   3.574 +                           target="_blank">JDK 7 download site</a>.
   3.575 +                        For build performance reasons
   3.576 +                        is very important that this bootstrap JDK be made available 
   3.577 +                        on the local disk of the machine doing the build.
   3.578 +                        You should add its <code>bin</code> directory
   3.579 +                        to the <code>PATH</code> environment variable.
   3.580 +                        If <code>configure</code> has any issues finding this JDK, you may
   3.581 +                        need to use the <code>configure</code> option
   3.582 +                        <code>--with-boot-jdk</code>.
   3.583 +                    </li>
   3.584 +                    <li>
   3.585 +                        Insure that GNU make, the Bootstrap JDK,
   3.586 +                        and the compilers are all
   3.587 +                        in your PATH environment variable
   3.588 +                    </li>
   3.589 +                </ul>
   3.590 +                And for specific systems:
   3.591 +                <table border="1">
   3.592 +                    <thead>
   3.593 +                        <tr>
   3.594 +                            <th>Linux</th>
   3.595 +                            <th>Solaris</th>
   3.596 +                            <th>Windows</th>
   3.597 +                            <th>Mac OS X</th>
   3.598 +                        </tr>
   3.599 +                    </thead>                   
   3.600 +                    <tbody>
   3.601 +                        <tr>
   3.602 +                            <td>
   3.603 +                                Install all the software development
   3.604 +                                packages needed including
   3.605 +                                <a href="#alsa">alsa</a>,
   3.606 +                                <a href="#freetype">freetype</a>,
   3.607 +                                <a href="#cups">cups</a>, and
   3.608 +                                <a href="#xrender">xrender</a>.
   3.609 +                                <br>
   3.610 +                                See
   3.611 +                                <a href="#SDBE">specific system packages</a>.
   3.612 +                            </td>
   3.613 +                            <td>
   3.614 +                                Install all the software development
   3.615 +                                packages needed  including
   3.616 +                                <a href="#studio">Studio Compilers</a>,
   3.617 +                                <a href="#freetype">freetype</a>,
   3.618 +                                <a href="#cups">cups</a>, and
   3.619 +                                <a href="#xrender">xrender</a>.
   3.620 +                                <br>
   3.621 +                                See
   3.622 +                                <a href="#SDBE">specific system packages</a>.
   3.623 +                            </td>
   3.624 +                            <td>
   3.625 +                                <ul>
   3.626 +                                    <li>
   3.627 +                                        Install one of
   3.628 +                                        <a href="#cygwin">CYGWIN</a> or
   3.629 +                                        <a href="#msys">MinGW/MSYS</a>
   3.630 +                                    </li>
   3.631 +                                    <li>
   3.632 +                                        Install
   3.633 +                                        <a href="#vs2010">Visual Studio 2010</a>
   3.634 +                                    </li>
   3.635 +                                    <li>
   3.636 +                                        Install the
   3.637 +                                        <a href="#dxsdk">Microsoft DirectX SDK</a>
   3.638 +                                    </li>
   3.639 +                                </ul>
   3.640 +                            </td>
   3.641 +                            <td>
   3.642 +                                Install 
   3.643 +                                <a href="https://developer.apple.com/xcode/">XCode 4.5.2</a> 
   3.644 +                                and also install the "Command line tools" found under the
   3.645 +                                preferences pane "Downloads"
   3.646 +                            </td>
   3.647 +                        </tr>
   3.648 +                    </tbody>
   3.649 +                </table>
   3.650 +
   3.651 +                <h4><a name="linux">Linux</a></h4>
   3.652 +                <blockquote>
   3.653 +                    With Linux, try and favor the system packages over 
   3.654 +                    building your own
   3.655 +                    or getting packages from other areas.
   3.656 +                    Most Linux builds should be possible with the system's
   3.657 +                    available packages.
   3.658 +                    <br>
   3.659 +                    Note that some Linux systems have a habit of pre-populating
   3.660 +                    your environment variables for you, for example <code>JAVA_HOME</code>
   3.661 +                    might get pre-defined for you to refer to the JDK installed on
   3.662 +                    your Linux system.
   3.663 +                    You will need to unset <code>JAVA_HOME</code>.
   3.664 +                    It's a good idea to run <code>env</code> and verify the
   3.665 +                    environment variables you are getting from the default system
   3.666 +                    settings make sense for building the OpenJDK.
   3.667 +
   3.668 +                </blockquote>
   3.669 +
   3.670 +                <h4><a name="solaris">Solaris</a></h4>
   3.671 +                <blockquote>
   3.672 +                    <h5><a name="studio">Studio Compilers</a></h5>
   3.673 +                    <blockquote>
   3.674 +                        At a minimum, the
   3.675 +                        <a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.htm" target="_blank">
   3.676 +                            Studio 12 Update 1 Compilers</a>
   3.677 +                        (containing version 5.10 of the C and C++ compilers) is required,
   3.678 +                        including specific patches.
   3.679 +                        <p>
   3.680 +                            The Solaris SPARC patch list is:
   3.681 +                        <ul>
   3.682 +                            <li>
   3.683 +                                118683-05: SunOS 5.10: Patch for profiling libraries and assembler
   3.684 +                            </li>
   3.685 +                            <li>
   3.686 +                                119963-21: SunOS 5.10: Shared library patch for C++
   3.687 +                            </li>
   3.688 +                            <li>
   3.689 +                                120753-08: SunOS 5.10: Microtasking libraries (libmtsk) patch
   3.690 +                            </li>
   3.691 +                            <li>
   3.692 +                                128228-09: Sun Studio 12 Update 1: Patch for Sun C++ Compiler
   3.693 +                            </li>
   3.694 +                            <li>
   3.695 +                                141860-03: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95
   3.696 +                            </li>
   3.697 +                            <li>
   3.698 +                                141861-05: Sun Studio 12 Update 1: Patch for Sun C Compiler
   3.699 +                            </li>
   3.700 +                            <li>
   3.701 +                                142371-01: Sun Studio 12.1 Update 1: Patch for dbx
   3.702 +                            </li>
   3.703 +                            <li>
   3.704 +                                143384-02: Sun Studio 12 Update 1: Patch for debuginfo handling
   3.705 +                            </li>
   3.706 +                            <li>
   3.707 +                                143385-02: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95
   3.708 +                            </li>
   3.709 +                            <li>
   3.710 +                                142369-01: Sun Studio 12.1: Patch for Performance Analyzer Tools
   3.711 +                            </li>
   3.712 +                        </ul>
   3.713 +                        <p>
   3.714 +                            The Solaris X86 patch list is:
   3.715 +                        <ul>
   3.716 +                            <li>
   3.717 +                                119961-07: SunOS 5.10_x86, x64, Patch for profiling libraries and assembler
   3.718 +                            </li>
   3.719 +                            <li>
   3.720 +                                119964-21: SunOS 5.10_x86: Shared library patch for C++_x86
   3.721 +                            </li>
   3.722 +                            <li>
   3.723 +                                120754-08: SunOS 5.10_x86: Microtasking libraries (libmtsk) patch
   3.724 +                            </li>
   3.725 +                            <li>
   3.726 +                                141858-06: Sun Studio 12 Update 1_x86: Sun Compiler Common patch for x86 backend
   3.727 +                            </li>
   3.728 +                            <li>
   3.729 +                                128229-09: Sun Studio 12 Update 1_x86: Patch for C++ Compiler
   3.730 +                            </li>
   3.731 +                            <li>
   3.732 +                                142363-05: Sun Studio 12 Update 1_x86: Patch for C Compiler
   3.733 +                            </li>
   3.734 +                            <li>
   3.735 +                                142368-01: Sun Studio 12.1_x86: Patch for Performance Analyzer Tools
   3.736 +                            </li>
   3.737 +                        </ul>
   3.738 +                        <p> 
   3.739 +                            Place the <code>bin</code> directory in <code>PATH</code>.
   3.740 +                        <p>
   3.741 +                            The Oracle Solaris Studio Express compilers at:
   3.742 +                            <a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index-jsp-142582.html" target="_blank">
   3.743 +                                Oracle Solaris Studio Express Download site</a>
   3.744 +                            are also an option, although these compilers have not
   3.745 +                            been extensively used yet.
   3.746 +                    </blockquote>
   3.747 +
   3.748 +                </blockquote> <!-- Solaris -->
   3.749 +
   3.750 +                <h4><a name="windows">Windows</a></h4>
   3.751 +                <blockquote>
   3.752 +
   3.753 +                    <h5><a name="toolkit">Windows Unix Toolkit</a></h5>
   3.754 +                    <blockquote>
   3.755 +                        Building on Windows requires a Unix-like environment, notably a 
   3.756 +                        Unix-like shell.
   3.757 +                        There are several such environments available of which 
   3.758 +                        <a href="http://www.cygwin.com/">Cygwin</a> and 
   3.759 +                        <a href="http://www.mingw.org/wiki/MSYS">MinGW/MSYS</a> are 
   3.760 +                        currently supported for
   3.761 +                        the OpenJDK build. One of the differences of these 
   3.762 +                        systems from standard Windows tools is the way
   3.763 +                        they handle Windows path names, particularly path names which contain
   3.764 +                        spaces, backslashes as path separators and possibly drive letters. 
   3.765 +                        Depending
   3.766 +                        on the use case and the specifics of each environment these path 
   3.767 +                        problems can
   3.768 +                        be solved by a combination of quoting whole paths, translating 
   3.769 +                        backslashes to
   3.770 +                        forward slashes, escaping backslashes with additional backslashes and
   3.771 +                        translating the path names to their 
   3.772 +                        <a href="http://en.wikipedia.org/wiki/8.3_filename">
   3.773 +                            "8.3" version</a>.
   3.774 +
   3.775 +                        <h6><a name="cygwin">CYGWIN</a></h6>
   3.776 +                        <blockquote>
   3.777 +                            CYGWIN is an open source, Linux-like environment which tries to emulate
   3.778 +                            a complete POSIX layer on Windows. It tries to be smart about path names
   3.779 +                            and can usually handle all kinds of paths if they are correctly quoted
   3.780 +                            or escaped although internally it maps drive letters <code>&lt;drive&gt;:</code> 
   3.781 +                            to a virtual directory <code>/cygdrive/&lt;drive&gt;</code>.
   3.782 +                            <p>
   3.783 +                                You can always use the <code>cygpath</code> utility to map pathnames with spaces
   3.784 +                                or the backslash character into the <code>C:/</code> style of pathname
   3.785 +                                (called 'mixed'), e.g. <code>cygpath -s -m "<i>path</i>"</code>.
   3.786 +                            </p>
   3.787 +                            <p>
   3.788 +                                Note that the use of CYGWIN creates a unique problem with regards to
   3.789 +                                setting <a href="#path"><code>PATH</code></a>. Normally on Windows
   3.790 +                                the <code>PATH</code> variable contains directories
   3.791 +                                separated with the ";" character (Solaris and Linux use ":").
   3.792 +                                With CYGWIN, it uses ":", but that means that paths like "C:/path"
   3.793 +                                cannot be placed in the CYGWIN version  of <code>PATH</code> and
   3.794 +                                instead CYGWIN uses something like <code>/cygdrive/c/path</code>
   3.795 +                                which CYGWIN understands, but only CYGWIN understands.
   3.796 +                            </p>
   3.797 +                            <p>
   3.798 +                                The OpenJDK build requires CYGWIN version 1.7.16 or newer.
   3.799 +                                Information about CYGWIN can
   3.800 +                                be obtained from the CYGWIN website at
   3.801 +                                <a href="http://www.cygwin.com" target="_blank">www.cygwin.com</a>.
   3.802 +                            </p>
   3.803 +                            <p>
   3.804 +                                By default CYGWIN doesn't install all the tools required for building
   3.805 +                                the OpenJDK.
   3.806 +                                Along with the default installation, you need to install
   3.807 +                                the following tools.
   3.808 +                            <blockquote>
   3.809 +                                <table border="1">
   3.810 +                                    <thead>
   3.811 +                                        <tr>
   3.812 +                                            <td>Binary Name</td>
   3.813 +                                            <td>Category</td>
   3.814 +                                            <td>Package</td>
   3.815 +                                            <td>Description</td>
   3.816 +                                        </tr>
   3.817 +                                    </thead>
   3.818 +                                    <tbody>
   3.819 +                                        <tr>
   3.820 +                                            <td>ar.exe</td>
   3.821 +                                            <td>Devel</td>
   3.822 +                                            <td>binutils</td>
   3.823 +                                            <td>
   3.824 +                                                The GNU assembler, linker and binary utilities
   3.825 +                                            </td>
   3.826 +                                        </tr>
   3.827 +                                        <tr>
   3.828 +                                            <td>make.exe</td>
   3.829 +                                            <td>Devel</td>
   3.830 +                                            <td>make</td>
   3.831 +                                            <td>
   3.832 +                                                The GNU version of the 'make' utility built for CYGWIN
   3.833 +                                            </td>
   3.834 +                                        </tr>
   3.835 +                                        <tr>
   3.836 +                                            <td>m4.exe</td>
   3.837 +                                            <td>Interpreters</td>
   3.838 +                                            <td>m4</td>
   3.839 +                                            <td>
   3.840 +                                                GNU implementation of the traditional Unix macro
   3.841 +                                                processor
   3.842 +                                            </td>
   3.843 +                                        </tr>
   3.844 +                                        <tr>
   3.845 +                                            <td>cpio.exe</td>
   3.846 +                                            <td>Utils</td>
   3.847 +                                            <td>cpio</td>
   3.848 +                                            <td>
   3.849 +                                                A program to manage archives of files
   3.850 +                                            </td>
   3.851 +                                        </tr>
   3.852 +                                        <tr>
   3.853 +                                            <td>gawk.exe</td>
   3.854 +                                            <td>Utils</td>
   3.855 +                                            <td>awk</td>
   3.856 +                                            <td>
   3.857 +                                                Pattern-directed scanning and processing language
   3.858 +                                            </td>
   3.859 +                                        </tr>
   3.860 +                                        <tr>
   3.861 +                                            <td>file.exe</td>
   3.862 +                                            <td>Utils</td>
   3.863 +                                            <td>file</td>
   3.864 +                                            <td>
   3.865 +                                                Determines file type using 'magic' numbers
   3.866 +                                            </td>
   3.867 +                                        </tr>
   3.868 +                                        <tr>
   3.869 +                                            <td>zip.exe</td>
   3.870 +                                            <td>Archive</td>
   3.871 +                                            <td>zip</td>
   3.872 +                                            <td>
   3.873 +                                                Package and compress (archive) files
   3.874 +                                            </td>
   3.875 +                                        </tr>
   3.876 +                                        <tr>
   3.877 +                                            <td>unzip.exe</td>
   3.878 +                                            <td>Archive</td>
   3.879 +                                            <td>unzip</td>
   3.880 +                                            <td>
   3.881 +                                                Extract compressed files in a ZIP archive
   3.882 +                                            </td>
   3.883 +                                        </tr>
   3.884 +                                        <tr>
   3.885 +                                            <td>free.exe</td>
   3.886 +                                            <td>System</td>
   3.887 +                                            <td>procps</td>
   3.888 +                                            <td>
   3.889 +                                                Display amount of free and used memory in the system
   3.890 +                                            </td>
   3.891 +                                        </tr>
   3.892 +                                    </tbody>
   3.893 +                                </table>
   3.894 +                            </blockquote>
   3.895 +                            Note that the CYGWIN software can conflict with other non-CYGWIN
   3.896 +                            software on your Windows system.
   3.897 +                            CYGWIN provides a
   3.898 +                            <a href="http://cygwin.com/faq/faq.using.html" target="_blank">FAQ</a> for
   3.899 +                            known issues and problems, of particular interest is the
   3.900 +                            section on
   3.901 +                            <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank">
   3.902 +                                BLODA (applications that interfere with CYGWIN)</a>.
   3.903 +                        </blockquote>
   3.904 +
   3.905 +                        <h6><a name="msys">MinGW/MSYS</a></h6> 
   3.906 +                        <blockquote>
   3.907 +                            MinGW ("Minimalist GNU for Windows") is a collection of free Windows
   3.908 +                            specific header files and import libraries combined with GNU toolsets that
   3.909 +                            allow one to produce native Windows programs that do not rely on any
   3.910 +                            3rd-party C runtime DLLs. MSYS is a supplement to MinGW which allows building
   3.911 +                            applications and programs which rely on traditional UNIX tools to
   3.912 +                            be present. Among others this includes tools like <code>bash</code>
   3.913 +                            and <code>make</code>.
   3.914 +                            See <a href="http://www.mingw.org/wiki/MSYS" target="_blank">MinGW/MSYS</a>
   3.915 +                            for more information.
   3.916 +                            <p>
   3.917 +                                Like Cygwin, MinGW/MSYS can handle different types of path formats. They
   3.918 +                                are internally converted to paths with forward slashes and drive letters
   3.919 +                                <code>&lt;drive&gt;:</code> replaced by a virtual
   3.920 +                                directory <code>/&lt;drive&gt;</code>.  Additionally, MSYS automatically
   3.921 +                                detects binaries compiled for the MSYS environment and feeds them with the
   3.922 +                                internal, Unix-style path names. If native Windows applications are called
   3.923 +                                from within MSYS programs their path arguments are automatically converted
   3.924 +                                back to Windows style path names with drive letters and backslashes as
   3.925 +                                path separators. This may cause problems for Windows applications which
   3.926 +                                use forward slashes as parameter separator (e.g. <code>cl /nologo /I</code>)
   3.927 +                                because MSYS may wrongly <a href="http://mingw.org/wiki/Posix_path_conversion">
   3.928 +                                    replace such parameters by drive letters</a>.
   3.929 +                            </p>
   3.930 +                            <p>
   3.931 +                                In addition to the tools which will be installed
   3.932 +                                by default, you have
   3.933 +                                to manually install the
   3.934 +                                <code>msys-zip</code> and
   3.935 +                                <code>msys-unzip</code> packages.
   3.936 +                                This can be easily done with the MinGW command line installer:
   3.937 +                            <blockquote> 
   3.938 +                                <code>mingw-get.exe install msys-zip</code>
   3.939 +                                <br>
   3.940 +                                <code>mingw-get.exe install msys-unzip</code>
   3.941 +                            </blockquote> 
   3.942 +                        </blockquote>
   3.943 +
   3.944 +                    </blockquote>
   3.945 +
   3.946 +                    <h5><a name="vs2010">Visual Studio 2010 Compilers</a></h5>
   3.947 +                    <blockquote>
   3.948 +                        <p>
   3.949 +                            The 32-bit and 64-bit OpenJDK Windows build requires
   3.950 +                            Microsoft Visual Studio C++ 2010 (VS2010) Professional
   3.951 +                            Edition or Express compiler.
   3.952 +                            The compiler and other tools are expected to reside
   3.953 +                            in the location defined by the variable
   3.954 +                            <code>VS100COMNTOOLS</code> which
   3.955 +                            is set by the Microsoft Visual Studio installer.
   3.956 +                        </p>
   3.957 +                        <p>
   3.958 +                            Only the C++ part of VS2010 is needed.
   3.959 +                            Try to let the installation go to the default 
   3.960 +                            install directory.
   3.961 +                            Always reboot your system after installing VS2010.
   3.962 +                            The system environment variable VS100COMNTOOLS 
   3.963 +                            should be
   3.964 +                            set in your environment.
   3.965 +                        </p>
   3.966 +                        <p>
   3.967 +                            Make sure that TMP and TEMP are also set 
   3.968 +                            in the environment
   3.969 +                            and refer to Windows paths that exist, 
   3.970 +                            like <code>C:\temp</code>,
   3.971 +                            not <code>/tmp</code>, not <code>/cygdrive/c/temp</code>, 
   3.972 +                            and not <code>C:/temp</code>.
   3.973 +                            <code>C:\temp</code> is just an example, 
   3.974 +                            it is assumed that this area is
   3.975 +                            private to the user, so by default 
   3.976 +                            after installs you should
   3.977 +                            see a unique user path in these variables.
   3.978 +                        </p>
   3.979 +                    </blockquote>
   3.980 +
   3.981 +
   3.982 +                </blockquote> <!-- Windows -->
   3.983 +
   3.984 +                <h4><a name="macosx">Mac OS X</a></h4>
   3.985 +                <blockquote>
   3.986 +                    Make sure you get the right XCode version.
   3.987 +                </blockquote> <!-- Mac OS X -->
   3.988 +
   3.989              </blockquote>
   3.990 -            <h4>Fedora 10</h4>
   3.991 -            <p>
   3.992 +
   3.993 +            <!-- ====================================================== -->
   3.994 +            <hr>
   3.995 +            <h3><a name="configure">Configure</a></h3>
   3.996              <blockquote>
   3.997 -                After installing <a href="http://fedoraproject.org">Fedora</a> 10
   3.998 -              you need to install several build dependencies. The simplest
   3.999 -              way to do it is to execute the following commands as user 
  3.1000 -                <tt>root</tt>:
  3.1001 -                <p/>
  3.1002 -                <code>yum-builddep java-1.6.0-openjdk</code>
  3.1003 -                <p/>
  3.1004 -                <code>yum install gcc gcc-c++</code>
  3.1005 -                <p/>
  3.1006 -              In addition, it's necessary to set a few environment variables for the build:
  3.1007 +                The basic invocation of the <code>configure</code> script
  3.1008 +                looks like:
  3.1009 +                <blockquote>
  3.1010 +                    <b><code>bash ./configure [<i>options</i>]</code></b>
  3.1011 +                </blockquote>
  3.1012 +                This will create an output directory containing the
  3.1013 +                "configuration" and setup an area for the build result.
  3.1014 +                This directory typically looks like:
  3.1015 +                <blockquote>
  3.1016 +                    <b><code>build/linux-x64-normal-server-release</code></b>
  3.1017 +                </blockquote>
  3.1018 +                <code>configure</code> will try to figure out what system you are running on 
  3.1019 +                and where all necessary build components are.
  3.1020 +                If you have all prerequisites for building installed,
  3.1021 +                it should find everything.
  3.1022 +                If it fails to detect any component automatically,
  3.1023 +                it will exit and inform you about the problem.
  3.1024 +                When this happens, read more below in
  3.1025 +                <a href="#configureoptions">the <code>configure</code> options</a>.
  3.1026 +                <p>
  3.1027 +                    Some examples:
  3.1028 +                </p>
  3.1029 +                <table border="1">
  3.1030 +                    <thead>
  3.1031 +                        <tr>
  3.1032 +                            <th>Description</th>
  3.1033 +                            <th>Configure Command Line</th>
  3.1034 +                        </tr>
  3.1035 +                    </thead>                   
  3.1036 +                    <tbody>
  3.1037 +                        <tr>
  3.1038 +                            <td>Windows 32bit build with freetype specified</td>
  3.1039 +                            <td>
  3.1040 +                                <code>bash ./configure --with-freetype=/cygdrive/c/freetype-i586 --with-target-bits=32</code>   
  3.1041 +                            </td>
  3.1042 +                        </tr>
  3.1043 +                        <tr>
  3.1044 +                            <td>Debug 64bit Build</td>
  3.1045 +                            <td>
  3.1046 +                                <code>bash ./configure --enable-debug --with-target-bits=64</code>   
  3.1047 +                            </td>
  3.1048 +                        </tr>
  3.1049 +                    </tbody>
  3.1050 +                </table>
  3.1051  
  3.1052 -                <p/>
  3.1053 -                <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code>
  3.1054 +                <!-- ====================================================== -->
  3.1055 +                <h4><a name="configureoptions">Configure Options</a></h4>
  3.1056 +                <blockquote>
  3.1057 +                    Complete details on all the OpenJDK <code>configure</code> options can
  3.1058 +                    be seen with:
  3.1059 +                    <blockquote>
  3.1060 +                        <b><code>bash ./configure --help=short</code></b>
  3.1061 +                    </blockquote>
  3.1062 +                    Use <code>-help</code> to see all the <code>configure</code> options
  3.1063 +                    available.
  3.1064 +
  3.1065 +                    You can generate any number of different configurations,
  3.1066 +                    e.g. debug, release, 32, 64, etc.
  3.1067 +
  3.1068 +                    Some of the more commonly used <code>configure</code> options are:
  3.1069 +
  3.1070 +                    <table border="1">
  3.1071 +                        <thead>
  3.1072 +                            <tr>
  3.1073 +                                <th width="300">OpenJDK Configure Option</th>
  3.1074 +                                <th>Description</th>
  3.1075 +                            </tr>
  3.1076 +                        </thead>                   
  3.1077 +                        <tbody>
  3.1078 +                            <tr>
  3.1079 +                                <td><b><code>--enable-debug</code></b></td>
  3.1080 +                                <td>
  3.1081 +                                    set the debug level to fastdebug (this is a shorthand for
  3.1082 +                                    <code>--with-debug-level=fastdebug</code>)
  3.1083 +                                </td>
  3.1084 +                            </tr>
  3.1085 +                            <tr>
  3.1086 +                                <td><b><code>--with-alsa=</code></b><i>path</i></td>
  3.1087 +                                <td>
  3.1088 +                                    select the location of the
  3.1089 +                                    <a name="alsa">Advanced Linux Sound Architecture (ALSA)</a>
  3.1090 +                                    <br>                        
  3.1091 +                                    Version 0.9.1 or newer of the ALSA files are
  3.1092 +                                    required for building the OpenJDK on Linux.
  3.1093 +                                    These Linux files are usually available from an "alsa"
  3.1094 +                                    of "libasound"
  3.1095 +                                    development package,
  3.1096 +                                    and it's highly recommended that you try and use
  3.1097 +                                    the package provided by the particular version of Linux that
  3.1098 +                                    you are using.
  3.1099 +                                </td>
  3.1100 +                            </tr>   
  3.1101 +                            <tr>
  3.1102 +                                <td><b><code>--with-boot-jdk=</code></b><i>path</i></td>
  3.1103 +                                <td>
  3.1104 +                                    select the <a href="#bootjdk">Bootstrap JDK</a>
  3.1105 +                                </td>
  3.1106 +                            </tr>                      
  3.1107 +                            <tr>
  3.1108 +                                <td><b><code>--with-boot-jdk-jvmargs=</code></b>"<i>args</i>"</td>
  3.1109 +                                <td>
  3.1110 +                                    provide the JVM options to be used to run the 
  3.1111 +                                    <a href="#bootjdk">Bootstrap JDK</a>
  3.1112 +                                </td>
  3.1113 +                            </tr>
  3.1114 +                            <tr>
  3.1115 +                                <td><b><code>--with-cacerts=</code></b><i>path</i></td>
  3.1116 +                                <td>
  3.1117 +                                    select the path to the cacerts file.
  3.1118 +                                    <br>
  3.1119 +                                    See <a href="http://en.wikipedia.org/wiki/Certificate_Authority" target="_blank">
  3.1120 +                                        http://en.wikipedia.org/wiki/Certificate_Authority</a>
  3.1121 +                                    for a better understanding of the Certificate Authority (CA).
  3.1122 +                                    A certificates file named "cacerts"
  3.1123 +                                    represents a system-wide keystore with CA certificates. 
  3.1124 +                                    In JDK and JRE
  3.1125 +                                    binary bundles, the "cacerts" file contains root CA certificates from
  3.1126 +                                    several public CAs (e.g., VeriSign, Thawte, and Baltimore).
  3.1127 +                                    The source contain a cacerts file
  3.1128 +                                    without CA root certificates. 
  3.1129 +                                    Formal JDK builders will need to secure
  3.1130 +                                    permission from each public CA and include the certificates into their
  3.1131 +                                    own custom cacerts file. 
  3.1132 +                                    Failure to provide a populated cacerts file
  3.1133 +                                    will result in verification errors of a certificate chain during runtime.
  3.1134 +                                    By default an empty cacerts file is provided and that should be
  3.1135 +                                    fine for most JDK developers.
  3.1136 +                                </td>
  3.1137 +                            </tr>    
  3.1138 +                            <tr>
  3.1139 +                                <td><b><code>--with-cups=</code></b><i>path</i></td>
  3.1140 +                                <td>
  3.1141 +                                    select the CUPS install location
  3.1142 +                                    <br>
  3.1143 +                                    The
  3.1144 +                                    <a name="cups">Common UNIX Printing System (CUPS) Headers</a>
  3.1145 +                                    are required for building the 
  3.1146 +                                    OpenJDK on Solaris and Linux.
  3.1147 +                                    The Solaris header files can be obtained by installing 
  3.1148 +                                    the package <strong>SFWcups</strong> from the Solaris Software
  3.1149 +                                    Companion CD/DVD, these often will be installed into the
  3.1150 +                                    directory <code>/opt/sfw/cups</code>.
  3.1151 +                                    <br>
  3.1152 +                                    The CUPS header files can always be downloaded from
  3.1153 +                                    <a href="http://www.cups.org" target="_blank">www.cups.org</a>.
  3.1154 +                                </td>
  3.1155 +                            </tr>    
  3.1156 +                            <tr>
  3.1157 +                                <td><b><code>--with-cups-include=</code></b><i>path</i></td>
  3.1158 +                                <td>
  3.1159 +                                    select the CUPS include directory location
  3.1160 +                                </td>
  3.1161 +                            </tr>                           
  3.1162 +                            <tr>
  3.1163 +                                <td><b><code>--with-debug-level=</code></b><i>level</i></td>
  3.1164 +                                <td>
  3.1165 +                                    select the debug information level of release,
  3.1166 +                                    fastdebug, or slowdebug
  3.1167 +                                </td>
  3.1168 +                            </tr>                          
  3.1169 +                            <tr>
  3.1170 +                                <td><b><code>--with-dev-kit=</code></b><i>path</i></td>
  3.1171 +                                <td>
  3.1172 +                                    select location of the compiler install or
  3.1173 +                                    developer install location
  3.1174 +                                </td>
  3.1175 +                            </tr>       
  3.1176 +                            <tr>
  3.1177 +                                <td><b><code>--with-dxsdk=</code></b><i>path</i></td>
  3.1178 +                                <td>
  3.1179 +                                    select location of the Windows Direct X SDK install
  3.1180 +                                    <br>
  3.1181 +                                    The <a name="dxsdk">Microsoft DirectX 9.0 SDK</a>
  3.1182 +                                    header files and libraries
  3.1183 +                                    from the Summer 2004 edition
  3.1184 +                                    are required for building OpenJDK.
  3.1185 +                                    This SDK can be downloaded from 
  3.1186 +                                    <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FD044A42-9912-42A3-9A9E-D857199F888E&amp;displaylang=en" target="_blank">
  3.1187 +                                        Microsoft DirectX 9.0 SDK (Summer 2004)</a>.
  3.1188 +                                    If the link above becomes obsolete, the SDK can be found from 
  3.1189 +                                    <a href="http://download.microsoft.com" target="_blank">the Microsoft Download Site</a>
  3.1190 +                                    (search with "DirectX 9.0 SDK Update Summer 2004"). 
  3.1191 +                                    Installation usually will set the environment variable
  3.1192 +                                    <code>DXSDK_DIR</code> to it's install location.
  3.1193 +                                </td>
  3.1194 +                            </tr>       
  3.1195 +                            <tr>
  3.1196 +                                <td><b><code>--with-freetype=</code></b><i>path</i></td>
  3.1197 +                                <td>
  3.1198 +                                    select the freetype files to use.
  3.1199 +                                    <br>
  3.1200 +                                    Expecting the
  3.1201 +                                    <a name="freetype">freetype</a> libraries under
  3.1202 +                                    <code>lib/</code> and the
  3.1203 +                                    headers under <code>include/</code>.
  3.1204 +                                    <br>
  3.1205 +                                    Version 2.3 or newer of FreeType is required.
  3.1206 +                                    On Unix systems required files can be available as part of your
  3.1207 +                                    distribution (while you still may need to upgrade them).
  3.1208 +                                    Note that you need development version of package that 
  3.1209 +                                    includes both the FreeType library and header files.
  3.1210 +                                    <br>
  3.1211 +                                    You can always download latest FreeType version from the
  3.1212 +                                    <a href="http://www.freetype.org" target="_blank">FreeType website</a>.
  3.1213 +                                    <br>
  3.1214 +                                    Building the freetype 2 libraries from scratch is also possible,
  3.1215 +                                    however on Windows refer to the
  3.1216 +                                    <a href="http://freetype.freedesktop.org/wiki/FreeType_DLL">
  3.1217 +                                        Windows FreeType DLL build instructions</a>.
  3.1218 +                                    <br>
  3.1219 +                                    Note that by default FreeType is built with byte code hinting
  3.1220 +                                    support disabled due to licensing restrictions.
  3.1221 +                                    In this case, text appearance and metrics are expected to
  3.1222 +                                    differ from Sun's official JDK build.
  3.1223 +                                    See
  3.1224 +                                    <a href="http://freetype.sourceforge.net/freetype2/index.html">
  3.1225 +                                        the SourceForge FreeType2 Home Page
  3.1226 +                                    </a>
  3.1227 +                                    for more information.
  3.1228 +                                </td>
  3.1229 +                            </tr>                          
  3.1230 +                            <tr>
  3.1231 +                                <td><b><code>--with-import-hotspot=</code></b><i>path</i></td>
  3.1232 +                                <td>
  3.1233 +                                    select the location to find hotspot
  3.1234 +                                    binaries from a previous build to avoid building
  3.1235 +                                    hotspot
  3.1236 +                                </td>
  3.1237 +                            </tr>                          
  3.1238 +                            <tr>
  3.1239 +                                <td><b><code>--with-target-bits=</code></b><i>arg</i></td>
  3.1240 +                                <td>
  3.1241 +                                    select 32 or 64 bit build
  3.1242 +                                </td>
  3.1243 +                            </tr>                           
  3.1244 +                            <tr>
  3.1245 +                                <td><b><code>--with-jvm-variants=</code></b><i>variants</i></td>
  3.1246 +                                <td>
  3.1247 +                                    select the JVM variants to build from, comma
  3.1248 +                                    separated list that can include:
  3.1249 +                                    server, client, kernel, zero and zeroshark
  3.1250 +                                </td>
  3.1251 +                            </tr>                           
  3.1252 +                            <tr>
  3.1253 +                                <td><b><code>--with-memory-size=</code></b><i>size</i></td>
  3.1254 +                                <td>
  3.1255 +                                    select the RAM size that GNU make will think
  3.1256 +                                    this system has
  3.1257 +                                </td>
  3.1258 +                            </tr>                            
  3.1259 +                            <tr>
  3.1260 +                                <td><a name="msvcrNN"><b><code>--with-msvcr-dll=</code></b><i>path</i></a></td>
  3.1261 +                                <td>
  3.1262 +                                    select the <code>msvcr100.dll</code>
  3.1263 +                                    file to include in the
  3.1264 +                                    Windows builds (C/C++ runtime library for
  3.1265 +                                    Visual Studio).
  3.1266 +                                    <br>
  3.1267 +                                    This is usually picked up automatically
  3.1268 +                                    from the redist
  3.1269 +                                    directories of Visual Studio 2010.
  3.1270 +                                </td>
  3.1271 +                            </tr>                            
  3.1272 +                            <tr>
  3.1273 +                                <td><b><code>--with-num-cores=</code></b><i>cores</i></td>
  3.1274 +                                <td>
  3.1275 +                                    select the number of cores to use (processor
  3.1276 +                                    count or CPU count)
  3.1277 +                                </td>
  3.1278 +                            </tr>
  3.1279 +                            <tr>
  3.1280 +                                <td><b><code>--with-x=</code></b><i>path</i></td>
  3.1281 +                                <td>
  3.1282 +                                    select the location of the X11 and xrender files.
  3.1283 +                                    <br>
  3.1284 +                                    The
  3.1285 +                                    <a name="xrender">XRender Extension Headers</a>
  3.1286 +                                    are required for building the
  3.1287 +                                    OpenJDK on Solaris and Linux.
  3.1288 +                                    <br>
  3.1289 +                                    The Linux header files are usually available from a "Xrender"
  3.1290 +                                    development package, it's recommended that you try and use
  3.1291 +                                    the package provided by the particular distribution of Linux that
  3.1292 +                                    you are using.
  3.1293 +                                    <br>
  3.1294 +                                    The Solaris XRender header files is
  3.1295 +                                    included with the other X11 header files
  3.1296 +                                    in the package <strong>SFWxwinc</strong>
  3.1297 +                                    on new enough versions of
  3.1298 +                                    Solaris and will be installed in
  3.1299 +                                    <code>/usr/X11/include/X11/extensions/Xrender.h</code> or
  3.1300 +                                    <code>/usr/openwin/share/include/X11/extensions/Xrender.h</code>
  3.1301 +                                </td>
  3.1302 +                            </tr>
  3.1303 +                        </tbody>
  3.1304 +                    </table>
  3.1305 +                </blockquote>
  3.1306 +
  3.1307              </blockquote>
  3.1308 -            <h4>Fedora 11</h4>
  3.1309 -            <p>
  3.1310 +
  3.1311 +            <!-- ====================================================== -->
  3.1312 +            <hr>
  3.1313 +            <h3><a name="make">Make</a></h3>
  3.1314              <blockquote>
  3.1315 -                After installing <a href="http://fedoraproject.org">Fedora</a> 11
  3.1316 -              you need to install several build dependencies. The simplest
  3.1317 -              way to do it is to execute the following commands as user 
  3.1318 -                <tt>root</tt>:
  3.1319 -                <p/>
  3.1320 -                <code>yum-builddep java-1.6.0-openjdk</code>
  3.1321 -                <p/>
  3.1322 -                <code>yum install gcc gcc-c++</code>
  3.1323 -                <p/>
  3.1324 -              In addition, it's necessary to set a few environment variables for the build:
  3.1325 -
  3.1326 -                <p/>
  3.1327 -                <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code>
  3.1328 +                The basic invocation of the <code>make</code> utility
  3.1329 +                looks like:
  3.1330 +                <blockquote>
  3.1331 +                    <b><code>make all</code></b>
  3.1332 +                </blockquote>
  3.1333 +                This will start the build to the output directory containing the
  3.1334 +                "configuration" that was created by the <code>configure</code>
  3.1335 +                script. Run <code>make help</code> for more information on
  3.1336 +                the available targets.
  3.1337 +                <br>
  3.1338 +                There are some of the make targets that
  3.1339 +                are of general interest:
  3.1340 +                <table border="1">
  3.1341 +                    <thead>
  3.1342 +                        <tr>
  3.1343 +                            <th>Make Target</th>
  3.1344 +                            <th>Description</th>
  3.1345 +                        </tr>
  3.1346 +                    </thead>                   
  3.1347 +                    <tbody>
  3.1348 +                        <tr>
  3.1349 +                            <td><i>empty</i></td>
  3.1350 +                            <td>build everything but no images</td>
  3.1351 +                        </tr>
  3.1352 +                        <tr>
  3.1353 +                            <td><b><code>all</code></b></td>
  3.1354 +                            <td>build everything including images</td>
  3.1355 +                        </tr>
  3.1356 +                        <tr>
  3.1357 +                            <td><b><code>all-conf</code></b></td>
  3.1358 +                            <td>build all configurations</td>
  3.1359 +                        </tr>
  3.1360 +                        <tr>
  3.1361 +                            <td><b><code>images</code></b></td>
  3.1362 +                            <td>create complete j2sdk and j2re images</td>
  3.1363 +                        </tr>
  3.1364 +                        <tr>
  3.1365 +                            <td><b><code>install</code></b></td>
  3.1366 +                            <td>install the generated images locally, 
  3.1367 +                                typically in <code>/usr/local</code></td>
  3.1368 +                        </tr>
  3.1369 +                        <tr>
  3.1370 +                            <td><b><code>clean</code></b></td>
  3.1371 +                            <td>remove all files generated by make, 
  3.1372 +                                but not those generated by <code>configure</code></td>
  3.1373 +                        </tr>
  3.1374 +                        <tr>
  3.1375 +                            <td><b><code>dist-clean</code></b></td>
  3.1376 +                            <td>remove all files generated by both 
  3.1377 +                                and <code>configure</code> (basically killing the configuration)</td>
  3.1378 +                        </tr>
  3.1379 +                        <tr>
  3.1380 +                            <td><b><code>help</code></b></td>
  3.1381 +                            <td>give some help on using <code>make</code>, 
  3.1382 +                                including some interesting make targets</td>
  3.1383 +                        </tr>
  3.1384 +                    </tbody>
  3.1385 +                </table>
  3.1386              </blockquote>
  3.1387          </blockquote>
  3.1388 -        <!-- ------------------------------------------------------ -->
  3.1389 -        <h3><a name="centos">CentOS 5.5</a></h3>
  3.1390 +
  3.1391 +        <!-- ====================================================== -->
  3.1392 +        <hr>
  3.1393 +        <h2><a name="testing">Testing</a></h2>
  3.1394          <blockquote>
  3.1395 -            After installing
  3.1396 -            <a href="http://www.centos.org/">CentOS 5.5</a>
  3.1397 -            you need to make sure you have
  3.1398 -            the following Development bundles installed:
  3.1399 +            When the build is completed, you should see the generated
  3.1400 +            binaries and associated files in the <code>j2sdk-image</code> 
  3.1401 +            directory in the output directory. 
  3.1402 +            In particular, the 
  3.1403 +            <code>build/<i>*</i>/images/j2sdk-image/bin</code>
  3.1404 +            directory should contain executables for the 
  3.1405 +            OpenJDK tools and utilities for that configuration.
  3.1406 +            The testing tool <code>jtreg</code> will be needed
  3.1407 +            and can be found at:
  3.1408 +            <a href="http://openjdk.java.net/jtreg/" target="_blank">
  3.1409 +                the jtreg site</a>.
  3.1410 +            The provided regression tests in the repositories
  3.1411 +            can be run with the command:
  3.1412              <blockquote>
  3.1413 -                <ul>
  3.1414 -                    <li>Development Libraries</li>
  3.1415 -                    <li>Development Tools</li>
  3.1416 -                    <li>Java Development</li>
  3.1417 -                    <li>X Software Development (Including XFree86-devel)</li>
  3.1418 -                </ul>
  3.1419 -            </blockquote>
  3.1420 -            <p>
  3.1421 -                Plus the following packages:
  3.1422 -            <blockquote>
  3.1423 -                <ul>
  3.1424 -                    <li>cups devel: Cups Development Package</li>
  3.1425 -                    <li>alsa devel: Alsa Development Package</li>
  3.1426 -                    <li>ant: Ant Package</li>
  3.1427 -                    <li>Xi devel: libXi.so Development Package</li>
  3.1428 -                </ul>
  3.1429 -            </blockquote>
  3.1430 -            <p>
  3.1431 -                The freetype 2.3 packages don't seem to be available,
  3.1432 -                but the freetype 2.3 sources can be downloaded, built,
  3.1433 -                and installed easily enough from
  3.1434 -                <a href="http://downloads.sourceforge.net/freetype">
  3.1435 -                    the freetype site</a>.
  3.1436 -                Build and install with something like:
  3.1437 -            <blockquote>
  3.1438 -                <tt>./configure && make && sudo -u root make install</tt>
  3.1439 -            </blockquote>
  3.1440 -            <p>
  3.1441 -                Mercurial packages could not be found easily, but a Google
  3.1442 -                search should find ones, and they usually include Python if
  3.1443 -                it's needed.
  3.1444 -        </blockquote>
  3.1445 -        <!-- ------------------------------------------------------ -->
  3.1446 -        <h3><a name="debian">Debian</a></h3>
  3.1447 -        <blockquote>
  3.1448 -            <h4>Debian 5.0 (Lenny)</h4>
  3.1449 -            <p>
  3.1450 -            <blockquote>
  3.1451 -                After installing <a href="http://debian.org">Debian</a> 5 
  3.1452 -                you need to install several build dependencies. 
  3.1453 -                The simplest way to install the build dependencies is to 
  3.1454 -                execute the following commands as user <tt>root</tt>:
  3.1455 -                <p/>
  3.1456 -                <code>aptitude build-dep openjdk-6</code>
  3.1457 -                <p/>
  3.1458 -                <code>aptitude install openjdk-6-jdk libmotif-dev</code>
  3.1459 -                <p/>
  3.1460 -                In addition, it's necessary to set a few environment variables for the build:
  3.1461 -                <p/>
  3.1462 -                <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code>
  3.1463 +                <code><b>cd test &amp;&amp; make PRODUCT_HOME=`pwd`/../build/*/images/j2sdk-image all</b></code>
  3.1464              </blockquote>
  3.1465          </blockquote>
  3.1466 +
  3.1467          <!-- ====================================================== -->
  3.1468 -        <h3><a name="ubuntu">Ubuntu</a></h3>
  3.1469 +        <!-- ====================================================== -->
  3.1470 +        <!-- ====================================================== -->
  3.1471 +        <!-- ====================================================== -->
  3.1472 +        <!-- ====================================================== -->
  3.1473 +        <!-- ====================================================== -->
  3.1474 +        <!-- ====================================================== -->
  3.1475 +        <!-- ====================================================== -->
  3.1476 +        <!-- ====================================================== -->
  3.1477 +
  3.1478 +        <!-- ====================================================== -->
  3.1479 +        <hr>
  3.1480 +        <h2><a name="hints">Appendix A: Hints and Tips</a></h2>
  3.1481          <blockquote>
  3.1482 -            <h4>Ubuntu 8.04</h4>
  3.1483 -            <p>
  3.1484 +
  3.1485 +            <h3><a name="faq">FAQ</a></h3>
  3.1486              <blockquote>
  3.1487 -                After installing <a href="http://ubuntu.org">Ubuntu</a> 8.04 
  3.1488 -                you need to install several build dependencies. 
  3.1489 -                <p/>
  3.1490 -                First, you need to enable the universe repository in the 
  3.1491 -                Software Sources application and reload the repository 
  3.1492 -                information. The Software Sources application is available 
  3.1493 -                under the System/Administration menu. 
  3.1494 -                <p/>
  3.1495 -                The simplest way to install the build dependencies is to 
  3.1496 -                execute the following commands:
  3.1497 -                <p/>
  3.1498 -                <code>sudo aptitude build-dep openjdk-6</code>
  3.1499 -                <p/>
  3.1500 -                <code>sudo aptitude install openjdk-6-jdk</code>
  3.1501 -                <p/>
  3.1502 -                In addition, it's necessary to set a few environment variables for the build:
  3.1503 -                <p/>
  3.1504 -                <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code>
  3.1505 -            </blockquote>
  3.1506 -            <h4>Ubuntu 8.10</h4>
  3.1507 -            <p>
  3.1508 -            <blockquote>
  3.1509 -                After installing <a href="http://ubuntu.org">Ubuntu</a> 8.10 
  3.1510 -                you need to install several build dependencies. The simplest
  3.1511 -                way to do it is to execute the following commands:
  3.1512 -                <p/>
  3.1513 -                <code>sudo aptitude build-dep openjdk-6</code>
  3.1514 -                <p/>
  3.1515 -                <code>sudo aptitude install openjdk-6-jdk</code>
  3.1516 -                <p/>
  3.1517 -                In addition, it's necessary to set a few environment variables for the build:
  3.1518 -                <p/>
  3.1519 -                <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code>
  3.1520 -            </blockquote>
  3.1521 -            <h4>Ubuntu 9.04</h4>
  3.1522 -            <p>
  3.1523 -            <blockquote>
  3.1524 -                After installing <a href="http://ubuntu.org">Ubuntu</a> 9.04 
  3.1525 -                you need to install several build dependencies. The simplest
  3.1526 -                way to do it is to execute the following commands:
  3.1527 -                <p/>
  3.1528 -                <code>sudo aptitude build-dep openjdk-6</code>
  3.1529 -                <p/>
  3.1530 -                <code>sudo aptitude install openjdk-6-jdk</code>
  3.1531 -                <p/>
  3.1532 -                In addition, it's necessary to set a few environment variables for the build:
  3.1533 -                <p/>
  3.1534 -                <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code>
  3.1535 -            </blockquote>
  3.1536 -        </blockquote>
  3.1537 -        <!-- ====================================================== -->
  3.1538 -        <h3><a name="opensuse">OpenSUSE</a></h3>
  3.1539 -        <blockquote>
  3.1540 -            <h4>OpenSUSE 11.1</h4>
  3.1541 -            <p>
  3.1542 -            <blockquote>
  3.1543 -                After installing <a href="http://opensuse.org">OpenSUSE</a> 11.1 
  3.1544 -                you need to install several build dependencies. 
  3.1545 -                The simplest way to install the build dependencies is to 
  3.1546 -                execute the following commands:
  3.1547 -                <p/>
  3.1548 -                <code>sudo zypper source-install -d java-1_6_0-openjdk</code>
  3.1549 -                <p/>
  3.1550 -                <code>sudo zypper install make</code>
  3.1551 -                <p/>
  3.1552 -                In addition, it is necessary to set a few environment variables for the build:
  3.1553 -                <p/>
  3.1554 -                <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code>
  3.1555 -                <p/>
  3.1556 -                Finally, you need to unset the <code>JAVA_HOME</code> environment variable:
  3.1557 -                <p/>
  3.1558 -                <code>export -n JAVA_HOME</code>
  3.1559 -            </blockquote>
  3.1560 -        </blockquote>
  3.1561 -        <!-- ====================================================== -->
  3.1562 -        <h3><a name="mandriva">Mandriva</a></h3>
  3.1563 -        <blockquote>
  3.1564 -            <h4>Mandriva Linux One 2009 Spring</h4>
  3.1565 -            <p>
  3.1566 -            <blockquote>
  3.1567 -                After installing <a href="http://mandriva.org">Mandriva</a> Linux One 2009 Spring 
  3.1568 -                you need to install several build dependencies. 
  3.1569 -                The simplest way to install the build dependencies is to 
  3.1570 -                execute the following commands as user <tt>root</tt>:
  3.1571 -                <p/>
  3.1572 -                <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>
  3.1573 -                <p/>
  3.1574 -                In addition, it is necessary to set a few environment variables for the build:
  3.1575 -                <p/>
  3.1576 -                <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code>
  3.1577 -            </blockquote>
  3.1578 -        </blockquote>
  3.1579 -        <!-- ====================================================== -->
  3.1580 -        <h3><a name="opensolaris">OpenSolaris</a></h3>
  3.1581 -        <blockquote>
  3.1582 -            <h4>OpenSolaris 2009.06</h4>
  3.1583 -            <p>
  3.1584 -            <blockquote>
  3.1585 -                After installing <a href="http://opensolaris.org">OpenSolaris</a> 2009.06 
  3.1586 -                you need to install several build dependencies. 
  3.1587 -                The simplest way to install the build dependencies is to 
  3.1588 -                execute the following commands:
  3.1589 -                <p/>
  3.1590 -                <code>pfexec pkg install SUNWgmake SUNWj6dev SUNWant sunstudioexpress SUNWcups SUNWzip SUNWunzip SUNWxwhl SUNWxorg-headers SUNWaudh SUNWfreetype2</code>
  3.1591 -                <p/>
  3.1592 -                In addition, it is necessary to set a few environment variables for the build:
  3.1593 -                <p/>
  3.1594 -                <code>export LANG=C ALT_COMPILER_PATH=/opt/SunStudioExpress/bin/ ALT_CUPS_HEADERS_PATH=/usr/include/</code>
  3.1595 -                <p/>
  3.1596 -                Finally, you need to make sure that the build process can find the Sun Studio compilers:
  3.1597 -                <p/>
  3.1598 -                <code>export PATH=$PATH:/opt/SunStudioExpress/bin/</code>
  3.1599 -            </blockquote>
  3.1600 -        </blockquote>
  3.1601 -        <!-- ------------------------------------------------------ -->  
  3.1602 -        <hr>
  3.1603 -        <h2><a name="directories">Source Directory Structure</a></h2>
  3.1604 -        <blockquote>
  3.1605 -            <p>
  3.1606 -                The source code for the OpenJDK is delivered in a set of
  3.1607 -                directories:
  3.1608 -                <tt>hotspot</tt>,
  3.1609 -                <tt>langtools</tt>,
  3.1610 -                <tt>corba</tt>,
  3.1611 -                <tt>jaxws</tt>,
  3.1612 -                <tt>jaxp</tt>,
  3.1613 -                and
  3.1614 -                <tt>jdk</tt>.
  3.1615 -                The <tt>hotspot</tt> directory contains the source code and make
  3.1616 -                files for building the OpenJDK Hotspot Virtual Machine.
  3.1617 -                The <tt>langtools</tt> directory contains the source code and make
  3.1618 -                files for building the OpenJDK javac and language tools.
  3.1619 -                The <tt>corba</tt> directory contains the source code and make
  3.1620 -                files for building the OpenJDK Corba files.
  3.1621 -                The <tt>jaxws</tt> directory contains the source code and make
  3.1622 -                files for building the OpenJDK JAXWS files.
  3.1623 -                The <tt>jaxp</tt> directory contains the source code and make
  3.1624 -                files for building the OpenJDK JAXP files.
  3.1625 -                The <tt>jdk</tt> directory contains the source code and make files for
  3.1626 -                building the OpenJDK runtime libraries and misc files.
  3.1627 -                The top level <tt>Makefile</tt>
  3.1628 -                is used to build the entire OpenJDK.
  3.1629  
  3.1630 -            <h3><a name="drops">Managing the Source Drops</a></h3>
  3.1631 -            <blockquote>
  3.1632                  <p>
  3.1633 -                    The repositories <tt>jaxp</tt> and <tt>jaxws</tt> actually
  3.1634 -                    do not contain the sources for JAXP or JAX-WS.
  3.1635 -                    These products have their own open source procedures at their
  3.1636 -                    <a href="http://jaxp.java.net/">JAXP</a> and
  3.1637 -                    <a href="http://jax-ws.java.net/">JAX-WS</a> home pages.
  3.1638 -                    The OpenJDK project does need access to these sources to build
  3.1639 -                    a complete JDK image because JAXP and JAX-WS are part of the JDK.
  3.1640 -                    The current process for delivery of the JAXP and JAX-WS sources
  3.1641 -                    involves so called "source drop bundles" downloaded from a public
  3.1642 -                    website.
  3.1643 -                    There are many reasons for this current mechanism, and it is
  3.1644 -                    understood that this is not ideal for the open source community.
  3.1645 -                    It is possible this process could change in the future.
  3.1646 +                    <b>Q:</b> The <code>configure</code> file looks horrible! 
  3.1647 +                    How are you going to edit it?
  3.1648                      <br>
  3.1649 -                    <b>NOTE:</b> The <a href="http://download.java.net/openjdk/jdk8/">
  3.1650 -                        Complete OpenJDK Source Bundles</a> <u>will</u> contain the JAXP and
  3.1651 -                    JAX-WS sources.
  3.1652 +                    <b>A:</b> The <code>configure</code> file is generated (think
  3.1653 +                    "compiled") by the autoconf tools. The source code is
  3.1654 +                    in <code>configure.ac</code> various .m4 files in common/autoconf,
  3.1655 +                    which are
  3.1656 +                    much more readable.
  3.1657                  </p>
  3.1658  
  3.1659 -                <h4><a name="dropcreation">Creation of New Source Drop Bundles</a></h4>
  3.1660 +                <p>
  3.1661 +                    <b>Q:</b> 
  3.1662 +                    Why is the <code>configure</code> file checked in, 
  3.1663 +                    if it is generated?
  3.1664 +                    <br>
  3.1665 +                    <b>A:</b> 
  3.1666 +                    If it was not generated, every user would need to have the autoconf 
  3.1667 +                    tools installed, and re-generate the <code>configure</code> file
  3.1668 +                    as the first step. 
  3.1669 +                    Our goal is to minimize the work needed to be done by the user 
  3.1670 +                    to start building OpenJDK, and to minimize
  3.1671 +                    the number of external dependencies required.
  3.1672 +                </p>
  3.1673 +
  3.1674 +                <p>
  3.1675 +                    <b>Q:</b>
  3.1676 +                    Do you require a specific version of autoconf for regenerating
  3.1677 +                    <code>configure</code>?
  3.1678 +                    <br>
  3.1679 +                    <b>A:</b>
  3.1680 +                    Currently, no, but this will likely be the case when things have 
  3.1681 +                    settled down a bit more. (The reason for this is to avoid
  3.1682 +                    large spurious changes in <code>configure</code> 
  3.1683 +                    in commits that made small changes to <code>configure.ac</code>).
  3.1684 +                </p>
  3.1685 +
  3.1686 +                <p>
  3.1687 +                    <b>Q:</b> 
  3.1688 +                    What are the files in <code>common/makefiles/support/*</code> for? 
  3.1689 +                    They look like gibberish.
  3.1690 +                    <br>
  3.1691 +                    <b>A:</b>
  3.1692 +                    They are a somewhat ugly hack to compensate for command line length
  3.1693 +                    limitations on certain platforms (Windows, Solaris).
  3.1694 +                    Due to a combination of limitations in make and the shell, 
  3.1695 +                    command lines containing too many files will not work properly. 
  3.1696 +                    These
  3.1697 +                    helper files are part of an elaborate hack that will compress the
  3.1698 +                    command line in the makefile and then uncompress it safely. 
  3.1699 +                    We're
  3.1700 +                    not proud of it, but it does fix the problem. 
  3.1701 +                    If you have any better suggestions, we're all ears! :-)
  3.1702 +                </p>
  3.1703 +
  3.1704 +                <p>
  3.1705 +                    <b>Q:</b> 
  3.1706 +                    I want to see the output of the commands that make runs, 
  3.1707 +                    like in the old build. How do I do that?
  3.1708 +                    <br>
  3.1709 +                    <b>A:</b> 
  3.1710 +                    You specify the <code>LOG</code> variable to make. There are
  3.1711 +                    several log levels:
  3.1712 +                </p>
  3.1713                  <blockquote>
  3.1714 -                    <ol>
  3.1715 +                    <ul>
  3.1716                          <li>
  3.1717 -                            The JAXP or JAX-WS team prepares a new zip bundle,
  3.1718 -                            places a copy in a public download area on java.net,
  3.1719 -                            sends us a link and a list of CRs (Change Request Numbers).
  3.1720 -                            The older download bundles should not be deleted.
  3.1721 -                            It is the responsibility of the JAXP and JAX-WS team to
  3.1722 -                            place the proper GPL legal notices on the sources
  3.1723 -                            and do any filtering or java re-packaging for the
  3.1724 -                            OpenJDK instances of these classes.
  3.1725 +                            <b><code>warn</code></b> &mdash; Default and very quiet.
  3.1726                          </li>
  3.1727                          <li>
  3.1728 -                            The OpenJDK team copies this new bundle into shared
  3.1729 -                            area (e.g. <tt>/java/devtools/share/jdk8-drops</tt>).
  3.1730 -                            Older bundles are never deleted so we retain the history.
  3.1731 +                            <b><code>info</code></b> &mdash; Shows more progress information
  3.1732 +                            than warn.
  3.1733                          </li>
  3.1734                          <li>
  3.1735 -                            The OpenJDK team edits the ant property file
  3.1736 -                            <tt>jaxp/jaxp.properties</tt> or
  3.1737 -                            <tt>jaxws/jaxws.properties</tt> to update the
  3.1738 -                            base URL, the zip bundle name, and the MD5 checksum
  3.1739 -                            of the zip bundle
  3.1740 -                            (on Solaris: <tt>sum -c md5 <i>bundlename</i></tt>)
  3.1741 +                            <b><code>debug</code></b> &mdash; Echos all command lines and
  3.1742 +                            prints all macro calls for compilation definitions.
  3.1743                          </li>
  3.1744                          <li>
  3.1745 -                            OpenJDK team reviews and commits those changes with the
  3.1746 -                            given CRs.
  3.1747 +                            <b><code>trace</code></b> &mdash; Echos all $(shell) command
  3.1748 +                            lines as well.
  3.1749                          </li>
  3.1750 -                    </ol>
  3.1751 +                    </ul>
  3.1752                  </blockquote>
  3.1753  
  3.1754 -                <h4><a name="dropusage">Using Source Drop Bundles</a></h4>
  3.1755 +                <p>
  3.1756 +                    <b>Q:</b> 
  3.1757 +                    When do I have to re-run <code>configure</code>?
  3.1758 +                    <br>
  3.1759 +                    <b>A:</b> 
  3.1760 +                    Normally you will run <code>configure</code> only once for creating a 
  3.1761 +                    configuration. 
  3.1762 +                    You need to re-run configuration only if you want to change any
  3.1763 +                    configuration options, 
  3.1764 +                    or if you pull down changes to the <code>configure</code> script.
  3.1765 +                </p>
  3.1766 +
  3.1767 +                <p>
  3.1768 +                    <b>Q:</b> 
  3.1769 +                    I have added a new source file. Do I need to modify the makefiles?
  3.1770 +                    <br>
  3.1771 +                    <b>A:</b> 
  3.1772 +                    Normally, no. If you want to create e.g. a new native
  3.1773 +                    library, 
  3.1774 +                    you will need to modify the makefiles. But for normal file
  3.1775 +                    additions or removals, no changes are needed. There are certan
  3.1776 +                    exceptions for some native libraries where the source files are spread
  3.1777 +                    over many directories which also contain courses for other
  3.1778 +                    libraries. In these cases it was simply easier to create include lists
  3.1779 +                    rather thane excludes.
  3.1780 +                </p>
  3.1781 +
  3.1782 +                <p>
  3.1783 +                    <b>Q:</b>
  3.1784 +                    When I run <code>configure --help</code>, I see many strange options, 
  3.1785 +                    like <code>--dvidir</code>. What is this?
  3.1786 +                    <br>
  3.1787 +                    <b>A:</b> 
  3.1788 +                    Configure provides a slew of options by default, to all projects 
  3.1789 +                    that use autoconf. Most of them are not used in OpenJDK,
  3.1790 +                    so you can safely ignore them. To list only OpenJDK specific features, 
  3.1791 +                    use <code>configure --help=short</code> instead.
  3.1792 +                </p>
  3.1793 +
  3.1794 +                <p>
  3.1795 +                    <b>Q:</b> 
  3.1796 +                    <code>configure</code> provides OpenJDK-specific features such as
  3.1797 +                    <code>--enable-jigsaw</code> or <code>--with-builddeps-server</code>
  3.1798 +                    that are not described in this document. What about those?
  3.1799 +                    <br>
  3.1800 +                    <b>A:</b>
  3.1801 +                    Try them out if you like! But be aware that most of these are 
  3.1802 +                    experimental features. 
  3.1803 +                    Many of them don't do anything at all at the moment; the option 
  3.1804 +                    is just a placeholder. Other depends on
  3.1805 +                    pieces of code or infrastructure that is currently 
  3.1806 +                    not ready for prime time.
  3.1807 +                </p>
  3.1808 +
  3.1809 +                <p>
  3.1810 +                    <b>Q:</b> 
  3.1811 +                    How will you make sure you don't break anything?
  3.1812 +                    <br>
  3.1813 +                    <b>A:</b> 
  3.1814 +                    We have a script that compares the result of the new build system
  3.1815 +                    with the result of the old. For most part, we aim for (and achieve)
  3.1816 +                    byte-by-byte identical output. There are however technical issues 
  3.1817 +                    with e.g. native binaries, which might differ in a byte-by-byte 
  3.1818 +                    comparison, even
  3.1819 +                    when building twice with the old build system. 
  3.1820 +                    For these, we compare relevant aspects 
  3.1821 +                    (e.g. the symbol table and file size). 
  3.1822 +                    Note that we still don't have 100%
  3.1823 +                    equivalence, but we're close.
  3.1824 +                </p>
  3.1825 +
  3.1826 +                <p>
  3.1827 +                    <b>Q:</b> 
  3.1828 +                    I noticed this thing X in the build that looks very broken by design. 
  3.1829 +                    Why don't you fix it?
  3.1830 +                    <br>
  3.1831 +                    <b>A:</b>
  3.1832 +                    Our goal is to produce a build output that is as close as 
  3.1833 +                    technically possible to the old build output. 
  3.1834 +                    If things were weird in the old build,
  3.1835 +                    they will be weird in the new build. 
  3.1836 +                    Often, things were weird before due to obscurity, 
  3.1837 +                    but in the new build system the weird stuff comes up to the surface.
  3.1838 +                    The plan is to attack these things at a later stage, 
  3.1839 +                    after the new build system is established.
  3.1840 +                </p>
  3.1841 +
  3.1842 +                <p>
  3.1843 +                    <b>Q:</b> 
  3.1844 +                    The code in the new build system is not that well-structured.
  3.1845 +                    Will you fix this?
  3.1846 +                    <br>
  3.1847 +                    <b>A:</b>
  3.1848 +                    Yes! The new build system has grown bit by bit as we converted 
  3.1849 +                    the old system. When all of the old build system is converted,
  3.1850 +                    we can take a step back and clean up the structure of the new build
  3.1851 +                    system. Some of this we plan to do before replacing the old build
  3.1852 +                    system and some will need to wait until after.
  3.1853 +                </p>
  3.1854 +
  3.1855 +                <p>
  3.1856 +                    <b>Q:</b> What is @GenerateNativeHeaders?
  3.1857 +                    <br>
  3.1858 +                    <b>A:</b> 
  3.1859 +                    To speed up compilation, we added a flag to javac which makes it 
  3.1860 +                    do the job of javah as well, as a by-product; that is, generating
  3.1861 +                    native .h header files. These files are only generated 
  3.1862 +                    if a class contains native methods. However, sometimes 
  3.1863 +                    a class contains no native method,
  3.1864 +                    but still contains constants that native code needs to use. 
  3.1865 +                    The new GenerateNativeHeaders annotation tells javac to
  3.1866 +                    force generation of a
  3.1867 +                    header file in these cases. (We don't want to generate 
  3.1868 +                    native headers for all classes that contains constants 
  3.1869 +                    but no native methods, since
  3.1870 +                    that would slow down the compilation process needlessly.)
  3.1871 +                </p>
  3.1872 +
  3.1873 +                <p>
  3.1874 +                    <b>Q:</b> 
  3.1875 +                    Is anything able to use the results of the new build's default make target?
  3.1876 +                    <br>
  3.1877 +                    <b>A:</b> 
  3.1878 +                    Yes, this is the minimal (or roughly minimal) 
  3.1879 +                    set of compiled output needed for a developer to actually 
  3.1880 +                    execute the newly built JDK. The idea is that in an incremental 
  3.1881 +                    development fashion, when doing a normal make, 
  3.1882 +                    you should only spend time recompiling what's changed 
  3.1883 +                    (making it purely incremental) and only do the work that's 
  3.1884 +                    needed to actually run and test your code.
  3.1885 +                    The packaging stuff that is part of the <code>images</code>
  3.1886 +                    target is not needed for a normal developer who wants to
  3.1887 +                    test his new code. Even if it's quite fast, it's still unnecessary. 
  3.1888 +                    We're targeting sub-second incremental rebuilds! ;-) 
  3.1889 +                    (Or, well, at least single-digit seconds...)
  3.1890 +                </p>
  3.1891 +
  3.1892 +                <p>
  3.1893 +                    <b>Q:</b>
  3.1894 +                    I usually set a specific environment variable when building, 
  3.1895 +                    but I can't find the equivalent in the new build. 
  3.1896 +                    What should I do?
  3.1897 +                    <br>
  3.1898 +                    <b>A:</b>
  3.1899 +                    It might very well be that we have missed to add support for
  3.1900 +                    an option that was actually used from outside the build system.
  3.1901 +                    Email us and we will
  3.1902 +                    add support for it!
  3.1903 +                </p>
  3.1904 +
  3.1905 +            </blockquote>
  3.1906 +
  3.1907 +            <h3><a name="performance">Build Performance Tips</a></h3>
  3.1908 +            <blockquote>
  3.1909 +
  3.1910 +                <p>Building OpenJDK requires a lot of horsepower. 
  3.1911 +                    Some of the build tools can be adjusted to utilize more or less
  3.1912 +                    of resources such as
  3.1913 +                    parallel threads and memory. 
  3.1914 +                    The <code>configure</code> script analyzes your system and selects reasonable 
  3.1915 +                    values for such options based on your hardware.
  3.1916 +                    If you encounter resource problems, such as out of memory conditions, 
  3.1917 +                    you can modify the detected values with:</p>
  3.1918 +
  3.1919 +                <ul>
  3.1920 +                    <li>
  3.1921 +                        <b><code>--with-num-cores</code></b> 
  3.1922 +                        &mdash; 
  3.1923 +                        number of cores in the build system,
  3.1924 +                        e.g. <code>--with-num-cores=8</code>
  3.1925 +                    </li>
  3.1926 +                    <li>
  3.1927 +                        <b><code>--with-memory-size</code></b> 
  3.1928 +                        &mdash; memory (in MB) available in the build system,
  3.1929 +                        e.g. <code>--with-memory-size=1024</code>
  3.1930 +                    </li>
  3.1931 +                </ul>
  3.1932 +
  3.1933 +                <p>It might also be necessary to specify the JVM arguments passed 
  3.1934 +                    to the Bootstrap JDK, using e.g.
  3.1935 +                    <code>--with-boot-jdk-jvmargs="-Xmx8G -enableassertions"</code>. 
  3.1936 +                    Doing this will override the default JVM arguments 
  3.1937 +                    passed to the Bootstrap JDK.</p>
  3.1938 +
  3.1939 +
  3.1940 +                <p>One of the top goals of the new build system is to improve the
  3.1941 +                    build performance and decrease the time needed to build. This will
  3.1942 +                    soon also apply to the java compilation when the Smart Javac wrapper
  3.1943 +                    is making its way into jdk8. It can be tried in the build-infra
  3.1944 +                    repository already. You are likely to find that the new build system
  3.1945 +                    is faster than the old one even without this feature.</p>
  3.1946 +
  3.1947 +                <p>At the end of a successful execution of <code>configure</code>, 
  3.1948 +                    you will get a performance summary, 
  3.1949 +                    indicating how well the build will perform. Here you will
  3.1950 +                    also get performance hints. 
  3.1951 +                    If you want to build fast, pay attention to those!</p>
  3.1952 +
  3.1953 +                <h4>Building with ccache</h4>
  3.1954 +
  3.1955 +                <p>A simple way to radically speed up compilation of native code
  3.1956 +                    (typically hotspot and native libraries in JDK) is to install
  3.1957 +                    ccache. This will cache and reuse prior compilation results, if the
  3.1958 +                    source code is unchanged. However, ccache versions prior to 3.1.4
  3.1959 +                    does not work correctly with the precompiled headers used in
  3.1960 +                    OpenJDK. So if your platform supports ccache at 3.1.4 or later, we
  3.1961 +                    highly recommend installing it. This is currently only supported on
  3.1962 +                    linux.</p> 
  3.1963 +
  3.1964 +                <h4>Building on local disk</h4>
  3.1965 +
  3.1966 +                <p>If you are using network shares, e.g. via NFS, for your source code, 
  3.1967 +                    make sure the build directory is situated on local disk. 
  3.1968 +                    The performance
  3.1969 +                    penalty is extremely high for building on a network share, 
  3.1970 +                    close to unusable.</p>
  3.1971 +
  3.1972 +                <h4>Building only one JVM</h4>
  3.1973 +
  3.1974 +                <p>The old build builds multiple JVMs on 32-bit systems (client and
  3.1975 +                    server; and on Windows kernel as well). In the new build we have
  3.1976 +                    changed this default to only build server when it's available. This
  3.1977 +                    improves build times for those not interested in multiple JVMs. To
  3.1978 +                    mimic the old behavior on platforms that support it, 
  3.1979 +                    use <code>--with-jvm-variants=client,server</code>.</p>
  3.1980 +
  3.1981 +                <h4>Selecting the number of cores to build on</h4>
  3.1982 +
  3.1983 +                <p>By default, <code>configure</code> will analyze your machine and run the make
  3.1984 +                    process in parallel with as many threads as you have cores. This
  3.1985 +                    behavior can be overridden, either "permanently" (on a <code>configure</code>
  3.1986 +                    basis) using <code>--with-num-cores=N</code> or for a single build
  3.1987 +                    only (on a make basis), using <code>make JOBS=N</code>.</p>
  3.1988 +
  3.1989 +                <p>If you want to make a slower build just this time, to save some CPU
  3.1990 +                    power for other processes, you can run
  3.1991 +                    e.g. <code>make JOBS=2</code>. This will force the makefiles
  3.1992 +                    to only run 2 parallel processes, or even <code>make JOBS=1</code>
  3.1993 +                    which will disable parallelism.</p>
  3.1994 +
  3.1995 +                <p>If you want to have it the other way round, namely having slow 
  3.1996 +                    builds default and override with fast if you're
  3.1997 +                    impatient, you should call <code>configure</code> with 
  3.1998 +                    <code>--with-num-cores=2</code>, making 2 the default. 
  3.1999 +                    If you want to run with more
  3.2000 +                    cores, run <code>make JOBS=8</code></p>
  3.2001 +
  3.2002 +            </blockquote>
  3.2003 +
  3.2004 +            <h3><a name="troubleshooting">Troubleshooting</a></h3>
  3.2005 +            <blockquote>
  3.2006 +
  3.2007 +                <h4>Solving build problems</h4>
  3.2008 +
  3.2009                  <blockquote>
  3.2010 -                    <p>
  3.2011 -                        The ant scripts that build <tt>jaxp</tt> and <tt>jaxws</tt>
  3.2012 -                        will attempt to locate these zip bundles from the directory
  3.2013 -                        in the environment variable
  3.2014 -                        <tt><a href="#ALT_DROPS_DIR">ALT_DROPS_DIR</a></tt>.
  3.2015 -                        The checksums protect from getting the wrong, corrupted, or
  3.2016 -                        improperly modified sources.
  3.2017 -                        Once the sources are made available, the population will not
  3.2018 -                        happen again unless a <tt>make clobber</tt> is requested
  3.2019 -                        or the <tt>jaxp/drop/</tt> or <tt>jaxws/drop/</tt>
  3.2020 -                        directory is explicitly deleted.
  3.2021 -                        <br>
  3.2022 -                        <b>NOTE:</b> The default Makefile and ant script behavior
  3.2023 -                        is to NOT download these bundles from the public http site.
  3.2024 -                        In general, doing downloads
  3.2025 -                        during the build process is not advised, it creates too much
  3.2026 -                        unpredictability in the build process.
  3.2027 -                        However, you can use <tt>make ALLOW_DOWNLOADS=true</tt> to
  3.2028 -                        tell the ant script that the download of the zip bundle is
  3.2029 -                        acceptable.
  3.2030 -                    </p>
  3.2031 -                    <p>
  3.2032 -                        The recommended procedure for keeping a cache of these
  3.2033 -                        source bundles would be to download them once, place them
  3.2034 -                        in a directory outside the repositories, and then set
  3.2035 -                        <tt><a href="#ALT_DROPS_DIR">ALT_DROPS_DIR</a></tt> to refer
  3.2036 -                        to that directory.
  3.2037 -                        These drop bundles do change occasionally, so the newer
  3.2038 -                        bundles may need to be added to this area from time to time.
  3.2039 -                    </p>
  3.2040 +                    If the build fails (and it's not due to a compilation error in 
  3.2041 +                    a source file you've changed), the first thing you should do
  3.2042 +                    is to re-run the build with more verbosity. 
  3.2043 +                    Do this by adding <code>LOG=debug</code> to your make command line.
  3.2044 +                    <br>
  3.2045 +                    The build log (with both stdout and stderr intermingled,
  3.2046 +                    basically the same as you see on your console) can be found as
  3.2047 +                    <code>build.log</code> in your build directory.
  3.2048 +                    <br>
  3.2049 +                    You can ask for help on build problems with the new build system 
  3.2050 +                    on either the
  3.2051 +                    <a href="http://mail.openjdk.java.net/mailman/listinfo/build-dev">
  3.2052 +                        build-dev</a>
  3.2053 +                    or the
  3.2054 +                    <a href="http://mail.openjdk.java.net/mailman/listinfo/build-infra-dev">
  3.2055 +                        build-infra-dev</a>
  3.2056 +                    mailing lists. Please include the relevant parts
  3.2057 +                    of the build log.
  3.2058 +                    <br>
  3.2059 +                    A build can fail for any number of reasons. 
  3.2060 +                    Most failures
  3.2061 +                    are a result of trying to build in an environment in which all the
  3.2062 +                    pre-build requirements have not been met. 
  3.2063 +                    The first step in
  3.2064 +                    troubleshooting a build failure is to recheck that you have satisfied
  3.2065 +                    all the pre-build requirements for your platform.
  3.2066 +                    Scanning the <code>configure</code> log is a good first step, making
  3.2067 +                    sure that what it found makes sense for your system.
  3.2068 +                    Look for strange error messages or any difficulties that
  3.2069 +                    <code>configure</code> had in finding things.
  3.2070 +                    <br>
  3.2071 +                    Some of the more common problems with builds are briefly
  3.2072 +                    described
  3.2073 +                    below, with suggestions for remedies.
  3.2074 +                    <ul>
  3.2075 +                        <li>
  3.2076 +                            <b>Corrupted Bundles on Windows:</b>
  3.2077 +                            <blockquote>
  3.2078 +                                Some virus scanning software has been known to 
  3.2079 +                                corrupt the
  3.2080 +                                downloading of zip bundles.
  3.2081 +                                It may be necessary to disable the 'on access' or 
  3.2082 +                                'real time'
  3.2083 +                                virus scanning features to prevent this corruption.
  3.2084 +                                This type of "real time" virus scanning can also 
  3.2085 +                                slow down the
  3.2086 +                                build process significantly.
  3.2087 +                                Temporarily disabling the feature, or excluding the build
  3.2088 +                                output directory may be necessary to get correct and
  3.2089 +                                faster builds.
  3.2090 +                            </blockquote>
  3.2091 +                        </li>
  3.2092 +                        <li>
  3.2093 +                            <b>Slow Builds:</b>
  3.2094 +                            <blockquote>
  3.2095 +                                If your build machine seems to be overloaded from too many
  3.2096 +                                simultaneous C++ compiles, try setting the 
  3.2097 +                                <code>JOBS=1</code> on the <code>make</code> command line.
  3.2098 +                                Then try increasing the count slowly to an acceptable
  3.2099 +                                level for your system. Also:
  3.2100 +                                <blockquote>
  3.2101 +                                    Creating the javadocs can be very slow, 
  3.2102 +                                    if you are running
  3.2103 +                                    javadoc, consider skipping that step.
  3.2104 +                                    <br>
  3.2105 +                                    Faster CPUs, more RAM, and a faster DISK usually helps.
  3.2106 +                                    The VM build tends to be CPU intensive 
  3.2107 +                                    (many C++ compiles),
  3.2108 +                                    and the rest of the JDK will often be disk intensive.
  3.2109 +                                    <br>
  3.2110 +                                    Faster compiles are possible using a tool called
  3.2111 +                                    <a href="http://ccache.samba.org/" target="_blank">ccache</a>.
  3.2112 +                                </blockquote>
  3.2113 +                            </blockquote>
  3.2114 +                        </li>
  3.2115 +                        <li>
  3.2116 +                            <b>File time issues:</b>
  3.2117 +                            <blockquote>
  3.2118 +                                If you see warnings that refer to file time stamps, e.g.
  3.2119 +                                <blockquote>
  3.2120 +                                    <i>Warning message:</i><code> 
  3.2121 +                                        File `xxx' has modification time in
  3.2122 +                                        the future.</code>
  3.2123 +                                    <br>
  3.2124 +                                    <i>Warning message:</i> <code> Clock skew detected. 
  3.2125 +                                        Your build may
  3.2126 +                                        be incomplete.</code>
  3.2127 +                                </blockquote>
  3.2128 +                                These warnings can occur when the clock on the build 
  3.2129 +                                machine is out of
  3.2130 +                                sync with the timestamps on the source files. 
  3.2131 +                                Other errors, apparently
  3.2132 +                                unrelated but in fact caused by the clock skew, 
  3.2133 +                                can occur along with
  3.2134 +                                the clock skew warnings. 
  3.2135 +                                These secondary errors may tend to obscure the
  3.2136 +                                fact that the true root cause of the problem 
  3.2137 +                                is an out-of-sync clock.
  3.2138 +                                <p>
  3.2139 +                                    If you see these warnings, reset the clock on the
  3.2140 +                                    build
  3.2141 +                                    machine, run "<code><i>gmake</i> clobber</code>" 
  3.2142 +                                    or delete the directory
  3.2143 +                                    containing the build output, and restart the 
  3.2144 +                                    build from the beginning.
  3.2145 +                            </blockquote>
  3.2146 +                        </li>
  3.2147 +                        <li>
  3.2148 +                            <b>Error message: 
  3.2149 +                                <code>Trouble writing out table to disk</code></b>
  3.2150 +                            <blockquote>
  3.2151 +                                Increase the amount of swap space on your build machine.
  3.2152 +                                This  could be caused by overloading the system and
  3.2153 +                                it may be necessary to use:
  3.2154 +                                <blockquote>
  3.2155 +                                    <code>make JOBS=1</code>
  3.2156 +                                </blockquote>
  3.2157 +                                to reduce the load on the system.
  3.2158 +                            </blockquote>
  3.2159 +                        </li>
  3.2160 +                        <li>
  3.2161 +                            <b>Error Message: 
  3.2162 +                                <code>libstdc++ not found:</code></b>
  3.2163 +                            <blockquote>
  3.2164 +                                This is caused by a missing libstdc++.a library.
  3.2165 +                                This is installed as part of a specific package
  3.2166 +                                (e.g. libstdc++.so.devel.386).
  3.2167 +                                By default some 64-bit Linux versions (e.g. Fedora)
  3.2168 +                                only install the 64-bit version of the libstdc++ package.
  3.2169 +                                Various parts of the JDK build require a static
  3.2170 +                                link of the C++ runtime libraries to allow for maximum
  3.2171 +                                portability of the built images.
  3.2172 +                            </blockquote>
  3.2173 +                        </li>
  3.2174 +                        <li>
  3.2175 +                            <b>Linux Error Message:
  3.2176 +                                <code>cannot restore segment prot after reloc</code></b>
  3.2177 +                            <blockquote>
  3.2178 +                                This is probably an issue with SELinux (See
  3.2179 +                                <a href="http://en.wikipedia.org/wiki/SELinux" target="_blank">
  3.2180 +                                    http://en.wikipedia.org/wiki/SELinux</a>).
  3.2181 +                                Parts of the VM is built without the <code>-fPIC</code> for
  3.2182 +                                performance reasons.
  3.2183 +                                <p>
  3.2184 +                                    To completely disable SELinux:
  3.2185 +                                <ol>
  3.2186 +                                    <li><code>$ su root</code></li>
  3.2187 +                                    <li><code># system-config-securitylevel</code></li>
  3.2188 +                                    <li><code>In the window that appears, select the SELinux tab</code></li>
  3.2189 +                                    <li><code>Disable SELinux</code></li>
  3.2190 +                                </ol>
  3.2191 +                                <p>
  3.2192 +                                    Alternatively, instead of completely disabling it you could
  3.2193 +                                    disable just this one check.
  3.2194 +                                <ol>
  3.2195 +                                    <li>Select System->Administration->SELinux Management</li>
  3.2196 +                                    <li>In the SELinux Management Tool which appears,
  3.2197 +                                        select "Boolean" from the menu on the left</li>
  3.2198 +                                    <li>Expand the "Memory Protection" group</li>
  3.2199 +                                    <li>Check the first item, labeled
  3.2200 +                                        "Allow all unconfined executables to use 
  3.2201 +                                        libraries requiring text relocation ..."</li>
  3.2202 +                                </ol>
  3.2203 +                            </blockquote>
  3.2204 +                        </li>
  3.2205 +                        <li>
  3.2206 +                            <b>Windows Error Messages:</b>
  3.2207 +                            <br>
  3.2208 +                            <code>*** fatal error - couldn't allocate heap, ... </code>
  3.2209 +                            <br>
  3.2210 +                            <code>rm fails with "Directory not empty"</code>
  3.2211 +                            <br>
  3.2212 +                            <code>unzip fails with "cannot create ... Permission denied"</code>
  3.2213 +                            <br>
  3.2214 +                            <code>unzip fails with "cannot create ... Error 50"</code>
  3.2215 +                            <br>
  3.2216 +                            <blockquote>
  3.2217 +                                The CYGWIN software can conflict with other non-CYGWIN
  3.2218 +                                software. See the CYGWIN FAQ section on
  3.2219 +                                <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank">
  3.2220 +                                    BLODA (applications that interfere with CYGWIN)</a>.
  3.2221 +                            </blockquote>
  3.2222 +                        </li>
  3.2223 +                        <li>
  3.2224 +                            <b>Windows Error Message: <code>spawn failed</code></b>
  3.2225 +                            <blockquote>
  3.2226 +                                Try rebooting the system, or there could be some kind of
  3.2227 +                                issue with the disk or disk partition being used.
  3.2228 +                                Sometimes it comes with a "Permission Denied" message.
  3.2229 +                            </blockquote>
  3.2230 +                        </li>
  3.2231 +                    </ul>
  3.2232                  </blockquote>
  3.2233 -            </blockquote>
  3.2234 -        </blockquote>
  3.2235 -        <!-- ------------------------------------------------------ -->
  3.2236 +
  3.2237 +            </blockquote> <!-- Troubleshooting -->
  3.2238 +
  3.2239 +        </blockquote> <!-- Appendix A -->
  3.2240 +
  3.2241 +        <!-- ====================================================== -->
  3.2242          <hr>
  3.2243 -        <h2><a name="building">Build Information</a></h2>
  3.2244 +        <h2><a name="gmake">Appendix B: GNU make</a></h2>
  3.2245          <blockquote>
  3.2246 -            Building the OpenJDK
  3.2247 -            is done with a <a href="#gmake">GNU <tt>make</tt></a> command line
  3.2248 -            and various
  3.2249 -            environment or make variable settings that direct the makefile rules
  3.2250 -            to where various components have been installed.
  3.2251 -            Where possible the makefiles will attempt to located the various
  3.2252 -            components in the default locations or any component specific 
  3.2253 -            variable settings.
  3.2254 -            When the normal defaults fail or components cannot be found,
  3.2255 -            the various
  3.2256 -            <tt>ALT_*</tt> variables (alternates)
  3.2257 -            can be used to help the makefiles locate components.
  3.2258 -            <p>
  3.2259 -                Refer to the bash/sh/ksh setup file
  3.2260 -                <tt>jdk/make/jdk_generic_profile.sh</tt>
  3.2261 -                if you need help in setting up your environment variables.
  3.2262 -                A build could be as simple as:
  3.2263 -            <blockquote>
  3.2264 -                <pre><tt>
  3.2265 -                bash
  3.2266 -                . jdk/make/jdk_generic_profile.sh
  3.2267 -                <a href="#gmake"><tt>make</tt></a> sanity &amp;&amp; <a href="#gmake"><tt>make</tt></a>
  3.2268 -                </tt></pre>
  3.2269 -            </blockquote>
  3.2270 -            <p>
  3.2271 -                Of course ksh or sh would work too.
  3.2272 -                But some customization will probably be necessary.
  3.2273 -                The <tt>sanity</tt> rule will make some basic checks on build
  3.2274 -                dependencies and generate appropriate warning messages
  3.2275 -                regarding missing, out of date, or newer than expected components
  3.2276 -                found on your system.
  3.2277 -        </blockquote>
  3.2278 -        <!-- ------------------------------------------------------ -->
  3.2279 -        <hr>
  3.2280 -        <h3><a name="gmake">GNU make (<tt><i>gmake</i></tt>)</a></h3>
  3.2281 -        <blockquote>
  3.2282 +
  3.2283              The Makefiles in the OpenJDK are only valid when used with the 
  3.2284 -            GNU version of the utility command <tt>make</tt>
  3.2285 -            (<tt><i>gmake</i></tt>).
  3.2286 +            GNU version of the utility command <code>make</code>
  3.2287 +            (usually called <code>gmake</code> on Solaris).
  3.2288              A few notes about using GNU make:
  3.2289              <ul>
  3.2290                  <li>
  3.2291                      You need GNU make version 3.81 or newer.
  3.2292 +                    If the GNU make utility on your systems is not
  3.2293 +                    3.81 or newer,
  3.2294 +                    see <a href="#buildgmake">"Building GNU make"</a>.
  3.2295                  </li>
  3.2296                  <li>
  3.2297 -                    Place the location of the GNU make binary in the <tt>PATH</tt>. 
  3.2298 -                </li>
  3.2299 -                <li>
  3.2300 -                    <strong>Linux:</strong>
  3.2301 -                    The <tt>/usr/bin/make</tt> should be 3.81 or newer
  3.2302 -                    and should work fine for you.
  3.2303 -                    If this version is not 3.81 or newer,
  3.2304 -                    see the <a href="#buildgmake">"Building GNU make"</a> section.
  3.2305 +                    Place the location of the GNU make binary in the
  3.2306 +                    <code>PATH</code>. 
  3.2307                  </li>
  3.2308                  <li>
  3.2309                      <strong>Solaris:</strong>
  3.2310 -                    Do NOT use <tt>/usr/bin/make</tt> on Solaris.
  3.2311 +                    Do NOT use <code>/usr/bin/make</code> on Solaris.
  3.2312                      If your Solaris system has the software
  3.2313 -                    from the Solaris Companion CD installed, 
  3.2314 -                    you should try and use <tt>gmake</tt>
  3.2315 -                    which will be located in either the <tt>/opt/sfw/bin</tt> or 
  3.2316 -                    <tt>/usr/sfw/bin</tt> directory.
  3.2317 -                    In more recent versions of Solaris GNU make might be found
  3.2318 -                    at <tt>/usr/bin/gmake</tt>.<br>
  3.2319 -                    <b>NOTE:</b> It is very likely that this <tt>gmake</tt>
  3.2320 -                    could be 3.80, you need 3.81, in which case,
  3.2321 -                    see the <a href="#buildgmake">"Building GNU make"</a> section.
  3.2322 +                    from the Solaris Developer Companion CD installed, 
  3.2323 +                    you should try and use <code>gmake</code>
  3.2324 +                    which will be located in either the
  3.2325 +                    <code>/usr/bin</code>, <code>/opt/sfw/bin</code> or 
  3.2326 +                    <code>/usr/sfw/bin</code> directory.
  3.2327                  </li>
  3.2328                  <li>
  3.2329                      <strong>Windows:</strong>
  3.2330 -                    Make sure you start your build inside a bash/sh/ksh shell and are
  3.2331 -                    using a <tt>make.exe</tt> utility built for that environment.<br/>
  3.2332 -                    <strong>MKS</strong> builds need a native Windows version of GNU make
  3.2333 -                    (see <a href="#buildgmake">Building GNU make</a>).<br/>
  3.2334 -                    <strong>Cygwin</strong> builds need
  3.2335 -                    a make version which was specially compiled for the Cygwin environment
  3.2336 -                    (see <a href="#buildgmake">Building GNU make</a>). <strong>WARNING:</strong>
  3.2337 -                    the OpenJDK build with the make utility provided by Cygwin will <strong>not</strong>
  3.2338 -                    work because it does not support drive letters in paths. Make sure that
  3.2339 -                    your version of make will be found before the Cygwins default make by 
  3.2340 -                    setting an appropriate <tt>PATH</tt> environment variable or by removing
  3.2341 -                    Cygwin's make after you built your own make version.<br/>
  3.2342 -                    <strong>MinGW/MSYS</strong> builds can use the default make which 
  3.2343 -                    comes with the environment.
  3.2344 +                    Make sure you start your build inside a bash shell.
  3.2345 +                </li>
  3.2346 +                <li>
  3.2347 +                    <strong>Mac OS X:</strong>
  3.2348 +                    The XCode "command line tools" must be installed on your Mac.
  3.2349                  </li>
  3.2350              </ul>
  3.2351              <p>
  3.2352 @@ -714,1539 +1775,728 @@
  3.2353                  <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank">
  3.2354                      ftp.gnu.org/pub/gnu/make/</a>.
  3.2355              </p>
  3.2356 -            <!-- ------------------------------------------------------ -->
  3.2357 -            <h4><a name="buildgmake">Building GNU make</a></h4>
  3.2358 +
  3.2359 +            <h3><a name="buildgmake">Building GNU make</a></h3>
  3.2360              <blockquote>
  3.2361 -                First step is to get the GNU make 3.81 (or newer) source from
  3.2362 +                First step is to get the GNU make 3.81 or newer source from
  3.2363                  <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank">
  3.2364                      ftp.gnu.org/pub/gnu/make/</a>.
  3.2365 -                Building is a little different depending on the OS and unix toolset
  3.2366 -                on Windows:
  3.2367 -                <ul>
  3.2368 -                    <li>
  3.2369 -                        <strong>Linux:</strong>
  3.2370 -                        <tt>./configure && make</tt>
  3.2371 -                    </li>
  3.2372 -                    <li>
  3.2373 -                        <strong>Solaris:</strong>
  3.2374 -                        <tt>./configure && gmake CC=gcc</tt>
  3.2375 -                    </li>
  3.2376 -                    <li>
  3.2377 -                        <strong>Windows for CYGWIN:</strong><br/>
  3.2378 -                        <tt>./configure</tt><br/>
  3.2379 -                        Add the line <tt>#define HAVE_CYGWIN_SHELL 1</tt> to the end of <tt>config.h</tt><br/>
  3.2380 -                        <tt>make</tt><br/>
  3.2381 -                        <br/>
  3.2382 -                        This should produce <tt>make.exe</tt> in the current directory.
  3.2383 -                    </li>
  3.2384 -                    <li>
  3.2385 -                        <strong>Windows for MKS:</strong><br/>
  3.2386 -                        Edit <tt>config.h.W32</tt> and uncomment the line <tt>#define HAVE_MKS_SHELL 1</tt><br/>
  3.2387 -                        Set the environment for your native compiler (e.g. by calling:<br/>
  3.2388 -                        <tt>"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /Release /xp /x64)</tt>
  3.2389 -                        <tt>nmake -f NMakefile.win32</tt>
  3.2390 -                        <br/>
  3.2391 -                        This should produce <tt>WinDebug/make.exe</tt> and <tt>WinRel/make.exe</tt>
  3.2392 -                        <br/>
  3.2393 -                        If you get the error: <tt>NMAKE : fatal error U1045: spawn failed : Permission denied</tt>
  3.2394 -                        you have to set the <tt>Read &amp; execute</tt> permission for the file <tt>subproc.bat</tt>.
  3.2395 -                    </li>
  3.2396 -                </ul>
  3.2397 -            </blockquote>
  3.2398 -        </blockquote>
  3.2399 -        <!-- ------------------------------------------------------ -->
  3.2400 -        <hr>
  3.2401 -        <h3><a name="linux">Basic Linux System Setup</a></h3>
  3.2402 -        <blockquote>
  3.2403 -            <strong>i586 only:</strong>
  3.2404 -            The minimum recommended hardware for building the Linux version
  3.2405 -            is a Pentium class processor or better, at least 256 MB of RAM, and
  3.2406 -            approximately 1.5 GB of free disk space.
  3.2407 -            <p> 
  3.2408 -                <strong>X64 only:</strong>
  3.2409 -                The minimum recommended hardware for building the Linux
  3.2410 -                version is an AMD Opteron class processor, at least 512 MB of RAM, and
  3.2411 -                approximately 4 GB of free disk space.
  3.2412 -            <p> 
  3.2413 -                The build will use the tools contained in
  3.2414 -                <tt>/bin</tt> and
  3.2415 -                <tt>/usr/bin</tt>
  3.2416 -                of a standard installation of the Linux operating environment.
  3.2417 -                You should ensure that these directories are in your
  3.2418 -                <tt>PATH</tt>.
  3.2419 -            <p>
  3.2420 -                Note that some Linux systems have a habit of pre-populating
  3.2421 -                your environment variables for you, for example <tt>JAVA_HOME</tt>
  3.2422 -                might get pre-defined for you to refer to the JDK installed on
  3.2423 -                your Linux system.
  3.2424 -                You will need to unset <tt>JAVA_HOME</tt>.
  3.2425 -                It's a good idea to run <tt>env</tt> and verify the
  3.2426 -                environment variables you are getting from the default system
  3.2427 -                settings make sense for building the
  3.2428 -                OpenJDK.
  3.2429 -        </blockquote>
  3.2430 -        <!-- ------------------------------------------------------ -->
  3.2431 -        <h4><a name="linux_checklist">Basic Linux Check List</a></h4>
  3.2432 -        <blockquote>
  3.2433 -            <ol>
  3.2434 -                <li>
  3.2435 -                    Install the
  3.2436 -                    <a href="#bootjdk">Bootstrap JDK</a>, set
  3.2437 -                    <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
  3.2438 -                </li>
  3.2439 -                <li>
  3.2440 -                    <a href="#importjdk">Optional Import JDK</a>, set
  3.2441 -                    <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>.
  3.2442 -                </li>
  3.2443 -                <li>
  3.2444 -                    Install or upgrade the <a href="#freetype">FreeType development
  3.2445 -                        package</a>.
  3.2446 -                </li>
  3.2447 -                <li>
  3.2448 -                    Install
  3.2449 -                    <a href="#ant">Ant 1.7.1 or newer</a>,
  3.2450 -                    make sure it is in your PATH.
  3.2451 -                </li>
  3.2452 -            </ol>
  3.2453 -        </blockquote>
  3.2454 -        <!-- ------------------------------------------------------ -->
  3.2455 -        <hr>
  3.2456 -        <h3><a name="solaris">Basic Solaris System Setup</a></h3>
  3.2457 -        <blockquote>
  3.2458 -            The minimum recommended hardware for building the
  3.2459 -            Solaris SPARC version is an UltraSPARC with 512 MB of RAM. 
  3.2460 -            For building
  3.2461 -            the Solaris x86 version, a Pentium class processor or better and at
  3.2462 -            least 512 MB of RAM are recommended. 
  3.2463 -            Approximately 1.4 GB of free disk
  3.2464 -            space is needed for a 32-bit build.
  3.2465 -            <p>
  3.2466 -                If you are building the 64-bit version, you should
  3.2467 -                run the command "isainfo -v" to verify that you have a
  3.2468 -                64-bit installation, it should say <tt>sparcv9</tt> or
  3.2469 -                <tt>amd64</tt>.
  3.2470 -                An additional 7 GB of free disk space is needed
  3.2471 -                for a 64-bit build.
  3.2472 -            <p> 
  3.2473 -                The build uses the tools contained in <tt>/usr/ccs/bin</tt>
  3.2474 -                and <tt>/usr/bin</tt> of a standard developer or full installation of
  3.2475 -                the Solaris operating environment.
  3.2476 -            <p> 
  3.2477 -                Solaris patches specific to the JDK can be downloaded from the
  3.2478 -                <a href="http://sunsolve.sun.com/show.do?target=patches/JavaSE" target="_blank">
  3.2479 -                    SunSolve JDK Solaris patches download page</a>.
  3.2480 -                You should ensure that the latest patch cluster for
  3.2481 -                your version of the Solaris operating environment has also
  3.2482 -                been installed.
  3.2483 -        </blockquote>
  3.2484 -        <!-- ------------------------------------------------------ -->
  3.2485 -        <h4><a name="solaris_checklist">Basic Solaris Check List</a></h4>
  3.2486 -        <blockquote>
  3.2487 -            <ol>
  3.2488 -                <li>
  3.2489 -                    Install the
  3.2490 -                    <a href="#bootjdk">Bootstrap JDK</a>, set
  3.2491 -                    <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
  3.2492 -                </li>
  3.2493 -                <li>
  3.2494 -                    <a href="#importjdk">Optional Import JDK</a>, set
  3.2495 -                    <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>.
  3.2496 -                </li>
  3.2497 -                <li>
  3.2498 -                    Install the
  3.2499 -                    <a href="#studio">Sun Studio Compilers</a>, set
  3.2500 -                    <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>.
  3.2501 -                </li>
  3.2502 -                <li>
  3.2503 -                    Install the
  3.2504 -                    <a href="#cups">CUPS Include files</a>, set
  3.2505 -                    <tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt>.
  3.2506 -                </li>
  3.2507 -                <li>
  3.2508 -                    Install the <a href="#xrender">XRender Include files</a>.
  3.2509 -                </li>
  3.2510 -                <li>
  3.2511 -                    Install
  3.2512 -                    <a href="#ant">Ant 1.7.1 or newer</a>,
  3.2513 -                    make sure it is in your PATH.
  3.2514 -                </li>
  3.2515 -            </ol>
  3.2516 -        </blockquote>
  3.2517 -        <!-- ------------------------------------------------------ -->
  3.2518 -        <hr>
  3.2519 -        <h3><a name="windows">Basic Windows System Setup</a></h3>
  3.2520 -        <blockquote> 
  3.2521 -            <strong>i586 only:</strong>
  3.2522 -            The minimum recommended hardware for building the 32-bit or X86
  3.2523 -            Windows version is an Pentium class processor or better, at least
  3.2524 -            512 MB of RAM, and approximately 600 MB of free disk space.
  3.2525 -            <strong>
  3.2526 -                NOTE: The Windows build machines need to use the
  3.2527 -                file system NTFS. 
  3.2528 -                Build machines formatted to FAT32 will not work 
  3.2529 -                because FAT32 doesn't support case-sensitivity in file names.
  3.2530 -            </strong>
  3.2531 -            <p> 
  3.2532 -                <strong>X64 only:</strong>
  3.2533 -                The minimum recommended hardware for building
  3.2534 -                the Windows X64 version is an AMD Opteron class processor, at least 1
  3.2535 -                GB of RAM, and approximately 10 GB of free disk space.
  3.2536 -        </blockquote>
  3.2537 -        <!-- ------------------------------------------------------ -->
  3.2538 -        <h4><a name="paths">Windows Paths</a></h4>
  3.2539 -        <blockquote>
  3.2540 -            <strong>Windows:</strong>
  3.2541 -            Note that GNU make, the shell and other Unix-tools required during the build
  3.2542 -            do not tolerate the Windows habit
  3.2543 -            of having spaces in pathnames or the use of the <tt>\</tt>characters in pathnames.
  3.2544 -            Luckily on most Windows systems, you can use <tt>/</tt>instead of <tt>\</tt>, and
  3.2545 -            there is always a short <a href="http://en.wikipedia.org/wiki/8.3_filename">
  3.2546 -	    "8.3" pathname</a> without spaces for any path that contains spaces.
  3.2547 -            Unfortunately, this short pathname is somewhat dynamic (i.e. dependant on the
  3.2548 -            other files and directories inside a given directory) and can not be 
  3.2549 -            algorithmicly calculated by only looking at a specific path name.
  3.2550 -            <p>
  3.2551 -                The makefiles will try to translate any pathnames supplied
  3.2552 -                to it into the <tt>C:/</tt> style automatically.
  3.2553 -            </p>
  3.2554 -            <p>
  3.2555 -                Special care has to be taken if native Windows applications
  3.2556 -                like <tt>nmake</tt> or <tt>cl</tt> are called with file arguments processed
  3.2557 -                by Unix-tools like <tt>make</tt> or <tt>sh</tt>!
  3.2558 -            </p>
  3.2559 -        </blockquote>
  3.2560 -        <!-- ------------------------------------------------------ -->
  3.2561 -        <h4><a name="paths">Windows build environments</a></h4>
  3.2562 -        <blockquote>
  3.2563 -            Building on Windows requires a Unix-like environment, notably a Unix-like shell.
  3.2564 -            There are several such environments available of which 
  3.2565 -            <a href="http://www.mkssoftware.com/products/tk/ds_tkdev.asp">MKS</a>, 
  3.2566 -            <a href="http://www.cygwin.com/">Cygwin</a> and 
  3.2567 -            <a href="http://www.mingw.org/wiki/MSYS">MinGW/MSYS</a> are currently supported for
  3.2568 -            the OpenJDK build. One of the differences of these three systems is the way
  3.2569 -            they handle Windows path names, particularly path names which contain
  3.2570 -            spaces, backslashes as path separators and possibly drive letters. Depending
  3.2571 -            on the use case and the specifics of each environment these path problems can
  3.2572 -            be solved by a combination of quoting whole paths, translating backslashes to
  3.2573 -            forward slashes, escaping backslashes with additional backslashes and
  3.2574 -            translating the path names to their <a href="http://en.wikipedia.org/wiki/8.3_filename">
  3.2575 -	    "8.3" version</a>.
  3.2576 -            <p>
  3.2577 -                As of this writing (MKS ver. 9.4, Cygwin ver. 1.7.9, MinGW/MSYS 1.0.17),
  3.2578 -                MKS builds are known to be the fastest Windows builds while MingGW/MSYS
  3.2579 -                builds are slightly slower (about 10%) than MKS builds and Cygwin builds
  3.2580 -                require nearly twice the time (about 180%) of MKS builds (e.g. on a
  3.2581 -                DualCore i7 notebook with 8GB of RAM, HDD and 64-bit Windows 7 operating system
  3.2582 -                the complete OpenJDK 8 product build takes about 49min with MKS, 54min with
  3.2583 -                MinGW/MSYS and 88min with Cygwin).
  3.2584 -            </p>
  3.2585 -            <p>
  3.2586 -                Mixing tools from the different Unix emulation environments is not a good
  3.2587 -                idea and will probably not work!
  3.2588 -            </p>
  3.2589 -            <p>
  3.2590 -                <strong>MKS:</strong> is a commercial product which includes
  3.2591 -                all the Unix utilities which are required to build the OpenJDK except GNU
  3.2592 -                make. In pre-OpenJDK times it was the only supported build environment on
  3.2593 -                Windows. The MKS tools support Windows paths with drive letters and
  3.2594 -                forward slashes as path separator. Paths in environment variables like (for
  3.2595 -                example) <tt>PATH</tt> are separated by semicolon '<tt>;</tt>'.
  3.2596 -            </p>
  3.2597 -            <p>
  3.2598 -                Recent versions of MKS provide the <tt>dosname</tt> utility to convert paths
  3.2599 -                with spaces to short (8.3) path names,e .g.
  3.2600 -                <tt>dosname -s "<i>path</i>"</tt>.   
  3.2601 -            </p>
  3.2602 -            <p>
  3.2603 -                If you are using the MKS environment, you need a native Windows version
  3.2604 -                of Gnu make <a href="#buildgmake">which you can easily build yourself</a>. 
  3.2605 -            </p>
  3.2606 -            <p>
  3.2607 -                <strong>Cygwin:</strong>
  3.2608 -                is an open source, Linux-like environment which tries to emulate
  3.2609 -                a complete POSIX layer on Windows. It tries to be smart about path names
  3.2610 -                and can usually handle all kinds of paths if they are correctly quoted
  3.2611 -                or escaped although internally it maps drive letters <tt>&lt;drive&gt;:</tt> 
  3.2612 -                to a virtual directory <tt>/cygdrive/&lt;drive&gt;</tt>.
  3.2613 -            </p>
  3.2614 -            <p>
  3.2615 -                You can always use the <tt>cygpath</tt> utility to map pathnames with spaces
  3.2616 -                or the backslash character into the <tt>C:/</tt> style of pathname
  3.2617 -                (called 'mixed'), e.g. <tt>cygpath -s -m "<i>path</i>"</tt>.
  3.2618 -            </p>
  3.2619 -            <p>
  3.2620 -                Note that the use of CYGWIN creates a unique problem with regards to
  3.2621 -                setting <a href="#path"><tt>PATH</tt></a>. Normally on Windows
  3.2622 -                the <tt>PATH</tt> variable contains directories
  3.2623 -                separated with the ";" character (Solaris and Linux use ":").
  3.2624 -                With CYGWIN, it uses ":", but that means that paths like "C:/path"
  3.2625 -                cannot be placed in the CYGWIN version  of <tt>PATH</tt> and
  3.2626 -                instead CYGWIN uses something like <tt>/cygdrive/c/path</tt>
  3.2627 -                which CYGWIN understands, but only CYGWIN understands.
  3.2628 -            </p>
  3.2629 -            <p>
  3.2630 -                If you are using the Cygwin environment, you need to 
  3.2631 -                <a href="#buildgmake">compile your own version</a>
  3.2632 -                of GNU make because the default Cygwin make can not handle drive letters in paths. 
  3.2633 -            </p>
  3.2634 -            <p>
  3.2635 -                <strong>MinGW/MSYS:</strong> 
  3.2636 -                MinGW ("Minimalist GNU for Windows") is a collection of free Windows
  3.2637 -                specific header files and import libraries combined with GNU toolsets that
  3.2638 -                allow one to produce native Windows programs that do not rely on any
  3.2639 -                3rd-party C runtime DLLs. MSYS is a supplement to MinGW which allows building
  3.2640 -                applications and programs which rely on traditional UNIX tools to
  3.2641 -                be present. Among others this includes tools like <tt>bash</tt> and <tt>make</tt>.
  3.2642 -            </p>
  3.2643 -            <p>
  3.2644 -                Like Cygwin, MinGW/MSYS can handle different types of path formats. They
  3.2645 -                are internally converted to paths with forward slashes and drive letters
  3.2646 -                <tt>&lt;drive&gt;:</tt> replaced by a virtual
  3.2647 -                directory <tt>/&lt;drive&gt;</tt>.  Additionally, MSYS automatically
  3.2648 -                detects binaries compiled for the MSYS environment and feeds them with the
  3.2649 -                internal, Unix-style path names. If native Windows applications are called
  3.2650 -                from within MSYS programs their path arguments are automatically converted
  3.2651 -                back to Windows style path names with drive letters and backslashes as
  3.2652 -                path separators. This may cause problems for Windows applications which
  3.2653 -                use forward slashes as parameter separator (e.g. <tt>cl /nologo /I</tt>)
  3.2654 -                because MSYS may wrongly <a href="http://mingw.org/wiki/Posix_path_conversion">
  3.2655 -                replace such parameters by drive letters</a>.
  3.2656 -            </p>
  3.2657 -            <p>
  3.2658 -                If you are using the MinGW/MSYS system you can use the default make
  3.2659 -                version supplied by the environment.
  3.2660 -            </p>
  3.2661 -        </blockquote>
  3.2662 -        <!-- ------------------------------------------------------ -->
  3.2663 -        <h4><a name="windows_checklist">Basic Windows Check List</a></h4>
  3.2664 -        <blockquote>
  3.2665 -            <ol>
  3.2666 -                <li>
  3.2667 -                    Install one of the 
  3.2668 -                    <a href="#cygwin">CYGWIN</a>, <a href="#msys">MinGW/MSYS</a> or 
  3.2669 -                    <a href="http://www.mkssoftware.com/products/tk/ds_tkdev.asp">MKS</a> environments. 
  3.2670 -                </li>
  3.2671 -                <li>
  3.2672 -                    Install the 
  3.2673 -                    <a href="#bootjdk">Bootstrap JDK</a>, set
  3.2674 -                    <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
  3.2675 -                </li>
  3.2676 -                <li>
  3.2677 -                    <a href="#importjdk">Optional Import JDK</a>, set
  3.2678 -                    <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>.
  3.2679 -                </li>
  3.2680 -                <li>
  3.2681 -                    Install the
  3.2682 -                    <a href="#msvc32">Microsoft Visual Studio Compilers</a>).
  3.2683 -                </li>
  3.2684 -                <li>
  3.2685 -                    Setup all environment variables for compilers 
  3.2686 -                    (see <a href="#msvc32">compilers</a>).
  3.2687 -                </li>
  3.2688 -                <li>
  3.2689 -                    Install 
  3.2690 -                    <a href="#dxsdk">Microsoft DirectX SDK</a>.
  3.2691 -                </li>
  3.2692 -                <li>
  3.2693 -                    Install
  3.2694 -                    <a href="#ant">Ant 1.7.1 or newer</a>,
  3.2695 -                    make sure it is in your PATH and set
  3.2696 -                    <tt><a href="#ANT_HOME">ANT_HOME</a></tt>.
  3.2697 -                </li>
  3.2698 -            </ol>
  3.2699 -        </blockquote>
  3.2700 -        <!-- ------------------------------------------------------ -->
  3.2701 -        <hr>
  3.2702 -        <h3><a name="macosx">Basic Mac OS X System Setup</a></h3>
  3.2703 -        <blockquote> 
  3.2704 -            <strong>X64 only:</strong>
  3.2705 -            The minimum recommended hardware for building
  3.2706 -            the Mac OS X version is any 64-bit capable Intel processor, at least 2
  3.2707 -            GB of RAM, and approximately 3 GB of free disk space. You should also
  3.2708 -            have OS X Lion 10.7.3 installed.
  3.2709 -        </blockquote>
  3.2710 -        <!-- ------------------------------------------------------ -->
  3.2711 -
  3.2712 -        <h4><a name="macosx_checklist">Basic Mac OS X Check List</a></h4>
  3.2713 -        <blockquote>
  3.2714 -            <ol>
  3.2715 -                <li>
  3.2716 -                    Install <a href="https://developer.apple.com/xcode/">XCode 4.1</a> or newer. 
  3.2717 -		    If you install XCode 4.3 or newer, make sure you also install 
  3.2718 -		    "Command line tools" found under the preferences pane "Downloads".
  3.2719 -                </li>
  3.2720 -                <li>
  3.2721 -                    Install <a href="http://support.apple.com/kb/dl1421" target="_blank">"Java for OS X Lion Update 1"</a>, 
  3.2722 -                    set <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a> to <code>`/usr/libexec/java_home -v 1.6`</code></tt>
  3.2723 -                </li>
  3.2724 -                <li>
  3.2725 -                    <a href="#importjdk">Optional Import JDK</a>, set
  3.2726 -                    <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>.
  3.2727 -                </li>
  3.2728 -            </ol>
  3.2729 -        </blockquote>
  3.2730 -        <!-- ------------------------------------------------------ -->
  3.2731 -        <hr>
  3.2732 -        <h3><a name="dependencies">Build Dependencies</a></h3>
  3.2733 -        <blockquote>
  3.2734 -            Depending on the platform, the OpenJDK build process has some basic
  3.2735 -            dependencies on components not part of the OpenJDK sources.
  3.2736 -            Some of these are specific to a platform, some even specific to
  3.2737 -            an architecture.
  3.2738 -            Each dependency will have a set of ALT variables that can be set
  3.2739 -            to tell the makefiles where to locate the component.
  3.2740 -            In most cases setting these ALT variables may not be necessary
  3.2741 -            and the makefiles will find defaults on the system in standard
  3.2742 -            install locations or through component specific variables.
  3.2743 -            <!-- ------------------------------------------------------ -->
  3.2744 -            <h4><a name="bootjdk">Bootstrap JDK</a></h4>
  3.2745 -            <blockquote>
  3.2746 -                All OpenJDK builds require access to the previously released 
  3.2747 -                JDK 6, this is often called a bootstrap JDK.
  3.2748 -                The JDK 6 binaries can be downloaded from Sun's 
  3.2749 -                <a href="http://java.sun.com/javase/downloads/index.jsp"
  3.2750 -                   target="_blank">JDK 6 download site</a>.
  3.2751 -                For build performance reasons
  3.2752 -                is very important that this bootstrap JDK be made available on the
  3.2753 -                local disk of the machine doing the build.
  3.2754 -                You should always set 
  3.2755 -                <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>
  3.2756 -                to point to the location of
  3.2757 -                the bootstrap JDK installation, this is the directory pathname
  3.2758 -                that contains a <tt>bin, lib, and include</tt>
  3.2759 -                It's also a good idea to also place its <tt>bin</tt> directory
  3.2760 -                in the <tt>PATH</tt> environment variable, although it's
  3.2761 -                not required.
  3.2762 -                <p>
  3.2763 -                    <strong>Solaris:</strong>
  3.2764 -                    Some pre-installed JDK images may be available to you in the
  3.2765 -                    directory <tt>/usr/jdk/instances</tt>.
  3.2766 -                    If you don't set
  3.2767 -                    <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>
  3.2768 -                    the makefiles will look in that location for a JDK it can use.
  3.2769 -            </blockquote>
  3.2770 -            <!-- ------------------------------------------------------ -->
  3.2771 -            <h4><a name="importjdk">Optional Import JDK</a></h4>
  3.2772 -            <blockquote>
  3.2773 -                The <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>
  3.2774 -                setting is only needed if you are not building the entire
  3.2775 -                JDK. For example, if you have built the entire JDK once, and
  3.2776 -                wanted to avoid repeatedly building the Hotspot VM, you could
  3.2777 -                set this to the location of the previous JDK install image
  3.2778 -                and the build will copy the needed files from this import area.
  3.2779 -            </blockquote>
  3.2780 -            <!-- ------------------------------------------------------ -->
  3.2781 -            <h4><a name="ant">Ant</a></h4>
  3.2782 -            <blockquote>
  3.2783 -                All OpenJDK builds require access to least Ant 1.7.1.
  3.2784 -                The Ant tool is available from the 
  3.2785 -                <a href="http://archive.apache.org/dist/ant/binaries/apache-ant-1.7.1-bin.zip" target="_blank">
  3.2786 -                    Ant 1.7.1 archive download site</a>.
  3.2787 -                You should always make sure <tt>ant</tt> is in your PATH, and
  3.2788 -                on Windows you may also need to set 
  3.2789 -                <tt><a href="#ANT_HOME">ANT_HOME</a></tt>
  3.2790 -                to point to the location of
  3.2791 -                the Ant installation, this is the directory pathname
  3.2792 -                that contains a <tt>bin and lib</tt>.
  3.2793 -                <br>
  3.2794 -                <b>WARNING:</b> Ant versions used from IDE tools like NetBeans
  3.2795 -                or installed via system packages may not operate the same
  3.2796 -                as the one obtained from the Ant download bundles.
  3.2797 -                These system and IDE installers sometimes choose to change
  3.2798 -                the ant installation enough to cause differences.
  3.2799 -            </blockquote>
  3.2800 -            <!-- ------------------------------------------------------ -->
  3.2801 -            <h4><a name="cacerts">Certificate Authority File (cacert)</a></h4>
  3.2802 -            <blockquote>
  3.2803 -                See <a href="http://en.wikipedia.org/wiki/Certificate_Authority" target="_blank">
  3.2804 -                    http://en.wikipedia.org/wiki/Certificate_Authority</a>
  3.2805 -                for a better understanding of the Certificate Authority (CA).
  3.2806 -                A certificates file named "cacerts"
  3.2807 -                represents a system-wide keystore with CA certificates. 
  3.2808 -                In JDK and JRE
  3.2809 -                binary bundles, the "cacerts" file contains root CA certificates from
  3.2810 -                several public CAs (e.g., VeriSign, Thawte, and Baltimore).
  3.2811 -                The source contain a cacerts file
  3.2812 -                without CA root certificates. 
  3.2813 -                Formal JDK builders will need to secure
  3.2814 -                permission from each public CA and include the certificates into their
  3.2815 -                own custom cacerts file. 
  3.2816 -                Failure to provide a populated cacerts file
  3.2817 -                will result in verification errors of a certificate chain during runtime.
  3.2818 -                The variable 
  3.2819 -                <tt><a href="#ALT_CACERTS_FILE">ALT_CACERTS_FILE</a></tt>
  3.2820 -                can be used to override the default location of the
  3.2821 -                cacerts file that will get placed in your build.
  3.2822 -                By default an empty cacerts file is provided and that should be
  3.2823 -                fine for most JDK developers.
  3.2824 -            </blockquote>
  3.2825 -            <!-- ------------------------------------------------------ -->
  3.2826 -            <h4><a name="compilers">Compilers</a></h4>
  3.2827 -            <blockquote>
  3.2828 -                <strong><a name="gcc">Linux gcc/binutils</a></strong>
  3.2829 +                Building is a little different depending on the OS but is
  3.2830 +                basically done with:
  3.2831                  <blockquote>
  3.2832 -                    The GNU gcc compiler version should be 4.3 or newer.
  3.2833 -                    The compiler used should be the default compiler installed
  3.2834 -                    in <tt>/usr/bin</tt>.
  3.2835 -                </blockquote>
  3.2836 -                <strong><a name="studio">Solaris: Sun Studio</a></strong>
  3.2837 -                <blockquote>
  3.2838 -                    At a minimum, the
  3.2839 -                    <a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.htm" target="_blank">
  3.2840 -                        Sun Studio 12 Update 1 Compilers</a>
  3.2841 -                    (containing version 5.10 of the C and C++ compilers) is required,
  3.2842 -                    including specific patches.
  3.2843 -                    <p>
  3.2844 -                    The Solaris SPARC patch list is:
  3.2845 -                    <ul>
  3.2846 -                        <li>
  3.2847 -                            118683-05: SunOS 5.10: Patch for profiling libraries and assembler
  3.2848 -                        </li>
  3.2849 -                        <li>
  3.2850 -                            119963-21: SunOS 5.10: Shared library patch for C++
  3.2851 -                        </li>
  3.2852 -                        <li>
  3.2853 -                            120753-08: SunOS 5.10: Microtasking libraries (libmtsk) patch
  3.2854 -                        </li>
  3.2855 -                        <li>
  3.2856 -                            128228-09: Sun Studio 12 Update 1: Patch for Sun C++ Compiler
  3.2857 -                        </li>
  3.2858 -                        <li>
  3.2859 -                            141860-03: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95
  3.2860 -                        </li>
  3.2861 -                        <li>
  3.2862 -                            141861-05: Sun Studio 12 Update 1: Patch for Sun C Compiler
  3.2863 -                        </li>
  3.2864 -                        <li>
  3.2865 -                            142371-01: Sun Studio 12.1 Update 1: Patch for dbx
  3.2866 -                        </li>
  3.2867 -                        <li>
  3.2868 -                            143384-02: Sun Studio 12 Update 1: Patch for debuginfo handling
  3.2869 -                        </li>
  3.2870 -                        <li>
  3.2871 -                            143385-02: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95
  3.2872 -                        </li>
  3.2873 -                        <li>
  3.2874 -                            142369-01: Sun Studio 12.1: Patch for Performance Analyzer Tools
  3.2875 -                        </li>
  3.2876 -                    </ul>
  3.2877 -                    <p>
  3.2878 -                        The Solaris X86 patch list is:
  3.2879 -                    <ul>
  3.2880 -                        <li>
  3.2881 -                            119961-07: SunOS 5.10_x86, x64, Patch for profiling libraries and assembler
  3.2882 -                        </li>
  3.2883 -                        <li>
  3.2884 -                            119964-21: SunOS 5.10_x86: Shared library patch for C++_x86
  3.2885 -                        </li>
  3.2886 -                        <li>
  3.2887 -                            120754-08: SunOS 5.10_x86: Microtasking libraries (libmtsk) patch
  3.2888 -                        </li>
  3.2889 -                        <li>
  3.2890 -                            141858-06: Sun Studio 12 Update 1_x86: Sun Compiler Common patch for x86 backend
  3.2891 -                        </li>
  3.2892 -                        <li>
  3.2893 -                            128229-09: Sun Studio 12 Update 1_x86: Patch for C++ Compiler
  3.2894 -                        </li>
  3.2895 -                        <li>
  3.2896 -                            142363-05: Sun Studio 12 Update 1_x86: Patch for C Compiler
  3.2897 -                        </li>
  3.2898 -                        <li>
  3.2899 -                            142368-01: Sun Studio 12.1_x86: Patch for Performance Analyzer Tools
  3.2900 -                        </li>
  3.2901 -                    </ul>
  3.2902 -                    <p> 
  3.2903 -                        Set
  3.2904 -                        <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>
  3.2905 -                        to point to the location of
  3.2906 -                        the compiler binaries, and place this location in the <tt>PATH</tt>.
  3.2907 -                    <p>
  3.2908 -                        The Oracle Solaris Studio Express compilers at:
  3.2909 -                        <a href="http://developers.sun.com/sunstudio/downloads/express.jsp" target="_blank">
  3.2910 -                            Oracle Solaris Studio Express Download site</a>
  3.2911 -                        are also an option, although these compilers have not
  3.2912 -                        been extensively used yet.
  3.2913 -                </blockquote>
  3.2914 -                <strong><a name="msvc32">Windows i586: Microsoft Visual Studio 2010 Compilers</a></strong>
  3.2915 -                <blockquote>
  3.2916 -                    <p>
  3.2917 -                        <b>BEGIN WARNING</b>: JDK 7 has transitioned to
  3.2918 -                        use the newest VS2010 Microsoft compilers.
  3.2919 -                        No other compilers are known to build the entire JDK,
  3.2920 -                        including non-open portions.
  3.2921 -                        Visual Studio 2010 Express compilers are now able to build all the
  3.2922 -                        open source repositories, but this is 32 bit only. To build 64 bit
  3.2923 -                        Windows binaries use the the 7.1 Windows SDK.
  3.2924 -                        <b>END WARNING.</b>
  3.2925 -                    <p>
  3.2926 -                        The 32-bit OpenJDK Windows build requires
  3.2927 -                        Microsoft Visual Studio C++ 2010 (VS2010) Professional
  3.2928 -                        Edition or Express compiler.
  3.2929 -                        The compiler and other tools are expected to reside
  3.2930 -                        in the location defined by the variable
  3.2931 -                        <tt>VS100COMNTOOLS</tt> which
  3.2932 -                        is set by the Microsoft Visual Studio installer.
  3.2933 -                    <p> 
  3.2934 -                        Once the compiler is installed,
  3.2935 -                        it is recommended that you run <tt>VCVARS32.BAT</tt>
  3.2936 -                        to set the compiler environment variables
  3.2937 -                        <tt>INCLUDE</tt>,
  3.2938 -                        <tt>LIB</tt>, and
  3.2939 -                        <tt>PATH</tt>
  3.2940 -                        prior to building the
  3.2941 -                        OpenJDK.
  3.2942 -                        The above environment variables <b>MUST</b> be set.
  3.2943 -                        This compiler also contains the Windows SDK v 7.0a,
  3.2944 -                        which is an update to the Windows 7 SDK.
  3.2945 -                    <p>
  3.2946 -                        <b>WARNING:</b> Make sure you check out the
  3.2947 -                        <a href="#cygwin">CYGWIN link.exe WARNING</a>.
  3.2948 -                        The path <tt>/usr/bin</tt> must be after the path to the
  3.2949 -                        Visual Studio product.
  3.2950 -                </blockquote>
  3.2951 -                <strong><a name="msvc64">Windows x64: Microsoft Visual Studio 2010 Professional Compiler</a></strong>
  3.2952 -                <blockquote>
  3.2953 -                    For <b>X64</b>, the set up is much the same as 32 bit
  3.2954 -                    except that you run <tt>amd64\VCVARS64.BAT</tt>
  3.2955 -                    to set the compiler environment variables.
  3.2956 -                    Previously 64 bit builds had to use the 64 bit compiler in
  3.2957 -                    an unbundled Windows SDK but this is no longer necessary if
  3.2958 -                    you have VS2010 Professional.
  3.2959 -                </blockquote>
  3.2960 -                <strong><a name="mssdk64">Windows x64: Microsoft Windows 7.1 SDK 64 bit compilers.</a></strong>
  3.2961 -                For a free alternative for 64 bit builds, use the 7.1 SDK.
  3.2962 -                Microsoft say that to set up your paths for this run
  3.2963 -                <pre>
  3.2964 -    c:\Program Files\Microsoft SDKs\Windows\v7.1\bin\setenv.cmd /x64.
  3.2965 -                </pre>
  3.2966 -                What was tested is just directly setting up LIB, INCLUDE,
  3.2967 -                PATH and based on the installation directories using the
  3.2968 -                DOS short name appropriate for the system, (you will
  3.2969 -                need to set them for yours, not just blindly copy this) eg :
  3.2970 -                <pre>
  3.2971 -    set VSINSTALLDIR=c:\PROGRA~2\MICROS~1.0
  3.2972 -    set WindowsSdkDir=c:\PROGRA~1\MICROS~1\Windows\v7.1
  3.2973 -    set PATH=%VSINSTALLDIR%\vc\bin\amd64;%VSINSTALLDIR%\Common7\IDE;%WindowsSdkDir%\bin;%PATH%
  3.2974 -    set INCLUDE=%VSINSTALLDIR%\vc\include;%WindowsSdkDir%\include
  3.2975 -    set LIB=%VSINSTALLDIR%\vc\lib\amd64;%WindowsSdkDir%\lib\x64
  3.2976 -                </pre>
  3.2977 -                <strong><a name="llvmgcc">OS X Lion 10.7.3: LLVM GCC</a></strong>
  3.2978 -                <blockquote>
  3.2979 -                   LLVM GCC is bundled with XCode. The version should be at least 4.2.1.
  3.2980 +                    <code>bash ./configure</code>
  3.2981 +                    <br>
  3.2982 +                    <code>make</code>
  3.2983                  </blockquote>
  3.2984              </blockquote>
  3.2985 -            <!-- ------------------------------------------------------ --> 
  3.2986 -            <h4><a name="zip">Zip and Unzip</a></h4>
  3.2987 +
  3.2988 +        </blockquote> <!-- Appendix B -->
  3.2989 +
  3.2990 +        <!-- ====================================================== -->
  3.2991 +        <hr>
  3.2992 +        <h2><a name="buildenvironments">Appendix C: Build Environments</a></h2>
  3.2993 +        <blockquote>
  3.2994 +
  3.2995 +            <h3><a name="MBE">Minimum Build Environments</a></h3>
  3.2996              <blockquote>
  3.2997 -                Version 2.2 (November 3rd 1997) or newer of the zip utility 
  3.2998 -                and version 5.12 or newer of the unzip utility is needed 
  3.2999 -                to build the JDK.
  3.3000 -                With Solaris, Linux, and Windows CYGWIN, the zip and unzip
  3.3001 -                utilities installed on the system should be fine.
  3.3002 -                Information and the source code for
  3.3003 -                ZIP.EXE and UNZIP.EXE is available on the
  3.3004 -                <a href="http://www.info-zip.org" 
  3.3005 -                   target="_blank">info-zip web site</a>.
  3.3006 +                This file often describes specific requirements for what we 
  3.3007 +                call the
  3.3008 +                "minimum build environments" (MBE) for this 
  3.3009 +                specific release of the JDK.
  3.3010 +                What is listed below is what the Oracle Release
  3.3011 +                Engineering Team will use to build the Oracle JDK product.
  3.3012 +                Building with the MBE will hopefully generate the most compatible
  3.3013 +                bits that install on, and run correctly on, the most variations
  3.3014 +                of the same base OS and hardware architecture.
  3.3015 +                In some cases, these represent what is often called the
  3.3016 +                least common denominator, but each Operating System has different
  3.3017 +                aspects to it.
  3.3018 +                <p>
  3.3019 +                    In all cases, the Bootstrap JDK version minimum is critical,
  3.3020 +                    we cannot guarantee builds will work with older Bootstrap JDK's.
  3.3021 +                    Also in all cases, more RAM and more processors is better,
  3.3022 +                    the minimums listed below are simply recommendations.
  3.3023 +                <p>
  3.3024 +                    With Solaris and Mac OS X, the version listed below is the
  3.3025 +                    oldest release we can guarantee builds and works, and the
  3.3026 +                    specific version of the compilers used could be critical.
  3.3027 +                <p>
  3.3028 +                    With Windows the critical aspect is the Visual Studio compiler
  3.3029 +                    used, which due to it's runtime, generally dictates what Windows
  3.3030 +                    systems can do the builds and where the resulting bits can
  3.3031 +                    be used.<br>
  3.3032 +                    <b>NOTE: We expect a change here off these older Windows OS releases
  3.3033 +                        and to a 'less older' one, probably Windows 2008R2 X64.</b>
  3.3034 +                <p>
  3.3035 +                    With Linux, it was just a matter of picking a
  3.3036 +                    stable distribution that is a good representative for Linux
  3.3037 +                    in general.<br>
  3.3038 +                    <b>NOTE: We expect a change here from Fedora 9 to something else,
  3.3039 +                        but it has not been completely determined yet, possibly
  3.3040 +                        Ubuntu 12.04 X64, unbiased community feedback would be welcome on
  3.3041 +                        what a good choice would be here.</b>
  3.3042 +                <p>
  3.3043 +                    It is understood that most developers will NOT be using these 
  3.3044 +                    specific versions, and in fact creating these specific versions
  3.3045 +                    may be difficult due to the age of some of this software.
  3.3046 +                    It is expected that developers are more often using the more
  3.3047 +                    recent releases and distributions of these operating systems.
  3.3048 +                <p>
  3.3049 +                    Compilation problems with newer or different C/C++ compilers is a
  3.3050 +                    common problem.
  3.3051 +                    Similarly, compilation problems related to changes to the
  3.3052 +                    <code>/usr/include</code> or system header files is also a
  3.3053 +                    common problem with older, newer, or unreleased OS versions.
  3.3054 +                    Please report these types of problems as bugs so that they
  3.3055 +                    can be dealt with accordingly.
  3.3056 +                </p>
  3.3057 +                <table border="1">
  3.3058 +                    <thead>
  3.3059 +                        <tr>
  3.3060 +                            <th>Base OS and Architecture</th>
  3.3061 +                            <th>OS</th>
  3.3062 +                            <th>C/C++ Compiler</th>
  3.3063 +                            <th>Bootstrap JDK</th>
  3.3064 +                            <th>Processors</th>
  3.3065 +                            <th>RAM Minimum</th>
  3.3066 +                            <th>DISK Needs</th>
  3.3067 +                        </tr>
  3.3068 +                    </thead>
  3.3069 +                    <tbody>
  3.3070 +                        <tr>
  3.3071 +                            <td>Linux X86 (32-bit) and X64 (64-bit)</td>
  3.3072 +                            <td>Fedora 9</td>
  3.3073 +                            <td>gcc 4.3 </td>
  3.3074 +                            <td>JDK 7u7</td>
  3.3075 +                            <td>2 or more</td>
  3.3076 +                            <td>1 GB</td>
  3.3077 +                            <td>6 GB</td>
  3.3078 +                        </tr>
  3.3079 +                        <tr>
  3.3080 +                            <td>Solaris SPARC (32-bit) and SPARCV9 (64-bit)</td>
  3.3081 +                            <td>Solaris 10 Update 6</td>
  3.3082 +                            <td>Studio 12 Update 1 + patches</td>
  3.3083 +                            <td>JDK 7u7</td>
  3.3084 +                            <td>4 or more</td>
  3.3085 +                            <td>4 GB</td>
  3.3086 +                            <td>8 GB</td>
  3.3087 +                        </tr>
  3.3088 +                        <tr>
  3.3089 +                            <td>Solaris X86 (32-bit) and X64 (64-bit)</td>
  3.3090 +                            <td>Solaris 10 Update 6</td>
  3.3091 +                            <td>Studio 12 Update 1 + patches</td>
  3.3092 +                            <td>JDK 7u7</td>
  3.3093 +                            <td>4 or more</td>
  3.3094 +                            <td>4 GB</td>
  3.3095 +                            <td>8 GB</td>
  3.3096 +                        </tr>
  3.3097 +                        <tr>
  3.3098 +                            <td>Windows X86 (32-bit)</td>
  3.3099 +                            <td>Windows XP</td>
  3.3100 +                            <td>Microsoft Visual Studio C++ 2010 Professional Edition</td>
  3.3101 +                            <td>JDK 7u7</td>
  3.3102 +                            <td>2 or more</td>
  3.3103 +                            <td>2 GB</td>
  3.3104 +                            <td>6 GB</td>
  3.3105 +                        </tr>
  3.3106 +                        <tr>
  3.3107 +                            <td>Windows X64 (64-bit)</td>
  3.3108 +                            <td>Windows Server 2003 - Enterprise x64 Edition</td>
  3.3109 +                            <td>Microsoft Visual Studio C++ 2010 Professional Edition</td>
  3.3110 +                            <td>JDK 7u7</td>
  3.3111 +                            <td>2 or more</td>
  3.3112 +                            <td>2 GB</td>
  3.3113 +                            <td>6 GB</td>
  3.3114 +                        </tr>
  3.3115 +                        <tr>
  3.3116 +                            <td>Mac OS X X64 (64-bit)</td>
  3.3117 +                            <td>Mac OS X 10.7 "Lion"</td>
  3.3118 +                            <td>XCode 4.5.2 or newer</td>
  3.3119 +                            <td>JDK 7u7</td>
  3.3120 +                            <td>2 or more</td>
  3.3121 +                            <td>4 GB</td>
  3.3122 +                            <td>6 GB</td>
  3.3123 +                        </tr>
  3.3124 +                    </tbody>
  3.3125 +                </table>
  3.3126              </blockquote>
  3.3127 -            <!-- ------------------------------------------------------ -->
  3.3128 -            <h4><a name="cups">Common UNIX Printing System (CUPS) Headers (Solaris &amp; Linux)</a></h4>
  3.3129 +
  3.3130 +            <!-- ====================================================== -->
  3.3131 +            <hr>
  3.3132 +            <h3><a name="SDBE">Specific Developer Build Environments</a></h3>
  3.3133              <blockquote>
  3.3134 -                <strong>Solaris:</strong>
  3.3135 -                CUPS header files are required for building the 
  3.3136 -                OpenJDK on Solaris.
  3.3137 -                The Solaris header files can be obtained by installing 
  3.3138 -                the package <strong>SFWcups</strong> from the Solaris Software
  3.3139 -                Companion CD/DVD, these often will be installed into 
  3.3140 -                <tt>/opt/sfw/cups</tt>.
  3.3141 +                We won't be listing all the possible environments, but
  3.3142 +                we will try to provide what information we have available to us.
  3.3143                  <p>
  3.3144 -                    <strong>Linux:</strong>
  3.3145 -                    CUPS header files are required for building the
  3.3146 -                    OpenJDK on Linux.
  3.3147 -                    The Linux header files are usually available from a "cups"
  3.3148 -                    development package, it's recommended that you try and use
  3.3149 -                    the package provided by the particular version of Linux that
  3.3150 -                    you are using.
  3.3151 -                <p>
  3.3152 -                    The CUPS header files can always be downloaded from
  3.3153 -                    <a href="http://www.cups.org" target="_blank">www.cups.org</a>.
  3.3154 -                    The variable
  3.3155 -                    <tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt>
  3.3156 -                    can be used to override the default location of the
  3.3157 -                    CUPS Header files.
  3.3158 +                    <strong>NOTE: The community can help out by updating
  3.3159 +                        this part of the document.
  3.3160 +                    </strong>
  3.3161 +
  3.3162 +                <h4><a name="fedora">Fedora</a></h4>
  3.3163 +                <blockquote>
  3.3164 +                    After installing the latest
  3.3165 +                    <a href="http://fedoraproject.org">Fedora</a>
  3.3166 +                    you need to install several build dependencies.
  3.3167 +                    The simplest way to do it is to execute the 
  3.3168 +                    following commands as user <code>root</code>:
  3.3169 +                    <blockquote>
  3.3170 +                        <code>yum-builddep java-1.7.0-openjdk</code>
  3.3171 +                        <br>
  3.3172 +                        <code>yum install gcc gcc-c++</code>
  3.3173 +                    </blockquote>
  3.3174 +                    <p>
  3.3175 +                        In addition, it's necessary to set a few environment 
  3.3176 +                        variables for the build:
  3.3177 +                    <blockquote>
  3.3178 +                        <code>export LANG=C</code>
  3.3179 +                        <br>
  3.3180 +                        <code>export PATH="/usr/lib/jvm/java-openjdk/bin:${PATH}"</code>
  3.3181 +                    </blockquote>
  3.3182 +                </blockquote>
  3.3183 +
  3.3184 +
  3.3185 +                <h4><a name="centos">CentOS 5.5</a></h4>
  3.3186 +                <blockquote>
  3.3187 +                    After installing
  3.3188 +                    <a href="http://www.centos.org/">CentOS 5.5</a>
  3.3189 +                    you need to make sure you have
  3.3190 +                    the following Development bundles installed:
  3.3191 +                    <blockquote>
  3.3192 +                        <ul>
  3.3193 +                            <li>Development Libraries</li>
  3.3194 +                            <li>Development Tools</li>
  3.3195 +                            <li>Java Development</li>
  3.3196 +                            <li>X Software Development (Including XFree86-devel)</li>
  3.3197 +                        </ul>
  3.3198 +                    </blockquote>
  3.3199 +                    <p>
  3.3200 +                        Plus the following packages:
  3.3201 +                    <blockquote>
  3.3202 +                        <ul>
  3.3203 +                            <li>cups devel: Cups Development Package</li>
  3.3204 +                            <li>alsa devel: Alsa Development Package</li>
  3.3205 +                            <li>Xi devel: libXi.so Development Package</li>
  3.3206 +                        </ul>
  3.3207 +                    </blockquote>
  3.3208 +                    <p>
  3.3209 +                        The freetype 2.3 packages don't seem to be available,
  3.3210 +                        but the freetype 2.3 sources can be downloaded, built,
  3.3211 +                        and installed easily enough from
  3.3212 +                        <a href="http://downloads.sourceforge.net/freetype">
  3.3213 +                            the freetype site</a>.
  3.3214 +                        Build and install with something like:
  3.3215 +                    <blockquote>
  3.3216 +                        <code>bash ./configure</code>
  3.3217 +                        <br>
  3.3218 +                        <code>make</code>
  3.3219 +                        <br>
  3.3220 +                        <code>sudo -u root make install</code>
  3.3221 +                    </blockquote>
  3.3222 +                    <p>
  3.3223 +                        Mercurial packages could not be found easily, but a Google
  3.3224 +                        search should find ones, and they usually include Python if
  3.3225 +                        it's needed.
  3.3226 +                </blockquote>
  3.3227 +
  3.3228 +                <h4><a name="debian">Debian 5.0 (Lenny)</a></h4>
  3.3229 +                <blockquote>
  3.3230 +                    After installing <a href="http://debian.org">Debian</a> 5 
  3.3231 +                    you need to install several build dependencies. 
  3.3232 +                    The simplest way to install the build dependencies is to 
  3.3233 +                    execute the following commands as user <code>root</code>:
  3.3234 +                    <blockquote>
  3.3235 +                        <code>aptitude build-dep openjdk-7</code>
  3.3236 +                        <br>
  3.3237 +                        <code>aptitude install openjdk-7-jdk libmotif-dev</code>
  3.3238 +                    </blockquote>
  3.3239 +                    <p>
  3.3240 +                        In addition, it's necessary to set a few environment 
  3.3241 +                        variables for the build:
  3.3242 +                    <blockquote>
  3.3243 +                        <code>export LANG=C</code>
  3.3244 +                        <br>
  3.3245 +                        <code>export PATH="/usr/lib/jvm/java-7-openjdk/bin:${PATH}"</code>
  3.3246 +                    </blockquote>
  3.3247 +                </blockquote>
  3.3248 +
  3.3249 +                <h4><a name="ubuntu">Ubuntu 12.04</a></h4>
  3.3250 +                <blockquote>                       
  3.3251 +                    After installing <a href="http://ubuntu.org">Ubuntu</a> 12.04 
  3.3252 +                    you need to install several build dependencies. The simplest
  3.3253 +                    way to do it is to execute the following commands:
  3.3254 +                    <blockquote>
  3.3255 +                        <code>sudo aptitude build-dep openjdk-7</code>
  3.3256 +                        <br>
  3.3257 +                        <code>sudo aptitude install openjdk-7-jdk</code>
  3.3258 +                    </blockquote>
  3.3259 +                    <p>
  3.3260 +                        In addition, it's necessary to set a few environment 
  3.3261 +                        variables for the build:
  3.3262 +                    <blockquote>
  3.3263 +                        <code>export LANG=C</code>
  3.3264 +                        <br>
  3.3265 +                        <code>export PATH="/usr/lib/jvm/java-7-openjdk/bin:${PATH}"</code>
  3.3266 +                    </blockquote>
  3.3267 +                </blockquote>
  3.3268 +
  3.3269 +                <h4><a name="opensuse">OpenSUSE 11.1</a></h4>
  3.3270 +                <blockquote>
  3.3271 +                    After installing <a href="http://opensuse.org">OpenSUSE</a> 11.1 
  3.3272 +                    you need to install several build dependencies. 
  3.3273 +                    The simplest way to install the build dependencies is to 
  3.3274 +                    execute the following commands:
  3.3275 +                    <blockquote>
  3.3276 +                        <code>sudo zypper source-install -d java-1_7_0-openjdk</code>
  3.3277 +                        <br>
  3.3278 +                        <code>sudo zypper install make</code>
  3.3279 +                    </blockquote>
  3.3280 +                    <p>
  3.3281 +                        In addition, it is necessary to set a few environment 
  3.3282 +                        variables for the build:
  3.3283 +                    <blockquote>
  3.3284 +                        <code>export LANG=C</code>
  3.3285 +                        <br>
  3.3286 +                        <code>export PATH="/usr/lib/jvm/java-1.7.0-openjdk/bin:$[PATH}"</code>
  3.3287 +                    </blockquote>
  3.3288 +                    <p>
  3.3289 +                        Finally, you need to unset the <code>JAVA_HOME</code> 
  3.3290 +                        environment variable:
  3.3291 +                    <blockquote>
  3.3292 +                        <code>export -n JAVA_HOME</code>
  3.3293 +                    </blockquote>
  3.3294 +                </blockquote>
  3.3295 +
  3.3296 +                <h4><a name="mandriva">Mandriva Linux One 2009 Spring</a></h4>
  3.3297 +                <blockquote>
  3.3298 +                    After installing <a href="http://mandriva.org">Mandriva</a>
  3.3299 +                    Linux One 2009 Spring 
  3.3300 +                    you need to install several build dependencies. 
  3.3301 +                    The simplest way to install the build dependencies is to 
  3.3302 +                    execute the following commands as user <code>root</code>:
  3.3303 +                    <blockquote>
  3.3304 +                        <code>urpmi java-1.7.0-openjdk-devel make gcc gcc-c++ 
  3.3305 +                            freetype-devel zip unzip libcups2-devel libxrender1-devel
  3.3306 +                            libalsa2-devel libstc++-static-devel libxtst6-devel 
  3.3307 +                            libxi-devel</code>
  3.3308 +                    </blockquote>
  3.3309 +                    <p>
  3.3310 +                        In addition, it is necessary to set a few environment 
  3.3311 +                        variables for the build:
  3.3312 +                    <blockquote>
  3.3313 +                        <code>export LANG=C</code>
  3.3314 +                        <br>
  3.3315 +                        <code>export PATH="/usr/lib/jvm/java-1.7.0-openjdk/bin:${PATH}"</code>
  3.3316 +                    </blockquote>
  3.3317 +                </blockquote>
  3.3318 +
  3.3319 +                <h4><a name="opensolaris">OpenSolaris 2009.06</a></h4>
  3.3320 +                <blockquote>
  3.3321 +                    After installing <a href="http://opensolaris.org">OpenSolaris</a> 2009.06 
  3.3322 +                    you need to install several build dependencies. 
  3.3323 +                    The simplest way to install the build dependencies is to 
  3.3324 +                    execute the following commands:
  3.3325 +                    <blockquote>
  3.3326 +                        <code>pfexec pkg install SUNWgmake SUNWj7dev 
  3.3327 +                            sunstudioexpress SUNWcups SUNWzip SUNWunzip SUNWxwhl 
  3.3328 +                            SUNWxorg-headers SUNWaudh SUNWfreetype2</code>
  3.3329 +                    </blockquote>
  3.3330 +                    <p>
  3.3331 +                        In addition, it is necessary to set a few environment 
  3.3332 +                        variables for the build:
  3.3333 +                    <blockquote>
  3.3334 +                        <code>export LANG=C</code>
  3.3335 +                        <br>
  3.3336 +                        <code>export PATH="/opt/SunStudioExpress/bin:${PATH}"</code>
  3.3337 +                    </blockquote>
  3.3338 +                </blockquote>
  3.3339 +
  3.3340              </blockquote>
  3.3341 -            <!-- ------------------------------------------------------ -->
  3.3342 -            <h4><a name="xrender">XRender Extension Headers (Solaris &amp; Linux)</a></h4>
  3.3343 -            <blockquote>
  3.3344 -                <p>
  3.3345 -                    <strong>Solaris:</strong>
  3.3346 -                    XRender header files are required for building the
  3.3347 -                    OpenJDK on Solaris.
  3.3348 -                    The XRender header file is included with the other X11 header files
  3.3349 -                    in the package <strong>SFWxwinc</strong> on new enough versions of
  3.3350 -                    Solaris and will be installed in
  3.3351 -                    <tt>/usr/X11/include/X11/extensions/Xrender.h</tt> or
  3.3352 -                    <tt>/usr/openwin/share/include/X11/extensions/Xrender.h</tt>
  3.3353 -                </p><p>
  3.3354 -                    <strong>Linux:</strong>
  3.3355 -                    XRender header files are required for building the
  3.3356 -                    OpenJDK on Linux.
  3.3357 -                    The Linux header files are usually available from a "Xrender"
  3.3358 -                    development package, it's recommended that you try and use
  3.3359 -                    the package provided by the particular distribution of Linux that
  3.3360 -                    you are using.
  3.3361 -                </p>
  3.3362 -            </blockquote>
  3.3363 -            <!-- ------------------------------------------------------ -->
  3.3364 -            <h4><a name="freetype">FreeType 2</a></h4>
  3.3365 -            <blockquote>
  3.3366 -                Version 2.3 or newer of FreeType is required for building the OpenJDK.
  3.3367 -                On Unix systems required files can be available as part of your
  3.3368 -                distribution (while you still may need to upgrade them).
  3.3369 -                Note that you need development version of package that 
  3.3370 -                includes both FreeType library and header files.
  3.3371 -                <p>
  3.3372 -                    You can always download latest FreeType version from the
  3.3373 -                    <a href="http://www.freetype.org" target="_blank">FreeType website</a>.
  3.3374 -                <p>
  3.3375 -                    Makefiles will try to pick FreeType from /usr/lib and /usr/include.
  3.3376 -                    In case it is installed elsewhere you will need to set environment
  3.3377 -                    variables
  3.3378 -                    <tt><a href="#ALT_FREETYPE_LIB_PATH">ALT_FREETYPE_LIB_PATH</a></tt>
  3.3379 -                    and
  3.3380 -                    <tt><a href="#ALT_FREETYPE_HEADERS_PATH">ALT_FREETYPE_HEADERS_PATH</a></tt>
  3.3381 -                    to refer to place where library and header files are installed.
  3.3382 -                <p>
  3.3383 -                    Building the freetype 2 libraries from scratch is also possible,
  3.3384 -                    however on Windows refer to the
  3.3385 -                    <a href="http://freetype.freedesktop.org/wiki/FreeType_DLL">
  3.3386 -                        Windows FreeType DLL build instructions</a>.
  3.3387 -                <p>
  3.3388 -                    Note that by default FreeType is built with byte code hinting
  3.3389 -                    support disabled due to licensing restrictions.
  3.3390 -                    In this case, text appearance and metrics are expected to
  3.3391 -                    differ from Sun's official JDK build.
  3.3392 -                    See
  3.3393 -                    <a href="http://freetype.sourceforge.net/freetype2/index.html">
  3.3394 -                        the SourceForge FreeType2 Home Page
  3.3395 -                    </a>
  3.3396 -                    for more information.
  3.3397 -            </blockquote>    
  3.3398 -            <!-- ------------------------------------------------------ -->
  3.3399 -            <h4><a name="alsa">Advanced Linux Sound Architecture (ALSA) (Linux only)</a></h4>
  3.3400 -            <blockquote>
  3.3401 -                <strong>Linux only:</strong>
  3.3402 -                Version 0.9.1 or newer of the ALSA files are
  3.3403 -                required for building the OpenJDK on Linux.
  3.3404 -                These Linux files are usually available from an "alsa"
  3.3405 -                of "libasound"
  3.3406 -                development package, it's highly recommended that you try and use
  3.3407 -                the package provided by the particular version of Linux that
  3.3408 -                you are using.
  3.3409 -                The makefiles will check this emit a sanity error if it is
  3.3410 -                missing or the wrong version.
  3.3411 -                <p>
  3.3412 -                    In particular, older Linux systems will likely not have the
  3.3413 -                    right version of ALSA installed, for example
  3.3414 -                    Redhat AS 2.1 U2 and SuSE 8.1 do not include a sufficiently
  3.3415 -                    recent ALSA distribution.
  3.3416 -                    On rpm-based systems, you can see if ALSA is installed by
  3.3417 -                    running this command:
  3.3418 -                <pre>
  3.3419 -                    <tt>rpm -qa | grep alsa</tt>
  3.3420 -                </pre>
  3.3421 -                Both <tt>alsa</tt> and <tt>alsa-devel</tt> packages are needed.
  3.3422 -                <p> 
  3.3423 -                    If your distribution does not come with ALSA, and you can't
  3.3424 -                    find ALSA packages built for your particular system,
  3.3425 -                    you can try to install the pre-built ALSA rpm packages from
  3.3426 -                    <a href="http://www.freshrpms.net/" target="_blank">
  3.3427 -                        <tt>www.freshrpms.net</tt></a>.
  3.3428 -                    Note that installing a newer ALSA could
  3.3429 -                    break sound output if an older version of ALSA was previously
  3.3430 -                    installed on the system, but it will enable JDK compilation.
  3.3431 -                <blockquote>
  3.3432 -                    Installation: execute as root<br>
  3.3433 -                    [i586]: <code>rpm -Uv --force alsa-lib-devel-0.9.1-rh61.i386.rpm</code><br>
  3.3434 -                    [x64]: <code>rpm -Uv --force alsa-lib-devel-0.9.8-amd64.x86_64.rpm</code><br>
  3.3435 -                    Uninstallation:<br>
  3.3436 -                    [i586]: <code>rpm -ev alsa-lib-devel-0.9.1-rh61</code><br>
  3.3437 -                    [x64]:<code>rpm -ev alsa-lib-devel-0.9.8-amd64</code><br>
  3.3438 -                    Make sure that you do not link to the static library
  3.3439 -                    (<tt>libasound.a</tt>),
  3.3440 -                    by verifying that the dynamic library (<tt>libasound.so</tt>) is
  3.3441 -                    correctly installed in <tt>/usr/lib</tt>.
  3.3442 -                </blockquote>
  3.3443 -                As a last resort you can go to the
  3.3444 -                <a href="http://www.alsa-project.org" target="_blank">
  3.3445 -                    Advanced Linux Sound Architecture Site</a> and build it from
  3.3446 -                source.
  3.3447 -                <blockquote>
  3.3448 -                    Download driver and library
  3.3449 -                    source tarballs from 
  3.3450 -                    <a href="http://www.alsa-project.org" target="_blank">ALSA's homepage</a>. 
  3.3451 -                    As root, execute the following
  3.3452 -                    commands (you may need to adapt the version number):
  3.3453 -                    <pre>
  3.3454 -                        <tt>
  3.3455 -                            $ tar xjf alsa-driver-0.9.1.tar.bz2
  3.3456 -                            $ cd alsa-driver-0.9.1
  3.3457 -                            $ ./configure
  3.3458 -                            $ make install
  3.3459 -                            $ cd ..
  3.3460 -                            $ tar xjf alsa-lib-0.9.1.tar.bz2
  3.3461 -                            $ cd alsa-lib-0.9.1
  3.3462 -                            $ ./configure
  3.3463 -                            $ make install
  3.3464 -                        </tt>
  3.3465 -                    </pre>
  3.3466 -                    Should one of the above steps fail, refer to the documentation on
  3.3467 -                    ALSA's home page.
  3.3468 -                </blockquote>
  3.3469 -                Note that this is a minimum install that enables
  3.3470 -                building the JDK platform. To actually use ALSA sound drivers, more
  3.3471 -                steps are necessary as outlined in the documentation on ALSA's homepage.
  3.3472 -                <p>
  3.3473 -                    ALSA can be uninstalled by executing <tt>make uninstall</tt> first in
  3.3474 -                    the <tt>alsa-lib-0.9.1</tt> directory and then in
  3.3475 -                    <tt>alsa-driver-0.9.1</tt>.
  3.3476 -            </blockquote>
  3.3477 -            There are no ALT* variables to change the assumed locations of ALSA,
  3.3478 -            the makefiles will expect to find the ALSA include files and library at:
  3.3479 -            <tt>/usr/include/alsa</tt> and <tt>/usr/lib/libasound.so</tt>.
  3.3480 -        </blockquote>
  3.3481 -        <!-- ------------------------------------------------------ -->
  3.3482 -        <h4>Windows Specific Dependencies</h4>
  3.3483 -        <blockquote>
  3.3484 -            <strong>Unix Command Tools (<a name="cygwin">CYGWIN</a>)</strong>
  3.3485 -            <blockquote> 
  3.3486 -                The OpenJDK requires access to a set of unix command tools
  3.3487 -                on Windows which can be supplied by 
  3.3488 -                <a href="http://www.cygwin.com" target="_blank">CYGWIN</a>. 
  3.3489 -                <p>
  3.3490 -                    The OpenJDK build requires CYGWIN version 1.5.12 or newer.
  3.3491 -                    Information about CYGWIN can
  3.3492 -                    be obtained from the CYGWIN website at
  3.3493 -                    <a href="http://www.cygwin.com" target="_blank">www.cygwin.com</a>.
  3.3494 -                <p>
  3.3495 -                    By default CYGWIN doesn't install all the tools required for building
  3.3496 -                    the OpenJDK.
  3.3497 -                    Along with the default installation, you need to install
  3.3498 -                    the following tools.
  3.3499 -                <blockquote>
  3.3500 -                    <table border="1">
  3.3501 -                        <thead>
  3.3502 -                            <tr>
  3.3503 -                                <td>Binary Name</td>
  3.3504 -                                <td>Category</td>
  3.3505 -                                <td>Package</td>
  3.3506 -                                <td>Description</td>
  3.3507 -                            </tr>
  3.3508 -                        </thead>
  3.3509 -                        <tbody>
  3.3510 -                            <tr>
  3.3511 -                                <td>ar.exe</td>
  3.3512 -                                <td>Devel</td>
  3.3513 -                                <td>binutils</td>
  3.3514 -                                <td>The GNU assembler, linker and binary
  3.3515 -                                    utilities</td>
  3.3516 -                            </tr>
  3.3517 -                            <tr>
  3.3518 -                                <td>make.exe</td>
  3.3519 -                                <td>Devel</td>
  3.3520 -                                <td>make</td>
  3.3521 -                                <td>The GNU version of the 'make' utility built for CYGWIN.<br>
  3.3522 -                                    <b>NOTE</b>: the Cygwin make can not be used to build the 
  3.3523 -                                    OpenJDK.  You only need it to build your own version of make 
  3.3524 -                                    (see <a href="#gmake">the GNU make section</a>)</td>
  3.3525 -                            </tr>
  3.3526 -                            <tr>
  3.3527 -                                <td>m4.exe</td>
  3.3528 -                                <td>Interpreters</td>
  3.3529 -                                <td>m4</td>
  3.3530 -                                <td>GNU implementation of the traditional Unix macro
  3.3531 -                                    processor</td>
  3.3532 -                            </tr>
  3.3533 -                            <tr>
  3.3534 -                                <td>cpio.exe</td>
  3.3535 -                                <td>Utils</td>
  3.3536 -                                <td>cpio</td>
  3.3537 -                                <td>A program to manage archives of files</td>
  3.3538 -                            </tr>
  3.3539 -                            <tr>
  3.3540 -                                <td>gawk.exe</td>
  3.3541 -                                <td>Utils</td>
  3.3542 -                                <td>awk</td>
  3.3543 -                                <td>Pattern-directed scanning and processing language</td>
  3.3544 -                            </tr>
  3.3545 -                            <tr>
  3.3546 -                                <td>file.exe</td>
  3.3547 -                                <td>Utils</td>
  3.3548 -                                <td>file</td>
  3.3549 -                                <td>Determines file type using 'magic' numbers</td>
  3.3550 -                            </tr>
  3.3551 -                            <tr>
  3.3552 -                                <td>zip.exe</td>
  3.3553 -                                <td>Archive</td>
  3.3554 -                                <td>zip</td>
  3.3555 -                                <td>Package and compress (archive) files</td>
  3.3556 -                            </tr>
  3.3557 -                            <tr>
  3.3558 -                                <td>unzip.exe</td>
  3.3559 -                                <td>Archive</td>
  3.3560 -                                <td>unzip</td>
  3.3561 -                                <td>Extract compressed files in a ZIP archive</td>
  3.3562 -                            </tr>
  3.3563 -                            <tr>
  3.3564 -                                <td>free.exe</td>
  3.3565 -                                <td>System</td>
  3.3566 -                                <td>procps</td>
  3.3567 -                                <td>Display amount of free and used memory in the system</td>
  3.3568 -                            </tr>
  3.3569 -                        </tbody>
  3.3570 -                    </table>
  3.3571 -                </blockquote>
  3.3572 -                <p>
  3.3573 -                    Note that the CYGWIN software can conflict with other non-CYGWIN
  3.3574 -                    software on your Windows system.
  3.3575 -                    CYGWIN provides a
  3.3576 -                    <a href="http://cygwin.com/faq/faq.using.html" target="_blank">FAQ</a> for
  3.3577 -                    known issues and problems, of particular interest is the
  3.3578 -                    section on
  3.3579 -                    <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank">
  3.3580 -                        BLODA (applications that interfere with CYGWIN)</a>.
  3.3581 -                <p>
  3.3582 -                    <b>WARNING:</b>
  3.3583 -                    Be very careful with <b><tt>link.exe</tt></b>, it will conflict
  3.3584 -                    with the Visual Studio version. You need the Visual Studio
  3.3585 -                    version of <tt>link.exe</tt>, not the CYGWIN one.
  3.3586 -                    So it's important that the Visual Studio paths in PATH preceed
  3.3587 -                    the CYGWIN path <tt>/usr/bin</tt>.
  3.3588 -            </blockquote>
  3.3589 -            <strong> Minimalist GNU for Windows (<a name="msys">MinGW/MSYS</a>)</strong>
  3.3590 -            <blockquote> 
  3.3591 -                Alternatively, the set of unix command tools for the OpenJDK build on 
  3.3592 -                Windows can be supplied by 
  3.3593 -                <a href="http://www.mingw.org/wiki/MSYS" target="_blank">MinGW/MSYS</a>.
  3.3594 -                <p>
  3.3595 -                    In addition to the tools which will be installed by default, you have
  3.3596 -                    to manually install the <tt>msys-zip</tt> and <tt>msys-unzip</tt> packages.
  3.3597 -                    This can be easily done with the MinGW command line installer:<br/>
  3.3598 -                    <tt><br/>
  3.3599 -                        mingw-get.exe install msys-zip<br/>
  3.3600 -                        mingw-get.exe install msys-unzip<br/>
  3.3601 -                    </tt>
  3.3602 -                </p>
  3.3603 -            </blockquote>
  3.3604 -            <strong><a name="dxsdk">Microsoft DirectX 9.0 SDK header files and libraries</a></strong>
  3.3605 -            <blockquote>
  3.3606 -                Microsoft DirectX 9.0 SDK (Summer 2004)
  3.3607 -                headers are required for building
  3.3608 -                OpenJDK.
  3.3609 -                This SDK can be downloaded from 
  3.3610 -                <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FD044A42-9912-42A3-9A9E-D857199F888E&amp;displaylang=en" target="_blank">
  3.3611 -                    Microsoft DirectX 9.0 SDK (Summer 2004)</a>.
  3.3612 -                If the link above becomes obsolete, the SDK can be found from 
  3.3613 -                <a href="http://download.microsoft.com" target="_blank">the Microsoft Download Site</a>
  3.3614 -                (search with "DirectX 9.0 SDK Update Summer 2004"). 
  3.3615 -                The location of this SDK can be set with 
  3.3616 -                <tt><a href="#ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt>
  3.3617 -                but it's normally found via the DirectX environment variable
  3.3618 -                <tt>DXSDK_DIR</tt>.
  3.3619 -            </blockquote>
  3.3620 -            <strong><a name="msvcrNN"><tt>MSVCR100.DLL</tt></a></strong>
  3.3621 -            <blockquote> 
  3.3622 -                The OpenJDK build requires access to a redistributable
  3.3623 -                <tt>MSVCR100.DLL</tt>.
  3.3624 -                This is usually picked up automatically from the redist
  3.3625 -                directories of Visual Studio 2010.
  3.3626 -                If this cannot be found set the 
  3.3627 -                <a href="#ALT_MSVCRNN_DLL_PATH"><tt>ALT_MSVCRNN_DLL_PATH</tt></a>
  3.3628 -                variable to the location of this file.
  3.3629 -                <p> 
  3.3630 -            </blockquote>
  3.3631 -        </blockquote>
  3.3632 -        <!-- ------------------------------------------------------ -->
  3.3633 +
  3.3634 +        </blockquote> <!-- Appendix C -->
  3.3635 +
  3.3636 +        <!-- ====================================================== -->
  3.3637 +
  3.3638 +        <!-- Leave out Appendix D --
  3.3639 +
  3.3640 +<hr>
  3.3641 +<h2><a name="mapping">Appendix D: Mapping Old to New</a></h2>
  3.3642 +<blockquote>
  3.3643 +    <p>This table will help you convert some idioms of the old build
  3.3644 +        system to the new build system.</p>
  3.3645 +    <table summary="Cheat sheet for converting from old to new build system">
  3.3646 +        <tr valign="top">
  3.3647 +            <th>In the old build system, you used to...</th>
  3.3648 +            <th>In the new build system, you should ...</th>
  3.3649 +        </tr>
  3.3650 +        <tr valign="top">
  3.3651 +            <td>run <code>make sanity</code></td>
  3.3652 +            <td>run <code>bash ./configure</code></td>
  3.3653 +        </tr>
  3.3654 +        <tr valign="top">
  3.3655 +            <td>set <code>ALT_OUTPUTDIR=build/my-special-output</code></td>
  3.3656 +            <td>before building the first time:
  3.3657 +                <br>
  3.3658 +                <code>cd build/my-special-output</code>
  3.3659 +                <br>
  3.3660 +                <code>bash ../../configure</code>
  3.3661 +                <br>
  3.3662 +                to build:
  3.3663 +                <br>
  3.3664 +                <code>cd build/my-special-output</code>
  3.3665 +                <br>
  3.3666 +                <code>make</code>
  3.3667 +            </td>
  3.3668 +        </tr>
  3.3669 +        <tr valign="top">
  3.3670 +            <td>set <code>ALT_BOOTDIR=/opt/java/jdk7</code></td>
  3.3671 +            <td>run <code>configure --with-boot-jdk=/opt/java/jdk7</code></td>
  3.3672 +        </tr>
  3.3673 +        <tr valign="top">
  3.3674 +            <td>run <code>make ARCH_DATA_MODEL=32</code></td>
  3.3675 +            <td>run <code>configure --with-target-bits=32</code></td>
  3.3676 +        </tr>
  3.3677 +        <tr valign="top">
  3.3678 +            <td>set <code>BUILD_CLIENT_ONLY=true</code></td>
  3.3679 +            <td>run <code>configure --with-jvm-variants=client</code></td>
  3.3680 +        </tr>
  3.3681 +        <tr valign="top">
  3.3682 +            <td>set <code>ALT_FREETYPE_LIB_PATH=/opt/freetype/lib</code> 
  3.3683 +                and <code>ALT_FREETYPE_HEADERS_PATH=/opt/freetype/include</code></td>
  3.3684 +            <td>run <code>configure --with-freetype=/opt/freetype</code></td>
  3.3685 +        </tr>
  3.3686 +        <tr valign="top">
  3.3687 +            <td>set <code>ALT_CUPS_HEADERS_PATH=/opt/cups/include</code></td>
  3.3688 +            <td>run <code>configure --with-cups=/opt/cups</code></td>
  3.3689 +        </tr>
  3.3690 +        <tr valign="top">
  3.3691 +            <td>set <code>ALT_OPENWIN_HOME=/opt/X11R6</code></td>
  3.3692 +            <td>run <code>configure --with-x=/opt/X11R6</code></td>
  3.3693 +        </tr>
  3.3694 +        <tr valign="top">
  3.3695 +            <td>set <code>ALT_MSVCRNN_DLL_PATH=c:/vc_redist</code></td>
  3.3696 +            <td>run <code>configure --with-msvcr100dll=/cygdrive/c/vc_redist</code></td>
  3.3697 +        </tr>
  3.3698 +        <tr valign="top">
  3.3699 +            <td>set <code>ALT_COMPILER_PATH=/opt/my-gcc/bin/gcc</code></td>
  3.3700 +            <td>run <code>CC=/opt/my-gcc/bin/gcc configure</code> 
  3.3701 +                or <code>CXX=/opt/my-gcc/bin/g++ configure</code>
  3.3702 +            </td>
  3.3703 +        </tr>
  3.3704 +        <tr valign="top">
  3.3705 +            <td>set <code>BUILD_HEADLESS_ONLY=true</code></td>
  3.3706 +            <td>run <code>configure --disable-headful</code></td>
  3.3707 +        </tr>
  3.3708 +        <tr valign="top">
  3.3709 +            <td>set <code>ALT_DEVTOOLS_PATH=/opt/mytools</code></td>
  3.3710 +            <td>just run <code>configure</code>, 
  3.3711 +                your tools should be detected automatically. 
  3.3712 +                If you have an unusual configuration, 
  3.3713 +                add the tools directory to your <code>PATH</code>.
  3.3714 +            </td>
  3.3715 +        </tr>
  3.3716 +        <tr valign="top">
  3.3717 +            <td>set <code>ALT_DROPS_DIR=/home/user/dropdir</code></td>
  3.3718 +            <td>source drops are not used anymore</td>
  3.3719 +        </tr>
  3.3720 +        <tr valign="top">
  3.3721 +            <td>set <code>USE_ONLY_BOOTDIR_TOOLS=true</code></td>
  3.3722 +            <td>not needed, <code>configure</code> should always do the Right Thing automatically</td>
  3.3723 +        </tr>
  3.3724 +        <tr valign="top">
  3.3725 +            <td>set <code>ALT_JDK_IMPORT_PATH=/opt/java/import-jdk</code>
  3.3726 +                or <code>ALT_BUILD_JDK_IMPORT_PATH=/opt/java/import-jdk</code>
  3.3727 +            </td>
  3.3728 +            <td>Importing JDKs is no longer possible, 
  3.3729 +                but hotspot can be imported using 
  3.3730 +                <code>--with-import-hotspot</code>. 
  3.3731 +                Documentation on how to achieve a 
  3.3732 +                similar solution will come soon!
  3.3733 +            </td>
  3.3734 +        </tr>
  3.3735 +        <tr valign="top">
  3.3736 +            <td>set <code>EXTRA_CFLAGS=-Xfoo</code></td>
  3.3737 +            <td>run <code>CFLAGS=-Xfoo configure</code></td>
  3.3738 +        </tr>
  3.3739 +        <tr valign="top">
  3.3740 +            <td>set <code>CROSS_COMPILE_ARCH=i586</code></td>
  3.3741 +            <td>see <a href="#sec7.3"> section 7.3, Cross-compilation</a></td>
  3.3742 +        </tr>
  3.3743 +        <tr valign="top">
  3.3744 +            <td>set <code>SKIP_BOOT_CYCLE=false</code></td>
  3.3745 +            <td>Run <code>make bootcycle-images</code>.</td>
  3.3746 +        </tr>
  3.3747 +    </table>
  3.3748 +
  3.3749 +    <h3><a name="variables">Environment/Make Variables</a></h3>
  3.3750 +    <p>
  3.3751 +        Some of the
  3.3752 +        environment or make variables (just called <b>variables</b> in this
  3.3753 +        document) that can impact the build are:
  3.3754 +    <blockquote>
  3.3755 +        <dl>
  3.3756 +            <dt><a name="path"><code>PATH</code></a> </dt>
  3.3757 +            <dd>Typically you want to set the <code>PATH</code> to include:
  3.3758 +                <ul>
  3.3759 +                    <li>The location of the GNU make binary</li>
  3.3760 +                    <li>The location of the Bootstrap JDK <code>java</code> 
  3.3761 +                        (see <a href="#bootjdk">Bootstrap JDK</a>)</li>
  3.3762 +                    <li>The location of the C/C++ compilers 
  3.3763 +                        (see <a href="#compilers"><code>compilers</code></a>)</li>
  3.3764 +                    <li>The location or locations for the Unix command utilities
  3.3765 +                        (e.g. <code>/usr/bin</code>)</li>
  3.3766 +                </ul>
  3.3767 +            </dd>
  3.3768 +            <dt><code>MILESTONE</code> </dt>
  3.3769 +            <dd>
  3.3770 +                The milestone name for the build (<i>e.g.</i>"beta"). 
  3.3771 +                The default value is "internal".
  3.3772 +            </dd>
  3.3773 +            <dt><code>BUILD_NUMBER</code> </dt>
  3.3774 +            <dd>
  3.3775 +                The build number for the build (<i>e.g.</i> "b27"). 
  3.3776 +                The default value is "b00".
  3.3777 +            </dd>
  3.3778 +            <dt><a name="arch_data_model"><code>ARCH_DATA_MODEL</code></a></dt>
  3.3779 +            <dd>The <code>ARCH_DATA_MODEL</code> variable
  3.3780 +                is used to specify whether the build is to generate 32-bit or 64-bit
  3.3781 +                binaries. 
  3.3782 +                The Solaris build supports either 32-bit or 64-bit builds, but
  3.3783 +                Windows and Linux will support only one, depending on the specific
  3.3784 +                OS being used.
  3.3785 +                Normally, setting this variable is only necessary on Solaris.
  3.3786 +                Set <code>ARCH_DATA_MODEL</code> to <code>32</code> for generating 32-bit binaries, 
  3.3787 +                or to <code>64</code> for generating 64-bit binaries.
  3.3788 +            </dd>
  3.3789 +            <dt><a name="ALT_BOOTDIR"><code>ALT_BOOTDIR</code></a></dt>
  3.3790 +            <dd>
  3.3791 +                The location of the bootstrap JDK installation. 
  3.3792 +                See <a href="#bootjdk">Bootstrap JDK</a> for more information.
  3.3793 +                You should always install your own local Bootstrap JDK and
  3.3794 +                always set <code>ALT_BOOTDIR</code> explicitly.
  3.3795 +            </dd>
  3.3796 +            <dt><a name="ALT_OUTPUTDIR"><code>ALT_OUTPUTDIR</code></a> </dt>
  3.3797 +            <dd>
  3.3798 +                An override for specifying the (absolute) path of where the
  3.3799 +                build output is to go.
  3.3800 +                The default output directory will be build/<i>platform</i>.
  3.3801 +            </dd>
  3.3802 +            <dt><a name="ALT_COMPILER_PATH"><code>ALT_COMPILER_PATH</code></a> </dt>
  3.3803 +            <dd>
  3.3804 +                The location of the C/C++ compiler.
  3.3805 +                The default varies depending on the platform. 
  3.3806 +            </dd>
  3.3807 +            <dt><code><a name="ALT_CACERTS_FILE">ALT_CACERTS_FILE</a></code></dt>
  3.3808 +            <dd>
  3.3809 +                The location of the <a href="#cacerts">cacerts</a> file.
  3.3810 +                The default will refer to 
  3.3811 +                <code>jdk/src/share/lib/security/cacerts</code>.
  3.3812 +            </dd>
  3.3813 +            <dt><a name="ALT_CUPS_HEADERS_PATH"><code>ALT_CUPS_HEADERS_PATH</code></a> </dt>
  3.3814 +            <dd>
  3.3815 +                The location of the CUPS header files.
  3.3816 +                See <a href="#cups">CUPS information</a> for more information.
  3.3817 +                If this path does not exist the fallback path is 
  3.3818 +                <code>/usr/include</code>.
  3.3819 +            </dd>
  3.3820 +            <dt><a name="ALT_FREETYPE_LIB_PATH"><code>ALT_FREETYPE_LIB_PATH</code></a></dt>
  3.3821 +            <dd>
  3.3822 +                The location of the FreeType shared library. 
  3.3823 +                See <a href="#freetype">FreeType information</a> for details. 
  3.3824 +            </dd>
  3.3825 +            <dt><a name="ALT_FREETYPE_HEADERS_PATH"><code>ALT_FREETYPE_HEADERS_PATH</code></a></dt>
  3.3826 +            <dd>
  3.3827 +                The location of the FreeType header files.
  3.3828 +                See <a href="#freetype">FreeType information</a> for details. 
  3.3829 +            </dd>
  3.3830 +            <dt><a name="ALT_JDK_DEVTOOLS_PATH"><code>ALT_JDK_DEVTOOLS_PATH</code></a></dt>
  3.3831 +            <dd>
  3.3832 +                The default root location of the devtools.
  3.3833 +                The default value is 
  3.3834 +                <code>$(ALT_SLASH_JAVA)/devtools</code>.
  3.3835 +            </dd>
  3.3836 +            <dt><code><a name="ALT_DEVTOOLS_PATH">ALT_DEVTOOLS_PATH</a></code> </dt>
  3.3837 +            <dd>
  3.3838 +                The location of tools like the 
  3.3839 +                <a href="#zip"><code>zip</code> and <code>unzip</code></a>
  3.3840 +                binaries, but might also contain the GNU make utility
  3.3841 +                (<code><i>gmake</i></code>).
  3.3842 +                So this area is a bit of a grab bag, especially on Windows.
  3.3843 +                The default value depends on the platform and
  3.3844 +                Unix Commands being used.
  3.3845 +                On Linux the default will be 
  3.3846 +                <code>$(ALT_JDK_DEVTOOLS_PATH)/linux/bin</code>, 
  3.3847 +                on Solaris
  3.3848 +                <code>$(ALT_JDK_DEVTOOLS_PATH)/<i>{sparc,i386}</i>/bin</code>, 
  3.3849 +                and on Windows with CYGWIN
  3.3850 +                <code>/usr/bin</code>.
  3.3851 +            </dd>
  3.3852 +            <dt><a name="ALT_UNIXCCS_PATH"><code>ALT_UNIXCCS_PATH</code></a></dt>
  3.3853 +            <dd>
  3.3854 +                <strong>Solaris only:</strong>
  3.3855 +                An override for specifying where the Unix CCS
  3.3856 +                command set are located.
  3.3857 +                The default location is <code>/usr/ccs/bin</code> 
  3.3858 +            </dd>
  3.3859 +            <dt><a name="ALT_SLASH_JAVA"><code>ALT_SLASH_JAVA</code></a></dt>
  3.3860 +            <dd>
  3.3861 +                The default root location for many of the ALT path locations
  3.3862 +                of the following ALT variables.
  3.3863 +                The default value is 
  3.3864 +                <code>"/java"</code> on Solaris and Linux, 
  3.3865 +                <code>"J:"</code> on Windows.
  3.3866 +            </dd>
  3.3867 +
  3.3868 +            <dt><a name="ALT_OPENWIN_HOME"><code>ALT_OPENWIN_HOME</code></a></dt>
  3.3869 +            <dd>
  3.3870 +                The top-level directory of the libraries and include files 
  3.3871 +                for the platform's 
  3.3872 +                graphical programming environment. 
  3.3873 +                The default location is platform specific. 
  3.3874 +                For example, on Linux it defaults to <code>/usr/X11R6/</code>.
  3.3875 +            </dd>
  3.3876 +            <dt><strong>Windows specific:</strong></dt>
  3.3877 +            <dd>
  3.3878 +                <dl>
  3.3879 +                    <dt><a name="ALT_WINDOWSSDKDIR"><code>ALT_WINDOWSSDKDIR</code></a> </dt>
  3.3880 +                    <dd>
  3.3881 +                        The location of the 
  3.3882 +                        Microsoft Windows SDK where some tools will be
  3.3883 +                        located.
  3.3884 +                        The default is whatever WINDOWSSDKDIR is set to
  3.3885 +                        (or WindowsSdkDir) or the path
  3.3886 +                        <br>
  3.3887 +                        <code>c:\Program Files\Microsoft SDKs\Windows\v7.0a</code>
  3.3888 +                    </dd>
  3.3889 +                    <dt><code><a name="ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></code> </dt>
  3.3890 +                    <dd>
  3.3891 +                        The location of the 
  3.3892 +                        <a href="#dxsdk">Microsoft DirectX 9 SDK</a>.
  3.3893 +                        The default will be to try and use the DirectX environment
  3.3894 +                        variable <code>DXSDK_DIR</code>,
  3.3895 +                        failing that, look in <code>C:/DXSDK</code>.
  3.3896 +                    </dd>
  3.3897 +                    <dt><code><a name="ALT_MSVCRNN_DLL_PATH">ALT_MSVCRNN_DLL_PATH</a></code> </dt>
  3.3898 +                    <dd>
  3.3899 +                        The location of the 
  3.3900 +                        <a href="#msvcrNN"><code>MSVCR100.DLL</code></a>. 
  3.3901 +                    </dd>
  3.3902 +                </dl>
  3.3903 +            </dd>
  3.3904 +            <dt><strong>Cross-Compilation Support:</strong></dt>
  3.3905 +            <dd>
  3.3906 +                <dl>
  3.3907 +                    <dt><a name="CROSS_COMPILE_ARCH"><code>CROSS_COMPILE_ARCH</code></a> </dt>
  3.3908 +                    <dd>
  3.3909 +                        Set to the target architecture of a 
  3.3910 +                        cross-compilation build. If set, this
  3.3911 +                        variable is used to signify that we are 
  3.3912 +                        cross-compiling. The expectation
  3.3913 +                        is that
  3.3914 +                        <a href="#ALT_COMPILER_PATH"><code>ALT_COMPILER_PATH</code></a> 
  3.3915 +                        is set
  3.3916 +                        to point to the cross-compiler and that any
  3.3917 +                        cross-compilation specific flags
  3.3918 +                        are passed using 
  3.3919 +                        <a href="#EXTRA_CFLAGS"><code>EXTRA_CFLAGS</code></a>.
  3.3920 +                        The <a href="#ALT_OPENWIN_HOME"><code>ALT_OPENWIN_HOME</code></a>
  3.3921 +                        variable should 
  3.3922 +                        also be set to point to the graphical header files
  3.3923 +                        (e.g. X11) provided with 
  3.3924 +                        the cross-compiler.
  3.3925 +                        When cross-compiling we skip execution of any demos 
  3.3926 +                        etc that may be built, and
  3.3927 +                        also skip binary-file verification.
  3.3928 +                    </dd>
  3.3929 +                    <dt><code><a name="EXTRA_CFLAGS">EXTRA_CFLAGS</a></code> </dt>
  3.3930 +                    <dd>
  3.3931 +                        Used to pass cross-compilation options to the 
  3.3932 +                        cross-compiler.
  3.3933 +                        These are added to the <code>CFLAGS</code> 
  3.3934 +                        and <code>CXXFLAGS</code> variables. 
  3.3935 +                    </dd>
  3.3936 +                    <dt><code><a name="USE_ONLY_BOOTDIR_TOOLS">USE_ONLY_BOOTDIR_TOOLS</a></code> </dt>
  3.3937 +                    <dd>
  3.3938 +                        Used primarily for cross-compilation builds
  3.3939 +                        (and always set in that case)
  3.3940 +                        this variable indicates that tools from the
  3.3941 +                        boot JDK should be used during
  3.3942 +                        the build process, not the tools
  3.3943 +                        (<code>javac</code>, <code>javah</code>, <code>jar</code>)
  3.3944 +                        just built (which can't execute on the build host).
  3.3945 +                    </dd>
  3.3946 +                    <dt><code><a name="HOST_CC">HOST_CC</a></code> </dt>
  3.3947 +                    <dd>
  3.3948 +                        The location of the C compiler to generate programs 
  3.3949 +                        to run on the build host.
  3.3950 +                        Some parts of the build generate programs that are
  3.3951 +                        then compiled and executed
  3.3952 +                        to produce other parts of the build. Normally the 
  3.3953 +                        primary C compiler is used
  3.3954 +                        to do this, but when cross-compiling that would be
  3.3955 +                        the cross-compiler and the
  3.3956 +                        resulting program could not be executed. 
  3.3957 +                        On Linux this defaults to <code>/usr/bin/gcc</code>; 
  3.3958 +                        on other platforms it must be
  3.3959 +                        set explicitly.
  3.3960 +                    </dd>
  3.3961 +                </dl>
  3.3962 +            <dt><strong>Specialized Build Options:</strong></dt>
  3.3963 +            <dd>
  3.3964 +                Some build variables exist to support specialized build 
  3.3965 +                environments and/or specialized
  3.3966 +                build products. Their use is only supported in those contexts:
  3.3967 +                <dl>
  3.3968 +                    <dt><code><a name="BUILD_CLIENT_ONLY">BUILD_CLIENT_ONLY</a></code> </dt>
  3.3969 +                    <dd>
  3.3970 +                        Indicates this build will only contain the 
  3.3971 +                        Hotspot client VM. In addition to
  3.3972 +                        controlling the Hotspot build target, 
  3.3973 +                        it ensures that we don't try to copy
  3.3974 +                        any server VM files/directories, 
  3.3975 +                        and defines a default <code>jvm.cfg</code> file
  3.3976 +                        suitable for a client-only environment. 
  3.3977 +                        Using this in a 64-bit build will
  3.3978 +                        generate a sanity warning as 64-bit client 
  3.3979 +                        builds are not directly supported.
  3.3980 +                    </dd>
  3.3981 +                    <dt><code><a name="BUILD_HEADLESS_ONLY"></a>BUILD_HEADLESS_ONLY</code> </dt>
  3.3982 +                    <dd>
  3.3983 +                        Used when the build environment has no graphical 
  3.3984 +                        capabilities at all. This
  3.3985 +                        excludes building anything that requires graphical 
  3.3986 +                        libraries to be available.
  3.3987 +                    </dd>
  3.3988 +                    <dt><code><a name="JAVASE_EMBEDDED"></a>JAVASE_EMBEDDED</code> </dt>
  3.3989 +                    <dd>
  3.3990 +                        Used to indicate this is a build of the Oracle 
  3.3991 +                        Java SE Embedded product. 
  3.3992 +                        This will enable the directives included in the 
  3.3993 +                        SE-Embedded specific build 
  3.3994 +                        files.
  3.3995 +                    </dd>
  3.3996 +                    <dt><code><a name="LIBZIP_CAN_USE_MMAP">LIBZIP_CAN_USE_MMAP</a></code> </dt>
  3.3997 +                    <dd>
  3.3998 +                        If set to false, disables the use of mmap by the
  3.3999 +                        zip utility. Otherwise,
  3.4000 +                        mmap will be used.
  3.4001 +                    </dd>
  3.4002 +                    <dt><code><a name="COMPRESS_JARS"></a>COMPRESS_JARS</code> </dt>
  3.4003 +                    <dd>
  3.4004 +                        If set to true, causes certain jar files that 
  3.4005 +                        would otherwise be built without
  3.4006 +                        compression, to use compression.
  3.4007 +                    </dd>
  3.4008 +                </dl>
  3.4009 +            </dd>
  3.4010 +        </dl>
  3.4011 +    </blockquote>
  3.4012 +
  3.4013 +</blockquote> <!-- Appendix D -->
  3.4014 +
  3.4015 +        <!-- ====================================================== -->
  3.4016          <hr>
  3.4017 -        <h2><a name="creating">Creating the Build</a></h2>
  3.4018 -        <blockquote>
  3.4019 -            Once a machine is setup to build the OpenJDK,
  3.4020 -            the steps to create the build are fairly simple.
  3.4021 -            The various ALT settings can either be made into  variables
  3.4022 -            or can be supplied on the 
  3.4023 -            <a href="#gmake"><tt><i>gmake</i></tt></a> 
  3.4024 -            command.
  3.4025 -            <ol>
  3.4026 -                <li>Use the sanity rule to double check all the ALT settings:
  3.4027 -                    <blockquote>
  3.4028 -                        <tt>
  3.4029 -                            <i>gmake</i> 
  3.4030 -                            sanity
  3.4031 -                            [ARCH_DATA_MODEL=<i>32 or 64</i>]
  3.4032 -                            [other "ALT_" overrides]
  3.4033 -                        </tt>
  3.4034 -                    </blockquote>
  3.4035 -                </li>
  3.4036 -                <li>Start the build with the command:
  3.4037 -                    <blockquote>
  3.4038 -                        <tt>
  3.4039 -                            <i>gmake</i> 
  3.4040 -                            [ARCH_DATA_MODEL=<i>32 or 64</i>]
  3.4041 -                            [ALT_OUTPUTDIR=<i>output_directory</i>] 
  3.4042 -                            [other "ALT_" overrides] 
  3.4043 -                        </tt>
  3.4044 -                    </blockquote>
  3.4045 -                </li>
  3.4046 -            </ol>
  3.4047 -            <p>
  3.4048 -                <strong>Solaris:</strong>
  3.4049 -                Note that ARCH_DATA_MODEL is really only needed on Solaris to
  3.4050 -                indicate you want to built the 64-bit version.
  3.4051 -                And before the Solaris 64-bit binaries can be used, they
  3.4052 -                must be merged with the binaries from a separate 32-bit build.
  3.4053 -                The merged binaries may then be used in either 32-bit or 64-bit mode, with
  3.4054 -                the selection occurring at runtime
  3.4055 -                with the <tt>-d32</tt> or <tt>-d64</tt> options.
  3.4056 -        </blockquote>
  3.4057 -        <!-- ------------------------------------------------------ -->
  3.4058 +        <p>End of OpenJDK README-builds.html document.<br>Please come again!
  3.4059          <hr>
  3.4060 -        <h2><a name="testing">Testing the Build</a></h2>
  3.4061 -        <blockquote>
  3.4062 -            When the build is completed, you should see the generated
  3.4063 -            binaries and associated files in the <tt>j2sdk-image</tt> 
  3.4064 -            directory in the output directory. 
  3.4065 -            The default output directory is
  3.4066 -            <tt>build/<i>platform</i></tt>,
  3.4067 -            where <tt><i>platform</i></tt> is one of
  3.4068 -            <blockquote>
  3.4069 -                <ul>
  3.4070 -                    <li><tt>solaris-sparc</tt></li>
  3.4071 -                    <li><tt>solaris-sparcv9</tt></li>
  3.4072 -                    <li><tt>solaris-i586</tt></li>
  3.4073 -                    <li><tt>solaris-amd64</tt></li>
  3.4074 -                    <li><tt>linux-i586</tt></li>
  3.4075 -                    <li><tt>linux-amd64</tt></li>
  3.4076 -                    <li><tt>windows-i586</tt></li>
  3.4077 -                    <li><tt>windows-amd64</tt></li>
  3.4078 -                </ul>
  3.4079 -            </blockquote>
  3.4080 -            In particular, the 
  3.4081 -            <tt>build/<i>platform</i>/j2sdk-image/bin</tt>
  3.4082 -            directory should contain executables for the 
  3.4083 -            OpenJDK tools and utilities.
  3.4084 -            <p>
  3.4085 -                You can test that the build completed properly by using the build
  3.4086 -                to run the various demos that you will find in the
  3.4087 -                <tt>build/<i>platform</i>/j2sdk-image/demo</tt>
  3.4088 -                directory.
  3.4089 -            <p>
  3.4090 -                The provided regression tests can be run with the <tt>jtreg</tt>
  3.4091 -                utility from
  3.4092 -                <a href="http://openjdk.java.net/jtreg/" target="_blank">the jtreg site</a>.
  3.4093 -        </blockquote>
  3.4094 -        <!-- ------------------------------------------------------ -->
  3.4095 -        <hr>
  3.4096 -        <h2><a name="variables">Environment/Make Variables</a></h2>
  3.4097 -        <p>
  3.4098 -            Some of the
  3.4099 -            environment or make variables (just called <b>variables</b> in this
  3.4100 -            document) that can impact the build are:
  3.4101 -        <blockquote>
  3.4102 -            <dl>
  3.4103 -                <dt><a name="path"><tt>PATH</tt></a> </dt>
  3.4104 -                <dd>Typically you want to set the <tt>PATH</tt> to include:
  3.4105 -                    <ul>
  3.4106 -                        <li>The location of the GNU make binary</li>
  3.4107 -                        <li>The location of the Bootstrap JDK <tt>java</tt> 
  3.4108 -                            (see <a href="#bootjdk">Bootstrap JDK</a>)</li>
  3.4109 -                        <li>The location of the C/C++ compilers 
  3.4110 -                            (see <a href="#compilers"><tt>compilers</tt></a>)</li>
  3.4111 -                        <li>The location or locations for the Unix command utilities
  3.4112 -                            (e.g. <tt>/usr/bin</tt>)</li>
  3.4113 -                    </ul>
  3.4114 -                </dd>
  3.4115 -                <dt><tt>MILESTONE</tt> </dt>
  3.4116 -                <dd>
  3.4117 -                    The milestone name for the build (<i>e.g.</i>"beta"). 
  3.4118 -                    The default value is "internal".
  3.4119 -                </dd>
  3.4120 -                <dt><tt>BUILD_NUMBER</tt> </dt>
  3.4121 -                <dd>
  3.4122 -                    The build number for the build (<i>e.g.</i> "b27"). 
  3.4123 -                    The default value is "b00".
  3.4124 -                </dd>
  3.4125 -                <dt><a name="arch_data_model"><tt>ARCH_DATA_MODEL</tt></a></dt>
  3.4126 -                <dd>The <tt>ARCH_DATA_MODEL</tt> variable
  3.4127 -                    is used to specify whether the build is to generate 32-bit or 64-bit
  3.4128 -                    binaries. 
  3.4129 -                    The Solaris build supports either 32-bit or 64-bit builds, but
  3.4130 -                    Windows and Linux will support only one, depending on the specific
  3.4131 -                    OS being used.
  3.4132 -                    Normally, setting this variable is only necessary on Solaris.
  3.4133 -                    Set <tt>ARCH_DATA_MODEL</tt> to <tt>32</tt> for generating 32-bit binaries, 
  3.4134 -                    or to <tt>64</tt> for generating 64-bit binaries.
  3.4135 -                </dd>
  3.4136 -                <dt><a name="ALT_BOOTDIR"><tt>ALT_BOOTDIR</tt></a></dt>
  3.4137 -                <dd>
  3.4138 -                    The location of the bootstrap JDK installation. 
  3.4139 -                    See <a href="#bootjdk">Bootstrap JDK</a> for more information.
  3.4140 -                    You should always install your own local Bootstrap JDK and
  3.4141 -                    always set <tt>ALT_BOOTDIR</tt> explicitly.
  3.4142 -                </dd>
  3.4143 -                <dt><a name="ALT_JDK_IMPORT_PATH"><tt>ALT_JDK_IMPORT_PATH</tt></a></dt>
  3.4144 -                <dd>
  3.4145 -                    The location of a previously built JDK installation. 
  3.4146 -                    See <a href="#importjdk">Optional Import JDK</a> for more information.
  3.4147 -                </dd>
  3.4148 -                <dt><a name="ALT_OUTPUTDIR"><tt>ALT_OUTPUTDIR</tt></a> </dt>
  3.4149 -                <dd>
  3.4150 -                    An override for specifying the (absolute) path of where the
  3.4151 -                    build output is to go.
  3.4152 -                    The default output directory will be build/<i>platform</i>.
  3.4153 -                </dd>
  3.4154 -                <dt><a name="ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a> </dt>
  3.4155 -                <dd>
  3.4156 -                    The location of the C/C++ compiler.
  3.4157 -                    The default varies depending on the platform. 
  3.4158 -                </dd>
  3.4159 -                <dt><tt><a name="ALT_CACERTS_FILE">ALT_CACERTS_FILE</a></tt></dt>
  3.4160 -                <dd>
  3.4161 -                    The location of the <a href="#cacerts">cacerts</a> file.
  3.4162 -                    The default will refer to 
  3.4163 -                    <tt>jdk/src/share/lib/security/cacerts</tt>.
  3.4164 -                </dd>
  3.4165 -                <dt><a name="ALT_CUPS_HEADERS_PATH"><tt>ALT_CUPS_HEADERS_PATH</tt></a> </dt>
  3.4166 -                <dd>
  3.4167 -                    The location of the CUPS header files.
  3.4168 -                    See <a href="#cups">CUPS information</a> for more information.
  3.4169 -                    If this path does not exist the fallback path is 
  3.4170 -                    <tt>/usr/include</tt>.
  3.4171 -                </dd>
  3.4172 -                <dt><a name="ALT_FREETYPE_LIB_PATH"><tt>ALT_FREETYPE_LIB_PATH</tt></a></dt>
  3.4173 -                <dd>
  3.4174 -                    The location of the FreeType shared library. 
  3.4175 -                    See <a href="#freetype">FreeType information</a> for details. 
  3.4176 -                </dd>
  3.4177 -                <dt><a name="ALT_FREETYPE_HEADERS_PATH"><tt>ALT_FREETYPE_HEADERS_PATH</tt></a></dt>
  3.4178 -                <dd>
  3.4179 -                    The location of the FreeType header files.
  3.4180 -                    See <a href="#freetype">FreeType information</a> for details. 
  3.4181 -                </dd>
  3.4182 -                <dt><a name="ALT_JDK_DEVTOOLS_PATH"><tt>ALT_JDK_DEVTOOLS_PATH</tt></a></dt>
  3.4183 -                <dd>
  3.4184 -                    The default root location of the devtools.
  3.4185 -                    The default value is 
  3.4186 -                    <tt>$(ALT_SLASH_JAVA)/devtools</tt>.
  3.4187 -                </dd>
  3.4188 -                <dt><tt><a name="ALT_DEVTOOLS_PATH">ALT_DEVTOOLS_PATH</a></tt> </dt>
  3.4189 -                <dd>
  3.4190 -                    The location of tools like the 
  3.4191 -                    <a href="#zip"><tt>zip</tt> and <tt>unzip</tt></a>
  3.4192 -                    binaries, but might also contain the GNU make utility
  3.4193 -                    (<tt><i>gmake</i></tt>).
  3.4194 -                    So this area is a bit of a grab bag, especially on Windows.
  3.4195 -                    The default value depends on the platform and
  3.4196 -                    Unix Commands being used.
  3.4197 -                    On Linux the default will be 
  3.4198 -                    <tt>$(ALT_JDK_DEVTOOLS_PATH)/linux/bin</tt>, 
  3.4199 -                    on Solaris
  3.4200 -                    <tt>$(ALT_JDK_DEVTOOLS_PATH)/<i>{sparc,i386}</i>/bin</tt>, 
  3.4201 -                    and on Windows with CYGWIN
  3.4202 -                    <tt>/usr/bin</tt>.
  3.4203 -                </dd>
  3.4204 -                <dt><tt><a name="ALT_DROPS_DIR">ALT_DROPS_DIR</a></tt> </dt>
  3.4205 -                <dd>
  3.4206 -                    The location of any source drop bundles
  3.4207 -                    (see <a href="#drops">Managing the Source Drops</a>).
  3.4208 -                    The default will be
  3.4209 -                    <tt>$(ALT_JDK_DEVTOOLS_PATH)/share/jdk8-drops</tt>.
  3.4210 -                </dd>
  3.4211 -                <dt><a name="ALT_UNIXCCS_PATH"><tt>ALT_UNIXCCS_PATH</tt></a></dt>
  3.4212 -                <dd>
  3.4213 -                    <strong>Solaris only:</strong>
  3.4214 -                    An override for specifying where the Unix CCS
  3.4215 -                    command set are located.
  3.4216 -                    The default location is <tt>/usr/ccs/bin</tt> 
  3.4217 -                </dd>
  3.4218 -                <dt><a name="ALT_SLASH_JAVA"><tt>ALT_SLASH_JAVA</tt></a></dt>
  3.4219 -                <dd>
  3.4220 -                    The default root location for many of the ALT path locations
  3.4221 -                    of the following ALT variables.
  3.4222 -                    The default value is 
  3.4223 -                    <tt>"/java"</tt> on Solaris and Linux, 
  3.4224 -                    <tt>"J:"</tt> on Windows.
  3.4225 -                </dd>
  3.4226 -                <dt><a name="ALT_BUILD_JDK_IMPORT_PATH"><tt>ALT_BUILD_JDK_IMPORT_PATH</tt></a></dt>
  3.4227 -                <dd>
  3.4228 -                    These are useful in managing builds on multiple platforms.
  3.4229 -                    The default network location for all of the import JDK images
  3.4230 -                    for all platforms. 
  3.4231 -                    If <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>
  3.4232 -                    is not set, this directory will be used and should contain 
  3.4233 -                    the following directories:
  3.4234 -                    <tt>solaris-sparc</tt>,
  3.4235 -                    <tt>solaris-i586</tt>,
  3.4236 -                    <tt>solaris-sparcv9</tt>,
  3.4237 -                    <tt>solaris-amd64</tt>,
  3.4238 -                    <tt>linux-i586</tt>,
  3.4239 -                    <tt>linux-amd64</tt>,
  3.4240 -                    <tt>windows-i586</tt>,
  3.4241 -                    and
  3.4242 -                    <tt>windows-amd64</tt>.
  3.4243 -                    Where each of these directories contain the import JDK image
  3.4244 -                    for that platform.
  3.4245 -                </dd>
  3.4246 -                <dt><a name="ALT_OPENWIN_HOME"><tt>ALT_OPENWIN_HOME</tt></a></dt>
  3.4247 -                <dd>
  3.4248 -                    The top-level directory of the libraries and include files for the platform's 
  3.4249 -                    graphical programming environment. The default location is platform specific. 
  3.4250 -                    For example, on Linux it defaults to <tt>/usr/X11R6/</tt>.
  3.4251 -                </dd>
  3.4252 -                <dt><strong>Windows specific:</strong></dt>
  3.4253 -                <dd>
  3.4254 -                    <dl>
  3.4255 -                        <dt><a name="ALT_WINDOWSSDKDIR"><tt>ALT_WINDOWSSDKDIR</tt></a> </dt>
  3.4256 -                        <dd>
  3.4257 -                            The location of the 
  3.4258 -                            Microsoft Windows SDK where some tools will be
  3.4259 -                            located.
  3.4260 -                            The default is whatever WINDOWSSDKDIR is set to
  3.4261 -                            (or WindowsSdkDir) or the path
  3.4262 -                            <br>
  3.4263 -                            <tt>c:\Program Files\Microsoft SDKs\Windows\v7.0a</tt>
  3.4264 -                        </dd>
  3.4265 -                        <dt><tt><a name="ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> </dt>
  3.4266 -                        <dd>
  3.4267 -                            The location of the 
  3.4268 -                            <a href="#dxsdk">Microsoft DirectX 9 SDK</a>.
  3.4269 -                            The default will be to try and use the DirectX environment
  3.4270 -                            variable <tt>DXSDK_DIR</tt>,
  3.4271 -                            failing that, look in <tt>C:/DXSDK</tt>.
  3.4272 -                        </dd>
  3.4273 -                        <dt><tt><a name="ALT_MSVCRNN_DLL_PATH">ALT_MSVCRNN_DLL_PATH</a></tt> </dt>
  3.4274 -                        <dd>
  3.4275 -                            The location of the 
  3.4276 -                            <a href="#msvcrNN"><tt>MSVCR100.DLL</tt></a>. 
  3.4277 -                        </dd>
  3.4278 -                    </dl>
  3.4279 -                </dd>
  3.4280 -                <dt><strong>Cross-Compilation Support:</strong></dt>
  3.4281 -                <dd>
  3.4282 -                    <dl>
  3.4283 -                        <dt><a name="CROSS_COMPILE_ARCH"><tt>CROSS_COMPILE_ARCH</tt></a> </dt>
  3.4284 -                        <dd>
  3.4285 -                            Set to the target architecture of a cross-compilation build. If set, this
  3.4286 -                            variable is used to signify that we are cross-compiling. The expectation
  3.4287 -                            is that <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a> is set
  3.4288 -                            to point to the cross-compiler and that any cross-compilation specific flags
  3.4289 -                            are passed using <a href="#EXTRA_CFLAGS"><tt>EXTRA_CFLAGS</tt></a>.
  3.4290 -                            The <a href="#ALT_OPENWIN_HOME"><tt>ALT_OPENWIN_HOME</tt></a> variable should 
  3.4291 -                            also be set to point to the graphical header files (e.g. X11) provided with 
  3.4292 -                            the cross-compiler.
  3.4293 -                            When cross-compiling we skip execution of any demos etc that may be built, and
  3.4294 -                            also skip binary-file verification.
  3.4295 -                        </dd>
  3.4296 -                        <dt><tt><a name="EXTRA_CFLAGS">EXTRA_CFLAGS</a></tt> </dt>
  3.4297 -                        <dd>
  3.4298 -                           Used to pass cross-compilation options to the cross-compiler.
  3.4299 -                           These are added to the <tt>CFLAGS</tt> and <tt>CXXFLAGS</tt> variables. 
  3.4300 -                        </dd>
  3.4301 -                        <dt><tt><a name="USE_ONLY_BOOTDIR_TOOLS">USE_ONLY_BOOTDIR_TOOLS</a></tt> </dt>
  3.4302 -                        <dd>
  3.4303 -                            Used primarily for cross-compilation builds (and always set in that case)
  3.4304 -                            this variable indicates that tools from the boot JDK should be used during
  3.4305 -                            the build process, not the tools (<tt>javac</tt>, <tt>javah</tt>, <tt>jar</tt>)
  3.4306 -                            just built (which can't execute on the build host).
  3.4307 -                        </dd>
  3.4308 -                        <dt><tt><a name="HOST_CC">HOST_CC</a></tt> </dt>
  3.4309 -                        <dd>
  3.4310 -                            The location of the C compiler to generate programs to run on the build host.
  3.4311 -                            Some parts of the build generate programs that are then compiled and executed
  3.4312 -                            to produce other parts of the build. Normally the primary C compiler is used
  3.4313 -                            to do this, but when cross-compiling that would be the cross-compiler and the
  3.4314 -                            resulting program could not be executed. 
  3.4315 -                            On Linux this defaults to <tt>/usr/bin/gcc</tt>; on other platforms it must be
  3.4316 -                            set explicitly.
  3.4317 -                        </dd>
  3.4318 -                    </dl>
  3.4319 -                <dt><strong>Specialized Build Options:</strong></dt>
  3.4320 -                <dd>
  3.4321 -                  Some build variables exist to support specialized build environments and/or specialized
  3.4322 -                  build products. Their use is only supported in those contexts:
  3.4323 -                    <dl>
  3.4324 -                        <dt><tt><a name="BUILD_CLIENT_ONLY">BUILD_CLIENT_ONLY</a></tt> </dt>
  3.4325 -                        <dd>
  3.4326 -                            Indicates this build will only contain the Hotspot client VM. In addition to
  3.4327 -                            controlling the Hotspot build target, it ensures that we don't try to copy
  3.4328 -                            any server VM files/directories, and defines a default <tt>jvm.cfg</tt> file
  3.4329 -                            suitable for a client-only environment. Using this in a 64-bit build will
  3.4330 -                            generate a sanity warning as 64-bit client builds are not directly supported.
  3.4331 -                        </dd>
  3.4332 -                        <dt><tt><a name="BUILD_HEADLESS_ONLY"></a>BUILD_HEADLESS_ONLY</tt> </dt>
  3.4333 -                        <dd>
  3.4334 -                            Used when the build environment has no graphical capabilities at all. This
  3.4335 -                            excludes building anything that requires graphical libraries to be available.
  3.4336 -                        </dd>
  3.4337 -                        <dt><tt><a name="JAVASE_EMBEDDED"></a>JAVASE_EMBEDDED</tt> </dt>
  3.4338 -                        <dd>
  3.4339 -                            Used to indicate this is a build of the Oracle Java SE Embedded product. 
  3.4340 -                            This will enable the directives included in the SE-Embedded specific build 
  3.4341 -                            files.
  3.4342 -                        </dd>
  3.4343 -                        <dt><tt><a name="LIBZIP_CAN_USE_MMAP">LIBZIP_CAN_USE_MMAP</a></tt> </dt>
  3.4344 -                        <dd>
  3.4345 -                            If set to false, disables the use of mmap by the zip utility. Otherwise,
  3.4346 -                            mmap will be used.
  3.4347 -                        </dd>
  3.4348 -                        <dt><tt><a name="COMPRESS_JARS"></a>COMPRESS_JARS</tt> </dt>
  3.4349 -                        <dd>
  3.4350 -                          If set to true, causes certain jar files that would otherwise be built without
  3.4351 -                          compression, to use compression.
  3.4352 -                        </dd>
  3.4353 -                    </dl>
  3.4354 -                </dd>
  3.4355 -            </dl>
  3.4356 -        </blockquote>
  3.4357 -        <!-- ------------------------------------------------------ -->
  3.4358 -        <hr>
  3.4359 -        <h2><a name="hints">Hints and Tips</a></h2>
  3.4360 -        <blockquote>
  3.4361 -            You don't have to use all these hints and tips, and in fact people do actually
  3.4362 -            build with systems that contradict these, but they might prove to be
  3.4363 -            helpful to some.
  3.4364 -            <ul>
  3.4365 -                <li>
  3.4366 -                    If <tt>make sanity</tt> does not work, find out why, fix that
  3.4367 -                    before going any further. Or at least understand what the
  3.4368 -                    complaints are from it.
  3.4369 -                </li>
  3.4370 -                <li>
  3.4371 -                    JDK: Keep in mind that you are building a JDK, but you need
  3.4372 -                    a JDK (BOOTDIR JDK) to build this JDK.
  3.4373 -                </li>
  3.4374 -                <li>
  3.4375 -                    Ant: The ant utility is a java application and besides having
  3.4376 -                    ant available to you, it's important that ant finds the right
  3.4377 -                    java to run with. Make sure you can type <tt>ant -version</tt>
  3.4378 -                    and get clean results with no error messages.
  3.4379 -                </li>
  3.4380 -                <li>
  3.4381 -                    Linux: Try and favor the system packages over building your own
  3.4382 -                    or getting packages from other areas.
  3.4383 -                    Most Linux builds should be possible with the system's
  3.4384 -                    available packages.
  3.4385 -                </li>
  3.4386 -                <li>
  3.4387 -                    Solaris: Typically you will need to get compilers on your systems
  3.4388 -                    and occasionally GNU make 3.81 if a gmake binary is not available.
  3.4389 -                    The gmake binary might not be 3.81, be careful.
  3.4390 -                </li>
  3.4391 -                <li>
  3.4392 -                    Windows VS2010:
  3.4393 -                    <ul>
  3.4394 -                        <li>
  3.4395 -                            Only the C++ part of VS2010 is needed.
  3.4396 -                            Try to let the installation go to the default install directory.
  3.4397 -                            Always reboot your system after installing VS2010.
  3.4398 -                            The system environment variable VS100COMNTOOLS should be
  3.4399 -                            set in your environment.
  3.4400 -                        </li>
  3.4401 -                        <li>
  3.4402 -                            Make sure that TMP and TEMP are also set in the environment
  3.4403 -                            and refer to Windows paths that exist, like <tt>C:\temp</tt>,
  3.4404 -                            not <tt>/tmp</tt>, not <tt>/cygdrive/c/temp</tt>, and not <tt>C:/temp</tt>.
  3.4405 -                            <tt>C:\temp</tt> is just an example, it is assumed that this area is
  3.4406 -                            private to the user, so by default after installs you should
  3.4407 -                            see a unique user path in these variables.
  3.4408 -                        </li>
  3.4409 -                        <li>
  3.4410 -                            You need to use vsvars32.bat or vsvars64.bat to get the
  3.4411 -                            PATH, INCLUDE, LIB, LIBPATH, and WINDOWSSDKDIR
  3.4412 -                            variables set in your shell environment.
  3.4413 -                            These bat files are not easy to use from a shell environment.
  3.4414 -                            However, there is a script placed in the root jdk8 repository called
  3.4415 -                            vsvars.sh that can help, it should only be done once in a shell
  3.4416 -                            that will be doing the build, e.g.<br>
  3.4417 -                            <tt>sh ./make/scripts/vsvars.sh -v10 > settings<br>
  3.4418 -                                eval `cat settings`</tt><br>
  3.4419 -                            Or just <tt>eval `sh ./make/scripts/vsvars.sh -v10`</tt>.
  3.4420 -                        </li>
  3.4421 -                    </ul>
  3.4422 -                </li>
  3.4423 -                <li>
  3.4424 -                    Windows: PATH order is critical, see the
  3.4425 -                    <a href="#paths">paths</a> section for more information.
  3.4426 -                </li>
  3.4427 -                <li>
  3.4428 -                    Windows 64bit builds: Use ARCH_DATA_MODEL=64.
  3.4429 -                </li>
  3.4430 -            </ul>
  3.4431 -        </blockquote>
  3.4432 -        <!-- ------------------------------------------------------ -->
  3.4433 -        <hr>
  3.4434 -        <h2><a name="troubleshooting">Troubleshooting</a></h2>
  3.4435 -        <blockquote>
  3.4436 -            A build can fail for any number of reasons. 
  3.4437 -            Most failures
  3.4438 -            are a result of trying to build in an environment in which all the
  3.4439 -            pre-build requirements have not been met. 
  3.4440 -            The first step in
  3.4441 -            troubleshooting a build failure is to recheck that you have satisfied
  3.4442 -            all the pre-build requirements for your platform.
  3.4443 -            Look for the check list of the platform you are building on in the
  3.4444 -            <a href="#contents">Table of Contents</a>.
  3.4445 -            <p>
  3.4446 -                You can validate your build environment by using the <tt>sanity</tt>
  3.4447 -                target.
  3.4448 -                Any errors listed
  3.4449 -                will stop the build from starting, and any warnings may result in
  3.4450 -                a flawed product build.
  3.4451 -                We strongly encourage you to evaluate every
  3.4452 -                sanity check warning and fix it if required, before you proceed
  3.4453 -                further with your build.
  3.4454 -            <p>
  3.4455 -                Some of the more common problems with builds are briefly described
  3.4456 -                below, with suggestions for remedies.
  3.4457 -            <ul>
  3.4458 -                <li>
  3.4459 -                    <b>Corrupted Bundles on Windows:</b>
  3.4460 -                    <blockquote>
  3.4461 -                        Some virus scanning software has been known to corrupt the
  3.4462 -                        downloading of zip bundles.
  3.4463 -                        It may be necessary to disable the 'on access' or 'real time'
  3.4464 -                        virus scanning features to prevent this corruption.
  3.4465 -                        This type of "real time" virus scanning can also slow down the
  3.4466 -                        build process significantly.
  3.4467 -                        Temporarily disabling the feature, or excluding the build
  3.4468 -                        output directory may be necessary to get correct and faster builds.
  3.4469 -                    </blockquote>
  3.4470 -                </li>
  3.4471 -                <li>
  3.4472 -                    <b>Slow Builds:</b>
  3.4473 -                    <blockquote>
  3.4474 -                        If your build machine seems to be overloaded from too many
  3.4475 -                        simultaneous C++ compiles, try setting the <tt>HOTSPOT_BUILD_JOBS</tt>
  3.4476 -                        variable to <tt>1</tt> (if you're using a multiple CPU
  3.4477 -                        machine, setting it to more than the the number of CPUs is probably
  3.4478 -                        not a good idea).
  3.4479 -                        <p>
  3.4480 -                            Creating the javadocs can be very slow, if you are running
  3.4481 -                            javadoc, consider skipping that step.
  3.4482 -                        <p>
  3.4483 -                            Faster hardware and more RAM always helps too.
  3.4484 -                            The VM build tends to be CPU intensive (many C++ compiles),
  3.4485 -                            and the rest of the JDK will often be disk intensive.
  3.4486 -                        <p>
  3.4487 -                            Faster compiles are possible using a tool called
  3.4488 -                            <a href="http://ccache.samba.org/" target="_blank">ccache</a>.
  3.4489 -                    </blockquote>
  3.4490 -                </li>
  3.4491 -                <li>
  3.4492 -                    <b>File time issues:</b>
  3.4493 -                    <blockquote>
  3.4494 -                        If you see warnings that refer to file time stamps, e.g.
  3.4495 -                        <blockquote>
  3.4496 -                            <i>Warning message:</i><tt> File `xxx' has modification time in
  3.4497 -                                the future.</tt>
  3.4498 -                            <br>
  3.4499 -                            <i>Warning message:</i> <tt> Clock skew detected. Your build may
  3.4500 -                                be incomplete.</tt>
  3.4501 -                        </blockquote>
  3.4502 -                        These warnings can occur when the clock on the build machine is out of
  3.4503 -                        sync with the timestamps on the source files. Other errors, apparently
  3.4504 -                        unrelated but in fact caused by the clock skew, can occur along with
  3.4505 -                        the clock skew warnings. These secondary errors may tend to obscure the
  3.4506 -                        fact that the true root cause of the problem is an out-of-sync clock.
  3.4507 -                        For example, an out-of-sync clock has been known to cause an old
  3.4508 -                        version of javac to be used to compile some files, resulting in errors
  3.4509 -                        when the pre-1.4 compiler ran across the new <tt>assert</tt> keyword
  3.4510 -                        in the 1.4 source code.
  3.4511 -                        <p>
  3.4512 -                            If you see these warnings, reset the clock on the build
  3.4513 -                            machine, run "<tt><i>gmake</i> clobber</tt>" or delete the directory
  3.4514 -                            containing the build output, and restart the build from the beginning.
  3.4515 -                    </blockquote>
  3.4516 -                </li>
  3.4517 -                <li>
  3.4518 -                    <b>Error message: <tt>Trouble writing out table to disk</tt></b>
  3.4519 -                    <blockquote>
  3.4520 -                        Increase the amount of swap space on your build machine.
  3.4521 -                    </blockquote>
  3.4522 -                </li>
  3.4523 -                <li>
  3.4524 -                    <b>Error Message: <tt>libstdc++ not found:</tt></b>
  3.4525 -                    <blockquote>
  3.4526 -                        This is caused by a missing libstdc++.a library.
  3.4527 -                        This is installed as part of a specific package
  3.4528 -                        (e.g. libstdc++.so.devel.386).
  3.4529 -                        By default some 64-bit Linux versions (e.g. Fedora)
  3.4530 -                        only install the 64-bit version of the libstdc++ package.
  3.4531 -                        Various parts of the JDK build require a static
  3.4532 -                        link of the C++ runtime libraries to allow for maximum
  3.4533 -                        portability of the built images.
  3.4534 -                    </blockquote>
  3.4535 -                </li>
  3.4536 -                <li>
  3.4537 -                    <b>Error Message: <tt>cannot restore segment prot after reloc</tt></b>
  3.4538 -                    <blockquote>
  3.4539 -                        This is probably an issue with SELinux (See
  3.4540 -                        <a href="http://en.wikipedia.org/wiki/SELinux" target="_blank">
  3.4541 -                            http://en.wikipedia.org/wiki/SELinux</a>).
  3.4542 -                        Parts of the VM is built without the <tt>-fPIC</tt> for
  3.4543 -                        performance reasons.
  3.4544 -                        <p>
  3.4545 -                            To completely disable SELinux:
  3.4546 -                        <ol>
  3.4547 -                            <li><tt>$ su root</tt></li>
  3.4548 -                            <li><tt># system-config-securitylevel</tt></li>
  3.4549 -                            <li><tt>In the window that appears, select the SELinux tab</tt></li>
  3.4550 -                            <li><tt>Disable SELinux</tt></li>
  3.4551 -                        </ol>
  3.4552 -                        <p>
  3.4553 -                            Alternatively, instead of completely disabling it you could
  3.4554 -                            disable just this one check.
  3.4555 -                        <ol>
  3.4556 -                            <li>Select System->Administration->SELinux Management</li>
  3.4557 -                            <li>In the SELinux Management Tool which appears,
  3.4558 -                                select "Boolean" from the menu on the left</li>
  3.4559 -                            <li>Expand the "Memory Protection" group</li>
  3.4560 -                            <li>Check the first item, labeled
  3.4561 -                                "Allow all unconfined executables to use libraries requiring text relocation ..."</li>
  3.4562 -                        </ol>
  3.4563 -                    </blockquote>
  3.4564 -                </li>
  3.4565 -                <li>
  3.4566 -                    <b>Windows Error Messages:</b><br>
  3.4567 -                    <tt>*** fatal error - couldn't allocate heap, ... </tt><br>
  3.4568 -                    <tt>rm fails with "Directory not empty"</tt><br>
  3.4569 -                    <tt>unzip fails with "cannot create ... Permission denied"</tt><br>
  3.4570 -                    <tt>unzip fails with "cannot create ... Error 50"</tt><br>
  3.4571 -                    <blockquote>
  3.4572 -                        The CYGWIN software can conflict with other non-CYGWIN
  3.4573 -                        software. See the CYGWIN FAQ section on
  3.4574 -                        <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank">
  3.4575 -                            BLODA (applications that interfere with CYGWIN)</a>.
  3.4576 -                    </blockquote>
  3.4577 -                </li>
  3.4578 -                <li>
  3.4579 -                    <b>Windows Error Message: <tt>spawn failed</tt></b>
  3.4580 -                    <blockquote>
  3.4581 -                        Try rebooting the system, or there could be some kind of
  3.4582 -                        issue with the disk or disk partition being used.
  3.4583 -                        Sometimes it comes with a "Permission Denied" message.
  3.4584 -                    </blockquote>
  3.4585 -                </li>
  3.4586 -            </ul>
  3.4587 -        </blockquote>
  3.4588 -        <!-- ------------------------------------------------------ -->
  3.4589 -        <hr>
  3.4590 -        <h2><a name="newbuild">The New Build</a></h2>
  3.4591 -        <blockquote>
  3.4592 -            The <a href="http://openjdk.java.net/projects/build-infra/">
  3.4593 -            Build Infrastructure project</a> is working on a new 
  3.4594 -            build. For information on how to try it out, please see the
  3.4595 -            <a href="http://openjdk.java.net/projects/build-infra/guide.html">
  3.4596 -            Build Infra User Guide</a> 
  3.4597 -        </blockquote>
  3.4598 -        <hr>
  3.4599 +
  3.4600      </body>
  3.4601  </html>
     4.1 --- a/common/autoconf/generated-configure.sh	Tue Feb 26 09:25:44 2013 -0800
     4.2 +++ b/common/autoconf/generated-configure.sh	Tue Mar 05 11:46:02 2013 -0800
     4.3 @@ -1,6 +1,6 @@
     4.4  #! /bin/sh
     4.5  # Guess values for system-dependent variables and create Makefiles.
     4.6 -# Generated by GNU Autoconf 2.68 for OpenJDK jdk8.
     4.7 +# Generated by GNU Autoconf 2.67 for OpenJDK jdk8.
     4.8  #
     4.9  # Report bugs to <build-dev@openjdk.java.net>.
    4.10  #
    4.11 @@ -91,7 +91,6 @@
    4.12  IFS=" ""	$as_nl"
    4.13  
    4.14  # Find who we are.  Look in the path if we contain no directory separator.
    4.15 -as_myself=
    4.16  case $0 in #((
    4.17    *[\\/]* ) as_myself=$0 ;;
    4.18    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
    4.19 @@ -217,18 +216,11 @@
    4.20    # We cannot yet assume a decent shell, so we have to provide a
    4.21  	# neutralization value for shells without unset; and this also
    4.22  	# works around shells that cannot unset nonexistent variables.
    4.23 -	# Preserve -v and -x to the replacement shell.
    4.24  	BASH_ENV=/dev/null
    4.25  	ENV=/dev/null
    4.26  	(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
    4.27  	export CONFIG_SHELL
    4.28 -	case $- in # ((((
    4.29 -	  *v*x* | *x*v* ) as_opts=-vx ;;
    4.30 -	  *v* ) as_opts=-v ;;
    4.31 -	  *x* ) as_opts=-x ;;
    4.32 -	  * ) as_opts= ;;
    4.33 -	esac
    4.34 -	exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
    4.35 +	exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
    4.36  fi
    4.37  
    4.38      if test x$as_have_required = xno; then :
    4.39 @@ -649,7 +641,7 @@
    4.40  CXXFLAGS_JDKLIB
    4.41  CFLAGS_JDKEXE
    4.42  CFLAGS_JDKLIB
    4.43 -MACOSX_REQUIRED_VERSION
    4.44 +MACOSX_VERSION_MIN
    4.45  PACKAGE_PATH
    4.46  LEGACY_EXTRA_LDFLAGS
    4.47  LEGACY_EXTRA_CXXFLAGS
    4.48 @@ -1443,7 +1435,7 @@
    4.49      $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
    4.50      expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
    4.51        $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
    4.52 -    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
    4.53 +    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
    4.54      ;;
    4.55  
    4.56    esac
    4.57 @@ -1868,7 +1860,7 @@
    4.58  if $ac_init_version; then
    4.59    cat <<\_ACEOF
    4.60  OpenJDK configure jdk8
    4.61 -generated by GNU Autoconf 2.68
    4.62 +generated by GNU Autoconf 2.67
    4.63  
    4.64  Copyright (C) 2010 Free Software Foundation, Inc.
    4.65  This configure script is free software; the Free Software Foundation
    4.66 @@ -1914,7 +1906,7 @@
    4.67  
    4.68  	ac_retval=1
    4.69  fi
    4.70 -  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
    4.71 +  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
    4.72    as_fn_set_status $ac_retval
    4.73  
    4.74  } # ac_fn_c_try_compile
    4.75 @@ -1952,7 +1944,7 @@
    4.76  
    4.77  	ac_retval=1
    4.78  fi
    4.79 -  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
    4.80 +  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
    4.81    as_fn_set_status $ac_retval
    4.82  
    4.83  } # ac_fn_cxx_try_compile
    4.84 @@ -1990,7 +1982,7 @@
    4.85  
    4.86  	ac_retval=1
    4.87  fi
    4.88 -  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
    4.89 +  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
    4.90    as_fn_set_status $ac_retval
    4.91  
    4.92  } # ac_fn_objc_try_compile
    4.93 @@ -2027,7 +2019,7 @@
    4.94  
    4.95      ac_retval=1
    4.96  fi
    4.97 -  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
    4.98 +  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
    4.99    as_fn_set_status $ac_retval
   4.100  
   4.101  } # ac_fn_c_try_cpp
   4.102 @@ -2064,7 +2056,7 @@
   4.103  
   4.104      ac_retval=1
   4.105  fi
   4.106 -  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   4.107 +  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
   4.108    as_fn_set_status $ac_retval
   4.109  
   4.110  } # ac_fn_cxx_try_cpp
   4.111 @@ -2077,10 +2069,10 @@
   4.112  ac_fn_cxx_check_header_mongrel ()
   4.113  {
   4.114    as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   4.115 -  if eval \${$3+:} false; then :
   4.116 +  if eval "test \"\${$3+set}\"" = set; then :
   4.117    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
   4.118  $as_echo_n "checking for $2... " >&6; }
   4.119 -if eval \${$3+:} false; then :
   4.120 +if eval "test \"\${$3+set}\"" = set; then :
   4.121    $as_echo_n "(cached) " >&6
   4.122  fi
   4.123  eval ac_res=\$$3
   4.124 @@ -2147,7 +2139,7 @@
   4.125  esac
   4.126    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
   4.127  $as_echo_n "checking for $2... " >&6; }
   4.128 -if eval \${$3+:} false; then :
   4.129 +if eval "test \"\${$3+set}\"" = set; then :
   4.130    $as_echo_n "(cached) " >&6
   4.131  else
   4.132    eval "$3=\$ac_header_compiler"
   4.133 @@ -2156,7 +2148,7 @@
   4.134  	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
   4.135  $as_echo "$ac_res" >&6; }
   4.136  fi
   4.137 -  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   4.138 +  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
   4.139  
   4.140  } # ac_fn_cxx_check_header_mongrel
   4.141  
   4.142 @@ -2197,7 +2189,7 @@
   4.143         ac_retval=$ac_status
   4.144  fi
   4.145    rm -rf conftest.dSYM conftest_ipa8_conftest.oo
   4.146 -  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   4.147 +  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
   4.148    as_fn_set_status $ac_retval
   4.149  
   4.150  } # ac_fn_cxx_try_run
   4.151 @@ -2211,7 +2203,7 @@
   4.152    as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   4.153    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
   4.154  $as_echo_n "checking for $2... " >&6; }
   4.155 -if eval \${$3+:} false; then :
   4.156 +if eval "test \"\${$3+set}\"" = set; then :
   4.157    $as_echo_n "(cached) " >&6
   4.158  else
   4.159    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
   4.160 @@ -2229,7 +2221,7 @@
   4.161  eval ac_res=\$$3
   4.162  	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
   4.163  $as_echo "$ac_res" >&6; }
   4.164 -  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   4.165 +  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
   4.166  
   4.167  } # ac_fn_cxx_check_header_compile
   4.168  
   4.169 @@ -2406,7 +2398,7 @@
   4.170  rm -f conftest.val
   4.171  
   4.172    fi
   4.173 -  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   4.174 +  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
   4.175    as_fn_set_status $ac_retval
   4.176  
   4.177  } # ac_fn_cxx_compute_int
   4.178 @@ -2452,7 +2444,7 @@
   4.179    # interfere with the next link command; also delete a directory that is
   4.180    # left behind by Apple's compiler.  We do this before executing the actions.
   4.181    rm -rf conftest.dSYM conftest_ipa8_conftest.oo
   4.182 -  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   4.183 +  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
   4.184    as_fn_set_status $ac_retval
   4.185  
   4.186  } # ac_fn_cxx_try_link
   4.187 @@ -2465,7 +2457,7 @@
   4.188    as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   4.189    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
   4.190  $as_echo_n "checking for $2... " >&6; }
   4.191 -if eval \${$3+:} false; then :
   4.192 +if eval "test \"\${$3+set}\"" = set; then :
   4.193    $as_echo_n "(cached) " >&6
   4.194  else
   4.195    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
   4.196 @@ -2520,7 +2512,7 @@
   4.197  eval ac_res=\$$3
   4.198  	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
   4.199  $as_echo "$ac_res" >&6; }
   4.200 -  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   4.201 +  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
   4.202  
   4.203  } # ac_fn_cxx_check_func
   4.204  
   4.205 @@ -2533,7 +2525,7 @@
   4.206    as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   4.207    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
   4.208  $as_echo_n "checking for $2... " >&6; }
   4.209 -if eval \${$3+:} false; then :
   4.210 +if eval "test \"\${$3+set}\"" = set; then :
   4.211    $as_echo_n "(cached) " >&6
   4.212  else
   4.213    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
   4.214 @@ -2551,7 +2543,7 @@
   4.215  eval ac_res=\$$3
   4.216  	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
   4.217  $as_echo "$ac_res" >&6; }
   4.218 -  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   4.219 +  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
   4.220  
   4.221  } # ac_fn_c_check_header_compile
   4.222  cat >config.log <<_ACEOF
   4.223 @@ -2559,7 +2551,7 @@
   4.224  running configure, to aid debugging if configure makes a mistake.
   4.225  
   4.226  It was created by OpenJDK $as_me jdk8, which was
   4.227 -generated by GNU Autoconf 2.68.  Invocation command line was
   4.228 +generated by GNU Autoconf 2.67.  Invocation command line was
   4.229  
   4.230    $ $0 $@
   4.231  
   4.232 @@ -2817,7 +2809,7 @@
   4.233        || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
   4.234  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
   4.235  as_fn_error $? "failed to load site script $ac_site_file
   4.236 -See \`config.log' for more details" "$LINENO" 5; }
   4.237 +See \`config.log' for more details" "$LINENO" 5 ; }
   4.238    fi
   4.239  done
   4.240  
   4.241 @@ -3771,7 +3763,7 @@
   4.242  set dummy $ac_prog; ac_word=$2
   4.243  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.244  $as_echo_n "checking for $ac_word... " >&6; }
   4.245 -if ${ac_cv_path_BASENAME+:} false; then :
   4.246 +if test "${ac_cv_path_BASENAME+set}" = set; then :
   4.247    $as_echo_n "(cached) " >&6
   4.248  else
   4.249    case $BASENAME in
   4.250 @@ -3830,7 +3822,7 @@
   4.251  set dummy $ac_prog; ac_word=$2
   4.252  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.253  $as_echo_n "checking for $ac_word... " >&6; }
   4.254 -if ${ac_cv_path_BASH+:} false; then :
   4.255 +if test "${ac_cv_path_BASH+set}" = set; then :
   4.256    $as_echo_n "(cached) " >&6
   4.257  else
   4.258    case $BASH in
   4.259 @@ -3889,7 +3881,7 @@
   4.260  set dummy $ac_prog; ac_word=$2
   4.261  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.262  $as_echo_n "checking for $ac_word... " >&6; }
   4.263 -if ${ac_cv_path_CAT+:} false; then :
   4.264 +if test "${ac_cv_path_CAT+set}" = set; then :
   4.265    $as_echo_n "(cached) " >&6
   4.266  else
   4.267    case $CAT in
   4.268 @@ -3948,7 +3940,7 @@
   4.269  set dummy $ac_prog; ac_word=$2
   4.270  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.271  $as_echo_n "checking for $ac_word... " >&6; }
   4.272 -if ${ac_cv_path_CHMOD+:} false; then :
   4.273 +if test "${ac_cv_path_CHMOD+set}" = set; then :
   4.274    $as_echo_n "(cached) " >&6
   4.275  else
   4.276    case $CHMOD in
   4.277 @@ -4007,7 +3999,7 @@
   4.278  set dummy $ac_prog; ac_word=$2
   4.279  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.280  $as_echo_n "checking for $ac_word... " >&6; }
   4.281 -if ${ac_cv_path_CMP+:} false; then :
   4.282 +if test "${ac_cv_path_CMP+set}" = set; then :
   4.283    $as_echo_n "(cached) " >&6
   4.284  else
   4.285    case $CMP in
   4.286 @@ -4066,7 +4058,7 @@
   4.287  set dummy $ac_prog; ac_word=$2
   4.288  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.289  $as_echo_n "checking for $ac_word... " >&6; }
   4.290 -if ${ac_cv_path_COMM+:} false; then :
   4.291 +if test "${ac_cv_path_COMM+set}" = set; then :
   4.292    $as_echo_n "(cached) " >&6
   4.293  else
   4.294    case $COMM in
   4.295 @@ -4125,7 +4117,7 @@
   4.296  set dummy $ac_prog; ac_word=$2
   4.297  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.298  $as_echo_n "checking for $ac_word... " >&6; }
   4.299 -if ${ac_cv_path_CP+:} false; then :
   4.300 +if test "${ac_cv_path_CP+set}" = set; then :
   4.301    $as_echo_n "(cached) " >&6
   4.302  else
   4.303    case $CP in
   4.304 @@ -4184,7 +4176,7 @@
   4.305  set dummy $ac_prog; ac_word=$2
   4.306  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.307  $as_echo_n "checking for $ac_word... " >&6; }
   4.308 -if ${ac_cv_path_CPIO+:} false; then :
   4.309 +if test "${ac_cv_path_CPIO+set}" = set; then :
   4.310    $as_echo_n "(cached) " >&6
   4.311  else
   4.312    case $CPIO in
   4.313 @@ -4243,7 +4235,7 @@
   4.314  set dummy $ac_prog; ac_word=$2
   4.315  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.316  $as_echo_n "checking for $ac_word... " >&6; }
   4.317 -if ${ac_cv_path_CUT+:} false; then :
   4.318 +if test "${ac_cv_path_CUT+set}" = set; then :
   4.319    $as_echo_n "(cached) " >&6
   4.320  else
   4.321    case $CUT in
   4.322 @@ -4302,7 +4294,7 @@
   4.323  set dummy $ac_prog; ac_word=$2
   4.324  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.325  $as_echo_n "checking for $ac_word... " >&6; }
   4.326 -if ${ac_cv_path_DATE+:} false; then :
   4.327 +if test "${ac_cv_path_DATE+set}" = set; then :
   4.328    $as_echo_n "(cached) " >&6
   4.329  else
   4.330    case $DATE in
   4.331 @@ -4361,7 +4353,7 @@
   4.332  set dummy $ac_prog; ac_word=$2
   4.333  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.334  $as_echo_n "checking for $ac_word... " >&6; }
   4.335 -if ${ac_cv_path_DIFF+:} false; then :
   4.336 +if test "${ac_cv_path_DIFF+set}" = set; then :
   4.337    $as_echo_n "(cached) " >&6
   4.338  else
   4.339    case $DIFF in
   4.340 @@ -4420,7 +4412,7 @@
   4.341  set dummy $ac_prog; ac_word=$2
   4.342  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.343  $as_echo_n "checking for $ac_word... " >&6; }
   4.344 -if ${ac_cv_path_DIRNAME+:} false; then :
   4.345 +if test "${ac_cv_path_DIRNAME+set}" = set; then :
   4.346    $as_echo_n "(cached) " >&6
   4.347  else
   4.348    case $DIRNAME in
   4.349 @@ -4479,7 +4471,7 @@
   4.350  set dummy $ac_prog; ac_word=$2
   4.351  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.352  $as_echo_n "checking for $ac_word... " >&6; }
   4.353 -if ${ac_cv_path_ECHO+:} false; then :
   4.354 +if test "${ac_cv_path_ECHO+set}" = set; then :
   4.355    $as_echo_n "(cached) " >&6
   4.356  else
   4.357    case $ECHO in
   4.358 @@ -4538,7 +4530,7 @@
   4.359  set dummy $ac_prog; ac_word=$2
   4.360  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.361  $as_echo_n "checking for $ac_word... " >&6; }
   4.362 -if ${ac_cv_path_EXPR+:} false; then :
   4.363 +if test "${ac_cv_path_EXPR+set}" = set; then :
   4.364    $as_echo_n "(cached) " >&6
   4.365  else
   4.366    case $EXPR in
   4.367 @@ -4597,7 +4589,7 @@
   4.368  set dummy $ac_prog; ac_word=$2
   4.369  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.370  $as_echo_n "checking for $ac_word... " >&6; }
   4.371 -if ${ac_cv_path_FILE+:} false; then :
   4.372 +if test "${ac_cv_path_FILE+set}" = set; then :
   4.373    $as_echo_n "(cached) " >&6
   4.374  else
   4.375    case $FILE in
   4.376 @@ -4656,7 +4648,7 @@
   4.377  set dummy $ac_prog; ac_word=$2
   4.378  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.379  $as_echo_n "checking for $ac_word... " >&6; }
   4.380 -if ${ac_cv_path_FIND+:} false; then :
   4.381 +if test "${ac_cv_path_FIND+set}" = set; then :
   4.382    $as_echo_n "(cached) " >&6
   4.383  else
   4.384    case $FIND in
   4.385 @@ -4715,7 +4707,7 @@
   4.386  set dummy $ac_prog; ac_word=$2
   4.387  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.388  $as_echo_n "checking for $ac_word... " >&6; }
   4.389 -if ${ac_cv_path_HEAD+:} false; then :
   4.390 +if test "${ac_cv_path_HEAD+set}" = set; then :
   4.391    $as_echo_n "(cached) " >&6
   4.392  else
   4.393    case $HEAD in
   4.394 @@ -4774,7 +4766,7 @@
   4.395  set dummy $ac_prog; ac_word=$2
   4.396  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.397  $as_echo_n "checking for $ac_word... " >&6; }
   4.398 -if ${ac_cv_path_LN+:} false; then :
   4.399 +if test "${ac_cv_path_LN+set}" = set; then :
   4.400    $as_echo_n "(cached) " >&6
   4.401  else
   4.402    case $LN in
   4.403 @@ -4833,7 +4825,7 @@
   4.404  set dummy $ac_prog; ac_word=$2
   4.405  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.406  $as_echo_n "checking for $ac_word... " >&6; }
   4.407 -if ${ac_cv_path_LS+:} false; then :
   4.408 +if test "${ac_cv_path_LS+set}" = set; then :
   4.409    $as_echo_n "(cached) " >&6
   4.410  else
   4.411    case $LS in
   4.412 @@ -4892,7 +4884,7 @@
   4.413  set dummy $ac_prog; ac_word=$2
   4.414  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.415  $as_echo_n "checking for $ac_word... " >&6; }
   4.416 -if ${ac_cv_path_MKDIR+:} false; then :
   4.417 +if test "${ac_cv_path_MKDIR+set}" = set; then :
   4.418    $as_echo_n "(cached) " >&6
   4.419  else
   4.420    case $MKDIR in
   4.421 @@ -4951,7 +4943,7 @@
   4.422  set dummy $ac_prog; ac_word=$2
   4.423  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.424  $as_echo_n "checking for $ac_word... " >&6; }
   4.425 -if ${ac_cv_path_MKTEMP+:} false; then :
   4.426 +if test "${ac_cv_path_MKTEMP+set}" = set; then :
   4.427    $as_echo_n "(cached) " >&6
   4.428  else
   4.429    case $MKTEMP in
   4.430 @@ -5010,7 +5002,7 @@
   4.431  set dummy $ac_prog; ac_word=$2
   4.432  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.433  $as_echo_n "checking for $ac_word... " >&6; }
   4.434 -if ${ac_cv_path_MV+:} false; then :
   4.435 +if test "${ac_cv_path_MV+set}" = set; then :
   4.436    $as_echo_n "(cached) " >&6
   4.437  else
   4.438    case $MV in
   4.439 @@ -5069,7 +5061,7 @@
   4.440  set dummy $ac_prog; ac_word=$2
   4.441  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.442  $as_echo_n "checking for $ac_word... " >&6; }
   4.443 -if ${ac_cv_path_PRINTF+:} false; then :
   4.444 +if test "${ac_cv_path_PRINTF+set}" = set; then :
   4.445    $as_echo_n "(cached) " >&6
   4.446  else
   4.447    case $PRINTF in
   4.448 @@ -5128,7 +5120,7 @@
   4.449  set dummy $ac_prog; ac_word=$2
   4.450  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.451  $as_echo_n "checking for $ac_word... " >&6; }
   4.452 -if ${ac_cv_path_THEPWDCMD+:} false; then :
   4.453 +if test "${ac_cv_path_THEPWDCMD+set}" = set; then :
   4.454    $as_echo_n "(cached) " >&6
   4.455  else
   4.456    case $THEPWDCMD in
   4.457 @@ -5187,7 +5179,7 @@
   4.458  set dummy $ac_prog; ac_word=$2
   4.459  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.460  $as_echo_n "checking for $ac_word... " >&6; }
   4.461 -if ${ac_cv_path_RM+:} false; then :
   4.462 +if test "${ac_cv_path_RM+set}" = set; then :
   4.463    $as_echo_n "(cached) " >&6
   4.464  else
   4.465    case $RM in
   4.466 @@ -5246,7 +5238,7 @@
   4.467  set dummy $ac_prog; ac_word=$2
   4.468  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.469  $as_echo_n "checking for $ac_word... " >&6; }
   4.470 -if ${ac_cv_path_SH+:} false; then :
   4.471 +if test "${ac_cv_path_SH+set}" = set; then :
   4.472    $as_echo_n "(cached) " >&6
   4.473  else
   4.474    case $SH in
   4.475 @@ -5305,7 +5297,7 @@
   4.476  set dummy $ac_prog; ac_word=$2
   4.477  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.478  $as_echo_n "checking for $ac_word... " >&6; }
   4.479 -if ${ac_cv_path_SORT+:} false; then :
   4.480 +if test "${ac_cv_path_SORT+set}" = set; then :
   4.481    $as_echo_n "(cached) " >&6
   4.482  else
   4.483    case $SORT in
   4.484 @@ -5364,7 +5356,7 @@
   4.485  set dummy $ac_prog; ac_word=$2
   4.486  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.487  $as_echo_n "checking for $ac_word... " >&6; }
   4.488 -if ${ac_cv_path_TAIL+:} false; then :
   4.489 +if test "${ac_cv_path_TAIL+set}" = set; then :
   4.490    $as_echo_n "(cached) " >&6
   4.491  else
   4.492    case $TAIL in
   4.493 @@ -5423,7 +5415,7 @@
   4.494  set dummy $ac_prog; ac_word=$2
   4.495  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.496  $as_echo_n "checking for $ac_word... " >&6; }
   4.497 -if ${ac_cv_path_TAR+:} false; then :
   4.498 +if test "${ac_cv_path_TAR+set}" = set; then :
   4.499    $as_echo_n "(cached) " >&6
   4.500  else
   4.501    case $TAR in
   4.502 @@ -5482,7 +5474,7 @@
   4.503  set dummy $ac_prog; ac_word=$2
   4.504  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.505  $as_echo_n "checking for $ac_word... " >&6; }
   4.506 -if ${ac_cv_path_TEE+:} false; then :
   4.507 +if test "${ac_cv_path_TEE+set}" = set; then :
   4.508    $as_echo_n "(cached) " >&6
   4.509  else
   4.510    case $TEE in
   4.511 @@ -5541,7 +5533,7 @@
   4.512  set dummy $ac_prog; ac_word=$2
   4.513  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.514  $as_echo_n "checking for $ac_word... " >&6; }
   4.515 -if ${ac_cv_path_TOUCH+:} false; then :
   4.516 +if test "${ac_cv_path_TOUCH+set}" = set; then :
   4.517    $as_echo_n "(cached) " >&6
   4.518  else
   4.519    case $TOUCH in
   4.520 @@ -5600,7 +5592,7 @@
   4.521  set dummy $ac_prog; ac_word=$2
   4.522  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.523  $as_echo_n "checking for $ac_word... " >&6; }
   4.524 -if ${ac_cv_path_TR+:} false; then :
   4.525 +if test "${ac_cv_path_TR+set}" = set; then :
   4.526    $as_echo_n "(cached) " >&6
   4.527  else
   4.528    case $TR in
   4.529 @@ -5659,7 +5651,7 @@
   4.530  set dummy $ac_prog; ac_word=$2
   4.531  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.532  $as_echo_n "checking for $ac_word... " >&6; }
   4.533 -if ${ac_cv_path_UNAME+:} false; then :
   4.534 +if test "${ac_cv_path_UNAME+set}" = set; then :
   4.535    $as_echo_n "(cached) " >&6
   4.536  else
   4.537    case $UNAME in
   4.538 @@ -5718,7 +5710,7 @@
   4.539  set dummy $ac_prog; ac_word=$2
   4.540  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.541  $as_echo_n "checking for $ac_word... " >&6; }
   4.542 -if ${ac_cv_path_UNIQ+:} false; then :
   4.543 +if test "${ac_cv_path_UNIQ+set}" = set; then :
   4.544    $as_echo_n "(cached) " >&6
   4.545  else
   4.546    case $UNIQ in
   4.547 @@ -5777,7 +5769,7 @@
   4.548  set dummy $ac_prog; ac_word=$2
   4.549  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.550  $as_echo_n "checking for $ac_word... " >&6; }
   4.551 -if ${ac_cv_path_WC+:} false; then :
   4.552 +if test "${ac_cv_path_WC+set}" = set; then :
   4.553    $as_echo_n "(cached) " >&6
   4.554  else
   4.555    case $WC in
   4.556 @@ -5836,7 +5828,7 @@
   4.557  set dummy $ac_prog; ac_word=$2
   4.558  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.559  $as_echo_n "checking for $ac_word... " >&6; }
   4.560 -if ${ac_cv_path_WHICH+:} false; then :
   4.561 +if test "${ac_cv_path_WHICH+set}" = set; then :
   4.562    $as_echo_n "(cached) " >&6
   4.563  else
   4.564    case $WHICH in
   4.565 @@ -5895,7 +5887,7 @@
   4.566  set dummy $ac_prog; ac_word=$2
   4.567  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.568  $as_echo_n "checking for $ac_word... " >&6; }
   4.569 -if ${ac_cv_path_XARGS+:} false; then :
   4.570 +if test "${ac_cv_path_XARGS+set}" = set; then :
   4.571    $as_echo_n "(cached) " >&6
   4.572  else
   4.573    case $XARGS in
   4.574 @@ -5955,7 +5947,7 @@
   4.575  set dummy $ac_prog; ac_word=$2
   4.576  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.577  $as_echo_n "checking for $ac_word... " >&6; }
   4.578 -if ${ac_cv_prog_AWK+:} false; then :
   4.579 +if test "${ac_cv_prog_AWK+set}" = set; then :
   4.580    $as_echo_n "(cached) " >&6
   4.581  else
   4.582    if test -n "$AWK"; then
   4.583 @@ -6005,7 +5997,7 @@
   4.584  
   4.585  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
   4.586  $as_echo_n "checking for grep that handles long lines and -e... " >&6; }
   4.587 -if ${ac_cv_path_GREP+:} false; then :
   4.588 +if test "${ac_cv_path_GREP+set}" = set; then :
   4.589    $as_echo_n "(cached) " >&6
   4.590  else
   4.591    if test -z "$GREP"; then
   4.592 @@ -6080,7 +6072,7 @@
   4.593  
   4.594  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
   4.595  $as_echo_n "checking for egrep... " >&6; }
   4.596 -if ${ac_cv_path_EGREP+:} false; then :
   4.597 +if test "${ac_cv_path_EGREP+set}" = set; then :
   4.598    $as_echo_n "(cached) " >&6
   4.599  else
   4.600    if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
   4.601 @@ -6159,7 +6151,7 @@
   4.602  
   4.603  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
   4.604  $as_echo_n "checking for fgrep... " >&6; }
   4.605 -if ${ac_cv_path_FGREP+:} false; then :
   4.606 +if test "${ac_cv_path_FGREP+set}" = set; then :
   4.607    $as_echo_n "(cached) " >&6
   4.608  else
   4.609    if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
   4.610 @@ -6238,7 +6230,7 @@
   4.611  
   4.612  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
   4.613  $as_echo_n "checking for a sed that does not truncate output... " >&6; }
   4.614 -if ${ac_cv_path_SED+:} false; then :
   4.615 +if test "${ac_cv_path_SED+set}" = set; then :
   4.616    $as_echo_n "(cached) " >&6
   4.617  else
   4.618              ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
   4.619 @@ -6324,7 +6316,7 @@
   4.620  set dummy $ac_prog; ac_word=$2
   4.621  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.622  $as_echo_n "checking for $ac_word... " >&6; }
   4.623 -if ${ac_cv_path_NAWK+:} false; then :
   4.624 +if test "${ac_cv_path_NAWK+set}" = set; then :
   4.625    $as_echo_n "(cached) " >&6
   4.626  else
   4.627    case $NAWK in
   4.628 @@ -6384,7 +6376,7 @@
   4.629  set dummy cygpath; ac_word=$2
   4.630  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.631  $as_echo_n "checking for $ac_word... " >&6; }
   4.632 -if ${ac_cv_path_CYGPATH+:} false; then :
   4.633 +if test "${ac_cv_path_CYGPATH+set}" = set; then :
   4.634    $as_echo_n "(cached) " >&6
   4.635  else
   4.636    case $CYGPATH in
   4.637 @@ -6424,7 +6416,7 @@
   4.638  set dummy readlink; ac_word=$2
   4.639  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.640  $as_echo_n "checking for $ac_word... " >&6; }
   4.641 -if ${ac_cv_path_READLINK+:} false; then :
   4.642 +if test "${ac_cv_path_READLINK+set}" = set; then :
   4.643    $as_echo_n "(cached) " >&6
   4.644  else
   4.645    case $READLINK in
   4.646 @@ -6464,7 +6456,7 @@
   4.647  set dummy df; ac_word=$2
   4.648  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.649  $as_echo_n "checking for $ac_word... " >&6; }
   4.650 -if ${ac_cv_path_DF+:} false; then :
   4.651 +if test "${ac_cv_path_DF+set}" = set; then :
   4.652    $as_echo_n "(cached) " >&6
   4.653  else
   4.654    case $DF in
   4.655 @@ -6504,7 +6496,7 @@
   4.656  set dummy SetFile; ac_word=$2
   4.657  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.658  $as_echo_n "checking for $ac_word... " >&6; }
   4.659 -if ${ac_cv_path_SETFILE+:} false; then :
   4.660 +if test "${ac_cv_path_SETFILE+set}" = set; then :
   4.661    $as_echo_n "(cached) " >&6
   4.662  else
   4.663    case $SETFILE in
   4.664 @@ -6550,7 +6542,7 @@
   4.665  
   4.666  { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
   4.667  $as_echo_n "checking build system type... " >&6; }
   4.668 -if ${ac_cv_build+:} false; then :
   4.669 +if test "${ac_cv_build+set}" = set; then :
   4.670    $as_echo_n "(cached) " >&6
   4.671  else
   4.672    ac_build_alias=$build_alias
   4.673 @@ -6566,7 +6558,7 @@
   4.674  $as_echo "$ac_cv_build" >&6; }
   4.675  case $ac_cv_build in
   4.676  *-*-*) ;;
   4.677 -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
   4.678 +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;;
   4.679  esac
   4.680  build=$ac_cv_build
   4.681  ac_save_IFS=$IFS; IFS='-'
   4.682 @@ -6584,7 +6576,7 @@
   4.683  
   4.684  { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
   4.685  $as_echo_n "checking host system type... " >&6; }
   4.686 -if ${ac_cv_host+:} false; then :
   4.687 +if test "${ac_cv_host+set}" = set; then :
   4.688    $as_echo_n "(cached) " >&6
   4.689  else
   4.690    if test "x$host_alias" = x; then
   4.691 @@ -6599,7 +6591,7 @@
   4.692  $as_echo "$ac_cv_host" >&6; }
   4.693  case $ac_cv_host in
   4.694  *-*-*) ;;
   4.695 -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
   4.696 +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;;
   4.697  esac
   4.698  host=$ac_cv_host
   4.699  ac_save_IFS=$IFS; IFS='-'
   4.700 @@ -6617,7 +6609,7 @@
   4.701  
   4.702  { $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
   4.703  $as_echo_n "checking target system type... " >&6; }
   4.704 -if ${ac_cv_target+:} false; then :
   4.705 +if test "${ac_cv_target+set}" = set; then :
   4.706    $as_echo_n "(cached) " >&6
   4.707  else
   4.708    if test "x$target_alias" = x; then
   4.709 @@ -6632,7 +6624,7 @@
   4.710  $as_echo "$ac_cv_target" >&6; }
   4.711  case $ac_cv_target in
   4.712  *-*-*) ;;
   4.713 -*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
   4.714 +*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5 ;;
   4.715  esac
   4.716  target=$ac_cv_target
   4.717  ac_save_IFS=$IFS; IFS='-'
   4.718 @@ -8098,7 +8090,7 @@
   4.719  set dummy $ac_prog; ac_word=$2
   4.720  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.721  $as_echo_n "checking for $ac_word... " >&6; }
   4.722 -if ${ac_cv_prog_PKGHANDLER+:} false; then :
   4.723 +if test "${ac_cv_prog_PKGHANDLER+set}" = set; then :
   4.724    $as_echo_n "(cached) " >&6
   4.725  else
   4.726    if test -n "$PKGHANDLER"; then
   4.727 @@ -8463,7 +8455,7 @@
   4.728  set dummy $ac_prog; ac_word=$2
   4.729  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.730  $as_echo_n "checking for $ac_word... " >&6; }
   4.731 -if ${ac_cv_path_CHECK_GMAKE+:} false; then :
   4.732 +if test "${ac_cv_path_CHECK_GMAKE+set}" = set; then :
   4.733    $as_echo_n "(cached) " >&6
   4.734  else
   4.735    case $CHECK_GMAKE in
   4.736 @@ -8817,7 +8809,7 @@
   4.737  set dummy $ac_prog; ac_word=$2
   4.738  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.739  $as_echo_n "checking for $ac_word... " >&6; }
   4.740 -if ${ac_cv_path_CHECK_MAKE+:} false; then :
   4.741 +if test "${ac_cv_path_CHECK_MAKE+set}" = set; then :
   4.742    $as_echo_n "(cached) " >&6
   4.743  else
   4.744    case $CHECK_MAKE in
   4.745 @@ -9176,7 +9168,7 @@
   4.746  set dummy $ac_prog; ac_word=$2
   4.747  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.748  $as_echo_n "checking for $ac_word... " >&6; }
   4.749 -if ${ac_cv_path_CHECK_TOOLSDIR_GMAKE+:} false; then :
   4.750 +if test "${ac_cv_path_CHECK_TOOLSDIR_GMAKE+set}" = set; then :
   4.751    $as_echo_n "(cached) " >&6
   4.752  else
   4.753    case $CHECK_TOOLSDIR_GMAKE in
   4.754 @@ -9529,7 +9521,7 @@
   4.755  set dummy $ac_prog; ac_word=$2
   4.756  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.757  $as_echo_n "checking for $ac_word... " >&6; }
   4.758 -if ${ac_cv_path_CHECK_TOOLSDIR_MAKE+:} false; then :
   4.759 +if test "${ac_cv_path_CHECK_TOOLSDIR_MAKE+set}" = set; then :
   4.760    $as_echo_n "(cached) " >&6
   4.761  else
   4.762    case $CHECK_TOOLSDIR_MAKE in
   4.763 @@ -9925,7 +9917,7 @@
   4.764  set dummy $ac_prog; ac_word=$2
   4.765  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.766  $as_echo_n "checking for $ac_word... " >&6; }
   4.767 -if ${ac_cv_path_UNZIP+:} false; then :
   4.768 +if test "${ac_cv_path_UNZIP+set}" = set; then :
   4.769    $as_echo_n "(cached) " >&6
   4.770  else
   4.771    case $UNZIP in
   4.772 @@ -9984,7 +9976,7 @@
   4.773  set dummy $ac_prog; ac_word=$2
   4.774  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.775  $as_echo_n "checking for $ac_word... " >&6; }
   4.776 -if ${ac_cv_path_ZIP+:} false; then :
   4.777 +if test "${ac_cv_path_ZIP+set}" = set; then :
   4.778    $as_echo_n "(cached) " >&6
   4.779  else
   4.780    case $ZIP in
   4.781 @@ -10043,7 +10035,7 @@
   4.782  set dummy ldd; ac_word=$2
   4.783  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.784  $as_echo_n "checking for $ac_word... " >&6; }
   4.785 -if ${ac_cv_path_LDD+:} false; then :
   4.786 +if test "${ac_cv_path_LDD+set}" = set; then :
   4.787    $as_echo_n "(cached) " >&6
   4.788  else
   4.789    case $LDD in
   4.790 @@ -10089,7 +10081,7 @@
   4.791  set dummy otool; ac_word=$2
   4.792  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.793  $as_echo_n "checking for $ac_word... " >&6; }
   4.794 -if ${ac_cv_path_OTOOL+:} false; then :
   4.795 +if test "${ac_cv_path_OTOOL+set}" = set; then :
   4.796    $as_echo_n "(cached) " >&6
   4.797  else
   4.798    case $OTOOL in
   4.799 @@ -10134,7 +10126,7 @@
   4.800  set dummy $ac_prog; ac_word=$2
   4.801  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.802  $as_echo_n "checking for $ac_word... " >&6; }
   4.803 -if ${ac_cv_path_READELF+:} false; then :
   4.804 +if test "${ac_cv_path_READELF+set}" = set; then :
   4.805    $as_echo_n "(cached) " >&6
   4.806  else
   4.807    case $READELF in
   4.808 @@ -10177,7 +10169,7 @@
   4.809  set dummy hg; ac_word=$2
   4.810  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.811  $as_echo_n "checking for $ac_word... " >&6; }
   4.812 -if ${ac_cv_path_HG+:} false; then :
   4.813 +if test "${ac_cv_path_HG+set}" = set; then :
   4.814    $as_echo_n "(cached) " >&6
   4.815  else
   4.816    case $HG in
   4.817 @@ -10217,7 +10209,7 @@
   4.818  set dummy stat; ac_word=$2
   4.819  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.820  $as_echo_n "checking for $ac_word... " >&6; }
   4.821 -if ${ac_cv_path_STAT+:} false; then :
   4.822 +if test "${ac_cv_path_STAT+set}" = set; then :
   4.823    $as_echo_n "(cached) " >&6
   4.824  else
   4.825    case $STAT in
   4.826 @@ -10257,7 +10249,7 @@
   4.827  set dummy time; ac_word=$2
   4.828  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.829  $as_echo_n "checking for $ac_word... " >&6; }
   4.830 -if ${ac_cv_path_TIME+:} false; then :
   4.831 +if test "${ac_cv_path_TIME+set}" = set; then :
   4.832    $as_echo_n "(cached) " >&6
   4.833  else
   4.834    case $TIME in
   4.835 @@ -10302,7 +10294,7 @@
   4.836  set dummy $ac_prog; ac_word=$2
   4.837  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.838  $as_echo_n "checking for $ac_word... " >&6; }
   4.839 -if ${ac_cv_path_COMM+:} false; then :
   4.840 +if test "${ac_cv_path_COMM+set}" = set; then :
   4.841    $as_echo_n "(cached) " >&6
   4.842  else
   4.843    case $COMM in
   4.844 @@ -10366,7 +10358,7 @@
   4.845  set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
   4.846  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.847  $as_echo_n "checking for $ac_word... " >&6; }
   4.848 -if ${ac_cv_path_PKG_CONFIG+:} false; then :
   4.849 +if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
   4.850    $as_echo_n "(cached) " >&6
   4.851  else
   4.852    case $PKG_CONFIG in
   4.853 @@ -10409,7 +10401,7 @@
   4.854  set dummy pkg-config; ac_word=$2
   4.855  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.856  $as_echo_n "checking for $ac_word... " >&6; }
   4.857 -if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
   4.858 +if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then :
   4.859    $as_echo_n "(cached) " >&6
   4.860  else
   4.861    case $ac_pt_PKG_CONFIG in
   4.862 @@ -10582,7 +10574,7 @@
   4.863  set dummy $ac_prog; ac_word=$2
   4.864  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.865  $as_echo_n "checking for $ac_word... " >&6; }
   4.866 -if ${ac_cv_prog_BDEPS_UNZIP+:} false; then :
   4.867 +if test "${ac_cv_prog_BDEPS_UNZIP+set}" = set; then :
   4.868    $as_echo_n "(cached) " >&6
   4.869  else
   4.870    if test -n "$BDEPS_UNZIP"; then
   4.871 @@ -10628,7 +10620,7 @@
   4.872  set dummy $ac_prog; ac_word=$2
   4.873  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.874  $as_echo_n "checking for $ac_word... " >&6; }
   4.875 -if ${ac_cv_prog_BDEPS_FTP+:} false; then :
   4.876 +if test "${ac_cv_prog_BDEPS_FTP+set}" = set; then :
   4.877    $as_echo_n "(cached) " >&6
   4.878  else
   4.879    if test -n "$BDEPS_FTP"; then
   4.880 @@ -11895,7 +11887,7 @@
   4.881  set dummy javac; ac_word=$2
   4.882  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.883  $as_echo_n "checking for $ac_word... " >&6; }
   4.884 -if ${ac_cv_path_JAVAC_CHECK+:} false; then :
   4.885 +if test "${ac_cv_path_JAVAC_CHECK+set}" = set; then :
   4.886    $as_echo_n "(cached) " >&6
   4.887  else
   4.888    case $JAVAC_CHECK in
   4.889 @@ -11935,7 +11927,7 @@
   4.890  set dummy java; ac_word=$2
   4.891  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.892  $as_echo_n "checking for $ac_word... " >&6; }
   4.893 -if ${ac_cv_path_JAVA_CHECK+:} false; then :
   4.894 +if test "${ac_cv_path_JAVA_CHECK+set}" = set; then :
   4.895    $as_echo_n "(cached) " >&6
   4.896  else
   4.897    case $JAVA_CHECK in
   4.898 @@ -16009,7 +16001,7 @@
   4.899  set dummy link; ac_word=$2
   4.900  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.901  $as_echo_n "checking for $ac_word... " >&6; }
   4.902 -if ${ac_cv_path_CYGWIN_LINK+:} false; then :
   4.903 +if test "${ac_cv_path_CYGWIN_LINK+set}" = set; then :
   4.904    $as_echo_n "(cached) " >&6
   4.905  else
   4.906    case $CYGWIN_LINK in
   4.907 @@ -16998,7 +16990,7 @@
   4.908  set dummy $ac_prog; ac_word=$2
   4.909  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.910  $as_echo_n "checking for $ac_word... " >&6; }
   4.911 -if ${ac_cv_path_BUILD_CC+:} false; then :
   4.912 +if test "${ac_cv_path_BUILD_CC+set}" = set; then :
   4.913    $as_echo_n "(cached) " >&6
   4.914  else
   4.915    case $BUILD_CC in
   4.916 @@ -17309,7 +17301,7 @@
   4.917  set dummy $ac_prog; ac_word=$2
   4.918  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.919  $as_echo_n "checking for $ac_word... " >&6; }
   4.920 -if ${ac_cv_path_BUILD_CXX+:} false; then :
   4.921 +if test "${ac_cv_path_BUILD_CXX+set}" = set; then :
   4.922    $as_echo_n "(cached) " >&6
   4.923  else
   4.924    case $BUILD_CXX in
   4.925 @@ -17618,7 +17610,7 @@
   4.926  set dummy ld; ac_word=$2
   4.927  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.928  $as_echo_n "checking for $ac_word... " >&6; }
   4.929 -if ${ac_cv_path_BUILD_LD+:} false; then :
   4.930 +if test "${ac_cv_path_BUILD_LD+set}" = set; then :
   4.931    $as_echo_n "(cached) " >&6
   4.932  else
   4.933    case $BUILD_LD in
   4.934 @@ -18130,7 +18122,7 @@
   4.935  set dummy $ac_prog; ac_word=$2
   4.936  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.937  $as_echo_n "checking for $ac_word... " >&6; }
   4.938 -if ${ac_cv_path_TOOLS_DIR_CC+:} false; then :
   4.939 +if test "${ac_cv_path_TOOLS_DIR_CC+set}" = set; then :
   4.940    $as_echo_n "(cached) " >&6
   4.941  else
   4.942    case $TOOLS_DIR_CC in
   4.943 @@ -18182,7 +18174,7 @@
   4.944  set dummy $ac_prog; ac_word=$2
   4.945  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.946  $as_echo_n "checking for $ac_word... " >&6; }
   4.947 -if ${ac_cv_path_POTENTIAL_CC+:} false; then :
   4.948 +if test "${ac_cv_path_POTENTIAL_CC+set}" = set; then :
   4.949    $as_echo_n "(cached) " >&6
   4.950  else
   4.951    case $POTENTIAL_CC in
   4.952 @@ -18595,7 +18587,7 @@
   4.953  set dummy $ac_tool_prefix$ac_prog; ac_word=$2
   4.954  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.955  $as_echo_n "checking for $ac_word... " >&6; }
   4.956 -if ${ac_cv_prog_PROPER_COMPILER_CC+:} false; then :
   4.957 +if test "${ac_cv_prog_PROPER_COMPILER_CC+set}" = set; then :
   4.958    $as_echo_n "(cached) " >&6
   4.959  else
   4.960    if test -n "$PROPER_COMPILER_CC"; then
   4.961 @@ -18639,7 +18631,7 @@
   4.962  set dummy $ac_prog; ac_word=$2
   4.963  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.964  $as_echo_n "checking for $ac_word... " >&6; }
   4.965 -if ${ac_cv_prog_ac_ct_PROPER_COMPILER_CC+:} false; then :
   4.966 +if test "${ac_cv_prog_ac_ct_PROPER_COMPILER_CC+set}" = set; then :
   4.967    $as_echo_n "(cached) " >&6
   4.968  else
   4.969    if test -n "$ac_ct_PROPER_COMPILER_CC"; then
   4.970 @@ -19089,7 +19081,7 @@
   4.971  set dummy $ac_tool_prefix$ac_prog; ac_word=$2
   4.972  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.973  $as_echo_n "checking for $ac_word... " >&6; }
   4.974 -if ${ac_cv_prog_CC+:} false; then :
   4.975 +if test "${ac_cv_prog_CC+set}" = set; then :
   4.976    $as_echo_n "(cached) " >&6
   4.977  else
   4.978    if test -n "$CC"; then
   4.979 @@ -19133,7 +19125,7 @@
   4.980  set dummy $ac_prog; ac_word=$2
   4.981  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
   4.982  $as_echo_n "checking for $ac_word... " >&6; }
   4.983 -if ${ac_cv_prog_ac_ct_CC+:} false; then :
   4.984 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
   4.985    $as_echo_n "(cached) " >&6
   4.986  else
   4.987    if test -n "$ac_ct_CC"; then
   4.988 @@ -19186,7 +19178,7 @@
   4.989  test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
   4.990  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
   4.991  as_fn_error $? "no acceptable C compiler found in \$PATH
   4.992 -See \`config.log' for more details" "$LINENO" 5; }
   4.993 +See \`config.log' for more details" "$LINENO" 5 ; }
   4.994  
   4.995  # Provide some information about the compiler.
   4.996  $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
   4.997 @@ -19301,7 +19293,7 @@
   4.998  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
   4.999  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
  4.1000  as_fn_error 77 "C compiler cannot create executables
  4.1001 -See \`config.log' for more details" "$LINENO" 5; }
  4.1002 +See \`config.log' for more details" "$LINENO" 5 ; }
  4.1003  else
  4.1004    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
  4.1005  $as_echo "yes" >&6; }
  4.1006 @@ -19344,7 +19336,7 @@
  4.1007    { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
  4.1008  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
  4.1009  as_fn_error $? "cannot compute suffix of executables: cannot compile and link
  4.1010 -See \`config.log' for more details" "$LINENO" 5; }
  4.1011 +See \`config.log' for more details" "$LINENO" 5 ; }
  4.1012  fi
  4.1013  rm -f conftest conftest$ac_cv_exeext
  4.1014  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
  4.1015 @@ -19403,7 +19395,7 @@
  4.1016  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
  4.1017  as_fn_error $? "cannot run C compiled programs.
  4.1018  If you meant to cross compile, use \`--host'.
  4.1019 -See \`config.log' for more details" "$LINENO" 5; }
  4.1020 +See \`config.log' for more details" "$LINENO" 5 ; }
  4.1021      fi
  4.1022    fi
  4.1023  fi
  4.1024 @@ -19414,7 +19406,7 @@
  4.1025  ac_clean_files=$ac_clean_files_save
  4.1026  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
  4.1027  $as_echo_n "checking for suffix of object files... " >&6; }
  4.1028 -if ${ac_cv_objext+:} false; then :
  4.1029 +if test "${ac_cv_objext+set}" = set; then :
  4.1030    $as_echo_n "(cached) " >&6
  4.1031  else
  4.1032    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  4.1033 @@ -19455,7 +19447,7 @@
  4.1034  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
  4.1035  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
  4.1036  as_fn_error $? "cannot compute suffix of object files: cannot compile
  4.1037 -See \`config.log' for more details" "$LINENO" 5; }
  4.1038 +See \`config.log' for more details" "$LINENO" 5 ; }
  4.1039  fi
  4.1040  rm -f conftest.$ac_cv_objext conftest.$ac_ext
  4.1041  fi
  4.1042 @@ -19465,7 +19457,7 @@
  4.1043  ac_objext=$OBJEXT
  4.1044  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
  4.1045  $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
  4.1046 -if ${ac_cv_c_compiler_gnu+:} false; then :
  4.1047 +if test "${ac_cv_c_compiler_gnu+set}" = set; then :
  4.1048    $as_echo_n "(cached) " >&6
  4.1049  else
  4.1050    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  4.1051 @@ -19502,7 +19494,7 @@
  4.1052  ac_save_CFLAGS=$CFLAGS
  4.1053  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
  4.1054  $as_echo_n "checking whether $CC accepts -g... " >&6; }
  4.1055 -if ${ac_cv_prog_cc_g+:} false; then :
  4.1056 +if test "${ac_cv_prog_cc_g+set}" = set; then :
  4.1057    $as_echo_n "(cached) " >&6
  4.1058  else
  4.1059    ac_save_c_werror_flag=$ac_c_werror_flag
  4.1060 @@ -19580,7 +19572,7 @@
  4.1061  fi
  4.1062  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
  4.1063  $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
  4.1064 -if ${ac_cv_prog_cc_c89+:} false; then :
  4.1065 +if test "${ac_cv_prog_cc_c89+set}" = set; then :
  4.1066    $as_echo_n "(cached) " >&6
  4.1067  else
  4.1068    ac_cv_prog_cc_c89=no
  4.1069 @@ -19699,7 +19691,7 @@
  4.1070  set dummy $ac_prog; ac_word=$2
  4.1071  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1072  $as_echo_n "checking for $ac_word... " >&6; }
  4.1073 -if ${ac_cv_path_TOOLS_DIR_CXX+:} false; then :
  4.1074 +if test "${ac_cv_path_TOOLS_DIR_CXX+set}" = set; then :
  4.1075    $as_echo_n "(cached) " >&6
  4.1076  else
  4.1077    case $TOOLS_DIR_CXX in
  4.1078 @@ -19751,7 +19743,7 @@
  4.1079  set dummy $ac_prog; ac_word=$2
  4.1080  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1081  $as_echo_n "checking for $ac_word... " >&6; }
  4.1082 -if ${ac_cv_path_POTENTIAL_CXX+:} false; then :
  4.1083 +if test "${ac_cv_path_POTENTIAL_CXX+set}" = set; then :
  4.1084    $as_echo_n "(cached) " >&6
  4.1085  else
  4.1086    case $POTENTIAL_CXX in
  4.1087 @@ -20164,7 +20156,7 @@
  4.1088  set dummy $ac_tool_prefix$ac_prog; ac_word=$2
  4.1089  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1090  $as_echo_n "checking for $ac_word... " >&6; }
  4.1091 -if ${ac_cv_prog_PROPER_COMPILER_CXX+:} false; then :
  4.1092 +if test "${ac_cv_prog_PROPER_COMPILER_CXX+set}" = set; then :
  4.1093    $as_echo_n "(cached) " >&6
  4.1094  else
  4.1095    if test -n "$PROPER_COMPILER_CXX"; then
  4.1096 @@ -20208,7 +20200,7 @@
  4.1097  set dummy $ac_prog; ac_word=$2
  4.1098  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1099  $as_echo_n "checking for $ac_word... " >&6; }
  4.1100 -if ${ac_cv_prog_ac_ct_PROPER_COMPILER_CXX+:} false; then :
  4.1101 +if test "${ac_cv_prog_ac_ct_PROPER_COMPILER_CXX+set}" = set; then :
  4.1102    $as_echo_n "(cached) " >&6
  4.1103  else
  4.1104    if test -n "$ac_ct_PROPER_COMPILER_CXX"; then
  4.1105 @@ -20662,7 +20654,7 @@
  4.1106  set dummy $ac_tool_prefix$ac_prog; ac_word=$2
  4.1107  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1108  $as_echo_n "checking for $ac_word... " >&6; }
  4.1109 -if ${ac_cv_prog_CXX+:} false; then :
  4.1110 +if test "${ac_cv_prog_CXX+set}" = set; then :
  4.1111    $as_echo_n "(cached) " >&6
  4.1112  else
  4.1113    if test -n "$CXX"; then
  4.1114 @@ -20706,7 +20698,7 @@
  4.1115  set dummy $ac_prog; ac_word=$2
  4.1116  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1117  $as_echo_n "checking for $ac_word... " >&6; }
  4.1118 -if ${ac_cv_prog_ac_ct_CXX+:} false; then :
  4.1119 +if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
  4.1120    $as_echo_n "(cached) " >&6
  4.1121  else
  4.1122    if test -n "$ac_ct_CXX"; then
  4.1123 @@ -20784,7 +20776,7 @@
  4.1124  
  4.1125  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
  4.1126  $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
  4.1127 -if ${ac_cv_cxx_compiler_gnu+:} false; then :
  4.1128 +if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
  4.1129    $as_echo_n "(cached) " >&6
  4.1130  else
  4.1131    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  4.1132 @@ -20821,7 +20813,7 @@
  4.1133  ac_save_CXXFLAGS=$CXXFLAGS
  4.1134  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
  4.1135  $as_echo_n "checking whether $CXX accepts -g... " >&6; }
  4.1136 -if ${ac_cv_prog_cxx_g+:} false; then :
  4.1137 +if test "${ac_cv_prog_cxx_g+set}" = set; then :
  4.1138    $as_echo_n "(cached) " >&6
  4.1139  else
  4.1140    ac_save_cxx_werror_flag=$ac_cxx_werror_flag
  4.1141 @@ -20919,7 +20911,7 @@
  4.1142  set dummy $ac_tool_prefix$ac_prog; ac_word=$2
  4.1143  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1144  $as_echo_n "checking for $ac_word... " >&6; }
  4.1145 -if ${ac_cv_prog_OBJC+:} false; then :
  4.1146 +if test "${ac_cv_prog_OBJC+set}" = set; then :
  4.1147    $as_echo_n "(cached) " >&6
  4.1148  else
  4.1149    if test -n "$OBJC"; then
  4.1150 @@ -20963,7 +20955,7 @@
  4.1151  set dummy $ac_prog; ac_word=$2
  4.1152  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1153  $as_echo_n "checking for $ac_word... " >&6; }
  4.1154 -if ${ac_cv_prog_ac_ct_OBJC+:} false; then :
  4.1155 +if test "${ac_cv_prog_ac_ct_OBJC+set}" = set; then :
  4.1156    $as_echo_n "(cached) " >&6
  4.1157  else
  4.1158    if test -n "$ac_ct_OBJC"; then
  4.1159 @@ -21039,7 +21031,7 @@
  4.1160  
  4.1161  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Objective C compiler" >&5
  4.1162  $as_echo_n "checking whether we are using the GNU Objective C compiler... " >&6; }
  4.1163 -if ${ac_cv_objc_compiler_gnu+:} false; then :
  4.1164 +if test "${ac_cv_objc_compiler_gnu+set}" = set; then :
  4.1165    $as_echo_n "(cached) " >&6
  4.1166  else
  4.1167    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  4.1168 @@ -21076,7 +21068,7 @@
  4.1169  ac_save_OBJCFLAGS=$OBJCFLAGS
  4.1170  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $OBJC accepts -g" >&5
  4.1171  $as_echo_n "checking whether $OBJC accepts -g... " >&6; }
  4.1172 -if ${ac_cv_prog_objc_g+:} false; then :
  4.1173 +if test "${ac_cv_prog_objc_g+set}" = set; then :
  4.1174    $as_echo_n "(cached) " >&6
  4.1175  else
  4.1176    ac_save_objc_werror_flag=$ac_objc_werror_flag
  4.1177 @@ -21452,7 +21444,7 @@
  4.1178  set dummy ${ac_tool_prefix}ar; ac_word=$2
  4.1179  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1180  $as_echo_n "checking for $ac_word... " >&6; }
  4.1181 -if ${ac_cv_prog_AR+:} false; then :
  4.1182 +if test "${ac_cv_prog_AR+set}" = set; then :
  4.1183    $as_echo_n "(cached) " >&6
  4.1184  else
  4.1185    if test -n "$AR"; then
  4.1186 @@ -21492,7 +21484,7 @@
  4.1187  set dummy ar; ac_word=$2
  4.1188  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1189  $as_echo_n "checking for $ac_word... " >&6; }
  4.1190 -if ${ac_cv_prog_ac_ct_AR+:} false; then :
  4.1191 +if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
  4.1192    $as_echo_n "(cached) " >&6
  4.1193  else
  4.1194    if test -n "$ac_ct_AR"; then
  4.1195 @@ -21834,7 +21826,7 @@
  4.1196  set dummy link; ac_word=$2
  4.1197  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1198  $as_echo_n "checking for $ac_word... " >&6; }
  4.1199 -if ${ac_cv_prog_WINLD+:} false; then :
  4.1200 +if test "${ac_cv_prog_WINLD+set}" = set; then :
  4.1201    $as_echo_n "(cached) " >&6
  4.1202  else
  4.1203    if test -n "$WINLD"; then
  4.1204 @@ -22173,7 +22165,7 @@
  4.1205  set dummy mt; ac_word=$2
  4.1206  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1207  $as_echo_n "checking for $ac_word... " >&6; }
  4.1208 -if ${ac_cv_prog_MT+:} false; then :
  4.1209 +if test "${ac_cv_prog_MT+set}" = set; then :
  4.1210    $as_echo_n "(cached) " >&6
  4.1211  else
  4.1212    if test -n "$MT"; then
  4.1213 @@ -22494,7 +22486,7 @@
  4.1214  set dummy rc; ac_word=$2
  4.1215  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1216  $as_echo_n "checking for $ac_word... " >&6; }
  4.1217 -if ${ac_cv_prog_RC+:} false; then :
  4.1218 +if test "${ac_cv_prog_RC+set}" = set; then :
  4.1219    $as_echo_n "(cached) " >&6
  4.1220  else
  4.1221    if test -n "$RC"; then
  4.1222 @@ -22885,7 +22877,7 @@
  4.1223  set dummy lib; ac_word=$2
  4.1224  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1225  $as_echo_n "checking for $ac_word... " >&6; }
  4.1226 -if ${ac_cv_prog_WINAR+:} false; then :
  4.1227 +if test "${ac_cv_prog_WINAR+set}" = set; then :
  4.1228    $as_echo_n "(cached) " >&6
  4.1229  else
  4.1230    if test -n "$WINAR"; then
  4.1231 @@ -23191,7 +23183,7 @@
  4.1232  set dummy dumpbin; ac_word=$2
  4.1233  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1234  $as_echo_n "checking for $ac_word... " >&6; }
  4.1235 -if ${ac_cv_prog_DUMPBIN+:} false; then :
  4.1236 +if test "${ac_cv_prog_DUMPBIN+set}" = set; then :
  4.1237    $as_echo_n "(cached) " >&6
  4.1238  else
  4.1239    if test -n "$DUMPBIN"; then
  4.1240 @@ -23510,7 +23502,7 @@
  4.1241    CPP=
  4.1242  fi
  4.1243  if test -z "$CPP"; then
  4.1244 -  if ${ac_cv_prog_CPP+:} false; then :
  4.1245 +  if test "${ac_cv_prog_CPP+set}" = set; then :
  4.1246    $as_echo_n "(cached) " >&6
  4.1247  else
  4.1248        # Double quotes because CPP needs to be expanded
  4.1249 @@ -23626,7 +23618,7 @@
  4.1250    { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
  4.1251  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
  4.1252  as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
  4.1253 -See \`config.log' for more details" "$LINENO" 5; }
  4.1254 +See \`config.log' for more details" "$LINENO" 5 ; }
  4.1255  fi
  4.1256  
  4.1257  ac_ext=cpp
  4.1258 @@ -23910,7 +23902,7 @@
  4.1259  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
  4.1260  $as_echo_n "checking how to run the C++ preprocessor... " >&6; }
  4.1261  if test -z "$CXXCPP"; then
  4.1262 -  if ${ac_cv_prog_CXXCPP+:} false; then :
  4.1263 +  if test "${ac_cv_prog_CXXCPP+set}" = set; then :
  4.1264    $as_echo_n "(cached) " >&6
  4.1265  else
  4.1266        # Double quotes because CXXCPP needs to be expanded
  4.1267 @@ -24026,7 +24018,7 @@
  4.1268    { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
  4.1269  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
  4.1270  as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
  4.1271 -See \`config.log' for more details" "$LINENO" 5; }
  4.1272 +See \`config.log' for more details" "$LINENO" 5 ; }
  4.1273  fi
  4.1274  
  4.1275  ac_ext=cpp
  4.1276 @@ -24328,7 +24320,7 @@
  4.1277  set dummy as; ac_word=$2
  4.1278  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1279  $as_echo_n "checking for $ac_word... " >&6; }
  4.1280 -if ${ac_cv_path_AS+:} false; then :
  4.1281 +if test "${ac_cv_path_AS+set}" = set; then :
  4.1282    $as_echo_n "(cached) " >&6
  4.1283  else
  4.1284    case $AS in
  4.1285 @@ -24642,7 +24634,7 @@
  4.1286  set dummy $ac_prog; ac_word=$2
  4.1287  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1288  $as_echo_n "checking for $ac_word... " >&6; }
  4.1289 -if ${ac_cv_path_NM+:} false; then :
  4.1290 +if test "${ac_cv_path_NM+set}" = set; then :
  4.1291    $as_echo_n "(cached) " >&6
  4.1292  else
  4.1293    case $NM in
  4.1294 @@ -24951,7 +24943,7 @@
  4.1295  set dummy strip; ac_word=$2
  4.1296  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1297  $as_echo_n "checking for $ac_word... " >&6; }
  4.1298 -if ${ac_cv_path_STRIP+:} false; then :
  4.1299 +if test "${ac_cv_path_STRIP+set}" = set; then :
  4.1300    $as_echo_n "(cached) " >&6
  4.1301  else
  4.1302    case $STRIP in
  4.1303 @@ -25257,7 +25249,7 @@
  4.1304  set dummy mcs; ac_word=$2
  4.1305  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1306  $as_echo_n "checking for $ac_word... " >&6; }
  4.1307 -if ${ac_cv_path_MCS+:} false; then :
  4.1308 +if test "${ac_cv_path_MCS+set}" = set; then :
  4.1309    $as_echo_n "(cached) " >&6
  4.1310  else
  4.1311    case $MCS in
  4.1312 @@ -25565,7 +25557,7 @@
  4.1313  set dummy ${ac_tool_prefix}nm; ac_word=$2
  4.1314  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1315  $as_echo_n "checking for $ac_word... " >&6; }
  4.1316 -if ${ac_cv_prog_NM+:} false; then :
  4.1317 +if test "${ac_cv_prog_NM+set}" = set; then :
  4.1318    $as_echo_n "(cached) " >&6
  4.1319  else
  4.1320    if test -n "$NM"; then
  4.1321 @@ -25605,7 +25597,7 @@
  4.1322  set dummy nm; ac_word=$2
  4.1323  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1324  $as_echo_n "checking for $ac_word... " >&6; }
  4.1325 -if ${ac_cv_prog_ac_ct_NM+:} false; then :
  4.1326 +if test "${ac_cv_prog_ac_ct_NM+set}" = set; then :
  4.1327    $as_echo_n "(cached) " >&6
  4.1328  else
  4.1329    if test -n "$ac_ct_NM"; then
  4.1330 @@ -25923,7 +25915,7 @@
  4.1331  set dummy ${ac_tool_prefix}strip; ac_word=$2
  4.1332  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1333  $as_echo_n "checking for $ac_word... " >&6; }
  4.1334 -if ${ac_cv_prog_STRIP+:} false; then :
  4.1335 +if test "${ac_cv_prog_STRIP+set}" = set; then :
  4.1336    $as_echo_n "(cached) " >&6
  4.1337  else
  4.1338    if test -n "$STRIP"; then
  4.1339 @@ -25963,7 +25955,7 @@
  4.1340  set dummy strip; ac_word=$2
  4.1341  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1342  $as_echo_n "checking for $ac_word... " >&6; }
  4.1343 -if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
  4.1344 +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
  4.1345    $as_echo_n "(cached) " >&6
  4.1346  else
  4.1347    if test -n "$ac_ct_STRIP"; then
  4.1348 @@ -26288,7 +26280,7 @@
  4.1349  set dummy $ac_tool_prefix$ac_prog; ac_word=$2
  4.1350  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1351  $as_echo_n "checking for $ac_word... " >&6; }
  4.1352 -if ${ac_cv_prog_OBJCOPY+:} false; then :
  4.1353 +if test "${ac_cv_prog_OBJCOPY+set}" = set; then :
  4.1354    $as_echo_n "(cached) " >&6
  4.1355  else
  4.1356    if test -n "$OBJCOPY"; then
  4.1357 @@ -26332,7 +26324,7 @@
  4.1358  set dummy $ac_prog; ac_word=$2
  4.1359  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1360  $as_echo_n "checking for $ac_word... " >&6; }
  4.1361 -if ${ac_cv_prog_ac_ct_OBJCOPY+:} false; then :
  4.1362 +if test "${ac_cv_prog_ac_ct_OBJCOPY+set}" = set; then :
  4.1363    $as_echo_n "(cached) " >&6
  4.1364  else
  4.1365    if test -n "$ac_ct_OBJCOPY"; then
  4.1366 @@ -26659,7 +26651,7 @@
  4.1367  set dummy $ac_tool_prefix$ac_prog; ac_word=$2
  4.1368  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1369  $as_echo_n "checking for $ac_word... " >&6; }
  4.1370 -if ${ac_cv_prog_OBJDUMP+:} false; then :
  4.1371 +if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
  4.1372    $as_echo_n "(cached) " >&6
  4.1373  else
  4.1374    if test -n "$OBJDUMP"; then
  4.1375 @@ -26703,7 +26695,7 @@
  4.1376  set dummy $ac_prog; ac_word=$2
  4.1377  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1378  $as_echo_n "checking for $ac_word... " >&6; }
  4.1379 -if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
  4.1380 +if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
  4.1381    $as_echo_n "(cached) " >&6
  4.1382  else
  4.1383    if test -n "$ac_ct_OBJDUMP"; then
  4.1384 @@ -27027,7 +27019,7 @@
  4.1385  set dummy lipo; ac_word=$2
  4.1386  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1387  $as_echo_n "checking for $ac_word... " >&6; }
  4.1388 -if ${ac_cv_path_LIPO+:} false; then :
  4.1389 +if test "${ac_cv_path_LIPO+set}" = set; then :
  4.1390    $as_echo_n "(cached) " >&6
  4.1391  else
  4.1392    case $LIPO in
  4.1393 @@ -27342,7 +27334,7 @@
  4.1394  
  4.1395  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
  4.1396  $as_echo_n "checking for ANSI C header files... " >&6; }
  4.1397 -if ${ac_cv_header_stdc+:} false; then :
  4.1398 +if test "${ac_cv_header_stdc+set}" = set; then :
  4.1399    $as_echo_n "(cached) " >&6
  4.1400  else
  4.1401    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  4.1402 @@ -27518,7 +27510,7 @@
  4.1403  for ac_header in stdio.h
  4.1404  do :
  4.1405    ac_fn_cxx_check_header_mongrel "$LINENO" "stdio.h" "ac_cv_header_stdio_h" "$ac_includes_default"
  4.1406 -if test "x$ac_cv_header_stdio_h" = xyes; then :
  4.1407 +if test "x$ac_cv_header_stdio_h" = x""yes; then :
  4.1408    cat >>confdefs.h <<_ACEOF
  4.1409  #define HAVE_STDIO_H 1
  4.1410  _ACEOF
  4.1411 @@ -27547,7 +27539,7 @@
  4.1412  # This bug is HP SR number 8606223364.
  4.1413  { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int *" >&5
  4.1414  $as_echo_n "checking size of int *... " >&6; }
  4.1415 -if ${ac_cv_sizeof_int_p+:} false; then :
  4.1416 +if test "${ac_cv_sizeof_int_p+set}" = set; then :
  4.1417    $as_echo_n "(cached) " >&6
  4.1418  else
  4.1419    if ac_fn_cxx_compute_int "$LINENO" "(long int) (sizeof (int *))" "ac_cv_sizeof_int_p"        "$ac_includes_default"; then :
  4.1420 @@ -27557,7 +27549,7 @@
  4.1421       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
  4.1422  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
  4.1423  as_fn_error 77 "cannot compute sizeof (int *)
  4.1424 -See \`config.log' for more details" "$LINENO" 5; }
  4.1425 +See \`config.log' for more details" "$LINENO" 5 ; }
  4.1426     else
  4.1427       ac_cv_sizeof_int_p=0
  4.1428     fi
  4.1429 @@ -27604,7 +27596,7 @@
  4.1430  #
  4.1431   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
  4.1432  $as_echo_n "checking whether byte ordering is bigendian... " >&6; }
  4.1433 -if ${ac_cv_c_bigendian+:} false; then :
  4.1434 +if test "${ac_cv_c_bigendian+set}" = set; then :
  4.1435    $as_echo_n "(cached) " >&6
  4.1436  else
  4.1437    ac_cv_c_bigendian=unknown
  4.1438 @@ -28258,10 +28250,17 @@
  4.1439  fi
  4.1440  if test "x$OPENJDK_TARGET_OS" = xmacosx; then
  4.1441      CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE"
  4.1442 -    # Adding these macros will make it an error to link to mac APIs newer than OS version 10.7
  4.1443 -    MACOSX_REQUIRED_VERSION=1070
  4.1444 -
  4.1445 -    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(MACOSX_REQUIRED_VERSION) -DMAC_OS_X_VERSION_MIN_REQUIRED=\$(MACOSX_REQUIRED_VERSION)"
  4.1446 +    # Setting these parameters makes it an error to link to macosx APIs that are
  4.1447 +    # newer than the given OS version and makes the linked binaries compatible even
  4.1448 +    # if built on a newer version of the OS.
  4.1449 +    # The expected format is X.Y.Z
  4.1450 +    MACOSX_VERSION_MIN=10.7.0
  4.1451 +
  4.1452 +    # The macro takes the version with no dots, ex: 1070
  4.1453 +    # Let the flags variables get resolved in make for easier override on make
  4.1454 +    # command line.
  4.1455 +    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
  4.1456 +    LDFLAGS_JDK="$LDFLAGS_JDK -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
  4.1457  fi
  4.1458  if test "x$OPENJDK_TARGET_OS" = xbsd; then
  4.1459      CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DBSD -D_ALLBSD_SOURCE"
  4.1460 @@ -28608,8 +28607,8 @@
  4.1461    have_x=disabled
  4.1462  else
  4.1463    case $x_includes,$x_libraries in #(
  4.1464 -    *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #(
  4.1465 -    *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then :
  4.1466 +    *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5 ;; #(
  4.1467 +    *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then :
  4.1468    $as_echo_n "(cached) " >&6
  4.1469  else
  4.1470    # One or both of the vars are not set, and there is no cached value.
  4.1471 @@ -28886,7 +28885,7 @@
  4.1472  else
  4.1473    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5
  4.1474  $as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; }
  4.1475 -if ${ac_cv_lib_dnet_dnet_ntoa+:} false; then :
  4.1476 +if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then :
  4.1477    $as_echo_n "(cached) " >&6
  4.1478  else
  4.1479    ac_check_lib_save_LIBS=$LIBS
  4.1480 @@ -28920,14 +28919,14 @@
  4.1481  fi
  4.1482  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
  4.1483  $as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; }
  4.1484 -if test "x$ac_cv_lib_dnet_dnet_ntoa" = xyes; then :
  4.1485 +if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then :
  4.1486    X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
  4.1487  fi
  4.1488  
  4.1489      if test $ac_cv_lib_dnet_dnet_ntoa = no; then
  4.1490        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5
  4.1491  $as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; }
  4.1492 -if ${ac_cv_lib_dnet_stub_dnet_ntoa+:} false; then :
  4.1493 +if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then :
  4.1494    $as_echo_n "(cached) " >&6
  4.1495  else
  4.1496    ac_check_lib_save_LIBS=$LIBS
  4.1497 @@ -28961,7 +28960,7 @@
  4.1498  fi
  4.1499  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
  4.1500  $as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; }
  4.1501 -if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = xyes; then :
  4.1502 +if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = x""yes; then :
  4.1503    X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
  4.1504  fi
  4.1505  
  4.1506 @@ -28980,14 +28979,14 @@
  4.1507      # The functions gethostbyname, getservbyname, and inet_addr are
  4.1508      # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
  4.1509      ac_fn_cxx_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname"
  4.1510 -if test "x$ac_cv_func_gethostbyname" = xyes; then :
  4.1511 +if test "x$ac_cv_func_gethostbyname" = x""yes; then :
  4.1512  
  4.1513  fi
  4.1514  
  4.1515      if test $ac_cv_func_gethostbyname = no; then
  4.1516        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
  4.1517  $as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
  4.1518 -if ${ac_cv_lib_nsl_gethostbyname+:} false; then :
  4.1519 +if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then :
  4.1520    $as_echo_n "(cached) " >&6
  4.1521  else
  4.1522    ac_check_lib_save_LIBS=$LIBS
  4.1523 @@ -29021,14 +29020,14 @@
  4.1524  fi
  4.1525  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5
  4.1526  $as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; }
  4.1527 -if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then :
  4.1528 +if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then :
  4.1529    X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
  4.1530  fi
  4.1531  
  4.1532        if test $ac_cv_lib_nsl_gethostbyname = no; then
  4.1533  	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5
  4.1534  $as_echo_n "checking for gethostbyname in -lbsd... " >&6; }
  4.1535 -if ${ac_cv_lib_bsd_gethostbyname+:} false; then :
  4.1536 +if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then :
  4.1537    $as_echo_n "(cached) " >&6
  4.1538  else
  4.1539    ac_check_lib_save_LIBS=$LIBS
  4.1540 @@ -29062,7 +29061,7 @@
  4.1541  fi
  4.1542  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5
  4.1543  $as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; }
  4.1544 -if test "x$ac_cv_lib_bsd_gethostbyname" = xyes; then :
  4.1545 +if test "x$ac_cv_lib_bsd_gethostbyname" = x""yes; then :
  4.1546    X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
  4.1547  fi
  4.1548  
  4.1549 @@ -29077,14 +29076,14 @@
  4.1550      # must be given before -lnsl if both are needed.  We assume that
  4.1551      # if connect needs -lnsl, so does gethostbyname.
  4.1552      ac_fn_cxx_check_func "$LINENO" "connect" "ac_cv_func_connect"
  4.1553 -if test "x$ac_cv_func_connect" = xyes; then :
  4.1554 +if test "x$ac_cv_func_connect" = x""yes; then :
  4.1555  
  4.1556  fi
  4.1557  
  4.1558      if test $ac_cv_func_connect = no; then
  4.1559        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5
  4.1560  $as_echo_n "checking for connect in -lsocket... " >&6; }
  4.1561 -if ${ac_cv_lib_socket_connect+:} false; then :
  4.1562 +if test "${ac_cv_lib_socket_connect+set}" = set; then :
  4.1563    $as_echo_n "(cached) " >&6
  4.1564  else
  4.1565    ac_check_lib_save_LIBS=$LIBS
  4.1566 @@ -29118,7 +29117,7 @@
  4.1567  fi
  4.1568  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5
  4.1569  $as_echo "$ac_cv_lib_socket_connect" >&6; }
  4.1570 -if test "x$ac_cv_lib_socket_connect" = xyes; then :
  4.1571 +if test "x$ac_cv_lib_socket_connect" = x""yes; then :
  4.1572    X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
  4.1573  fi
  4.1574  
  4.1575 @@ -29126,14 +29125,14 @@
  4.1576  
  4.1577      # Guillermo Gomez says -lposix is necessary on A/UX.
  4.1578      ac_fn_cxx_check_func "$LINENO" "remove" "ac_cv_func_remove"
  4.1579 -if test "x$ac_cv_func_remove" = xyes; then :
  4.1580 +if test "x$ac_cv_func_remove" = x""yes; then :
  4.1581  
  4.1582  fi
  4.1583  
  4.1584      if test $ac_cv_func_remove = no; then
  4.1585        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5
  4.1586  $as_echo_n "checking for remove in -lposix... " >&6; }
  4.1587 -if ${ac_cv_lib_posix_remove+:} false; then :
  4.1588 +if test "${ac_cv_lib_posix_remove+set}" = set; then :
  4.1589    $as_echo_n "(cached) " >&6
  4.1590  else
  4.1591    ac_check_lib_save_LIBS=$LIBS
  4.1592 @@ -29167,7 +29166,7 @@
  4.1593  fi
  4.1594  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5
  4.1595  $as_echo "$ac_cv_lib_posix_remove" >&6; }
  4.1596 -if test "x$ac_cv_lib_posix_remove" = xyes; then :
  4.1597 +if test "x$ac_cv_lib_posix_remove" = x""yes; then :
  4.1598    X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
  4.1599  fi
  4.1600  
  4.1601 @@ -29175,14 +29174,14 @@
  4.1602  
  4.1603      # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
  4.1604      ac_fn_cxx_check_func "$LINENO" "shmat" "ac_cv_func_shmat"
  4.1605 -if test "x$ac_cv_func_shmat" = xyes; then :
  4.1606 +if test "x$ac_cv_func_shmat" = x""yes; then :
  4.1607  
  4.1608  fi
  4.1609  
  4.1610      if test $ac_cv_func_shmat = no; then
  4.1611        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5
  4.1612  $as_echo_n "checking for shmat in -lipc... " >&6; }
  4.1613 -if ${ac_cv_lib_ipc_shmat+:} false; then :
  4.1614 +if test "${ac_cv_lib_ipc_shmat+set}" = set; then :
  4.1615    $as_echo_n "(cached) " >&6
  4.1616  else
  4.1617    ac_check_lib_save_LIBS=$LIBS
  4.1618 @@ -29216,7 +29215,7 @@
  4.1619  fi
  4.1620  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5
  4.1621  $as_echo "$ac_cv_lib_ipc_shmat" >&6; }
  4.1622 -if test "x$ac_cv_lib_ipc_shmat" = xyes; then :
  4.1623 +if test "x$ac_cv_lib_ipc_shmat" = x""yes; then :
  4.1624    X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
  4.1625  fi
  4.1626  
  4.1627 @@ -29234,7 +29233,7 @@
  4.1628    # John Interrante, Karl Berry
  4.1629    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5
  4.1630  $as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; }
  4.1631 -if ${ac_cv_lib_ICE_IceConnectionNumber+:} false; then :
  4.1632 +if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then :
  4.1633    $as_echo_n "(cached) " >&6
  4.1634  else
  4.1635    ac_check_lib_save_LIBS=$LIBS
  4.1636 @@ -29268,7 +29267,7 @@
  4.1637  fi
  4.1638  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
  4.1639  $as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; }
  4.1640 -if test "x$ac_cv_lib_ICE_IceConnectionNumber" = xyes; then :
  4.1641 +if test "x$ac_cv_lib_ICE_IceConnectionNumber" = x""yes; then :
  4.1642    X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
  4.1643  fi
  4.1644  
  4.1645 @@ -30281,7 +30280,7 @@
  4.1646              LDFLAGS="$FREETYPE2_LIBS"
  4.1647              { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FT_Init_FreeType in -lfreetype" >&5
  4.1648  $as_echo_n "checking for FT_Init_FreeType in -lfreetype... " >&6; }
  4.1649 -if ${ac_cv_lib_freetype_FT_Init_FreeType+:} false; then :
  4.1650 +if test "${ac_cv_lib_freetype_FT_Init_FreeType+set}" = set; then :
  4.1651    $as_echo_n "(cached) " >&6
  4.1652  else
  4.1653    ac_check_lib_save_LIBS=$LIBS
  4.1654 @@ -30315,7 +30314,7 @@
  4.1655  fi
  4.1656  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_freetype_FT_Init_FreeType" >&5
  4.1657  $as_echo "$ac_cv_lib_freetype_FT_Init_FreeType" >&6; }
  4.1658 -if test "x$ac_cv_lib_freetype_FT_Init_FreeType" = xyes; then :
  4.1659 +if test "x$ac_cv_lib_freetype_FT_Init_FreeType" = x""yes; then :
  4.1660    FREETYPE2_FOUND=true
  4.1661  else
  4.1662    as_fn_error $? "Could not find freetype2! $HELP_MSG " "$LINENO" 5
  4.1663 @@ -30603,7 +30602,7 @@
  4.1664  	    for ac_header in alsa/asoundlib.h
  4.1665  do :
  4.1666    ac_fn_cxx_check_header_mongrel "$LINENO" "alsa/asoundlib.h" "ac_cv_header_alsa_asoundlib_h" "$ac_includes_default"
  4.1667 -if test "x$ac_cv_header_alsa_asoundlib_h" = xyes; then :
  4.1668 +if test "x$ac_cv_header_alsa_asoundlib_h" = x""yes; then :
  4.1669    cat >>confdefs.h <<_ACEOF
  4.1670  #define HAVE_ALSA_ASOUNDLIB_H 1
  4.1671  _ACEOF
  4.1672 @@ -30662,7 +30661,7 @@
  4.1673  USE_EXTERNAL_LIBJPEG=true
  4.1674  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ljpeg" >&5
  4.1675  $as_echo_n "checking for main in -ljpeg... " >&6; }
  4.1676 -if ${ac_cv_lib_jpeg_main+:} false; then :
  4.1677 +if test "${ac_cv_lib_jpeg_main+set}" = set; then :
  4.1678    $as_echo_n "(cached) " >&6
  4.1679  else
  4.1680    ac_check_lib_save_LIBS=$LIBS
  4.1681 @@ -30690,7 +30689,7 @@
  4.1682  fi
  4.1683  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_main" >&5
  4.1684  $as_echo "$ac_cv_lib_jpeg_main" >&6; }
  4.1685 -if test "x$ac_cv_lib_jpeg_main" = xyes; then :
  4.1686 +if test "x$ac_cv_lib_jpeg_main" = x""yes; then :
  4.1687    cat >>confdefs.h <<_ACEOF
  4.1688  #define HAVE_LIBJPEG 1
  4.1689  _ACEOF
  4.1690 @@ -30714,7 +30713,7 @@
  4.1691  USE_EXTERNAL_LIBJPEG=true
  4.1692  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lgif" >&5
  4.1693  $as_echo_n "checking for main in -lgif... " >&6; }
  4.1694 -if ${ac_cv_lib_gif_main+:} false; then :
  4.1695 +if test "${ac_cv_lib_gif_main+set}" = set; then :
  4.1696    $as_echo_n "(cached) " >&6
  4.1697  else
  4.1698    ac_check_lib_save_LIBS=$LIBS
  4.1699 @@ -30742,7 +30741,7 @@
  4.1700  fi
  4.1701  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gif_main" >&5
  4.1702  $as_echo "$ac_cv_lib_gif_main" >&6; }
  4.1703 -if test "x$ac_cv_lib_gif_main" = xyes; then :
  4.1704 +if test "x$ac_cv_lib_gif_main" = x""yes; then :
  4.1705    cat >>confdefs.h <<_ACEOF
  4.1706  #define HAVE_LIBGIF 1
  4.1707  _ACEOF
  4.1708 @@ -30772,7 +30771,7 @@
  4.1709  
  4.1710  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compress in -lz" >&5
  4.1711  $as_echo_n "checking for compress in -lz... " >&6; }
  4.1712 -if ${ac_cv_lib_z_compress+:} false; then :
  4.1713 +if test "${ac_cv_lib_z_compress+set}" = set; then :
  4.1714    $as_echo_n "(cached) " >&6
  4.1715  else
  4.1716    ac_check_lib_save_LIBS=$LIBS
  4.1717 @@ -30806,7 +30805,7 @@
  4.1718  fi
  4.1719  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress" >&5
  4.1720  $as_echo "$ac_cv_lib_z_compress" >&6; }
  4.1721 -if test "x$ac_cv_lib_z_compress" = xyes; then :
  4.1722 +if test "x$ac_cv_lib_z_compress" = x""yes; then :
  4.1723     ZLIB_FOUND=yes
  4.1724  else
  4.1725     ZLIB_FOUND=no
  4.1726 @@ -30899,7 +30898,7 @@
  4.1727  
  4.1728  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5
  4.1729  $as_echo_n "checking for cos in -lm... " >&6; }
  4.1730 -if ${ac_cv_lib_m_cos+:} false; then :
  4.1731 +if test "${ac_cv_lib_m_cos+set}" = set; then :
  4.1732    $as_echo_n "(cached) " >&6
  4.1733  else
  4.1734    ac_check_lib_save_LIBS=$LIBS
  4.1735 @@ -30933,7 +30932,7 @@
  4.1736  fi
  4.1737  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5
  4.1738  $as_echo "$ac_cv_lib_m_cos" >&6; }
  4.1739 -if test "x$ac_cv_lib_m_cos" = xyes; then :
  4.1740 +if test "x$ac_cv_lib_m_cos" = x""yes; then :
  4.1741    cat >>confdefs.h <<_ACEOF
  4.1742  #define HAVE_LIBM 1
  4.1743  _ACEOF
  4.1744 @@ -30957,7 +30956,7 @@
  4.1745  LIBS=""
  4.1746  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
  4.1747  $as_echo_n "checking for dlopen in -ldl... " >&6; }
  4.1748 -if ${ac_cv_lib_dl_dlopen+:} false; then :
  4.1749 +if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
  4.1750    $as_echo_n "(cached) " >&6
  4.1751  else
  4.1752    ac_check_lib_save_LIBS=$LIBS
  4.1753 @@ -30991,7 +30990,7 @@
  4.1754  fi
  4.1755  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
  4.1756  $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
  4.1757 -if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
  4.1758 +if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
  4.1759    cat >>confdefs.h <<_ACEOF
  4.1760  #define HAVE_LIBDL 1
  4.1761  _ACEOF
  4.1762 @@ -31635,7 +31634,7 @@
  4.1763  set dummy ccache; ac_word=$2
  4.1764  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  4.1765  $as_echo_n "checking for $ac_word... " >&6; }
  4.1766 -if ${ac_cv_path_CCACHE+:} false; then :
  4.1767 +if test "${ac_cv_path_CCACHE+set}" = set; then :
  4.1768    $as_echo_n "(cached) " >&6
  4.1769  else
  4.1770    case $CCACHE in
  4.1771 @@ -31896,21 +31895,10 @@
  4.1772       :end' >>confcache
  4.1773  if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
  4.1774    if test -w "$cache_file"; then
  4.1775 -    if test "x$cache_file" != "x/dev/null"; then
  4.1776 +    test "x$cache_file" != "x/dev/null" &&
  4.1777        { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
  4.1778  $as_echo "$as_me: updating cache $cache_file" >&6;}
  4.1779 -      if test ! -f "$cache_file" || test -h "$cache_file"; then
  4.1780 -	cat confcache >"$cache_file"
  4.1781 -      else
  4.1782 -        case $cache_file in #(
  4.1783 -        */* | ?:*)
  4.1784 -	  mv -f confcache "$cache_file"$$ &&
  4.1785 -	  mv -f "$cache_file"$$ "$cache_file" ;; #(
  4.1786 -        *)
  4.1787 -	  mv -f confcache "$cache_file" ;;
  4.1788 -	esac
  4.1789 -      fi
  4.1790 -    fi
  4.1791 +    cat confcache >$cache_file
  4.1792    else
  4.1793      { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
  4.1794  $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
  4.1795 @@ -31942,7 +31930,7 @@
  4.1796  
  4.1797  
  4.1798  
  4.1799 -: "${CONFIG_STATUS=./config.status}"
  4.1800 +: ${CONFIG_STATUS=./config.status}
  4.1801  ac_write_fail=0
  4.1802  ac_clean_files_save=$ac_clean_files
  4.1803  ac_clean_files="$ac_clean_files $CONFIG_STATUS"
  4.1804 @@ -32043,7 +32031,6 @@
  4.1805  IFS=" ""	$as_nl"
  4.1806  
  4.1807  # Find who we are.  Look in the path if we contain no directory separator.
  4.1808 -as_myself=
  4.1809  case $0 in #((
  4.1810    *[\\/]* ) as_myself=$0 ;;
  4.1811    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
  4.1812 @@ -32351,7 +32338,7 @@
  4.1813  # values after options handling.
  4.1814  ac_log="
  4.1815  This file was extended by OpenJDK $as_me jdk8, which was
  4.1816 -generated by GNU Autoconf 2.68.  Invocation command line was
  4.1817 +generated by GNU Autoconf 2.67.  Invocation command line was
  4.1818  
  4.1819    CONFIG_FILES    = $CONFIG_FILES
  4.1820    CONFIG_HEADERS  = $CONFIG_HEADERS
  4.1821 @@ -32414,7 +32401,7 @@
  4.1822  ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
  4.1823  ac_cs_version="\\
  4.1824  OpenJDK config.status jdk8
  4.1825 -configured by $0, generated by GNU Autoconf 2.68,
  4.1826 +configured by $0, generated by GNU Autoconf 2.67,
  4.1827    with options \\"\$ac_cs_config\\"
  4.1828  
  4.1829  Copyright (C) 2010 Free Software Foundation, Inc.
  4.1830 @@ -32543,7 +32530,7 @@
  4.1831      "$OUTPUT_ROOT/spec.sh") CONFIG_FILES="$CONFIG_FILES $OUTPUT_ROOT/spec.sh:$AUTOCONF_DIR/spec.sh.in" ;;
  4.1832      "$OUTPUT_ROOT/Makefile") CONFIG_FILES="$CONFIG_FILES $OUTPUT_ROOT/Makefile:$AUTOCONF_DIR/Makefile.in" ;;
  4.1833  
  4.1834 -  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
  4.1835 +  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
  4.1836    esac
  4.1837  done
  4.1838  
  4.1839 @@ -32565,10 +32552,9 @@
  4.1840  # after its creation but before its name has been assigned to `$tmp'.
  4.1841  $debug ||
  4.1842  {
  4.1843 -  tmp= ac_tmp=
  4.1844 +  tmp=
  4.1845    trap 'exit_status=$?
  4.1846 -  : "${ac_tmp:=$tmp}"
  4.1847 -  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
  4.1848 +  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
  4.1849  ' 0
  4.1850    trap 'as_fn_exit 1' 1 2 13 15
  4.1851  }
  4.1852 @@ -32576,13 +32562,12 @@
  4.1853  
  4.1854  {
  4.1855    tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
  4.1856 -  test -d "$tmp"
  4.1857 +  test -n "$tmp" && test -d "$tmp"
  4.1858  }  ||
  4.1859  {
  4.1860    tmp=./conf$$-$RANDOM
  4.1861    (umask 077 && mkdir "$tmp")
  4.1862  } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
  4.1863 -ac_tmp=$tmp
  4.1864  
  4.1865  # Set up the scripts for CONFIG_FILES section.
  4.1866  # No need to generate them if there are no CONFIG_FILES.
  4.1867 @@ -32604,7 +32589,7 @@
  4.1868    ac_cs_awk_cr=$ac_cr
  4.1869  fi
  4.1870  
  4.1871 -echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
  4.1872 +echo 'BEGIN {' >"$tmp/subs1.awk" &&
  4.1873  _ACEOF
  4.1874  
  4.1875  
  4.1876 @@ -32632,7 +32617,7 @@
  4.1877  rm -f conf$$subs.sh
  4.1878  
  4.1879  cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
  4.1880 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
  4.1881 +cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
  4.1882  _ACEOF
  4.1883  sed -n '
  4.1884  h
  4.1885 @@ -32680,7 +32665,7 @@
  4.1886  rm -f conf$$subs.awk
  4.1887  cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
  4.1888  _ACAWK
  4.1889 -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
  4.1890 +cat >>"\$tmp/subs1.awk" <<_ACAWK &&
  4.1891    for (key in S) S_is_set[key] = 1
  4.1892    FS = ""
  4.1893  
  4.1894 @@ -32712,7 +32697,7 @@
  4.1895    sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
  4.1896  else
  4.1897    cat
  4.1898 -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
  4.1899 +fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
  4.1900    || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
  4.1901  _ACEOF
  4.1902  
  4.1903 @@ -32746,7 +32731,7 @@
  4.1904  # No need to generate them if there are no CONFIG_HEADERS.
  4.1905  # This happens for instance with `./config.status Makefile'.
  4.1906  if test -n "$CONFIG_HEADERS"; then
  4.1907 -cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
  4.1908 +cat >"$tmp/defines.awk" <<\_ACAWK ||
  4.1909  BEGIN {
  4.1910  _ACEOF
  4.1911  
  4.1912 @@ -32758,8 +32743,8 @@
  4.1913  # handling of long lines.
  4.1914  ac_delim='%!_!# '
  4.1915  for ac_last_try in false false :; do
  4.1916 -  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
  4.1917 -  if test -z "$ac_tt"; then
  4.1918 +  ac_t=`sed -n "/$ac_delim/p" confdefs.h`
  4.1919 +  if test -z "$ac_t"; then
  4.1920      break
  4.1921    elif $ac_last_try; then
  4.1922      as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
  4.1923 @@ -32860,7 +32845,7 @@
  4.1924    esac
  4.1925    case $ac_mode$ac_tag in
  4.1926    :[FHL]*:*);;
  4.1927 -  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
  4.1928 +  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
  4.1929    :[FH]-) ac_tag=-:-;;
  4.1930    :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
  4.1931    esac
  4.1932 @@ -32879,7 +32864,7 @@
  4.1933      for ac_f
  4.1934      do
  4.1935        case $ac_f in
  4.1936 -      -) ac_f="$ac_tmp/stdin";;
  4.1937 +      -) ac_f="$tmp/stdin";;
  4.1938        *) # Look for the file first in the build tree, then in the source tree
  4.1939  	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
  4.1940  	 # because $ac_f cannot contain `:'.
  4.1941 @@ -32888,7 +32873,7 @@
  4.1942  	   [\\/$]*) false;;
  4.1943  	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
  4.1944  	   esac ||
  4.1945 -	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
  4.1946 +	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
  4.1947        esac
  4.1948        case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
  4.1949        as_fn_append ac_file_inputs " '$ac_f'"
  4.1950 @@ -32914,8 +32899,8 @@
  4.1951      esac
  4.1952  
  4.1953      case $ac_tag in
  4.1954 -    *:-:* | *:-) cat >"$ac_tmp/stdin" \
  4.1955 -      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
  4.1956 +    *:-:* | *:-) cat >"$tmp/stdin" \
  4.1957 +      || as_fn_error $? "could not create $ac_file" "$LINENO" 5  ;;
  4.1958      esac
  4.1959      ;;
  4.1960    esac
  4.1961 @@ -33040,22 +33025,21 @@
  4.1962  s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
  4.1963  $ac_datarootdir_hack
  4.1964  "
  4.1965 -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
  4.1966 -  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
  4.1967 +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
  4.1968 +  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
  4.1969  
  4.1970  test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
  4.1971 -  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
  4.1972 -  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
  4.1973 -      "$ac_tmp/out"`; test -z "$ac_out"; } &&
  4.1974 +  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
  4.1975 +  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
  4.1976    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
  4.1977  which seems to be undefined.  Please make sure it is defined" >&5
  4.1978  $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
  4.1979  which seems to be undefined.  Please make sure it is defined" >&2;}
  4.1980  
  4.1981 -  rm -f "$ac_tmp/stdin"
  4.1982 +  rm -f "$tmp/stdin"
  4.1983    case $ac_file in
  4.1984 -  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
  4.1985 -  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
  4.1986 +  -) cat "$tmp/out" && rm -f "$tmp/out";;
  4.1987 +  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
  4.1988    esac \
  4.1989    || as_fn_error $? "could not create $ac_file" "$LINENO" 5
  4.1990   ;;
  4.1991 @@ -33066,20 +33050,20 @@
  4.1992    if test x"$ac_file" != x-; then
  4.1993      {
  4.1994        $as_echo "/* $configure_input  */" \
  4.1995 -      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
  4.1996 -    } >"$ac_tmp/config.h" \
  4.1997 +      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
  4.1998 +    } >"$tmp/config.h" \
  4.1999        || as_fn_error $? "could not create $ac_file" "$LINENO" 5
  4.2000 -    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
  4.2001 +    if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
  4.2002        { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
  4.2003  $as_echo "$as_me: $ac_file is unchanged" >&6;}
  4.2004      else
  4.2005        rm -f "$ac_file"
  4.2006 -      mv "$ac_tmp/config.h" "$ac_file" \
  4.2007 +      mv "$tmp/config.h" "$ac_file" \
  4.2008  	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
  4.2009      fi
  4.2010    else
  4.2011      $as_echo "/* $configure_input  */" \
  4.2012 -      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
  4.2013 +      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
  4.2014        || as_fn_error $? "could not create -" "$LINENO" 5
  4.2015    fi
  4.2016   ;;
     5.1 --- a/common/autoconf/spec.gmk.in	Tue Feb 26 09:25:44 2013 -0800
     5.2 +++ b/common/autoconf/spec.gmk.in	Tue Mar 05 11:46:02 2013 -0800
     5.3 @@ -286,7 +286,7 @@
     5.4  OPENWIN_HOME:=@OPENWIN_HOME@
     5.5  
     5.6  # The lowest required version of macosx to enforce compatiblity for
     5.7 -MACOSX_REQUIRED_VERSION=@MACOSX_REQUIRED_VERSION@
     5.8 +MACOSX_VERSION_MIN=@MACOSX_VERSION_MIN@
     5.9  
    5.10  # There are two types: CC or CL
    5.11  # CC is gcc and others behaving reasonably similar.
     6.1 --- a/common/autoconf/toolchain.m4	Tue Feb 26 09:25:44 2013 -0800
     6.2 +++ b/common/autoconf/toolchain.m4	Tue Mar 05 11:46:02 2013 -0800
     6.3 @@ -876,10 +876,17 @@
     6.4  fi
     6.5  if test "x$OPENJDK_TARGET_OS" = xmacosx; then
     6.6      CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE"
     6.7 -    # Adding these macros will make it an error to link to mac APIs newer than OS version 10.7
     6.8 -    MACOSX_REQUIRED_VERSION=1070
     6.9 -    AC_SUBST(MACOSX_REQUIRED_VERSION)
    6.10 -    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(MACOSX_REQUIRED_VERSION) -DMAC_OS_X_VERSION_MIN_REQUIRED=\$(MACOSX_REQUIRED_VERSION)" 
    6.11 +    # Setting these parameters makes it an error to link to macosx APIs that are 
    6.12 +    # newer than the given OS version and makes the linked binaries compatible even
    6.13 +    # if built on a newer version of the OS.
    6.14 +    # The expected format is X.Y.Z
    6.15 +    MACOSX_VERSION_MIN=10.7.0
    6.16 +    AC_SUBST(MACOSX_VERSION_MIN)
    6.17 +    # The macro takes the version with no dots, ex: 1070
    6.18 +    # Let the flags variables get resolved in make for easier override on make
    6.19 +    # command line.
    6.20 +    CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
    6.21 +    LDFLAGS_JDK="$LDFLAGS_JDK -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
    6.22  fi
    6.23  if test "x$OPENJDK_TARGET_OS" = xbsd; then
    6.24      CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DBSD -D_ALLBSD_SOURCE"

mercurial