6563616: Clarify instructions for unpacking openjdk binary "plug"

Wed, 30 Apr 2008 19:35:26 -0700

author
ohair
date
Wed, 30 Apr 2008 19:35:26 -0700
changeset 13
0f440f3321f5
parent 11
9410f77cc30c
child 14
11b4dc9f2be3

6563616: Clarify instructions for unpacking openjdk binary "plug"
6611685: Incorrect link to CA certs info from build README
6682167: Add cygwin faq to README-builds.html
Reviewed-by: xdono

README-builds.html file | annotate | diff | comparison | revisions
     1.1 --- a/README-builds.html	Wed Apr 09 11:18:55 2008 -0700
     1.2 +++ b/README-builds.html	Wed Apr 30 19:35:26 2008 -0700
     1.3 @@ -1,1447 +1,1587 @@
     1.4  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     1.5 -
     1.6  <html>
     1.7 -<head><title>OpenJDK Build README</title></head>
     1.8 -
     1.9 -<!-- ------------------------------------------------------ -->
    1.10 -<hr noshade="noshade" size="3">
    1.11 -
    1.12 -<center>
    1.13 -    <h1>OpenJDK Build README</h1>
    1.14 -</center>
    1.15 -
    1.16 -<!-- ------------------------------------------------------ --> 
    1.17 -<hr noshade="noshade" size="3">
    1.18 -
    1.19 -<h2><a name="introduction">Introduction</a></h2>
    1.20 -
    1.21 -<blockquote>
    1.22 -    <p>
    1.23 -    This README file contains build instructions for the 
    1.24 -    <a href="http://openjdk.java.net">OpenJDK</a>.
    1.25 -    Building the source code for the 
    1.26 -    OpenJDK
    1.27 -    requires
    1.28 -    a certain degree of technical expertise.
    1.29 -</blockquote>
    1.30 -
    1.31 -<!-- ------------------------------------------------------ -->
    1.32 -<hr noshade="noshade" size="3">
    1.33 -
    1.34 -<h2><a name="contents">Contents</a></h2>
    1.35 -
    1.36 -<blockquote>
    1.37 -    <ul>
    1.38 -        <li><a href="#introduction">Introduction</a></li>
    1.39 -        <li><a href="#MBE">Minimum Build Environments</a></li>
    1.40 -        <li><a href="#SDBE">Specific Developer Build Environments</a></li>
    1.41 -        <li><a href="#directories">Source Directory Structure</a> </li>
    1.42 -        <li><a href="#building">Build Information</a>
    1.43 -            <ul type="disc">
    1.44 -                <li><a href="#gmake">GNU Make (<tt><i>gmake</i></tt>)</a> </li>
    1.45 -                <li><a href="#linux">Basic Linux System Setup</a> </li>
    1.46 -                <li><a href="#solaris">Basic Solaris System Setup</a> </li>
    1.47 -                <li><a href="#windows">Basic Windows System Setup</a> </li>
    1.48 -                <li><a href="#dependencies">Build Dependencies</a> </li>
    1.49 -                <ul type="disc">
    1.50 -                    <li><a href="#bootjdk">Bootstrap JDK</a> </li>
    1.51 -                    <li><a href="#binaryplugs">Binary Plugs</a> </li>
    1.52 -                    <li><a href="#cacerts">Certificate Authority File (cacert)</a> </li>
    1.53 -                    <li><a href="#compilers">Compilers</a> 
    1.54 +    <head>
    1.55 +        <title>OpenJDK Build README</title>
    1.56 +    </head>
    1.57 +    <body style="background-color:lightcyan">
    1.58 +        <!-- ====================================================== -->
    1.59 +        <table width="100%" style="background-color:white">
    1.60 +            <tr>
    1.61 +                <td align="center">
    1.62 +                    <a href="http://openjdk.java.net" border="0">    
    1.63 +                        <img alt="OpenJDK" 
    1.64 +                             src="http://openjdk.java.net/images/openjdk.png"
    1.65 +                             width=256
    1.66 +                             style="border-style: none"/>
    1.67 +                    </a>
    1.68 +                </td>
    1.69 +            </tr>
    1.70 +            <tr>
    1.71 +                <td align=center>
    1.72 +                    <h1>OpenJDK Build README</h1>
    1.73 +                </td>
    1.74 +            </tr>
    1.75 +        </table>
    1.76 +        <!-- ------------------------------------------------------ --> 
    1.77 +        <hr>
    1.78 +        <h2><a name="introduction">Introduction</a></h2>
    1.79 +        <blockquote>
    1.80 +            <p>
    1.81 +            This README file contains build instructions for the 
    1.82 +            <a href="http://openjdk.java.net"  target="_blank">OpenJDK</a>.
    1.83 +            Building the source code for the 
    1.84 +            OpenJDK
    1.85 +            requires
    1.86 +            a certain degree of technical expertise.
    1.87 +        </blockquote>
    1.88 +        <!-- ------------------------------------------------------ -->
    1.89 +        <hr>
    1.90 +        <h2><a name="contents">Contents</a></h2>
    1.91 +        <blockquote>
    1.92 +            <ul>
    1.93 +                <li><a href="#introduction">Introduction</a></li>
    1.94 +                <li><a href="#MBE">Minimum Build Environments</a></li>
    1.95 +                <li><a href="#SDBE">Specific Developer Build Environments</a></li>
    1.96 +                <li><a href="#directories">Source Directory Structure</a> </li>
    1.97 +                <li><a href="#building">Build Information</a>
    1.98 +                    <ul>
    1.99 +                        <li><a href="#gmake">GNU Make (<tt><i>gmake</i></tt>)</a> </li>
   1.100 +                        <li><a href="#linux">Basic Linux System Setup</a> </li>
   1.101 +                        <li><a href="#solaris">Basic Solaris System Setup</a> </li>
   1.102 +                        <li><a href="#windows">Basic Windows System Setup</a> </li>
   1.103 +                        <li><a href="#dependencies">Build Dependencies</a> </li>
   1.104                          <ul>
   1.105 -                            <li><a href="#msvc">Microsoft Visual Studio</a> </li>
   1.106 -                            <li><a href="#mssdk">Microsoft Platform SDK</a> </li>
   1.107 -                            <li><a href="#gcc">Linux gcc/binutils</a> </li>
   1.108 -                            <li><a href="#studio">Sun Studio</a> </li>
   1.109 +                            <li><a href="#bootjdk">Bootstrap JDK</a> </li>
   1.110 +                            <li><a href="#binaryplugs">Binary Plugs</a> </li>
   1.111 +                            <li><a href="#importjdk">Optional Import JDK</a> </li>
   1.112 +                            <li><a href="#cacerts">Certificate Authority File (cacert)</a> </li>
   1.113 +                            <li><a href="#compilers">Compilers</a> 
   1.114 +                                <ul>
   1.115 +                                    <li><a href="#msvc">Microsoft Visual Studio</a> </li>
   1.116 +                                    <li><a href="#mssdk">Microsoft Platform SDK</a> </li>
   1.117 +                                    <li><a href="#gcc">Linux gcc/binutils</a> </li>
   1.118 +                                    <li><a href="#studio">Sun Studio</a> </li>
   1.119 +                                </ul>
   1.120 +                            </li>
   1.121 +                            <li><a href="#zip">Zip and Unzip</a> </li>
   1.122 +                            <li><a href="#freetype">FreeType2 Fonts</a> </li>
   1.123 +                            <li>Linux and Solaris:
   1.124 +                                <ul>
   1.125 +                                    <li><a href="#cups">CUPS Include files</a> </li>
   1.126 +                                </ul>
   1.127 +                            </li>
   1.128 +                            <li>Linux only:
   1.129 +                                <ul>
   1.130 +                                    <li><a href="#alsa">ALSA files</a> </li>
   1.131 +                                </ul>
   1.132 +                            </li>
   1.133 +                            <li>Windows only:
   1.134 +                                <ul>
   1.135 +                                    <li>Unix Command Tools (<a href="#cygwin">CYGWIN</a>)</li>
   1.136 +                                    <li><a href="#dxsdk">DirectX 9.0 SDK</a> </li>
   1.137 +                                </ul>
   1.138 +                            </li>
   1.139                          </ul>
   1.140 -                    </li>
   1.141 -                    <li>Linux and Solaris:
   1.142 -                        <ul>
   1.143 -                            <li><a href="#cups">CUPS Include files</a> </li>
   1.144 -                        </ul>
   1.145 -                    </li>
   1.146 -                    <li>Windows only:
   1.147 -                        <ul>
   1.148 -                            <li>Unix Command Tools (<a href="#cygwin">CYGWIN</a>)</li>
   1.149 -                            <li><a href="#dxsdk">DirectX 9.0 SDK</a> </li>
   1.150 -                        </ul>
   1.151 -                    </li>
   1.152 +                    </ul>
   1.153 +                </li>
   1.154 +                <li><a href="#creating">Creating the Build</a> </li>
   1.155 +                <li><a href="#testing">Testing the Build</a> </li>
   1.156 +                <li><a href="#variables">Environment/Make Variables</a></li>
   1.157 +                <li><a href="#troubleshooting">Troubleshooting</a></li>
   1.158 +            </ul>
   1.159 +        </blockquote>
   1.160 +        <!-- ------------------------------------------------------ -->
   1.161 +        <hr>
   1.162 +        <h2><a name="MBE">Minimum Build Environments</a></h2>
   1.163 +        <blockquote>
   1.164 +            This file often describes specific requirements for what we call the
   1.165 +            "minimum build environments" (MBE) for the JDK.
   1.166 +            Building with the MBE will generate the most compatible
   1.167 +            bits that install on, and run correctly on, the most variations
   1.168 +            of the same base OS and hardware architecture.
   1.169 +            These usually represent what is often called the
   1.170 +            least common denominator platforms.
   1.171 +            It is understood that most developers will NOT be using these 
   1.172 +            specific platforms, and in fact creating these specific platforms
   1.173 +            may be difficult due to the age of some of this software.
   1.174 +            <p>
   1.175 +            The minimum OS and C/C++ compiler versions needed for building the
   1.176 +            OpenJDK:
   1.177 +            <p>
   1.178 +            <table border="1">
   1.179 +                <thead>
   1.180 +                    <tr>
   1.181 +                        <th>Base OS and Architecture</th>
   1.182 +                        <th>OS</th>
   1.183 +                        <th>Compiler</th>
   1.184 +                    </tr>
   1.185 +                </thead>
   1.186 +                <tbody>
   1.187 +                    <tr>
   1.188 +                        <td>Linux X86 (32bit)</td>
   1.189 +                        <td>Red Hat Enterprise Linux 4 </td>
   1.190 +                        <td>gcc 4 </td>
   1.191 +                    </tr>
   1.192 +                    <tr>
   1.193 +                        <td>Linux X64 (64bit)</td>
   1.194 +                        <td>Red Hat Enterprise Linux 4 </td>
   1.195 +                        <td>gcc 4 </td>
   1.196 +                    </tr>
   1.197 +                    <tr>
   1.198 +                        <td>Solaris SPARC (32bit)</td>
   1.199 +                        <td>Solaris 10 + patches 
   1.200 +                            <br>
   1.201 +                            See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
   1.202 +                            SunSolve</a> for patch downloads.
   1.203 +                        </td>
   1.204 +                        <td>Sun Studio 11 </td>
   1.205 +                    </tr>
   1.206 +                    <tr>
   1.207 +                        <td>Solaris SPARCV9 (64bit)</td>
   1.208 +                        <td>Solaris 10 + patches
   1.209 +                            <br>
   1.210 +                            See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
   1.211 +                            SunSolve</a> for patch downloads.
   1.212 +                        </td>
   1.213 +                        <td>Sun Studio 11</td>
   1.214 +                    </tr>
   1.215 +                    <tr>
   1.216 +                        <td>Solaris X86 (32bit)</td>
   1.217 +                        <td>Solaris 10 + patches
   1.218 +                            <br>
   1.219 +                            See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
   1.220 +                            SunSolve</a> for patch downloads.
   1.221 +                        </td>
   1.222 +                        <td>Sun Studio 11</td>
   1.223 +                    </tr>
   1.224 +                    <tr>
   1.225 +                        <td>Solaris X64 (64bit)</td>
   1.226 +                        <td>Solaris 10 + patches
   1.227 +                            <br>
   1.228 +                            See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
   1.229 +                            SunSolve</a> for patch downloads.
   1.230 +                        </td>
   1.231 +                        <td>Sun Studio 11</td>
   1.232 +                    </tr>
   1.233 +                    <tr>
   1.234 +                        <td>Windows X86 (32bit)</td>
   1.235 +                        <td>Windows XP</td>
   1.236 +                        <td>Microsoft Visual Studio .NET 2003 Professional</td>
   1.237 +                    </tr>
   1.238 +                    <tr>
   1.239 +                        <td>Windows X64 (64bit)</td>
   1.240 +                        <td>Windows Server 2003 - Enterprise x64 Edition</td>
   1.241 +                        <td>Microsoft Platform SDK - April 2005</td>
   1.242 +                    </tr>
   1.243 +                </tbody>
   1.244 +            </table>
   1.245 +        </blockquote>
   1.246 +        <!-- ------------------------------------------------------ -->
   1.247 +        <hr>
   1.248 +        <h2><a name="SDBE">Specific Developer Build Environments</a></h2>
   1.249 +        <blockquote>
   1.250 +            We won't be listing all the possible environments, but
   1.251 +            we will try to provide what information we have available to us.
   1.252 +        </blockquote>
   1.253 +        <!-- ------------------------------------------------------ -->
   1.254 +        <h3><a name="fedora">Fedora</a></h3>
   1.255 +        <blockquote>
   1.256 +            TBD
   1.257 +        </blockquote>
   1.258 +        <!-- ------------------------------------------------------ -->
   1.259 +        <h3><a name="debian">Debian</a></h3>
   1.260 +        <blockquote>
   1.261 +            TBD
   1.262 +        </blockquote>
   1.263 +        <!-- ------------------------------------------------------ -->
   1.264 +        <h3><a name="ubuntu">Ubuntu</a></h3>
   1.265 +        <blockquote>
   1.266 +            In addition to needing the Bootstrap JDK and the Binary Plugs, 
   1.267 +            when building on Ubuntu you will need to
   1.268 +            make sure certain packages are installed.
   1.269 +            In particular, certain X11 packages, make, m4, gawk, gcc 4, 
   1.270 +            binutils, cups, freetype
   1.271 +            and alsa.
   1.272 +            <!-- ------------------------------------------------------ -->
   1.273 +            <h4>Ubuntu 6.06</h4>
   1.274 +            <p>
   1.275 +            The following list of packages for Ubuntu 6.06 is a working set that
   1.276 +            does appear to work. 
   1.277 +            <p>
   1.278 +            <b>Note that it's quite possible that some of these
   1.279 +                packages are not required, so anyone discovering that some of the
   1.280 +                packages listed below are NOT required,
   1.281 +                please let the
   1.282 +                OpenJDK
   1.283 +            team know.</b>
   1.284 +            <p>
   1.285 +            All the packages below can be installed with the
   1.286 +            Synaptic Package manager provided with the base Ubuntu 6.06 release.
   1.287 +            <blockquote>
   1.288 +                <ul>
   1.289 +                    <li>binutils (2.16.1cvs20060117-1ubuntu2.1)</li>
   1.290 +                    <li>cpp (4:4.0.3-1)</li>
   1.291 +                    <li>cpp-4.0 (4.0.3-1ubuntu5)</li>
   1.292 +                    <li>libfreetype6-dev</li>
   1.293 +                    <li>g++ (4:4.0.3-1)</li>
   1.294 +                    <li>g++-4.0 (4.0.3-1ubuntu5)</li>
   1.295 +                    <li>gawk (1:3.1.5-2build1)</li>
   1.296 +                    <li>gcc (4:4.0.3-1)</li>
   1.297 +                    <li>gcc-4.0 (4.0.3-1ubuntu5)</li>
   1.298 +                    <li>libasound2-dev (1.0.10-2ubuntu4)</li>
   1.299 +                    <li>libc6 (2.3.6-0ubuntu20) to 2.3.6-0ubuntu20.4</li>
   1.300 +                    <li>libc6-dev (2.3.6-0ubuntu20.4)</li>
   1.301 +                    <li>libc6-i686 (2.3.6-0ubuntu20) to 2.3.6-0ubuntu20.4</li>
   1.302 +                    <li>libcupsys2-dev (1.2.2-0ubuntu0.6.06)</li>
   1.303 +                    <li>libgcrypt11-dev (1.2.2-1)</li>
   1.304 +                    <li>libgnutls-dev (1.2.9-2ubuntu1.1)</li>
   1.305 +                    <li>libgnutls12 (1.2.9-2ubuntu1) to 1.2.9-2ubuntu1.1</li>
   1.306 +                    <li>libgpg-error-dev (1.1-4)</li>
   1.307 +                    <li>libice-dev (2:1.0.0-0ubuntu2)</li>
   1.308 +                    <li>liblockfile1 (1.06.1)</li>
   1.309 +                    <li>libopencdk8-dev (0.5.7-2)</li>
   1.310 +                    <li>libpopt-dev (1.7-5)</li>
   1.311 +                    <li>libsm-dev (2:1.0.0-0ubuntu2)</li>
   1.312 +                    <li>libstdc++6-4.0-dev (4.0.3-1ubuntu5)</li>
   1.313 +                    <li>libtasn1-2-dev (0.2.17-1ubuntu1)</li>
   1.314 +                    <li>libx11-dev (2:1.0.0-0ubuntu9)</li>
   1.315 +                    <li>libxau-dev (1:1.0.0-0ubuntu4)</li>
   1.316 +                    <li>libxaw-headers (2:1.0.1-0ubuntu3)</li>
   1.317 +                    <li>libxaw7-dev (2:1.0.1-0ubuntu3)</li>
   1.318 +                    <li>libxdmcp-dev (1:1.0.0-0ubuntu2)</li>
   1.319 +                    <li>libxext-dev (2:1.0.0-0ubuntu4)</li>
   1.320 +                    <li>libxi-dev (2:1.0.0-0ubuntu3) </li>
   1.321 +                    <li>libxmu-dev (2:1.0.0-0ubuntu3)</li>
   1.322 +                    <li>libxmu-headers (2:1.0.0-0ubuntu3)</li>
   1.323 +                    <li>libxmuu-dev (2:1.0.0-0ubuntu3)</li>
   1.324 +                    <li>libxp-dev (6.8.2-11ubuntu2)</li>
   1.325 +                    <li>libxpm-dev (1:3.5.4.2-0ubuntu3)</li>
   1.326 +                    <li>libxrandr-dev (1:1.1.0.2-0ubuntu4)</li>
   1.327 +                    <li>libxt-dev (1:1.0.0-0ubuntu3)</li>
   1.328 +                    <li>libxtrap-dev (2:1.0.0-0ubuntu2)</li>
   1.329 +                    <li>libxtst-dev (2:1.0.1-0ubuntu2)</li>
   1.330 +                    <li>libxv-dev (2:1.0.1-0ubuntu3)</li>
   1.331 +                    <li>linux-kernel-headers (2.6.11.2-0ubuntu18)</li>
   1.332 +                    <li>m4 (1.4.4-1)</li>
   1.333 +                    <li>make (3.80+3.81.b4-1)</li>
   1.334 +                    <li>ssl-cert (1.0.13)</li>
   1.335 +                    <li>x-dev (7.0.4-0ubuntu2)</li>
   1.336 +                    <li>x11proto-core-dev (7.0.4-0ubuntu2)</li>
   1.337 +                    <li>x11proto-input-dev (1.3.2-0ubuntu2)</li>
   1.338 +                    <li>x11proto-kb-dev (1.0.2-0ubuntu2)</li>
   1.339 +                    <li>x11proto-randr-dev (1.1.2-0ubuntu2)</li>
   1.340 +                    <li>x11proto-record-dev (1.13.2-0ubuntu2)</li>
   1.341 +                    <li>x11proto-trap-dev (3.4.3-0ubuntu2)</li>
   1.342 +                    <li>x11proto-video-dev (2.2.2-0ubuntu2)</li>
   1.343 +                    <li>x11proto-xext-dev (7.0.2-0ubuntu2)</li>
   1.344 +                    <li>xlibs-dev (7.0.0-0ubuntu45)</li>
   1.345 +                    <li>zlib1g-dev (1:1.2.3-6ubuntu4)</li>
   1.346                  </ul>
   1.347 -            </ul>
   1.348 -        </li>
   1.349 -        <li><a href="#creating">Creating the Build</a> </li>
   1.350 -        <li><a href="#testing">Testing the Build</a> </li>
   1.351 -        <li><a href="#variables">Environment/Make Variables</a></li>
   1.352 -        <li><a href="#troubleshooting">Troubleshooting</a></li>
   1.353 -    </ul>
   1.354 -</blockquote>
   1.355 -
   1.356 -<!-- ------------------------------------------------------ -->
   1.357 -<hr noshade="noshade" size="3">
   1.358 -
   1.359 -<h2><a name="MBE">Minimum Build Environments</a></h2>
   1.360 -
   1.361 -<blockquote>
   1.362 -    <p>
   1.363 -    This file often describes specific requirements for what we call the
   1.364 -    "minimum build environments" (MBE) for the JDK.
   1.365 -    Building with the MBE will generate the most compatible
   1.366 -    bits that install on, and run correctly on, the most variations
   1.367 -    of the same base OS and hardware architecture.
   1.368 -    These usually represent what is often called the
   1.369 -    least common denominator platforms.
   1.370 -    It is understood that most developers will NOT be using these 
   1.371 -    specific platforms, and in fact creating these specific platforms
   1.372 -    may be difficult due to the age of some of this software.
   1.373 -    <p>
   1.374 -    
   1.375 -    <p>
   1.376 -    The minimum OS and C/C++ compiler versions needed for building the
   1.377 -    OpenJDK:
   1.378 -    <p>
   1.379 -    <center>
   1.380 -        <table border="1">
   1.381 -            <thead>
   1.382 -                <tr>
   1.383 -                    <th>Base OS and Architecture</th>
   1.384 -                    <th>OS</th>
   1.385 -                    <th>Compiler</th>
   1.386 -                </tr>
   1.387 -            </thead>
   1.388 -            <tbody>
   1.389 -                <tr>
   1.390 -                    <td>Linux X86 (32bit)</td>
   1.391 -                    <td>Red Hat Enterprise Linux 4 </td>
   1.392 -                    <td>gcc 4 </td>
   1.393 -                </tr>
   1.394 -                <tr>
   1.395 -                    <td>Linux X64 (64bit)</td>
   1.396 -                    <td>Red Hat Enterprise Linux 4 </td>
   1.397 -                    <td>gcc 4 </td>
   1.398 -                </tr>
   1.399 -                <tr>
   1.400 -                    <td>Solaris SPARC (32bit)</td>
   1.401 -                    <td>Solaris 10 + patches 
   1.402 -                        <br>
   1.403 -                        See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE">SunSolve</a> for patch downloads.
   1.404 -                    </td>
   1.405 -                    <td>Sun Studio 11 </td>
   1.406 -                </tr>
   1.407 -                <tr>
   1.408 -                    <td>Solaris SPARCV9 (64bit)</td>
   1.409 -                    <td>Solaris 10 + patches
   1.410 -                        <br>
   1.411 -                        See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE">SunSolve</a> for patch downloads.
   1.412 -                    </td>
   1.413 -                    <td>Sun Studio 11</td>
   1.414 -                </tr>
   1.415 -                <tr>
   1.416 -                    <td>Solaris X86 (32bit)</td>
   1.417 -                    <td>Solaris 10 + patches
   1.418 -                        <br>
   1.419 -                        See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE">SunSolve</a> for patch downloads.
   1.420 -                    </td>
   1.421 -                    <td>Sun Studio 11</td>
   1.422 -                </tr>
   1.423 -                <tr>
   1.424 -                    <td>Solaris X64 (64bit)</td>
   1.425 -                    <td>Solaris 10 + patches
   1.426 -                        <br>
   1.427 -                        See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE">SunSolve</a> for patch downloads.
   1.428 -                    </td>
   1.429 -                    <td>Sun Studio 11</td>
   1.430 -                </tr>
   1.431 -                <tr>
   1.432 -                    <td>Windows X86 (32bit)</td>
   1.433 -                    <td>Windows XP</td>
   1.434 -                    <td>Microsoft Visual Studio .NET 2003 Professional</td>
   1.435 -                </tr>
   1.436 -                <tr>
   1.437 -                    <td>Windows X64 (64bit)</td>
   1.438 -                    <td>Windows Server 2003 - Enterprise x64 Edition</td>
   1.439 -                    <td>Microsoft Platform SDK - April 2005</td>
   1.440 -                </tr>
   1.441 -            </tbody>
   1.442 -        </table>
   1.443 -    </center>
   1.444 -</blockquote>
   1.445 -
   1.446 -<!-- ------------------------------------------------------ -->
   1.447 -<hr noshade="noshade" size="3">
   1.448 -
   1.449 -<h2><a name="SDBE">Specific Developer Build Environments</a></h2>
   1.450 -
   1.451 -<blockquote>
   1.452 -    <p>
   1.453 -    We won't be listing all the possible environments, but
   1.454 -    we will try to provide what information we have available to us.
   1.455 -</blockquote>
   1.456 -
   1.457 -<h3><a name="fedora">Fedora</a></h3>
   1.458 -
   1.459 -<blockquote>
   1.460 -    TBD
   1.461 -</blockquote>
   1.462 -
   1.463 -<h3><a name="debian">Debian</a></h3>
   1.464 -
   1.465 -<blockquote>
   1.466 -    TBD
   1.467 -</blockquote>
   1.468 -
   1.469 -<h3><a name="ubuntu">Ubuntu</a></h3>
   1.470 -
   1.471 -<blockquote>
   1.472 -    <p>
   1.473 -    In addition to needing the Bootstrap JDK and the Binary Plugs, 
   1.474 -    when building on Ubuntu you will need to
   1.475 -    make sure certain packages are installed.
   1.476 -    In particular, certain X11 packages, make, m4, gawk, gcc 4, 
   1.477 -    binutils, cups, freetype
   1.478 -    and alsa.
   1.479 -    
   1.480 -    <h4>Ubuntu 6.06</h4>
   1.481 -    
   1.482 -    <p>
   1.483 -    The following list of packages for Ubuntu 6.06 is a working set that
   1.484 -    does appear to work. 
   1.485 -    
   1.486 -    <p>
   1.487 -    <b>Note that it's quite possible that some of these
   1.488 -        packages are not required, so anyone discovering that some of the
   1.489 -        packages listed below are NOT required,
   1.490 -        please let the
   1.491 -        OpenJDK
   1.492 -    team know.</b>
   1.493 -    <p>
   1.494 -    All the packages below can be installed with the
   1.495 -    Synaptic Package manager provided with the base Ubuntu 6.06 release.
   1.496 -    
   1.497 -    <blockquote>
   1.498 -        <ul>
   1.499 -            <li>binutils (2.16.1cvs20060117-1ubuntu2.1)</li>
   1.500 -            <li>cpp (4:4.0.3-1)</li>
   1.501 -            <li>cpp-4.0 (4.0.3-1ubuntu5)</li>
   1.502 -            <li>libfreetype6-dev</li>
   1.503 -            <li>g++ (4:4.0.3-1)</li>
   1.504 -            <li>g++-4.0 (4.0.3-1ubuntu5)</li>
   1.505 -            <li>gawk (1:3.1.5-2build1)</li>
   1.506 -            <li>gcc (4:4.0.3-1)</li>
   1.507 -            <li>gcc-4.0 (4.0.3-1ubuntu5)</li>
   1.508 -            <li>libasound2-dev (1.0.10-2ubuntu4)</li>
   1.509 -            <li>libc6 (2.3.6-0ubuntu20) to 2.3.6-0ubuntu20.4</li>
   1.510 -            <li>libc6-dev (2.3.6-0ubuntu20.4)</li>
   1.511 -            <li>libc6-i686 (2.3.6-0ubuntu20) to 2.3.6-0ubuntu20.4</li>
   1.512 -            <li>libcupsys2-dev (1.2.2-0ubuntu0.6.06)</li>
   1.513 -            <li>libgcrypt11-dev (1.2.2-1)</li>
   1.514 -            <li>libgnutls-dev (1.2.9-2ubuntu1.1)</li>
   1.515 -            <li>libgnutls12 (1.2.9-2ubuntu1) to 1.2.9-2ubuntu1.1</li>
   1.516 -            <li>libgpg-error-dev (1.1-4)</li>
   1.517 -            <li>libice-dev (2:1.0.0-0ubuntu2)</li>
   1.518 -            <li>liblockfile1 (1.06.1)</li>
   1.519 -            <li>libopencdk8-dev (0.5.7-2)</li>
   1.520 -            <li>libpopt-dev (1.7-5)</li>
   1.521 -            <li>libsm-dev (2:1.0.0-0ubuntu2)</li>
   1.522 -            <li>libstdc++6-4.0-dev (4.0.3-1ubuntu5)</li>
   1.523 -            <li>libtasn1-2-dev (0.2.17-1ubuntu1)</li>
   1.524 -            <li>libx11-dev (2:1.0.0-0ubuntu9)</li>
   1.525 -            <li>libxau-dev (1:1.0.0-0ubuntu4)</li>
   1.526 -            <li>libxaw-headers (2:1.0.1-0ubuntu3)</li>
   1.527 -            <li>libxaw7-dev (2:1.0.1-0ubuntu3)</li>
   1.528 -            <li>libxdmcp-dev (1:1.0.0-0ubuntu2)</li>
   1.529 -            <li>libxext-dev (2:1.0.0-0ubuntu4)</li>
   1.530 -            <li>libxi-dev (2:1.0.0-0ubuntu3) </li>
   1.531 -            <li>libxmu-dev (2:1.0.0-0ubuntu3)</li>
   1.532 -            <li>libxmu-headers (2:1.0.0-0ubuntu3)</li>
   1.533 -            <li>libxmuu-dev (2:1.0.0-0ubuntu3)</li>
   1.534 -            <li>libxp-dev (6.8.2-11ubuntu2)</li>
   1.535 -            <li>libxpm-dev (1:3.5.4.2-0ubuntu3)</li>
   1.536 -            <li>libxrandr-dev (1:1.1.0.2-0ubuntu4)</li>
   1.537 -            <li>libxt-dev (1:1.0.0-0ubuntu3)</li>
   1.538 -            <li>libxtrap-dev (2:1.0.0-0ubuntu2)</li>
   1.539 -            <li>libxtst-dev (2:1.0.1-0ubuntu2)</li>
   1.540 -            <li>libxv-dev (2:1.0.1-0ubuntu3)</li>
   1.541 -            <li>linux-kernel-headers (2.6.11.2-0ubuntu18)</li>
   1.542 -            <li>m4 (1.4.4-1)</li>
   1.543 -            <li>make (3.80+3.81.b4-1)</li>
   1.544 -            <li>ssl-cert (1.0.13)</li>
   1.545 -            <li>x-dev (7.0.4-0ubuntu2)</li>
   1.546 -            <li>x11proto-core-dev (7.0.4-0ubuntu2)</li>
   1.547 -            <li>x11proto-input-dev (1.3.2-0ubuntu2)</li>
   1.548 -            <li>x11proto-kb-dev (1.0.2-0ubuntu2)</li>
   1.549 -            <li>x11proto-randr-dev (1.1.2-0ubuntu2)</li>
   1.550 -            <li>x11proto-record-dev (1.13.2-0ubuntu2)</li>
   1.551 -            <li>x11proto-trap-dev (3.4.3-0ubuntu2)</li>
   1.552 -            <li>x11proto-video-dev (2.2.2-0ubuntu2)</li>
   1.553 -            <li>x11proto-xext-dev (7.0.2-0ubuntu2)</li>
   1.554 -            <li>xlibs-dev (7.0.0-0ubuntu45)</li>
   1.555 -            <li>zlib1g-dev (1:1.2.3-6ubuntu4)</li>
   1.556 -        </ul>
   1.557 -    </blockquote>
   1.558 -    
   1.559 -    <h4>Ubuntu 7.04</h4>
   1.560 -    
   1.561 -    <p>
   1.562 -    Using the Synaptic Package Manager, download the following
   1.563 -    packages (double indented packages are automatically aquired
   1.564 -    due to package dependencies):
   1.565 -    
   1.566 -    <blockquote>
   1.567 -        <ul>
   1.568 -            <li>build-essential</li>
   1.569 -            <ul>
   1.570 -                <li>dpkg-dev</li>
   1.571 -                <li>g++</li>
   1.572 -                <li>g++-4.1</li>
   1.573 -                <li>libc6-dev</li>
   1.574 -                <li>libstdc++6.4.1-dev</li>
   1.575 -                <li>linux-libc-dev</li>
   1.576 -            </ul>
   1.577 -            <li>gawk</li>
   1.578 -            <li>m4</li>
   1.579 -            <li>libasound2-dev</li>
   1.580 -            <li>libcupsys2-dev</li>
   1.581 -            <ul>
   1.582 -                <li>libgcrypt11-dev</li>
   1.583 -                <li>lgnutls-dev</li>
   1.584 -                <li>libgpg-error-dev</li>
   1.585 -                <li>liblzo-dev</li>
   1.586 -                <li>libopencdk8-dev</li>
   1.587 -                <li>libpopt-dev</li>
   1.588 -                <li>libtasn1-3-dev</li>
   1.589 -                <li>zlib1g-dev</li>
   1.590 -            </ul>
   1.591 -            <li>sun-java6-jdk</li>
   1.592 -            <ul>
   1.593 -                <li>java-common</li>
   1.594 -                <li>libltdl3</li>
   1.595 -                <li>odbcinst1debian1</li>
   1.596 -                <li>sun-java6-bin</li>
   1.597 -                <li>sun-java6-jre</li>
   1.598 -                <li>unixodbc</li>
   1.599 -            </ul>
   1.600 -            <li>xlibs-dev</li>
   1.601 -            <ul>
   1.602 -                <li>(many)</li>
   1.603 -            </ul>
   1.604 -            <li>x11proto-print-dev</li>
   1.605 -            <li>libxaw7-dev</li>
   1.606 -            <ul>
   1.607 -                <li>libxaw-headers</li>
   1.608 -            </ul>
   1.609 -            <li>libxp-dev</li>
   1.610 -            <li>libfreetype6-dev</li>
   1.611 -        </ul>
   1.612 -    </blockquote>
   1.613 -</blockquote>
   1.614 -
   1.615 -<!-- ------------------------------------------------------ -->
   1.616 -<hr noshade="noshade" size="3">
   1.617 -
   1.618 -<h2><a name="directories">Source Directory Structure</a></h2>
   1.619 -
   1.620 -<blockquote>
   1.621 -    <p>
   1.622 -    The source code for the OpenJDK is delivered in a set of
   1.623 -    directories:
   1.624 -    <tt>hotspot</tt>, 
   1.625 -    <tt>langtools</tt>, 
   1.626 -    <tt>corba</tt>, 
   1.627 -    <tt>jaxws</tt>, 
   1.628 -    <tt>jaxp</tt>, 
   1.629 -    and
   1.630 -    <tt>jdk</tt>.
   1.631 -    The <tt>hotspot</tt> directory contains the source code and make
   1.632 -    files for building the OpenJDK Hotspot Virtual Machine. 
   1.633 -    The <tt>langtools</tt> directory contains the source code and make
   1.634 -    files for building the OpenJDK javac and language tools.
   1.635 -    The <tt>corba</tt> directory contains the source code and make
   1.636 -    files for building the OpenJDK Corba files.
   1.637 -    The <tt>jaxws</tt> directory contains the source code and make
   1.638 -    files for building the OpenJDK JAXWS files.
   1.639 -    The <tt>jaxp</tt> directory contains the source code and make
   1.640 -    files for building the OpenJDK JAXP files.
   1.641 -    The <tt>jdk</tt> directory contains the source code and make files for
   1.642 -    building the OpenJDK runtime libraries and misc files.
   1.643 -    The top level <tt>Makefile</tt>
   1.644 -    is used to build the entire OpenJDK.
   1.645 -</blockquote>
   1.646 -
   1.647 -<!-- ------------------------------------------------------ -->
   1.648 -<hr noshade="noshade" size="3">
   1.649 -
   1.650 -<h2><a name="building">Build Information</a></h2>
   1.651 -
   1.652 -<blockquote>
   1.653 -    <p>
   1.654 -    Building the 
   1.655 -    OpenJDK
   1.656 -    is done with a <tt><i>gmake</i></tt>
   1.657 -    command line and various
   1.658 -    environment or make variable settings that direct the make rules
   1.659 -    to where various components have been installed.
   1.660 -    Where possible the makefiles will attempt to located the various
   1.661 -    components in the default locations or any component specific 
   1.662 -    variable settings.
   1.663 -    When the normal defaults fail or components cannot be found,
   1.664 -    the various
   1.665 -    <tt>ALT_*</tt> variables (alternates)
   1.666 -    can be used to help the makefiles locate components.
   1.667 -    <p>
   1.668 -    Refer to the bash/sh/ksh setup file
   1.669 -    <tt>jdk/make/jdk_generic_profile.sh</tt>
   1.670 -    if you need help in setting up your environment variables.
   1.671 -    A build could be as simple as:
   1.672 -    <blockquote>
   1.673 -        <pre><tt>
   1.674 +            </blockquote>
   1.675 +            <!-- ------------------------------------------------------ -->
   1.676 +            <h4>Ubuntu 7.04</h4>
   1.677 +            <p>
   1.678 +            Using the Synaptic Package Manager, download the following
   1.679 +            packages (double indented packages are automatically aquired
   1.680 +            due to package dependencies):
   1.681 +            <blockquote>
   1.682 +                <ul>
   1.683 +                    <li>build-essential</li>
   1.684 +                    <ul>
   1.685 +                        <li>dpkg-dev</li>
   1.686 +                        <li>g++</li>
   1.687 +                        <li>g++-4.1</li>
   1.688 +                        <li>libc6-dev</li>
   1.689 +                        <li>libstdc++6.4.1-dev</li>
   1.690 +                        <li>linux-libc-dev</li>
   1.691 +                    </ul>
   1.692 +                    <li>gawk</li>
   1.693 +                    <li>m4</li>
   1.694 +                    <li>libasound2-dev</li>
   1.695 +                    <li>libcupsys2-dev</li>
   1.696 +                    <ul>
   1.697 +                        <li>libgcrypt11-dev</li>
   1.698 +                        <li>lgnutls-dev</li>
   1.699 +                        <li>libgpg-error-dev</li>
   1.700 +                        <li>liblzo-dev</li>
   1.701 +                        <li>libopencdk8-dev</li>
   1.702 +                        <li>libpopt-dev</li>
   1.703 +                        <li>libtasn1-3-dev</li>
   1.704 +                        <li>zlib1g-dev</li>
   1.705 +                    </ul>
   1.706 +                    <li>sun-java6-jdk</li>
   1.707 +                    <ul>
   1.708 +                        <li>java-common</li>
   1.709 +                        <li>libltdl3</li>
   1.710 +                        <li>odbcinst1debian1</li>
   1.711 +                        <li>sun-java6-bin</li>
   1.712 +                        <li>sun-java6-jre</li>
   1.713 +                        <li>unixodbc</li>
   1.714 +                    </ul>
   1.715 +                    <li>xlibs-dev</li>
   1.716 +                    <ul>
   1.717 +                        <li>(many)</li>
   1.718 +                    </ul>
   1.719 +                    <li>x11proto-print-dev</li>
   1.720 +                    <li>libxaw7-dev</li>
   1.721 +                    <ul>
   1.722 +                        <li>libxaw-headers</li>
   1.723 +                    </ul>
   1.724 +                    <li>libxp-dev</li>
   1.725 +                    <li>libfreetype6-dev</li>
   1.726 +                </ul>
   1.727 +            </blockquote>
   1.728 +        </blockquote>
   1.729 +        <!-- ------------------------------------------------------ -->
   1.730 +        <hr>
   1.731 +        <h2><a name="directories">Source Directory Structure</a></h2>
   1.732 +        <blockquote>
   1.733 +            <p>
   1.734 +            The source code for the OpenJDK is delivered in a set of
   1.735 +            directories:
   1.736 +            <tt>hotspot</tt>, 
   1.737 +            <tt>langtools</tt>, 
   1.738 +            <tt>corba</tt>, 
   1.739 +            <tt>jaxws</tt>, 
   1.740 +            <tt>jaxp</tt>, 
   1.741 +            and
   1.742 +            <tt>jdk</tt>.
   1.743 +            The <tt>hotspot</tt> directory contains the source code and make
   1.744 +            files for building the OpenJDK Hotspot Virtual Machine. 
   1.745 +            The <tt>langtools</tt> directory contains the source code and make
   1.746 +            files for building the OpenJDK javac and language tools.
   1.747 +            The <tt>corba</tt> directory contains the source code and make
   1.748 +            files for building the OpenJDK Corba files.
   1.749 +            The <tt>jaxws</tt> directory contains the source code and make
   1.750 +            files for building the OpenJDK JAXWS files.
   1.751 +            The <tt>jaxp</tt> directory contains the source code and make
   1.752 +            files for building the OpenJDK JAXP files.
   1.753 +            The <tt>jdk</tt> directory contains the source code and make files for
   1.754 +            building the OpenJDK runtime libraries and misc files.
   1.755 +            The top level <tt>Makefile</tt>
   1.756 +            is used to build the entire OpenJDK.
   1.757 +        </blockquote>
   1.758 +        <!-- ------------------------------------------------------ -->
   1.759 +        <hr>
   1.760 +        <h2><a name="building">Build Information</a></h2>
   1.761 +        <blockquote>
   1.762 +            Building the OpenJDK
   1.763 +            is done with a <tt><i>gmake</i></tt>
   1.764 +            command line and various
   1.765 +            environment or make variable settings that direct the make rules
   1.766 +            to where various components have been installed.
   1.767 +            Where possible the makefiles will attempt to located the various
   1.768 +            components in the default locations or any component specific 
   1.769 +            variable settings.
   1.770 +            When the normal defaults fail or components cannot be found,
   1.771 +            the various
   1.772 +            <tt>ALT_*</tt> variables (alternates)
   1.773 +            can be used to help the makefiles locate components.
   1.774 +            <p>
   1.775 +            Refer to the bash/sh/ksh setup file
   1.776 +            <tt>jdk/make/jdk_generic_profile.sh</tt>
   1.777 +            if you need help in setting up your environment variables.
   1.778 +            A build could be as simple as:
   1.779 +            <blockquote>
   1.780 +                <pre><tt>
   1.781                  bash
   1.782                  . jdk/make/jdk_generic_profile.sh
   1.783                  <i>gmake</i> sanity &amp;&amp; <i>gmake</i>
   1.784 -        </tt></pre>
   1.785 -    </blockquote>
   1.786 -    <p>
   1.787 -    Of course ksh or sh would work too.
   1.788 -    But some customization will probably be necessary.
   1.789 -    The <tt>sanity</tt> rule will make some basic checks on build
   1.790 -    dependencies and generate appropriate warning messages
   1.791 -    regarding missing, out of date, or newer than expected components
   1.792 -    found on your system.
   1.793 -</blockquote>
   1.794 -
   1.795 -<!-- ------------------------------------------------------ -->
   1.796 -<hr noshade="noshade" size="3">
   1.797 -
   1.798 -<h3><a name="gmake">GNU make (<tt><i>gmake</i></tt>)</a></h3>
   1.799 -
   1.800 -<blockquote>
   1.801 -    <p>
   1.802 -    The Makefiles in the 
   1.803 -    OpenJDK 
   1.804 -    are only valid when used with the 
   1.805 -    GNU version of the utility command <tt>make</tt>
   1.806 -    (<tt><i>gmake</i></tt>).
   1.807 -    A few notes about using GNU make:
   1.808 -    <ul>
   1.809 -        <li>
   1.810 -            In general, you need GNU make version 3.78.1 or newer.
   1.811 -        </li>
   1.812 -        <li>
   1.813 -            Place the location of the GNU make binary in the <tt>PATH</tt>. 
   1.814 -        </li>
   1.815 -        <li>
   1.816 -            <strong>Linux:</strong>
   1.817 -            The <tt>/usr/bin/make</tt> command should work fine for you.
   1.818 -        </li>
   1.819 -        <li>
   1.820 -            <strong>Solaris:</strong>
   1.821 -            Do NOT use <tt>/usr/bin/make</tt> on Solaris.
   1.822 -            If your Solaris system has the software
   1.823 -            from the Solaris Companion CD installed, 
   1.824 -            you should use <tt>gmake</tt>
   1.825 -            which will be located in either the <tt>/opt/sfw/bin</tt> or 
   1.826 -            <tt>/usr/sfw/bin</tt> directory.
   1.827 -        </li>
   1.828 -        <li>
   1.829 +                </tt></pre>
   1.830 +            </blockquote>
   1.831 +            <p>
   1.832 +            Of course ksh or sh would work too.
   1.833 +            But some customization will probably be necessary.
   1.834 +            The <tt>sanity</tt> rule will make some basic checks on build
   1.835 +            dependencies and generate appropriate warning messages
   1.836 +            regarding missing, out of date, or newer than expected components
   1.837 +            found on your system.
   1.838 +        </blockquote>
   1.839 +        <!-- ------------------------------------------------------ -->
   1.840 +        <hr>
   1.841 +        <h3><a name="gmake">GNU make (<tt><i>gmake</i></tt>)</a></h3>
   1.842 +        <blockquote>
   1.843 +            The Makefiles in the OpenJDK are only valid when used with the 
   1.844 +            GNU version of the utility command <tt>make</tt>
   1.845 +            (<tt><i>gmake</i></tt>).
   1.846 +            A few notes about using GNU make:
   1.847 +            <ul>
   1.848 +                <li>
   1.849 +                    In general, you need GNU make version 3.78.1 or newer.
   1.850 +                </li>
   1.851 +                <li>
   1.852 +                    Place the location of the GNU make binary in the <tt>PATH</tt>. 
   1.853 +                </li>
   1.854 +                <li>
   1.855 +                    <strong>Linux:</strong>
   1.856 +                    The <tt>/usr/bin/make</tt> command should work fine for you.
   1.857 +                </li>
   1.858 +                <li>
   1.859 +                    <strong>Solaris:</strong>
   1.860 +                    Do NOT use <tt>/usr/bin/make</tt> on Solaris.
   1.861 +                    If your Solaris system has the software
   1.862 +                    from the Solaris Companion CD installed, 
   1.863 +                    you should use <tt>gmake</tt>
   1.864 +                    which will be located in either the <tt>/opt/sfw/bin</tt> or 
   1.865 +                    <tt>/usr/sfw/bin</tt> directory.
   1.866 +                </li>
   1.867 +                <li>
   1.868 +                    <strong>Windows:</strong>
   1.869 +                    Make sure you start your build inside a bash/sh/ksh shell.
   1.870 +                    <br>
   1.871 +                    <b>WARNING:</b> Watch out for make version 3.81, it may
   1.872 +                    not work due to a lack of support for drive letter paths
   1.873 +                    like <tt>C:/</tt>. See
   1.874 +                    <a href="#gmake">section on gmake</a>.
   1.875 +                    Use a 3.80 version, or find a newer
   1.876 +                    version that has this problem fixed.
   1.877 +                    The older 3.80 version of make.exe can be downloaded with this
   1.878 +                    <a href="http://cygwin.paracoda.com/release/make/make-3.80-1.tar.bz2" target="_blank">
   1.879 +                    link</a>.
   1.880 +                    Also see the
   1.881 +                    <a href="http://developer.mozilla.org/en/docs/Windows_build_prerequisites_using_cygwin#make" target="_blank">
   1.882 +                    mozilla developer center</a>
   1.883 +                    on this topic.
   1.884 +                </li>
   1.885 +            </ul>
   1.886 +            <p>
   1.887 +            Information on GNU make, and access to ftp download sites, are
   1.888 +            available on the
   1.889 +            <a href="http://www.gnu.org/software/make/make.html" target="_blank">
   1.890 +                GNU make web site
   1.891 +            </a>.
   1.892 +            The latest source to GNU make is available at
   1.893 +            <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank">
   1.894 +            ftp.gnu.org/pub/gnu/make/</a>.
   1.895 +        </blockquote>
   1.896 +        <!-- ------------------------------------------------------ -->
   1.897 +        <hr>
   1.898 +        <h3><a name="linux">Basic Linux System Setup</a></h3>
   1.899 +        <blockquote>
   1.900 +            <strong>i586 only:</strong>
   1.901 +            The minimum recommended hardware for building the Linux version
   1.902 +            is a Pentium class processor or better, at least 256 MB of RAM, and
   1.903 +            approximately 1.5 GB of free disk space.
   1.904 +            <p> 
   1.905 +            <strong>X64 only:</strong>
   1.906 +            The minimum recommended hardware for building the Linux
   1.907 +            version is an AMD Opteron class processor, at least 512 MB of RAM, and
   1.908 +            approximately 4 GB of free disk space.
   1.909 +            <p> 
   1.910 +            The build will use the tools contained in 
   1.911 +            <tt>/bin</tt> and 
   1.912 +            <tt>/usr/bin</tt>
   1.913 +            of a standard installation of the Linux operating environment. 
   1.914 +            You should ensure that these directories are in your 
   1.915 +            <tt>PATH</tt>.
   1.916 +            <p>
   1.917 +            Note that some Linux systems have a habit of pre-populating
   1.918 +            your environment variables for you, for example <tt>JAVA_HOME</tt>
   1.919 +            might get pre-defined for you to refer to the JDK installed on
   1.920 +            your Linux system. 
   1.921 +            You will need to unset <tt>JAVA_HOME</tt>.
   1.922 +            It's a good idea to run <tt>env</tt> and verify the
   1.923 +            environment variables you are getting from the default system
   1.924 +            settings make sense for building the 
   1.925 +            OpenJDK.
   1.926 +        </blockquote>
   1.927 +        <!-- ------------------------------------------------------ -->
   1.928 +        <h4><a name="linux_checklist">Basic Linux Check List</a></h4>
   1.929 +        <blockquote>
   1.930 +            <ol>
   1.931 +                <li>
   1.932 +                    Install the
   1.933 +                    <a href="#bootjdk">Bootstrap JDK</a>, set
   1.934 +                    <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
   1.935 +                </li>
   1.936 +                <li>
   1.937 +                    Install the
   1.938 +                    <a href="#binaryplugs">Binary Plugs</a>, set
   1.939 +                    <tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>.
   1.940 +                </li>
   1.941 +                <li>
   1.942 +                    <a href="#importjdk">Optional Import JDK</a>, set
   1.943 +                    <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>.
   1.944 +                </li>
   1.945 +                <li>
   1.946 +                    Install or upgrade the <a href="#freetype">FreeType development
   1.947 +                    package</a>.
   1.948 +                </li>
   1.949 +            </ol>
   1.950 +        </blockquote>
   1.951 +        <!-- ------------------------------------------------------ -->
   1.952 +        <hr>
   1.953 +        <h3><a name="solaris">Basic Solaris System Setup</a></h3>
   1.954 +        <blockquote>
   1.955 +            The minimum recommended hardware for building the
   1.956 +            Solaris SPARC version is an UltraSPARC with 512 MB of RAM. 
   1.957 +            For building
   1.958 +            the Solaris x86 version, a Pentium class processor or better and at
   1.959 +            least 512 MB of RAM are recommended. 
   1.960 +            Approximately 1.4 GB of free disk
   1.961 +            space is needed for a 32-bit build.
   1.962 +            <p>
   1.963 +            If you are building the 64bit version, you should
   1.964 +            run the command "isainfo -v" to verify that you have a
   1.965 +            64-bit installation, it should say <tt>sparcv9</tt> or
   1.966 +            <tt>amd64</tt>.
   1.967 +            An additional 7 GB of free disk space is needed
   1.968 +            for a 64-bit build.
   1.969 +            <p> 
   1.970 +            The build uses the tools contained in <tt>/usr/ccs/bin</tt>
   1.971 +            and <tt>/usr/bin</tt> of a standard developer or full installation of
   1.972 +            the Solaris operating environment.
   1.973 +            <p> 
   1.974 +            Solaris patches specific to the JDK can be downloaded from the 
   1.975 +            <a href="http://sunsolve.sun.com/show.do?target=patches/JavaSE" target="_blank">
   1.976 +            SunSolve JDK Solaris patches download page</a>.
   1.977 +            You should ensure that the latest patch cluster for
   1.978 +            your version of the Solaris operating environment has also
   1.979 +            been installed.
   1.980 +        </blockquote>
   1.981 +        <!-- ------------------------------------------------------ -->
   1.982 +        <h4><a name="solaris_checklist">Basic Solaris Check List</a></h4>
   1.983 +        <blockquote>
   1.984 +            <ol>
   1.985 +                <li>
   1.986 +                    Install the
   1.987 +                    <a href="#bootjdk">Bootstrap JDK</a>, set
   1.988 +                    <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
   1.989 +                </li>
   1.990 +                <li>
   1.991 +                    Install the
   1.992 +                    <a href="#binaryplugs">Binary Plugs</a>, set
   1.993 +                    <tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>.
   1.994 +                </li>
   1.995 +                <li>
   1.996 +                    <a href="#importjdk">Optional Import JDK</a>, set
   1.997 +                    <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>.
   1.998 +                </li>
   1.999 +                <li>
  1.1000 +                    Install the
  1.1001 +                    <a href="#studio">Sun Studio Compilers</a>, set
  1.1002 +                    <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>.
  1.1003 +                </li>
  1.1004 +                <li>
  1.1005 +                    Install the
  1.1006 +                    <a href="#cups">CUPS Include files</a>, set
  1.1007 +                    <tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt>.
  1.1008 +                </li>
  1.1009 +            </ol>
  1.1010 +        </blockquote>
  1.1011 +        <!-- ------------------------------------------------------ -->
  1.1012 +        <hr>
  1.1013 +        <h3><a name="windows">Basic Windows System Setup</a></h3>
  1.1014 +        <blockquote> 
  1.1015 +            <strong>i586 only:</strong>
  1.1016 +            The minimum recommended hardware for building the 32bit or X86
  1.1017 +            Windows version is an Pentium class processor or better, at least
  1.1018 +            512 MB of RAM, and approximately 600 MB of free disk space.
  1.1019 +            <strong>
  1.1020 +                NOTE: The Windows 2000 build machines need to use the
  1.1021 +                file system NTFS. 
  1.1022 +                Build machines formatted to FAT32 will not work 
  1.1023 +                because FAT32 doesn't support case-sensitivity in file names.
  1.1024 +            </strong>
  1.1025 +            <p> 
  1.1026 +            <strong>X64 only:</strong>
  1.1027 +            The minimum recommended hardware for building
  1.1028 +            the Windows X64 version is an AMD Opteron class processor, at least 1
  1.1029 +            GB of RAM, and approximately 10 GB of free disk space.
  1.1030 +        </blockquote>
  1.1031 +        <!-- ------------------------------------------------------ -->
  1.1032 +        <h4><a name="paths">Windows Paths</a></h4>
  1.1033 +        <blockquote>
  1.1034              <strong>Windows:</strong>
  1.1035 -            Make sure you start your build inside a bash/sh/ksh shell.
  1.1036 -            <br>
  1.1037 -            <b>WARNING:</b> Watch out for make version 3.81, it may
  1.1038 -            not work due to a lack of support for drive letter paths
  1.1039 -            like <tt>C:/</tt>. Use a 3.80 version, or find a newer
  1.1040 -            version that has this problem fixed.
  1.1041 -        </li>
  1.1042 -    </ul>
  1.1043 -    <p>
  1.1044 -    Information on GNU make, and access to ftp download sites, are
  1.1045 -    available on the
  1.1046 -    <a href="http://www.gnu.org/software/make/make.html">
  1.1047 -        GNU make web site
  1.1048 -    </a>.
  1.1049 -    The latest source to GNU make is available at
  1.1050 -    <a href="http://ftp.gnu.org/pub/gnu/make/">ftp.gnu.org/pub/gnu/make/</a>.
  1.1051 -</blockquote>
  1.1052 -
  1.1053 -<!-- ------------------------------------------------------ -->
  1.1054 -<hr noshade="noshade" size="3">
  1.1055 -
  1.1056 -<h3><a name="linux">Basic Linux System Setup</a></h3>
  1.1057 -
  1.1058 -<blockquote>
  1.1059 -    <p>
  1.1060 -    <strong>i586 only:</strong>
  1.1061 -    The minimum recommended hardware for building the Linux version
  1.1062 -    is a Pentium class processor or better, at least 256 MB of RAM, and
  1.1063 -    approximately 1.5 GB of free disk space.
  1.1064 -    <p> 
  1.1065 -    <strong>X64 only:</strong>
  1.1066 -    The minimum recommended hardware for building the Linux
  1.1067 -    version is an AMD Opteron class processor, at least 512 MB of RAM, and
  1.1068 -    approximately 4 GB of free disk space.
  1.1069 -    <p> 
  1.1070 -    The build will use the tools contained in 
  1.1071 -    <tt>/bin</tt> and 
  1.1072 -    <tt>/usr/bin</tt>
  1.1073 -    of a standard installation of the Linux operating environment. 
  1.1074 -    You should ensure that these directories are in your 
  1.1075 -    <tt>PATH</tt>.
  1.1076 -    <p>
  1.1077 -    Note that some Linux systems have a habit of pre-populating
  1.1078 -    your environment variables for you, for example <tt>JAVA_HOME</tt>
  1.1079 -    might get pre-defined for you to refer to the JDK installed on
  1.1080 -    your Linux system. 
  1.1081 -    You will need to unset <tt>JAVA_HOME</tt>.
  1.1082 -    It's a good idea to run <tt>env</tt> and verify the
  1.1083 -    environment variables you are getting from the default system
  1.1084 -    settings make sense for building the 
  1.1085 -    OpenJDK.
  1.1086 -</blockquote>
  1.1087 -
  1.1088 -<!-- ------------------------------------------------------ -->
  1.1089 -
  1.1090 -<h4><a name="linux_checklist">Basic Linux Check List</a></h4>
  1.1091 -
  1.1092 -<blockquote>
  1.1093 -    <ol>
  1.1094 -        <li>
  1.1095 -            Install the
  1.1096 -            <a href="#bootjdk">Bootstrap JDK</a>, set
  1.1097 -            <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
  1.1098 -        </li>
  1.1099 -        <li>
  1.1100 -            Install the
  1.1101 -            <a href="#binaryplugs">Binary Plugs</a>, set
  1.1102 -            <tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>.
  1.1103 -        </li>
  1.1104 -        <li>
  1.1105 -            Install or upgrade the <a href="#freetype">FreeType development
  1.1106 -            package</a>.
  1.1107 -        </li>
  1.1108 -    </ol>
  1.1109 -</blockquote>
  1.1110 -
  1.1111 -<!-- ------------------------------------------------------ -->
  1.1112 -<hr noshade="noshade" size="3">
  1.1113 -
  1.1114 -<h3><a name="solaris">Basic Solaris System Setup</a></h3>
  1.1115 -
  1.1116 -<blockquote>
  1.1117 -    <p>
  1.1118 -    The minimum recommended hardware for building the
  1.1119 -    Solaris SPARC version is an UltraSPARC with 512 MB of RAM. 
  1.1120 -    For building
  1.1121 -    the Solaris x86 version, a Pentium class processor or better and at
  1.1122 -    least 128 MB of RAM are recommended. 
  1.1123 -    Approximately 1.4 GB of free disk
  1.1124 -    space is needed for a 32-bit build.
  1.1125 -    <p>
  1.1126 -    If you are building the 64bit version, you should
  1.1127 -    run the command "isainfo -v" to verify that you have a
  1.1128 -    64-bit installation. 
  1.1129 -    An additional 7 GB of free disk space is needed
  1.1130 -    for a 64-bit build.
  1.1131 -    <p> 
  1.1132 -    The build uses the tools contained in <tt>/usr/ccs/bin</tt>
  1.1133 -    and <tt>/usr/bin</tt> of a standard developer or full installation of
  1.1134 -    the Solaris operating environment.
  1.1135 -</blockquote>
  1.1136 -
  1.1137 -<!-- ------------------------------------------------------ -->
  1.1138 -
  1.1139 -<h4><a name="solaris_checklist">Basic Solaris Check List</a></h4>
  1.1140 -
  1.1141 -<blockquote>
  1.1142 -    <ol>
  1.1143 -        <li>
  1.1144 -            Install the
  1.1145 -            <a href="#bootjdk">Bootstrap JDK</a>, set
  1.1146 -            <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
  1.1147 -        </li>
  1.1148 -        <li>
  1.1149 -            Install the
  1.1150 -            <a href="#binaryplugs">Binary Plugs</a>, set
  1.1151 -            <tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>.
  1.1152 -        </li>
  1.1153 -        <li>
  1.1154 -            Install the
  1.1155 -            <a href="#studio">Sun Studio Compilers</a>, set
  1.1156 -            <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>.
  1.1157 -        </li>
  1.1158 -        <li>
  1.1159 -            Install the
  1.1160 -            <a href="#cups">CUPS Include files</a>, set
  1.1161 -            <tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt>.
  1.1162 -        </li>
  1.1163 -    </ol>
  1.1164 -</blockquote>
  1.1165 -
  1.1166 -<!-- ------------------------------------------------------ -->
  1.1167 -<hr noshade="noshade" size="3">
  1.1168 -
  1.1169 -<h3><a name="windows">Basic Windows System Setup</a></h3>
  1.1170 -
  1.1171 -<blockquote> 
  1.1172 -    <p>
  1.1173 -    <strong>i586 only:</strong>
  1.1174 -    The minimum recommended hardware for building the 32bit or X86
  1.1175 -    Windows version is an Pentium class processor or better, at least
  1.1176 -    512 MB of RAM, and approximately 600 MB of free disk space.
  1.1177 -    <strong>
  1.1178 -        NOTE: The Windows 2000 build machines need to use the
  1.1179 -        file system NTFS. 
  1.1180 -        Build machines formatted to FAT32 will not work 
  1.1181 -        because FAT32 doesn't support case-sensitivity in file names.
  1.1182 -    </strong>
  1.1183 -    <p> 
  1.1184 -    <strong>X64 only:</strong>
  1.1185 -    The minimum recommended hardware for building
  1.1186 -    the Windows X64 version is an AMD Opteron class processor, at least 1
  1.1187 -    GB of RAM, and approximately 10 GB of free disk space.
  1.1188 -</blockquote>
  1.1189 -
  1.1190 -<!-- ------------------------------------------------------ -->
  1.1191 -
  1.1192 -<h4><a name="paths">Windows Paths</a></h4>
  1.1193 -
  1.1194 -<blockquote>
  1.1195 -    <p>
  1.1196 -    <strong>Windows:</strong>
  1.1197 -    Note that GNU make is a historic utility and is based very
  1.1198 -    heavily on shell scripting, so it does not tolerate the Windows habit
  1.1199 -    of having spaces in pathnames or the use of the <tt>\</tt>characters in pathnames.
  1.1200 -    Luckily on most Windows systems, you can use <tt>/</tt>instead of \, and
  1.1201 -    there is always a 'short' pathname without spaces for any path that 
  1.1202 -    contains spaces.
  1.1203 -    Unfortunately, this short pathname can be somewhat dynamic and the
  1.1204 -    formula is difficult to explain.
  1.1205 -    You can use <tt>cygpath</tt> utility to map pathnames with spaces
  1.1206 -    or the <tt>\</tt>character into the <tt>C:/</tt> style of pathname
  1.1207 -    (called 'mixed'), e.g.
  1.1208 -    <tt>cygpath -s -m "<i>path</i>"</tt>.
  1.1209 -    <p>
  1.1210 -    The makefiles will try to translate any pathnames supplied
  1.1211 -    to it into the <tt>C:/</tt> style automatically.
  1.1212 -    <p>
  1.1213 -    Note that use of CYGWIN creates a unique problem with regards to
  1.1214 -    setting <a href="#path"><tt>PATH</tt></a>. Normally on Windows
  1.1215 -    the <tt>PATH</tt> variable contains directories
  1.1216 -    separated with the ";" character (Solaris and Linux uses ":").
  1.1217 -    With CYGWIN, it uses ":", but that means that paths like "C:/path"
  1.1218 -    cannot be placed in the CYGWIN version  of <tt>PATH</tt> and
  1.1219 -    instead CYGWIN uses something like <tt>/cygdrive/c/path</tt>
  1.1220 -    which CYGWIN understands, but only CYGWIN understands.
  1.1221 -    So be careful with paths on Windows.
  1.1222 -</blockquote>
  1.1223 -
  1.1224 -<!-- ------------------------------------------------------ -->
  1.1225 -
  1.1226 -<h4><a name="windows_checklist">Basic Windows Check List</a></h4>
  1.1227 -
  1.1228 -<blockquote>
  1.1229 -    <ol>
  1.1230 -        <li>
  1.1231 -            Install the
  1.1232 -            <a href="#cygwin">CYGWIN product</a>. 
  1.1233 -        </li>
  1.1234 -        <li>
  1.1235 -            Install the 
  1.1236 -            <a href="#bootjdk">Bootstrap JDK</a>, set
  1.1237 -            <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
  1.1238 -        </li>
  1.1239 -        <li>
  1.1240 -            Install the
  1.1241 -            <a href="#binaryplugs">Binary Plugs</a>, set
  1.1242 -            <tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>..
  1.1243 -        </li>
  1.1244 -        <li>
  1.1245 -            Install the
  1.1246 -            <a href="#msvc">Microsoft Visual Studio .NET 2003 Professional</a> or the 
  1.1247 -            <a href="#mssdk">Microsoft Platform SDK</a>.
  1.1248 -        </li>
  1.1249 -        <li>
  1.1250 -            Setup all environment variables for compilers 
  1.1251 -            (see <a href="#msvc">compilers</a>).
  1.1252 -        </li>
  1.1253 -        <li>
  1.1254 -            Install 
  1.1255 -            <a href="#dxsdk">Microsoft DirectX SDK</a>.
  1.1256 -        </li>
  1.1257 -    </ol>
  1.1258 -</blockquote>
  1.1259 -
  1.1260 -<!-- ------------------------------------------------------ -->
  1.1261 -<hr noshade="noshade" size="3">
  1.1262 -
  1.1263 -<h3><a name="dependencies">Build Dependencies</a></h3>
  1.1264 -
  1.1265 -<blockquote>
  1.1266 -    <p>
  1.1267 -    Depending on the platform, the 
  1.1268 -    OpenJDK 
  1.1269 -    build process has some basic
  1.1270 -    dependencies on components not part of the 
  1.1271 -    OpenJDK 
  1.1272 -    sources.
  1.1273 -    Some of these are specific to a platform, some even specific to
  1.1274 -    an architecture.
  1.1275 -    Each dependency will have a set of ALT variables that can be set
  1.1276 -    to tell the makefiles where to locate the component.
  1.1277 -    In most cases setting these ALT variables may not be necessary
  1.1278 -    and the makefiles will find defaults on the system in standard
  1.1279 -    install locations or through component specific variables.
  1.1280 -    
  1.1281 -    <h4><a name="bootjdk">Bootstrap JDK</a></h4>
  1.1282 -    
  1.1283 -    <blockquote>
  1.1284 -        <p>
  1.1285 -        All 
  1.1286 -        OpenJDK 
  1.1287 -        builds require access to the previously released 
  1.1288 -        JDK 6, this is often called a bootstrap JDK.
  1.1289 -        The JDK 6 binaries can be downloaded from Sun's 
  1.1290 -        <a href="http://java.sun.com/javase/1.6.0/download.html">JDK 6 download site</a>.
  1.1291 -        For build performance reasons
  1.1292 -        is very important that this bootstrap JDK be made available on the
  1.1293 -        local disk of the machine doing the build.
  1.1294 -        You should always set 
  1.1295 -        <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>
  1.1296 -        to point to the location of
  1.1297 -        the bootstrap JDK installation, this is the directory pathname
  1.1298 -        that contains a <tt>bin, lib, and include</tt>
  1.1299 -        It's also a good idea to also place its <tt>bin</tt> directory
  1.1300 -        in the <tt>PATH</tt> environment variable, although it's
  1.1301 -        not required.
  1.1302 -        <p>
  1.1303 -        <strong>Solaris:</strong>
  1.1304 -        Some pre-installed JDK images may be available to you in the
  1.1305 -        directory <tt>/usr/jdk/instances</tt>.
  1.1306 -        If you don't set
  1.1307 -        <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>
  1.1308 -        the makefiles will look in that location for a JDK it can use.
  1.1309 -    </blockquote>
  1.1310 -    
  1.1311 -    <h4><a name="binaryplugs">Binary Plugs</a></h4>
  1.1312 -    
  1.1313 -    <blockquote>
  1.1314 -        <p>
  1.1315 -        Not all of the source code that makes up the JDK is available
  1.1316 -        under an open-source license.
  1.1317 -        In order to build an OpenJDK binary from source code,
  1.1318 -        you must first download and install the appropriate
  1.1319 -	binary plug bundles from the OpenJDK, go to the
  1.1320 -	<a href="http://openjdk.java.net">OpenJDK</a> site and select
  1.1321 -	the "<b>Bundles(7)</b>" link.
  1.1322 -        During the OpenJDK build process these "binary plugs"
  1.1323 -        for the encumbered components will be copied into your
  1.1324 -        resulting OpenJDK binary build image.
  1.1325 -        These binary plug files are only for the purpose of
  1.1326 -        building an OpenJDK binary.
  1.1327 -        Make sure you set
  1.1328 -        <tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>
  1.1329 -        to the root of this installation.
  1.1330 -    </blockquote>
  1.1331 -    
  1.1332 -    <h4><a name="cacerts">Certificate Authority File (cacert)</a></h4>
  1.1333 -    
  1.1334 -    <blockquote>
  1.1335 -        <p>
  1.1336 -        See <a href="http://en.wikipedia.org/wiki/CAcert">
  1.1337 -        www.wikipedia.org/wiki/CAcert</a>
  1.1338 -        for a better understanding of the Certificate Authority (CA).
  1.1339 -        A certificates file named "cacerts"
  1.1340 -        represents a system-wide keystore with CA certificates. 
  1.1341 -        In JDK and JRE
  1.1342 -        binary bundles, the "cacerts" file contains root CA certificates from
  1.1343 -        several public CAs (e.g., VeriSign, Thawte, and Baltimore).
  1.1344 -        The source contain a cacerts file
  1.1345 -        without CA root certificates. 
  1.1346 -        Formal JDK builders will need to secure
  1.1347 -        permission from each public CA and include the certificates into their
  1.1348 -        own custom cacerts file. 
  1.1349 -        Failure to provide a populated cacerts file
  1.1350 -        will result in verification errors of a certificate chain during runtime.
  1.1351 -        The variable 
  1.1352 -        <tt><a href="#ALT_CACERTS_FILE">ALT_CACERTS_FILE</a></tt>
  1.1353 -        can be used to override the default location of the
  1.1354 -        cacerts file that will get placed in your build.
  1.1355 -        By default an empty cacerts file is provided and that should be
  1.1356 -        fine for most JDK developers.
  1.1357 -    </blockquote>
  1.1358 -    
  1.1359 -    <h4><a name="compilers">Compilers</a></h4>
  1.1360 -    
  1.1361 -    <blockquote>
  1.1362 -        
  1.1363 -        <a name="gcc">
  1.1364 -            <strong>Linux gcc/binutils</strong>
  1.1365 -        </a>
  1.1366 -        
  1.1367 +            Note that GNU make is a historic utility and is based very
  1.1368 +            heavily on shell scripting, so it does not tolerate the Windows habit
  1.1369 +            of having spaces in pathnames or the use of the <tt>\</tt>characters in pathnames.
  1.1370 +            Luckily on most Windows systems, you can use <tt>/</tt>instead of \, and
  1.1371 +            there is always a 'short' pathname without spaces for any path that 
  1.1372 +            contains spaces.
  1.1373 +            Unfortunately, this short pathname can be somewhat dynamic and the
  1.1374 +            formula is difficult to explain.
  1.1375 +            You can use <tt>cygpath</tt> utility to map pathnames with spaces
  1.1376 +            or the <tt>\</tt>character into the <tt>C:/</tt> style of pathname
  1.1377 +            (called 'mixed'), e.g.
  1.1378 +            <tt>cygpath -s -m "<i>path</i>"</tt>.
  1.1379 +            <p>
  1.1380 +            The makefiles will try to translate any pathnames supplied
  1.1381 +            to it into the <tt>C:/</tt> style automatically.
  1.1382 +            <p>
  1.1383 +            Note that use of CYGWIN creates a unique problem with regards to
  1.1384 +            setting <a href="#path"><tt>PATH</tt></a>. Normally on Windows
  1.1385 +            the <tt>PATH</tt> variable contains directories
  1.1386 +            separated with the ";" character (Solaris and Linux uses ":").
  1.1387 +            With CYGWIN, it uses ":", but that means that paths like "C:/path"
  1.1388 +            cannot be placed in the CYGWIN version  of <tt>PATH</tt> and
  1.1389 +            instead CYGWIN uses something like <tt>/cygdrive/c/path</tt>
  1.1390 +            which CYGWIN understands, but only CYGWIN understands.
  1.1391 +            So be careful with paths on Windows.
  1.1392 +        </blockquote>
  1.1393 +        <!-- ------------------------------------------------------ -->
  1.1394 +        <h4><a name="windows_checklist">Basic Windows Check List</a></h4>
  1.1395          <blockquote>
  1.1396 -            <p>
  1.1397 -            The GNU gcc compiler version should be 3.2.2 or newer.
  1.1398 -            The binutils package should be 2.11.93.0.2-11 or newer.
  1.1399 -            The compiler used should be the default compiler installed
  1.1400 -            in <tt>/usr/bin</tt>.
  1.1401 +            <ol>
  1.1402 +                <li>
  1.1403 +                    Install the
  1.1404 +                    <a href="#cygwin">CYGWIN product</a>. 
  1.1405 +                </li>
  1.1406 +                <li>
  1.1407 +                    Install the 
  1.1408 +                    <a href="#bootjdk">Bootstrap JDK</a>, set
  1.1409 +                    <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
  1.1410 +                </li>
  1.1411 +                <li>
  1.1412 +                    Install the
  1.1413 +                    <a href="#binaryplugs">Binary Plugs</a>, set
  1.1414 +                    <tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>..
  1.1415 +                </li>
  1.1416 +                <li>
  1.1417 +                    <a href="#importjdk">Optional Import JDK</a>, set
  1.1418 +                    <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>.
  1.1419 +                </li>
  1.1420 +                <li>
  1.1421 +                    Install the
  1.1422 +                    <a href="#msvc">Microsoft Visual Studio .NET 2003 Professional</a> or the 
  1.1423 +                    <a href="#mssdk">Microsoft Platform SDK</a>.
  1.1424 +                </li>
  1.1425 +                <li>
  1.1426 +                    Setup all environment variables for compilers 
  1.1427 +                    (see <a href="#msvc">compilers</a>).
  1.1428 +                </li>
  1.1429 +                <li>
  1.1430 +                    Install 
  1.1431 +                    <a href="#dxsdk">Microsoft DirectX SDK</a>.
  1.1432 +                </li>
  1.1433 +            </ol>
  1.1434          </blockquote>
  1.1435 -        
  1.1436 -        <strong><a name="studio">Solaris: Sun Studio</a></strong>
  1.1437 -        
  1.1438 +        <!-- ------------------------------------------------------ -->
  1.1439 +        <hr>
  1.1440 +        <h3><a name="dependencies">Build Dependencies</a></h3>
  1.1441          <blockquote>
  1.1442 -            <p>
  1.1443 -            At a minimum, the
  1.1444 -            <a href="http://developers.sun.com/sunstudio/index.jsp">
  1.1445 -            Sun Studio 11 Compilers</a>
  1.1446 -            (containing version 5.8 of the C and C++ compilers) is required,
  1.1447 -            with patches from the
  1.1448 -            <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access">
  1.1449 -            SunSolve web site</a>.
  1.1450 -            <p> 
  1.1451 -            Set 
  1.1452 -            <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>
  1.1453 -            to point to the location of
  1.1454 -            the compiler binaries, and place this location in the <tt>PATH</tt>.
  1.1455 -            <p>
  1.1456 -            The Sun Studio Express compilers at:
  1.1457 -            <a href="http://developers.sun.com/sunstudio/downloads/express.jsp">
  1.1458 -            Sun Studio Express Download site</a>
  1.1459 -            are also an option, although these compilers have not
  1.1460 -            been extensively used yet.
  1.1461 +            Depending on the platform, the OpenJDK build process has some basic
  1.1462 +            dependencies on components not part of the OpenJDK sources.
  1.1463 +            Some of these are specific to a platform, some even specific to
  1.1464 +            an architecture.
  1.1465 +            Each dependency will have a set of ALT variables that can be set
  1.1466 +            to tell the makefiles where to locate the component.
  1.1467 +            In most cases setting these ALT variables may not be necessary
  1.1468 +            and the makefiles will find defaults on the system in standard
  1.1469 +            install locations or through component specific variables.
  1.1470 +            <!-- ------------------------------------------------------ -->
  1.1471 +            <h4><a name="bootjdk">Bootstrap JDK</a></h4>
  1.1472 +            <blockquote>
  1.1473 +                All OpenJDK builds require access to the previously released 
  1.1474 +                JDK 6, this is often called a bootstrap JDK.
  1.1475 +                The JDK 6 binaries can be downloaded from Sun's 
  1.1476 +                <a href="http://java.sun.com/javase/1.6.0/download.html" target="_blank">JDK 6 download site</a>.
  1.1477 +                For build performance reasons
  1.1478 +                is very important that this bootstrap JDK be made available on the
  1.1479 +                local disk of the machine doing the build.
  1.1480 +                You should always set 
  1.1481 +                <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>
  1.1482 +                to point to the location of
  1.1483 +                the bootstrap JDK installation, this is the directory pathname
  1.1484 +                that contains a <tt>bin, lib, and include</tt>
  1.1485 +                It's also a good idea to also place its <tt>bin</tt> directory
  1.1486 +                in the <tt>PATH</tt> environment variable, although it's
  1.1487 +                not required.
  1.1488 +                <p>
  1.1489 +                <strong>Solaris:</strong>
  1.1490 +                Some pre-installed JDK images may be available to you in the
  1.1491 +                directory <tt>/usr/jdk/instances</tt>.
  1.1492 +                If you don't set
  1.1493 +                <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>
  1.1494 +                the makefiles will look in that location for a JDK it can use.
  1.1495 +            </blockquote>
  1.1496 +            <!-- ------------------------------------------------------ -->
  1.1497 +            <h4><a name="binaryplugs">Binary Plugs</a></h4>
  1.1498 +            <blockquote>
  1.1499 +                Not all of the source code that makes up the JDK is available
  1.1500 +                under an open-source license.
  1.1501 +                This is a temporary situation and these binary plugs will be
  1.1502 +                replaced with fully open source replacements as soon as possible.
  1.1503 +                So currently, in order to build a complete OpenJDK image,
  1.1504 +                you must first download and install the appropriate
  1.1505 +                binary plug bundles for the OpenJDK, go to the
  1.1506 +                <a href="http://openjdk.java.net" target="_blank">OpenJDK</a> site and select
  1.1507 +                the "<b>Bundles(7)</b>" link and download the binaryplugs for
  1.1508 +                your particular platform.
  1.1509 +                The file downloaded is a jar file that must be extracted by running
  1.1510 +                the jar file with:
  1.1511 +                <blockquote>
  1.1512 +                    <pre>
  1.1513 +            <tt><b>java -jar jdk-7-ea-plug-b<i>nn</i>-<i>os</i>-<i>arch</i>-<i>dd</i>_<i>month</i>_<i>year</i>.jar</b></tt>
  1.1514 +                    </pre>
  1.1515 +                </blockquote>
  1.1516 +                A prompt will be issued for acceptance of these binary plug files.
  1.1517 +                During the OpenJDK build process these "binary plugs"
  1.1518 +                for the encumbered components will be copied into your
  1.1519 +                resulting OpenJDK binary build image.
  1.1520 +                These binary plug files are only for the purpose of
  1.1521 +                building an OpenJDK binary.
  1.1522 +                Make sure you set
  1.1523 +                <tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>
  1.1524 +                to the root of this installation.
  1.1525 +            </blockquote>
  1.1526 +            <!-- ------------------------------------------------------ -->
  1.1527 +            <h4><a name="importjdk">Optional Import JDK</a></h4>
  1.1528 +            <blockquote>
  1.1529 +                The <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>
  1.1530 +                setting is only needed if you are not building the entire
  1.1531 +                JDK. For example, if you have built the entire JDK once, and
  1.1532 +                wanted to avoid repeatedly building the Hotspot VM, you could
  1.1533 +                set this to the location of the previous JDK install image
  1.1534 +                and the build will copy the needed files from this import area.
  1.1535 +            </blockquote>
  1.1536 +            <!-- ------------------------------------------------------ -->
  1.1537 +            <h4><a name="cacerts">Certificate Authority File (cacert)</a></h4>
  1.1538 +            <blockquote>
  1.1539 +                See <a href="http://en.wikipedia.org/wiki/Certificate_Authority" target="_blank">
  1.1540 +                http://en.wikipedia.org/wiki/Certificate_Authority</a>
  1.1541 +                for a better understanding of the Certificate Authority (CA).
  1.1542 +                A certificates file named "cacerts"
  1.1543 +                represents a system-wide keystore with CA certificates. 
  1.1544 +                In JDK and JRE
  1.1545 +                binary bundles, the "cacerts" file contains root CA certificates from
  1.1546 +                several public CAs (e.g., VeriSign, Thawte, and Baltimore).
  1.1547 +                The source contain a cacerts file
  1.1548 +                without CA root certificates. 
  1.1549 +                Formal JDK builders will need to secure
  1.1550 +                permission from each public CA and include the certificates into their
  1.1551 +                own custom cacerts file. 
  1.1552 +                Failure to provide a populated cacerts file
  1.1553 +                will result in verification errors of a certificate chain during runtime.
  1.1554 +                The variable 
  1.1555 +                <tt><a href="#ALT_CACERTS_FILE">ALT_CACERTS_FILE</a></tt>
  1.1556 +                can be used to override the default location of the
  1.1557 +                cacerts file that will get placed in your build.
  1.1558 +                By default an empty cacerts file is provided and that should be
  1.1559 +                fine for most JDK developers.
  1.1560 +            </blockquote>
  1.1561 +            <!-- ------------------------------------------------------ -->
  1.1562 +            <h4><a name="compilers">Compilers</a></h4>
  1.1563 +            <blockquote>
  1.1564 +                <strong><a name="gcc">Linux gcc/binutils</a></strong>
  1.1565 +                <blockquote>
  1.1566 +                    The GNU gcc compiler version should be 3.2.2 or newer.
  1.1567 +                    The binutils package should be 2.11.93.0.2-11 or newer.
  1.1568 +                    The compiler used should be the default compiler installed
  1.1569 +                    in <tt>/usr/bin</tt>.
  1.1570 +                    <p>
  1.1571 +                    Older Linux systems may require a gcc and bunutils update.
  1.1572 +                    The Redhat Enterprise Advanced Server 2.1 update 2 system
  1.1573 +                    is one of these systems.
  1.1574 +                    RedHat Linux users can obtain this binutils package from 
  1.1575 +                    <a href="http://www.redhat.com" 
  1.1576 +                       target="_blank">Redhat web site</a>. 
  1.1577 +                    You will need to remove the default compiler and binutils
  1.1578 +                    packages and install the required packages
  1.1579 +                    into the default location on the system.
  1.1580 +                    However if you have a new video card driver, like 
  1.1581 +                    Geforce 4 it is best to use
  1.1582 +                    the same compiler as the kernel was built with to 
  1.1583 +                    build the new video card driver module.
  1.1584 +                    So you should build the modules before making this change.
  1.1585 +                </blockquote>
  1.1586 +                <strong><a name="studio">Solaris: Sun Studio</a></strong>
  1.1587 +                <blockquote>
  1.1588 +                    At a minimum, the
  1.1589 +                    <a href="http://developers.sun.com/sunstudio/index.jsp" target="_blank">
  1.1590 +                    Sun Studio 11 Compilers</a>
  1.1591 +                    (containing version 5.8 of the C and C++ compilers) is required,
  1.1592 +                    with patches from the
  1.1593 +                    <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access" target="_blank">
  1.1594 +                    SunSolve web site</a>.
  1.1595 +                    <p> 
  1.1596 +                    Set 
  1.1597 +                    <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>
  1.1598 +                    to point to the location of
  1.1599 +                    the compiler binaries, and place this location in the <tt>PATH</tt>.
  1.1600 +                    <p>
  1.1601 +                    The Sun Studio Express compilers at:
  1.1602 +                    <a href="http://developers.sun.com/sunstudio/downloads/express.jsp" target="_blank">
  1.1603 +                    Sun Studio Express Download site</a>
  1.1604 +                    are also an option, although these compilers have not
  1.1605 +                    been extensively used yet.
  1.1606 +                </blockquote>
  1.1607 +                <strong><a name="msvc">Windows i586: Microsoft Visual Studio .NET 2003 Professional</a></strong>
  1.1608 +                <blockquote>
  1.1609 +                    The 32-bit OpenJDK Windows build
  1.1610 +                    requires Microsoft Visual Studio .NET 2003 (VS2003) Professional
  1.1611 +                    Edition compiler. 
  1.1612 +                    The compiler and other tools are expected to reside
  1.1613 +                    in the location defined by the variable <tt>VS71COMNTOOLS</tt> which
  1.1614 +                    is set by the Microsoft Visual Studio .NET installer.
  1.1615 +                    <p> 
  1.1616 +                    Once the compiler is installed, 
  1.1617 +                    it is recommended that you run <tt>VCVARS32.BAT</tt> 
  1.1618 +                    to set the compiler environment variables
  1.1619 +                    <tt>MSVCDIR</tt>, 
  1.1620 +                    <tt>INCLUDE</tt>,
  1.1621 +                    <tt>LIB</tt>, and
  1.1622 +                    <tt>PATH</tt> 
  1.1623 +                    prior to building the 
  1.1624 +                    OpenJDK.
  1.1625 +                    The above environment variables <b>MUST</b> be set.
  1.1626 +                    <p>
  1.1627 +                    The Microsoft Visual Studio .NET 2005 (VS2005) compiler
  1.1628 +                    will not work at this time due to the new runtime dll
  1.1629 +                    and the manifest requirements.
  1.1630 +                </blockquote>
  1.1631 +                <strong><a name="mssdk">Windows X64: Microsoft Platform SDK April 2005</a></strong>
  1.1632 +                <blockquote>
  1.1633 +                    On <b>X64</b>, the Microsoft Platform Software
  1.1634 +                    Development Kit (SDK), April 2005 Edition compiler,
  1.1635 +                    is required for building the OpenJDK
  1.1636 +                    because it contains the C/C++ compiler. 
  1.1637 +                    You will need to minimally install the Core SDK and
  1.1638 +                    the MDAC SDK features of this compiler.
  1.1639 +                    <p>
  1.1640 +                    Once the Platform SDK is installed,
  1.1641 +                    it is recommended that you run <tt>SetEnv.Cmd /X64</tt> 
  1.1642 +                    to set the compiler environment variables
  1.1643 +                    <tt>MSSDK</tt>, 
  1.1644 +                    <tt>MSTOOLS</tt>,
  1.1645 +                    <tt>INCLUDE</tt>,
  1.1646 +                    <tt>LIB</tt>, and
  1.1647 +                    <tt>PATH</tt> 
  1.1648 +                    prior to building the 
  1.1649 +                    OpenJDK.
  1.1650 +                    The above environment variables <b>MUST</b> be set.
  1.1651 +                    <p>
  1.1652 +                    Note that this compiler may say it's version is a
  1.1653 +                    Microsoft Visual Studio .NET 2005 (VS2005), but be careful,
  1.1654 +                    it will not match the official VS2005 product.
  1.1655 +                    This Platform SDK compiler is only used on X64 builds.
  1.1656 +                </blockquote>
  1.1657 +            </blockquote>
  1.1658 +            <!-- ------------------------------------------------------ --> 
  1.1659 +            <h4><a name="zip">Zip and Unzip</a></h4>
  1.1660 +            <blockquote>
  1.1661 +                Version 2.2 (November 3rd 1997) or newer of the zip utility 
  1.1662 +                and version 5.12 or newer of the unzip utility is needed 
  1.1663 +                to build the JDK.
  1.1664 +                With Solaris, Linux, and Windows CYGWIN, the zip and unzip
  1.1665 +                utilities installed on the system should be fine.
  1.1666 +                Information and the source code for
  1.1667 +                ZIP.EXE and UNZIP.EXE is available on the
  1.1668 +                <a href="http://www.info-zip.org" 
  1.1669 +                   target="_blank">info-zip web site</a>.
  1.1670 +            </blockquote>
  1.1671 +            <!-- ------------------------------------------------------ -->
  1.1672 +            <h4><a name="cups">Common UNIX Printing System (CUPS) Headers (Solaris &amp; Linux)</a></h4>
  1.1673 +            <blockquote>
  1.1674 +                <strong>Solaris:</strong>
  1.1675 +                CUPS header files are required for building the 
  1.1676 +                OpenJDK on Solaris.
  1.1677 +                The Solaris header files can be obtained by installing 
  1.1678 +                the package <strong>SFWcups</strong> from the Solaris Software
  1.1679 +                Companion CD/DVD, these often will be installed into 
  1.1680 +                <tt>/opt/sfw/cups</tt>.
  1.1681 +                <p>
  1.1682 +                <strong>Linux:</strong>
  1.1683 +                CUPS header files are required for building the 
  1.1684 +                OpenJDK on Linux.
  1.1685 +                The Linux header files are usually available from a "cups"
  1.1686 +                development package, it's recommended that you try and use
  1.1687 +                the package provided by the particular version of Linux that
  1.1688 +                you are using.
  1.1689 +                <p>
  1.1690 +                The CUPS header files can always be downloaded from 
  1.1691 +                <a href="http://www.cups.org" target="_blank">www.cups.org</a>.
  1.1692 +                The variable 
  1.1693 +                <tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt>
  1.1694 +                can be used to override the default location of the
  1.1695 +                CUPS Header files.
  1.1696 +            </blockquote>
  1.1697 +            <!-- ------------------------------------------------------ -->
  1.1698 +            <h4><a name="freetype">FreeType 2</a></h4>
  1.1699 +            <blockquote>
  1.1700 +                Version 2.3 or newer of FreeType is required for building the OpenJDK.
  1.1701 +                On Unix systems required files can be available as part of your
  1.1702 +                distribution (while you still may need to upgrade them).
  1.1703 +                Note that you need development version of package that 
  1.1704 +                includes both FreeType library and header files.
  1.1705 +                <p>
  1.1706 +                You can always download latest FreeType version from the
  1.1707 +                <a href="http://www.freetype.org" target="_blank">FreeType website</a>.
  1.1708 +                <p>
  1.1709 +                Makefiles will try to pick FreeType from /usr/lib and /usr/include.
  1.1710 +                In case it is installed elsewhere you will need to set environment
  1.1711 +                variables 
  1.1712 +                <tt><a href="#ALT_FREETYPE_LIB_PATH">ALT_FREETYPE_LIB_PATH</a></tt>
  1.1713 +                and 
  1.1714 +                <tt><a href="#ALT_FREETYPE_HEADERS_PATH">ALT_FREETYPE_HEADERS_PATH</a></tt>
  1.1715 +                to refer to place where library and header files are installed.
  1.1716 +            </blockquote>    
  1.1717 +            <!-- ------------------------------------------------------ -->
  1.1718 +            <h4><a name="alsa">Advanced Linux Sound Architecture (ALSA) (Linux only)</a></h4>
  1.1719 +            <blockquote>
  1.1720 +                <strong>Linux only:</strong>
  1.1721 +                Version 0.9.1 or newer of the ALSA files are
  1.1722 +                required for building the OpenJDK on Linux.
  1.1723 +                These Linux files are usually available from an "alsa"
  1.1724 +                of "libasound"
  1.1725 +                development package, it's highly recommended that you try and use
  1.1726 +                the package provided by the particular version of Linux that
  1.1727 +                you are using.
  1.1728 +                The makefiles will check this emit a sanity error if it is
  1.1729 +                missing or the wrong version.
  1.1730 +                <p>
  1.1731 +                In particular, older Linux systems will likely not have the
  1.1732 +                right version of ALSA installed, for example
  1.1733 +                Redhat AS 2.1 U2 and SuSE 8.1 do not include a sufficiently 
  1.1734 +                recent ALSA distribution.
  1.1735 +                On rpm-based systems, you can see if ALSA is installed by 
  1.1736 +                running this command:
  1.1737 +                <pre>
  1.1738 +                    <tt>rpm -qa | grep alsa</tt>
  1.1739 +                </pre>
  1.1740 +                Both <tt>alsa</tt> and <tt>alsa-devel</tt> packages are needed.
  1.1741 +                <p> 
  1.1742 +                If your distribution does not come with ALSA, and you can't
  1.1743 +                find ALSA packages built for your particular system,
  1.1744 +                you can try to install the pre-built ALSA rpm packages from
  1.1745 +                <a href="http://www.freshrpms.net/" target="_blank">
  1.1746 +                <tt>www.freshrpms.net</tt></a>. 
  1.1747 +                Note that installing a newer ALSA could
  1.1748 +                break sound output if an older version of ALSA was previously
  1.1749 +                installed on the system, but it will enable JDK compilation.
  1.1750 +                <blockquote>
  1.1751 +                    Installation: execute as root<br>
  1.1752 +                    [i586]: <code>rpm -Uv --force alsa-lib-devel-0.9.1-rh61.i386.rpm</code><br>
  1.1753 +                    [x64]: <code>rpm -Uv --force alsa-lib-devel-0.9.8-amd64.x86_64.rpm</code><br>
  1.1754 +                    Uninstallation:<br>
  1.1755 +                    [i586]: <code>rpm -ev alsa-lib-devel-0.9.1-rh61</code><br>
  1.1756 +                    [x64]:<code>rpm -ev alsa-lib-devel-0.9.8-amd64</code><br>
  1.1757 +                    Make sure that you do not link to the static library
  1.1758 +                    (<tt>libasound.a</tt>),
  1.1759 +                    by verifying that the dynamic library (<tt>libasound.so</tt>) is
  1.1760 +                    correctly installed in <tt>/usr/lib</tt>.
  1.1761 +                </blockquote>
  1.1762 +                As a last resort you can go to the
  1.1763 +                <a href="http://www.alsa-project.org" target="_blank">
  1.1764 +                Advanced Linux Sound Architecture Site</a> and build it from
  1.1765 +                source.
  1.1766 +                <blockquote>
  1.1767 +                    Download driver and library
  1.1768 +                    source tarballs from 
  1.1769 +                    <a href="http://www.alsa-project.org" target="_blank">ALSA's homepage</a>. 
  1.1770 +                    As root, execute the following
  1.1771 +                    commands (you may need to adapt the version number):
  1.1772 +                    <pre>
  1.1773 +                        <tt>
  1.1774 +                            $ tar xjf alsa-driver-0.9.1.tar.bz2
  1.1775 +                            $ cd alsa-driver-0.9.1
  1.1776 +                            $ ./configure
  1.1777 +                            $ make install
  1.1778 +                            $ cd ..
  1.1779 +                            $ tar xjf alsa-lib-0.9.1.tar.bz2
  1.1780 +                            $ cd alsa-lib-0.9.1
  1.1781 +                            $ ./configure
  1.1782 +                            $ make install
  1.1783 +                        </tt>
  1.1784 +                    </pre>
  1.1785 +                    Should one of the above steps fail, refer to the documentation on
  1.1786 +                    ALSA's home page.
  1.1787 +                </blockquote>
  1.1788 +                Note that this is a minimum install that enables
  1.1789 +                building the JDK platform. To actually use ALSA sound drivers, more
  1.1790 +                steps are necessary as outlined in the documentation on ALSA's homepage.
  1.1791 +                <p>
  1.1792 +                ALSA can be uninstalled by executing <tt>make uninstall</tt> first in
  1.1793 +                the <tt>alsa-lib-0.9.1</tt> directory and then in 
  1.1794 +                <tt>alsa-driver-0.9.1</tt>.
  1.1795 +            </blockquote>
  1.1796 +            There are no ALT* variables to change the assumed locations of ALSA,
  1.1797 +            the makefiles will expect to find the ALSA include files and library at:
  1.1798 +            <tt>/usr/include/alsa</tt> and <tt>/usr/lib/libasound.so</tt>.
  1.1799          </blockquote>
  1.1800 -        
  1.1801 -        <a name="msvc">
  1.1802 -            <strong>Windows i586: Microsoft Visual Studio .NET 2003 Professional</strong>
  1.1803 -        </a>
  1.1804 -        
  1.1805 +        <!-- ------------------------------------------------------ -->
  1.1806 +        <h4>Windows Specific Dependencies</h4>
  1.1807          <blockquote>
  1.1808 -            <p>
  1.1809 -            The 32-bit 
  1.1810 -            OpenJDK
  1.1811 -            Windows build
  1.1812 -            requires Microsoft Visual Studio .NET 2003 (VS2003) Professional
  1.1813 -            Edition compiler. 
  1.1814 -            The compiler and other tools are expected to reside
  1.1815 -            in the location defined by the variable <tt>VS71COMNTOOLS</tt> which
  1.1816 -            is set by the Microsoft Visual Studio .NET installer.
  1.1817 -            <p> 
  1.1818 -            Once the compiler is installed, 
  1.1819 -            it is recommended that you run <tt>VCVARS32.BAT</tt> 
  1.1820 -            to set the compiler environment variables
  1.1821 -            <tt>MSVCDIR</tt>, 
  1.1822 -            <tt>INCLUDE</tt>,
  1.1823 -            <tt>LIB</tt>, and
  1.1824 -            <tt>PATH</tt> 
  1.1825 -            prior to building the 
  1.1826 -            OpenJDK.
  1.1827 -            The above environment variables <b>MUST</b> be set.
  1.1828 -            <p>
  1.1829 -            The Microsoft Visual Studio .NET 2005 (VS2005) compiler
  1.1830 -            will not work at this time due to the new runtime dll
  1.1831 -            and the manifest requirements.
  1.1832 -        </blockquote>
  1.1833 -        
  1.1834 -        <a name="mssdk">
  1.1835 -            <strong>Windows X64: Microsoft Platform SDK April 2005</strong>
  1.1836 -        </a>
  1.1837 -        
  1.1838 -        <blockquote>
  1.1839 -            <p>
  1.1840 -            On <b>X64</b>,
  1.1841 -            the Microsoft Platform Software
  1.1842 -            Development Kit (SDK), April 2005 Edition compiler, is required for
  1.1843 -            building the 
  1.1844 -            OpenJDK
  1.1845 -            because it contains the C/C++ compiler. 
  1.1846 -            You will need to minimally install the Core SDK and
  1.1847 -            the MDAC SDK features of this compiler.
  1.1848 -            <p>
  1.1849 -            Once the Platform SDK is installed,
  1.1850 -            it is recommended that you run <tt>SetEnv.Cmd /X64</tt> 
  1.1851 -            to set the compiler environment variables
  1.1852 -            <tt>MSSDK</tt>, 
  1.1853 -            <tt>MSTOOLS</tt>,
  1.1854 -            <tt>INCLUDE</tt>,
  1.1855 -            <tt>LIB</tt>, and
  1.1856 -            <tt>PATH</tt> 
  1.1857 -            prior to building the 
  1.1858 -            OpenJDK.
  1.1859 -            The above environment variables <b>MUST</b> be set.
  1.1860 -            <p>
  1.1861 -            Note that this compiler may say it's version is a
  1.1862 -            Microsoft Visual Studio .NET 2005 (VS2005), but be careful,
  1.1863 -            it will not match the official VS2005 product.
  1.1864 -            This Platform SDK compiler is only used on X64 builds.
  1.1865 -        </blockquote>
  1.1866 -        
  1.1867 -    </blockquote>
  1.1868 -    
  1.1869 -    <h4><a name="cups">Common UNIX Printing System (CUPS) Headers (Solaris &amp; Linux)</a></h4>
  1.1870 -    
  1.1871 -    <blockquote>
  1.1872 -        <p>
  1.1873 -        <strong>Solaris:</strong>
  1.1874 -        CUPS header files are required for building the 
  1.1875 -        OpenJDK on Solaris.
  1.1876 -        The Solaris header files can be obtained by installing 
  1.1877 -        the package <strong>SFWcups</strong> from the Solaris Software
  1.1878 -        Companion CD/DVD, these often will be installed into 
  1.1879 -        <tt>/opt/sfw/cups</tt>.
  1.1880 -        <p>
  1.1881 -        <strong>Linux:</strong>
  1.1882 -        CUPS header files are required for building the 
  1.1883 -        OpenJDK on Linux.
  1.1884 -        The Linux header files are usually available from a "cups"
  1.1885 -        development package, it's recommended that you try and use
  1.1886 -        the package provided by the particular version of Linux that
  1.1887 -        you are using.
  1.1888 -        <p>
  1.1889 -        The CUPS header files can always be downloaded from 
  1.1890 -        <a href="http://www.cups.org">www.cups.org</a>.
  1.1891 -        The variable 
  1.1892 -        <tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt>
  1.1893 -        can be used to override the default location of the
  1.1894 -        CUPS Header files.
  1.1895 -    </blockquote>
  1.1896 -    
  1.1897 -    <h4><a name="freetype">FreeType 2</a></h4>
  1.1898 -
  1.1899 -    <blockquote>
  1.1900 -        <p>
  1.1901 -        Version 2.3 or newer of FreeType is required for building the OpenJDK.
  1.1902 -        On Unix systems required files can be available as part of your
  1.1903 -        distribution (while you still may need to upgrade them).
  1.1904 -        Note that you need development version of package that 
  1.1905 -        includes both FreeType library and header files.
  1.1906 -        </p>
  1.1907 -        <p>
  1.1908 -        You can always download latest FreeType version from the
  1.1909 -        <a href="http://www.freetype.org">FreeType website</a>.
  1.1910 -        </p>
  1.1911 -        <p>
  1.1912 -        Makefiles will try to pick FreeType from /usr/lib and /usr/include.
  1.1913 -        In case it is installed elsewhere you will need to set environment
  1.1914 -        variables 
  1.1915 -        <tt><a href="#ALT_FREETYPE_LIB_PATH">ALT_FREETYPE_LIB_PATH</a></tt>
  1.1916 -        and 
  1.1917 -        <tt><a href="#ALT_FREETYPE_HEADERS_PATH">ALT_FREETYPE_HEADERS_PATH</a></tt>
  1.1918 -        to refer to place where library and header files are installed.
  1.1919 -        </p>
  1.1920 -    </blockquote>    
  1.1921 -
  1.1922 -    <h4><a name="alsa">Advanced Linux Sound Architecture (ALSA) (Linux only)</a></h4>
  1.1923 -    
  1.1924 -    <blockquote>
  1.1925 -        <p>
  1.1926 -        <strong>Linux only:</strong>
  1.1927 -        Version 0.9.1 or newer of the ALSA files are
  1.1928 -        required for building the 
  1.1929 -        OpenJDK on Linux.
  1.1930 -        These Linux files are usually available from an "alsa"
  1.1931 -        of "libasound"
  1.1932 -        development package, it's recommended that you try and use
  1.1933 -        the package provided by the particular version of Linux that
  1.1934 -        you are using.
  1.1935 -        The makefiles will check this emit a sanity error if it is
  1.1936 -        missing or the wrong version.
  1.1937 -        As a last resort you can go to the
  1.1938 -        <a href="http://www.alsa-project.org" target="_blank">
  1.1939 -        Advanced Linux Sound Architecture Site</a>.
  1.1940 -    </blockquote>
  1.1941 -    
  1.1942 -    <h4>Windows Specific Dependencies</h4>
  1.1943 -    
  1.1944 -    <blockquote>
  1.1945 -        
  1.1946 -        <strong>Unix Command Tools (<a name="cygwin">CYGWIN</a>)</strong>
  1.1947 -        
  1.1948 -        <blockquote> 
  1.1949 -            <p>
  1.1950 -            The 
  1.1951 -            OpenJDK
  1.1952 -            requires access to a set of unix command tools
  1.1953 -            on Windows which can be supplied by 
  1.1954 -            <a href="http://www.cygwin.com">CYGWIN</a>. 
  1.1955 -            <p>
  1.1956 -            The 
  1.1957 -            OpenJDK 
  1.1958 -            build
  1.1959 -            requires CYGWIN version 1.5.12 or newer. 
  1.1960 -            Information about CYGWIN can
  1.1961 -            be obtained from the CYGWIN website at 
  1.1962 -            <a href="http://www.cygwin.com">www.cygwin.com</a>. 
  1.1963 -            <p>
  1.1964 -            By default CYGWIN doesn't install all the tools required for building
  1.1965 -            the OpenJDK.
  1.1966 -            Along with the default installation, you need to install
  1.1967 -            the following tools.
  1.1968 +            <strong>Unix Command Tools (<a name="cygwin">CYGWIN</a>)</strong>
  1.1969 +            <blockquote> 
  1.1970 +                The OpenJDK requires access to a set of unix command tools
  1.1971 +                on Windows which can be supplied by 
  1.1972 +                <a href="http://www.cygwin.com" target="_blank">CYGWIN</a>. 
  1.1973 +                <p>
  1.1974 +                The OpenJDK build requires CYGWIN version 1.5.12 or newer. 
  1.1975 +                Information about CYGWIN can
  1.1976 +                be obtained from the CYGWIN website at 
  1.1977 +                <a href="http://www.cygwin.com" target="_blank">www.cygwin.com</a>. 
  1.1978 +                <p>
  1.1979 +                By default CYGWIN doesn't install all the tools required for building
  1.1980 +                the OpenJDK.
  1.1981 +                Along with the default installation, you need to install
  1.1982 +                the following tools.
  1.1983 +                <blockquote>
  1.1984 +                    <table border="1">
  1.1985 +                        <thead>
  1.1986 +                            <tr>
  1.1987 +                                <td>Binary Name</td>
  1.1988 +                                <td>Package</td>
  1.1989 +                                <td>Description</td>
  1.1990 +                            </tr>
  1.1991 +                        </thead>
  1.1992 +                        <tbody>
  1.1993 +                            <tr>
  1.1994 +                                <td>ar.exe</td>
  1.1995 +                                <td>Devel</td>
  1.1996 +                                <td>binutils: The GNU assembler, linker and binary
  1.1997 +                                utilities</td>
  1.1998 +                            </tr>
  1.1999 +                            <tr>
  1.2000 +                                <td>make.exe</td>
  1.2001 +                                <td>Devel</td>
  1.2002 +                                <td>make: The GNU version of the 'make' utility</td>
  1.2003 +                            </tr>
  1.2004 +                            <tr>
  1.2005 +                                <td>m4.exe</td>
  1.2006 +                                <td>Interpreters</td>
  1.2007 +                                <td>m4: GNU implementation of the traditional Unix macro
  1.2008 +                                processor</td>
  1.2009 +                            </tr>
  1.2010 +                            <tr>
  1.2011 +                                <td>cpio.exe</td>
  1.2012 +                                <td>Utils</td>
  1.2013 +                                <td>cpio: A program to manage archives of files</td>
  1.2014 +                            </tr>
  1.2015 +                            <tr>
  1.2016 +                                <td>awk.exe</td>
  1.2017 +                                <td>Utils</td>
  1.2018 +                                <td>awk: Pattern-directed scanning and processing language</td>
  1.2019 +                            </tr>
  1.2020 +                            <tr>
  1.2021 +                                <td>file.exe</td>
  1.2022 +                                <td>Utils</td>
  1.2023 +                                <td>file: Determines file type using 'magic' numbers</td>
  1.2024 +                            </tr>
  1.2025 +                            <tr>
  1.2026 +                                <td>zip.exe</td>
  1.2027 +                                <td>Utils</td>
  1.2028 +                                <td>zip: Package and compress (archive) files</td>
  1.2029 +                            </tr>
  1.2030 +                            <tr>
  1.2031 +                                <td>unzip.exe</td>
  1.2032 +                                <td>Utils</td>
  1.2033 +                                <td>unzip: Extract compressed files in a ZIP archive</td>
  1.2034 +                            </tr>
  1.2035 +                            <tr>
  1.2036 +                                <td>free.exe</td>
  1.2037 +                                <td>Utils</td>
  1.2038 +                                <td>free: Display amount of free and used memory in the system</td>
  1.2039 +                            </tr>
  1.2040 +                        </tbody>
  1.2041 +                    </table>
  1.2042 +                </blockquote>
  1.2043 +                <p>
  1.2044 +                Note that the CYGWIN software can conflict with other non-CYGWIN
  1.2045 +                software on your Windows system.
  1.2046 +                CYGWIN provides a
  1.2047 +                <a href="http://cygwin.com/faq/faq.using.html" target="_blank">FAQ</a> for
  1.2048 +                known issues and problems, of particular interest is the
  1.2049 +                section on
  1.2050 +                <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank">
  1.2051 +                BLODA (applications that interfere with CYGWIN)</a>.
  1.2052 +            </blockquote>
  1.2053 +            <strong><a name="dxsdk">Microsoft DirectX 9.0 SDK header files and libraries</a></strong>
  1.2054              <blockquote>
  1.2055 -                <table border="1">
  1.2056 -                    <thead>
  1.2057 -                        <tr>
  1.2058 -                            <td>Binary Name</td>
  1.2059 -                            <td>Package</td>
  1.2060 -                            <td>Description</td>
  1.2061 -                        </tr>
  1.2062 -                    </thead>
  1.2063 -                    <tbody>
  1.2064 -                        <tr>
  1.2065 -                            <td>ar.exe</td>
  1.2066 -                            <td>Devel</td>
  1.2067 -                            <td>binutils: The GNU assembler, linker and binary
  1.2068 -                            utilities</td>
  1.2069 -                        </tr>
  1.2070 -                        <tr>
  1.2071 -                            <td>make.exe</td>
  1.2072 -                            <td>Devel</td>
  1.2073 -                            <td>make: The GNU version of the 'make' utility</td>
  1.2074 -                        </tr>
  1.2075 -                        <tr>
  1.2076 -                            <td>m4.exe</td>
  1.2077 -                            <td>Interpreters</td>
  1.2078 -                            <td>m4: GNU implementation of the traditional Unix macro
  1.2079 -                            processor</td>
  1.2080 -                        </tr>
  1.2081 -                        <tr>
  1.2082 -                            <td>cpio.exe</td>
  1.2083 -                            <td>Utils</td>
  1.2084 -                            <td>cpio: A program to manage archives of files</td>
  1.2085 -                        </tr>
  1.2086 -                        <tr>
  1.2087 -                            <td>file.exe</td>
  1.2088 -                            <td>Utils</td>
  1.2089 -                            <td>file: Determines file type using 'magic' numbers</td>
  1.2090 -                        </tr>
  1.2091 -                    </tbody>
  1.2092 -                </table>
  1.2093 +                Microsoft DirectX 9.0 SDK (Summer 2004)
  1.2094 +                headers are required for building
  1.2095 +                OpenJDK.
  1.2096 +                This SDK can be downloaded from 
  1.2097 +                <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FD044A42-9912-42A3-9A9E-D857199F888E&amp;displaylang=en" target="_blank">
  1.2098 +                Microsoft DirectX 9.0 SDK (Summer 2004)</a>.
  1.2099 +                If the link above becomes obsolete, the SDK can be found from 
  1.2100 +                <a href="http://download.microsoft.com" target="_blank">the Microsoft Download Site</a>
  1.2101 +                (search with "DirectX 9.0 SDK Update Summer 2004"). 
  1.2102 +                The location of this SDK can be set with 
  1.2103 +                <tt><a href="#ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt>
  1.2104 +                but it's normally found via the DirectX environment variable
  1.2105 +                <tt>DXSDK_DIR</tt>.
  1.2106 +            </blockquote>
  1.2107 +            <strong><a name="msvcrt"><tt>MSVCRT.DLL</tt></a></strong>
  1.2108 +            <blockquote> 
  1.2109 +                <strong>i586 only:</strong>
  1.2110 +                The OpenJDK 32bit build requires access to
  1.2111 +                <tt>MSVCRT.DLL</tt> version 6.00.8337.0 or newer.
  1.2112 +                If the <tt>MSVCRT.DLL</tt> is not installed in 
  1.2113 +                the system32 directory set the 
  1.2114 +                <a href="#ALT_MSVCRT_DLL_PATH"><tt>ALT_MSVCRT_DLL_PATH</tt></a>
  1.2115 +                variable to the location.
  1.2116 +                <p> 
  1.2117 +                <strong>X64 only:</strong>
  1.2118 +                The OpenJDK 64bit build requires access to
  1.2119 +                <tt>MSVCRT.DLL</tt> version 7.0.3790.0 or newer, which is
  1.2120 +                usually supplied by the
  1.2121 +                <a href="#mssdk">Platform SDK</a>.
  1.2122 +                If it is not available from the Platform SDK,
  1.2123 +                set the 
  1.2124 +                <a href="#ALT_MSVCRT_DLL_PATH"><tt>ALT_MSVCRT_DLL_PATH</tt></a>
  1.2125 +                variable to the location.
  1.2126 +            </blockquote>
  1.2127 +            <strong><tt><a name="msvcr71">MSVCR71.DLL</a></tt></strong>
  1.2128 +            <blockquote>
  1.2129 +                <strong>i586 only:</strong>
  1.2130 +                The 
  1.2131 +                OpenJDK
  1.2132 +                build requires access to 
  1.2133 +                MSVCR71.DLL version 7.10.3052.4 or newer which should be
  1.2134 +                supplied by the
  1.2135 +                <a href="#msvc">Visual Studio product</a>
  1.2136 +                If the <tt>MSVCR71.DLL</tt> is not available from the
  1.2137 +                Visual Studio product
  1.2138 +                set the 
  1.2139 +                <a href="#ALT_MSVCR71_DLL_PATH"><tt>ALT_MSVCR71_DLL_PATH</tt></a>
  1.2140 +                variable to the location.
  1.2141              </blockquote>
  1.2142          </blockquote>
  1.2143 -        
  1.2144 -        <a name="dxsdk">
  1.2145 -            <strong>Microsoft DirectX 9.0 SDK header files and libraries</strong>
  1.2146 -        </a>
  1.2147 -        
  1.2148 +        <!-- ------------------------------------------------------ -->
  1.2149 +        <hr>
  1.2150 +        <h2><a name="creating">Creating the Build</a></h2>
  1.2151          <blockquote>
  1.2152 +            Once a machine is setup to build the OpenJDK,
  1.2153 +            the steps to create the build are fairly simple.
  1.2154 +            The various ALT settings can either be made into  variables
  1.2155 +            or can be supplied on the 
  1.2156 +            <a href="#gmake"><tt><i>gmake</i></tt></a> 
  1.2157 +            command.
  1.2158 +            <ol>
  1.2159 +                <li>Use the sanity rule to double check all the ALT settings:
  1.2160 +                    <blockquote>
  1.2161 +                        <tt>
  1.2162 +                            <i>gmake</i> 
  1.2163 +                            sanity
  1.2164 +                            [ARCH_DATA_MODEL=<i>32 or 64</i>]
  1.2165 +                            [other "ALT_" overrides]
  1.2166 +                        </tt>
  1.2167 +                    </blockquote>
  1.2168 +                </li>
  1.2169 +                <li>Start the build with the command:
  1.2170 +                    <blockquote>
  1.2171 +                        <tt>
  1.2172 +                            <i>gmake</i> 
  1.2173 +                            [ARCH_DATA_MODEL=<i>32 or 64</i>]
  1.2174 +                            [ALT_OUTPUTDIR=<i>output_directory</i>] 
  1.2175 +                            [other "ALT_" overrides] 
  1.2176 +                        </tt>
  1.2177 +                    </blockquote>
  1.2178 +                </li>
  1.2179 +            </ol>
  1.2180              <p>
  1.2181 -            Microsoft DirectX 9.0 SDK (Summer 2004)
  1.2182 -            headers are required for building
  1.2183 -            OpenJDK.
  1.2184 -            This SDK can be downloaded from 
  1.2185 -            <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FD044A42-9912-42A3-9A9E-D857199F888E&amp;displaylang=en">
  1.2186 -            Microsoft DirectX 9.0 SDK (Summer 2004)</a>.
  1.2187 -            If the link above becomes obsolete, the SDK can be found from 
  1.2188 -            <a href="http://download.microsoft.com">the Microsoft Download Site</a>
  1.2189 -            (search with "DirectX 9.0 SDK Update Summer 2004"). 
  1.2190 -            The location of this SDK can be set with 
  1.2191 -            <tt><a href="#ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt>
  1.2192 -            but it's normally found via the DirectX environment variable
  1.2193 -            <tt>DXSDK_DIR</tt>.
  1.2194 +            <strong>Solaris:</strong>
  1.2195 +            Note that ARCH_DATA_MODEL is really only needed on Solaris to
  1.2196 +            indicate you want to built the 64-bit version.
  1.2197 +            And before the Solaris 64-bit binaries can be used, they
  1.2198 +            must be merged with the binaries from a separate 32-bit build. 
  1.2199 +            The merged binaries may then be used in either 32-bit or 64-bit mode, with
  1.2200 +            the selection occurring at runtime 
  1.2201 +            with the <tt>-d32</tt> or <tt>-d64</tt> options. 
  1.2202          </blockquote>
  1.2203 -        
  1.2204 -        <a name="msvcrt">
  1.2205 -            <strong><tt>MSVCRT.DLL</tt></strong>
  1.2206 -        </a>
  1.2207 -        
  1.2208 -        <blockquote> 
  1.2209 +        <!-- ------------------------------------------------------ -->
  1.2210 +        <hr>
  1.2211 +        <h2><a name="testing">Testing the Build</a></h2>
  1.2212 +        <blockquote>
  1.2213 +            When the build is completed, you should see the generated
  1.2214 +            binaries and associated files in the <tt>j2sdk-image</tt> 
  1.2215 +            directory in the output directory. 
  1.2216 +            The default output directory is
  1.2217 +            <tt>build/<i>platform</i></tt>,
  1.2218 +            where <tt><i>platform</i></tt> is one of
  1.2219 +            <tt><ul>
  1.2220 +                    <li>solaris-sparc</li>
  1.2221 +                    <li>solaris-sparcv9</li>
  1.2222 +                    <li>solaris-i586</li>
  1.2223 +                    <li>solaris-amd64</li>
  1.2224 +                    <li>linux-i586</li>
  1.2225 +                    <li>linux-amd64</li>
  1.2226 +                    <li>windows-i586</li>
  1.2227 +                    <li>windows-amd64</li>
  1.2228 +            </ul></tt>
  1.2229 +            In particular, the 
  1.2230 +            <tt>build/<i>platform</i>/j2sdk-image/bin</tt>
  1.2231 +            directory should contain executables for the 
  1.2232 +            OpenJDK tools and utilities.
  1.2233              <p>
  1.2234 -            <strong>i586 only:</strong>
  1.2235 -            The 
  1.2236 -            OpenJDK
  1.2237 -            32bit build requires
  1.2238 -            access to <tt>MSVCRT.DLL</tt> 
  1.2239 -            version 6.00.8337.0 or newer.
  1.2240 -            If the <tt>MSVCRT.DLL</tt> is not installed in 
  1.2241 -            the system32 directory set the 
  1.2242 -            <a href="#ALT_MSVCRT_DLL_PATH"><tt>ALT_MSVCRT_DLL_PATH</tt></a>
  1.2243 -            variable to the location.
  1.2244 -            <p> 
  1.2245 -            <strong>X64 only:</strong>
  1.2246 -            The OpenJDK 64bit build requires access to
  1.2247 -            <tt>MSVCRT.DLL</tt> version 7.0.3790.0 or newer, which is
  1.2248 -            usually supplied by the
  1.2249 -            <a href="#mssdk">Platform SDK</a>.
  1.2250 -            If it is not available from the Platform SDK,
  1.2251 -            set the 
  1.2252 -            <a href="#ALT_MSVCRT_DLL_PATH"><tt>ALT_MSVCRT_DLL_PATH</tt></a>
  1.2253 -            variable to the location.
  1.2254 +            You can test that the build completed properly by using the build
  1.2255 +            to run the various demos that you will find in the 
  1.2256 +            <tt>build/<i>platform</i>/j2sdk-image/demo</tt>
  1.2257 +            directory.
  1.2258 +            <p>
  1.2259 +            The provided regression tests can be run with the <tt>jtreg</tt>
  1.2260 +            utility from 
  1.2261 +            <a href="http://openjdk.java.net/jtreg/" target="_blank">the jtreg site</a>.
  1.2262          </blockquote>
  1.2263 -        
  1.2264 -        <a name="msvcr71">
  1.2265 -            <strong><tt>MSVCR71.DLL</tt></strong>
  1.2266 -        </a>
  1.2267 -        
  1.2268 +        <!-- ------------------------------------------------------ -->
  1.2269 +        <hr>
  1.2270 +        <h2><a name="variables">Environment/Make Variables</a></h2>
  1.2271 +        <p>
  1.2272 +        Some of the
  1.2273 +        environment or make variables (just called <b>variables</b> in this
  1.2274 +        document) that can impact the build are:
  1.2275          <blockquote>
  1.2276 -            <p>
  1.2277 -            <strong>i586 only:</strong>
  1.2278 -            The 
  1.2279 -            OpenJDK
  1.2280 -            build requires access to 
  1.2281 -            MSVCR71.DLL version 7.10.3052.4 or newer which should be
  1.2282 -            supplied by the
  1.2283 -            <a href="#msvc">Visual Studio product</a>
  1.2284 -            If the <tt>MSVCR71.DLL</tt> is not available from the
  1.2285 -            Visual Studio product
  1.2286 -            set the 
  1.2287 -            <a href="#ALT_MSVCR71_DLL_PATH"><tt>ALT_MSVCR71_DLL_PATH</tt></a>
  1.2288 -            variable to the location.
  1.2289 -        </blockquote>
  1.2290 -        
  1.2291 -    </blockquote>
  1.2292 -    
  1.2293 -    
  1.2294 -</blockquote>
  1.2295 -
  1.2296 -
  1.2297 -<hr noshade="noshade" size="3">
  1.2298 -
  1.2299 -<h2><a name="creating">Creating the Build</a></h2>
  1.2300 -
  1.2301 -<blockquote>
  1.2302 -    <p>
  1.2303 -    Once a machine is setup to build the 
  1.2304 -    OpenJDK,
  1.2305 -    the steps to create the
  1.2306 -    build are fairly simple.
  1.2307 -    The various ALT settings can either be made into  variables
  1.2308 -    or can be supplied on the 
  1.2309 -    <a href="#gmake"><tt><i>gmake</i></tt></a> 
  1.2310 -    command.
  1.2311 -    <p>
  1.2312 -    <ol>
  1.2313 -        <li>Use the sanity rule to double check all the ALT settings:
  1.2314 -            <blockquote>
  1.2315 -                <tt>
  1.2316 -                    <i>gmake</i> 
  1.2317 -                    sanity
  1.2318 -                    [ARCH_DATA_MODEL=<i>32 or 64</i>]
  1.2319 -                    [other "ALT_" overrides]
  1.2320 -                </tt>
  1.2321 -            </blockquote>
  1.2322 -        </li>
  1.2323 -        <li>Start the build with the command:
  1.2324 -            <blockquote>
  1.2325 -                <tt>
  1.2326 -                    <i>gmake</i> 
  1.2327 -                    [ARCH_DATA_MODEL=<i>32 or 64</i>]
  1.2328 -                    [ALT_OUTPUTDIR=<i>output_directory</i>] 
  1.2329 -                    [other "ALT_" overrides] 
  1.2330 -                </tt>
  1.2331 -            </blockquote>
  1.2332 -        </li>
  1.2333 -    </ol>
  1.2334 -    <p>
  1.2335 -    <strong>Solaris:</strong>
  1.2336 -    Note that ARCH_DATA_MODEL is really only needed on Solaris to
  1.2337 -    indicate you want to built the 64-bit version.
  1.2338 -    And before the Solaris 64-bit binaries can be used, they
  1.2339 -    must be merged with the binaries from a separate 32-bit build. 
  1.2340 -    The merged binaries may then be used in either 32-bit or 64-bit mode, with
  1.2341 -    the selection occurring at runtime 
  1.2342 -    with the <tt>-d32</tt> or <tt>-d64</tt> options. 
  1.2343 -</blockquote>
  1.2344 -
  1.2345 -<!-- ------------------------------------------------------ -->
  1.2346 -<hr noshade="noshade" size="3">
  1.2347 -
  1.2348 -<h2><a name="testing">Testing the Build</a></h2>
  1.2349 -
  1.2350 -<blockquote>
  1.2351 -    <p>
  1.2352 -    When the build is completed, you should see the generated
  1.2353 -    binaries and associated files in the <tt>j2sdk-image</tt> 
  1.2354 -    directory in the output directory. 
  1.2355 -    The default output directory is
  1.2356 -    <tt>build/<i>platform</i></tt>,
  1.2357 -    where <tt><i>platform</i></tt> is one of
  1.2358 -    <tt><ul>
  1.2359 -            <li>solaris-sparc</li>
  1.2360 -            <li>solaris-sparcv9</li>
  1.2361 -            <li>solaris-i586</li>
  1.2362 -            <li>solaris-amd64</li>
  1.2363 -            <li>linux-i586</li>
  1.2364 -            <li>linux-amd64</li>
  1.2365 -            <li>windows-i586</li>
  1.2366 -            <li>windows-amd64</li>
  1.2367 -    </ul></tt>
  1.2368 -    In particular, the 
  1.2369 -    <tt>build/<i>platform</i>/j2sdk-image/bin</tt>
  1.2370 -    directory should contain executables for the 
  1.2371 -    OpenJDK
  1.2372 -    tools and utilities.
  1.2373 -    <p>
  1.2374 -    You can test that the build completed properly by using the build
  1.2375 -    to run the various demos that you will find in the 
  1.2376 -    <tt>build/<i>platform</i>/j2sdk-image/demo</tt>
  1.2377 -    directory.
  1.2378 -    <p>
  1.2379 -    The provided regression tests can be run with the <tt>jtreg</tt>
  1.2380 -    utility from 
  1.2381 -    <a href="http://openjdk.java.net/jtreg/">the jtreg site</a>.
  1.2382 -</blockquote>
  1.2383 -
  1.2384 -<!-- ------------------------------------------------------ -->
  1.2385 -<hr noshade="noshade" size="3">
  1.2386 -
  1.2387 -<h2><a name="variables">Environment/Make Variables</a></h2>
  1.2388 -
  1.2389 -<p>
  1.2390 -Some of the
  1.2391 -environment or make variables (just called <b>variables</b> in this
  1.2392 -document) that can impact the build are:
  1.2393 -
  1.2394 -<blockquote>
  1.2395 -    
  1.2396 -    <dl>
  1.2397 -        
  1.2398 -        <dt><a name="path"><tt>PATH</tt></a> </dt>
  1.2399 -        <dd>Typically you want to set the <tt>PATH</tt> to include:
  1.2400 -            <ul>
  1.2401 -                <li>The location of the GNU make binary</li>
  1.2402 -                <li>The location of the JDK 6 <tt>java</tt> 
  1.2403 -                (see <a href="#bootjdk">Bootstrap JDK</a>)</li>
  1.2404 -                <li>The location of the C/C++ compilers 
  1.2405 -                (see <a href="#compilers"><tt>compilers</tt></a>)</li>
  1.2406 -                <li>The location or locations for the Unix command utilities
  1.2407 -                (e.g. <tt>/usr/bin</tt>)</li>
  1.2408 -            </ul>
  1.2409 -        </dd>
  1.2410 -        
  1.2411 -        <dt><a name="arch_data_model"><tt>ARCH_DATA_MODEL</tt></a></dt>
  1.2412 -        <dd>The <tt>ARCH_DATA_MODEL</tt> variable
  1.2413 -            is used to specify whether the build is to generate 32-bit or 64-bit
  1.2414 -            binaries. 
  1.2415 -            The Solaris build supports either 32-bit or 64-bit builds, but
  1.2416 -            Windows and Linux will support only one, depending on the specific
  1.2417 -            OS being used.
  1.2418 -            Normally, setting this variable is only necessary on Solaris.
  1.2419 -            Set <tt>ARCH_DATA_MODEL</tt> to <tt>32</tt> for generating 32-bit binaries, 
  1.2420 -            or to <tt>64</tt> for generating 64-bit binaries.
  1.2421 -        </dd>
  1.2422 -        
  1.2423 -        <dt><a name="ALT_BOOTDIR"><tt>ALT_BOOTDIR</tt></a></dt>
  1.2424 -        <dd>
  1.2425 -            The location of the bootstrap JDK installation. 
  1.2426 -            See <a href="#bootjdk">Bootstrap JDK</a> for more information.
  1.2427 -            You should always install your own local Bootstrap JDK and
  1.2428 -            always set <tt>ALT_BOOTDIR</tt> explicitly.
  1.2429 -        </dd>
  1.2430 -        
  1.2431 -        <dt><a name="ALT_OUTPUTDIR"><tt>ALT_OUTPUTDIR</tt></a> </dt>
  1.2432 -        <dd>
  1.2433 -            An override for specifying the (absolute) path of where the
  1.2434 -            build output is to go.
  1.2435 -            The default output directory will be build/<i>platform</i>.
  1.2436 -        </dd>
  1.2437 -        
  1.2438 -        <dt><a name="ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a> </dt>
  1.2439 -        <dd>
  1.2440 -            The location of the C/C++ compiler.
  1.2441 -            The default varies depending on the platform. 
  1.2442 -        </dd>
  1.2443 -        
  1.2444 -        <dt><tt><a name="ALT_CACERTS_FILE">ALT_CACERTS_FILE</a></tt></dt>
  1.2445 -        <dd>
  1.2446 -            The location of the <a href="#cacerts">cacerts</a> file.
  1.2447 -            The default will refer to 
  1.2448 -            <tt>jdk/src/share/lib/security/cacerts</tt>.
  1.2449 -        </dd>
  1.2450 -        
  1.2451 -        <dt><a name="ALT_BINARY_PLUGS_PATH"><tt>ALT_BINARY_PLUGS_PATH</tt></a></dt>
  1.2452 -        <dd>
  1.2453 -            The location of the binary plugs installation.
  1.2454 -            See <a href="#binaryplugs">Binary Plugs</a> for more information.
  1.2455 -            You should always have a local copy of a
  1.2456 -            recent Binary Plugs install image
  1.2457 -            and set this variable to that location.
  1.2458 -        </dd>
  1.2459 -        
  1.2460 -        <dt><a name="ALT_CUPS_HEADERS_PATH"><tt>ALT_CUPS_HEADERS_PATH</tt></a> </dt>
  1.2461 -        <dd>
  1.2462 -            The location of the CUPS header files.
  1.2463 -            See <a href="#cups">CUPS information</a> for more information.
  1.2464 -            If this path does not exist the fallback path is 
  1.2465 -            <tt>/usr/include</tt>.
  1.2466 -        </dd>
  1.2467 -        
  1.2468 -        
  1.2469 -        <dt><a name="ALT_FREETYPE_LIB_PATH"><tt>ALT_FREETYPE_LIB_PATH</tt></a></dt>
  1.2470 -        <dd>
  1.2471 -            The location of the FreeType shared library. 
  1.2472 -            See <a href="#freetype">FreeType information</a> for details. 
  1.2473 -        </dd>
  1.2474 -        
  1.2475 -        <dt><a name="ALT_FREETYPE_HEADERS_PATH"><tt>ALT_FREETYPE_HEADERS_PATH</tt></a></dt>
  1.2476 -        <dd>
  1.2477 -            The location of the FreeType header files.
  1.2478 -            See <a href="#freetype">FreeType information</a> for details. 
  1.2479 -        </dd>
  1.2480 -        
  1.2481 -        <dt><strong>Windows specific:</strong></dt>
  1.2482 -        <dd>
  1.2483              <dl>
  1.2484 -                <dt><a name="ALT_MSDEVTOOLS_PATH"><tt>ALT_MSDEVTOOLS_PATH</tt></a> </dt>
  1.2485 +                <dt><a name="path"><tt>PATH</tt></a> </dt>
  1.2486 +                <dd>Typically you want to set the <tt>PATH</tt> to include:
  1.2487 +                    <ul>
  1.2488 +                        <li>The location of the GNU make binary</li>
  1.2489 +                        <li>The location of the Bootstrap JDK <tt>java</tt> 
  1.2490 +                        (see <a href="#bootjdk">Bootstrap JDK</a>)</li>
  1.2491 +                        <li>The location of the C/C++ compilers 
  1.2492 +                        (see <a href="#compilers"><tt>compilers</tt></a>)</li>
  1.2493 +                        <li>The location or locations for the Unix command utilities
  1.2494 +                        (e.g. <tt>/usr/bin</tt>)</li>
  1.2495 +                    </ul>
  1.2496 +                </dd>
  1.2497 +                <dt><tt>MILESTONE</tt> </dt>
  1.2498                  <dd>
  1.2499 -                    The location of the Microsoft Visual Studio .NET 2003
  1.2500 -                    tools 'bin' directory.
  1.2501 -                    The default is usually derived from
  1.2502 -                    <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>.
  1.2503 +                    The milestone name for the build (<i>e.g.</i>"beta"). 
  1.2504 +                    The default value is "internal".
  1.2505                  </dd>
  1.2506 -                
  1.2507 -                <dt><tt><a name="ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> </dt>
  1.2508 +                <dt><tt>BUILD_NUMBER</tt> </dt>
  1.2509                  <dd>
  1.2510 -                    The location of the 
  1.2511 -                    <a href="#dxsdk">Microsoft DirectX 9 SDK</a>.
  1.2512 -                    The default will be to try and use the DirectX environment
  1.2513 -                    variable <tt>DXSDK_DIR</tt>,
  1.2514 -                    failing that, look in <tt>C:/DXSDK</tt>.
  1.2515 +                    The build number for the build (<i>e.g.</i> "b27"). 
  1.2516 +                    The default value is "b00".
  1.2517                  </dd>
  1.2518 -                
  1.2519 -                <dt><tt><a name="ALT_MSVCRT_DLL_PATH">ALT_MSVCRT_DLL_PATH</a></tt> </dt>
  1.2520 +                <dt><a name="arch_data_model"><tt>ARCH_DATA_MODEL</tt></a></dt>
  1.2521 +                <dd>The <tt>ARCH_DATA_MODEL</tt> variable
  1.2522 +                    is used to specify whether the build is to generate 32-bit or 64-bit
  1.2523 +                    binaries. 
  1.2524 +                    The Solaris build supports either 32-bit or 64-bit builds, but
  1.2525 +                    Windows and Linux will support only one, depending on the specific
  1.2526 +                    OS being used.
  1.2527 +                    Normally, setting this variable is only necessary on Solaris.
  1.2528 +                    Set <tt>ARCH_DATA_MODEL</tt> to <tt>32</tt> for generating 32-bit binaries, 
  1.2529 +                    or to <tt>64</tt> for generating 64-bit binaries.
  1.2530 +                </dd>
  1.2531 +                <dt><a name="ALT_BOOTDIR"><tt>ALT_BOOTDIR</tt></a></dt>
  1.2532                  <dd>
  1.2533 -                    The location of the 
  1.2534 -                    <a href="#msvcrt"><tt>MSVCRT.DLL</tt></a>. 
  1.2535 +                    The location of the bootstrap JDK installation. 
  1.2536 +                    See <a href="#bootjdk">Bootstrap JDK</a> for more information.
  1.2537 +                    You should always install your own local Bootstrap JDK and
  1.2538 +                    always set <tt>ALT_BOOTDIR</tt> explicitly.
  1.2539                  </dd>
  1.2540 -                
  1.2541 -                <dt><tt><a name="ALT_MSVCR71_DLL_PATH">ALT_MSVCR71_DLL_PATH</a></tt> </dt>
  1.2542 +                <dt><a name="ALT_BINARY_PLUGS_PATH"><tt>ALT_BINARY_PLUGS_PATH</tt></a></dt>
  1.2543                  <dd>
  1.2544 -                    <strong>i586 only:</strong>
  1.2545 -                    The location of the 
  1.2546 -                    <a href="#msvcr71"><tt>MSVCR71.DLL</tt></a>. 
  1.2547 +                    The location of the binary plugs installation.
  1.2548 +                    See <a href="#binaryplugs">Binary Plugs</a> for more information.
  1.2549 +                    You should always have a local copy of a
  1.2550 +                    recent Binary Plugs install image
  1.2551 +                    and set this variable to that location.
  1.2552 +                </dd>
  1.2553 +                <dt><a name="ALT_JDK_IMPORT_PATH"><tt>ALT_JDK_IMPORT_PATH</tt></a></dt>
  1.2554 +                <dd>
  1.2555 +                    The location of a previously built JDK installation. 
  1.2556 +                    See <a href="#importjdk">Optional Import JDK</a> for more information.
  1.2557 +                </dd>
  1.2558 +                <dt><a name="ALT_OUTPUTDIR"><tt>ALT_OUTPUTDIR</tt></a> </dt>
  1.2559 +                <dd>
  1.2560 +                    An override for specifying the (absolute) path of where the
  1.2561 +                    build output is to go.
  1.2562 +                    The default output directory will be build/<i>platform</i>.
  1.2563 +                </dd>
  1.2564 +                <dt><a name="ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a> </dt>
  1.2565 +                <dd>
  1.2566 +                    The location of the C/C++ compiler.
  1.2567 +                    The default varies depending on the platform. 
  1.2568 +                </dd>
  1.2569 +                <dt><tt><a name="ALT_CACERTS_FILE">ALT_CACERTS_FILE</a></tt></dt>
  1.2570 +                <dd>
  1.2571 +                    The location of the <a href="#cacerts">cacerts</a> file.
  1.2572 +                    The default will refer to 
  1.2573 +                    <tt>jdk/src/share/lib/security/cacerts</tt>.
  1.2574 +                </dd>
  1.2575 +                <dt><a name="ALT_CUPS_HEADERS_PATH"><tt>ALT_CUPS_HEADERS_PATH</tt></a> </dt>
  1.2576 +                <dd>
  1.2577 +                    The location of the CUPS header files.
  1.2578 +                    See <a href="#cups">CUPS information</a> for more information.
  1.2579 +                    If this path does not exist the fallback path is 
  1.2580 +                    <tt>/usr/include</tt>.
  1.2581 +                </dd>
  1.2582 +                <dt><a name="ALT_FREETYPE_LIB_PATH"><tt>ALT_FREETYPE_LIB_PATH</tt></a></dt>
  1.2583 +                <dd>
  1.2584 +                    The location of the FreeType shared library. 
  1.2585 +                    See <a href="#freetype">FreeType information</a> for details. 
  1.2586 +                </dd>
  1.2587 +                <dt><a name="ALT_FREETYPE_HEADERS_PATH"><tt>ALT_FREETYPE_HEADERS_PATH</tt></a></dt>
  1.2588 +                <dd>
  1.2589 +                    The location of the FreeType header files.
  1.2590 +                    See <a href="#freetype">FreeType information</a> for details. 
  1.2591 +                </dd>
  1.2592 +                <dt><a name="ALT_JDK_DEVTOOLS_PATH"><tt>ALT_JDK_DEVTOOLS_PATH</tt></a></dt>
  1.2593 +                <dd>
  1.2594 +                    The default root location of the devtools.
  1.2595 +                    The default value is 
  1.2596 +                    <tt>$(ALT_SLASH_JAVA)/devtools</tt>.
  1.2597 +                </dd>
  1.2598 +                <dt><tt><a name="ALT_DEVTOOLS_PATH">ALT_DEVTOOLS_PATH</a></tt> </dt>
  1.2599 +                <dd>
  1.2600 +                    The location of tools like the 
  1.2601 +                    <a href="#zip"><tt>zip</tt> and <tt>unzip</tt></a>
  1.2602 +                    binaries, but might also contain the GNU make utility
  1.2603 +                    (<tt><i>gmake</i></tt>).
  1.2604 +                    So this area is a bit of a grab bag, especially on Windows.
  1.2605 +                    The default value depends on the platform and
  1.2606 +                    Unix Commands being used.
  1.2607 +                    On Linux the default will be 
  1.2608 +                    <tt>$(ALT_JDK_DEVTOOLS_PATH)/linux/bin</tt>, 
  1.2609 +                    on Solaris
  1.2610 +                    <tt>$(ALT_JDK_DEVTOOLS_PATH)/<i>{sparc,i386}</i>/bin</tt>, 
  1.2611 +                    on Windows with MKS
  1.2612 +                    <tt>%SYSTEMDRIVE%/UTILS</tt>, 
  1.2613 +                    and on Windows with CYGWIN
  1.2614 +                    <tt>/usr/bin</tt>.
  1.2615 +                </dd>
  1.2616 +                <dt><a name="ALT_UNIXCOMMAND_PATH"><tt>ALT_UNIXCOMMAND_PATH</tt></a> </dt>
  1.2617 +                <dd>
  1.2618 +                    An override for specifying where the
  1.2619 +                    Unix command set are located. 
  1.2620 +                    The default location varies depending on the platform,
  1.2621 +                    <tt>"%SYSTEMDRIVE%/MKSNT"</tt> or
  1.2622 +                    <tt>$(ROOTDIR)</tt> on Windows with MKS, otherwise it's 
  1.2623 +                    <tt>"/bin"</tt> or <tt>/usr/bin</tt>.
  1.2624 +                </dd>
  1.2625 +                <dt><a name="ALT_UNIXCCS_PATH"><tt>ALT_UNIXCCS_PATH</tt></a></dt>
  1.2626 +                <dd>
  1.2627 +                    <strong>Solaris only:</strong>
  1.2628 +                    An override for specifying where the Unix CCS
  1.2629 +                    command set are located.
  1.2630 +                    The default location is <tt>/usr/ccs/bin</tt> 
  1.2631 +                </dd>
  1.2632 +                <dt><a name="ALT_USRBIN_PATH"><tt>ALT_USRBIN_PATH</tt></a></dt>
  1.2633 +                <dd>
  1.2634 +                    An override for specifying where the
  1.2635 +                    Unix <tt>/usr/bin</tt> commands are located. You usually do not need
  1.2636 +                    to set this variable: the default location is <tt>/usr/bin</tt>)
  1.2637 +                </dd>
  1.2638 +                <dt><a name="ALT_SLASHJAVA"><tt>ALT_SLASHJAVA</tt></a></dt>
  1.2639 +                <dd>
  1.2640 +                    The default root location for many of the ALT path locations
  1.2641 +                    of the following ALT variables.
  1.2642 +                    The default value is 
  1.2643 +                    <tt>"/java"</tt> on Solaris and Linux, 
  1.2644 +                    <tt>"J:"</tt> on Windows.
  1.2645 +                </dd>
  1.2646 +                <dt><a name="ALT_BUILD_JDK_IMPORT_PATH"><tt>ALT_BUILD_JDK_IMPORT_PATH</tt></a></dt>
  1.2647 +                <dd>
  1.2648 +                    These are useful in managing builds on multiple platforms.
  1.2649 +                    The default network location for all of the import JDK images
  1.2650 +                    for all platforms. 
  1.2651 +                    If <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>
  1.2652 +                    is not set, this directory will be used and should contain 
  1.2653 +                    the following directories:
  1.2654 +                    <tt>solaris-sparc</tt>,
  1.2655 +                    <tt>solaris-i586</tt>,
  1.2656 +                    <tt>solaris-sparcv9</tt>,
  1.2657 +                    <tt>solaris-amd64</tt>,
  1.2658 +                    <tt>linux-i586</tt>,
  1.2659 +                    <tt>linux-amd64</tt>,
  1.2660 +                    <tt>windows-i586</tt>,
  1.2661 +                    and
  1.2662 +                    <tt>windows-amd64</tt>.
  1.2663 +                    Where each of these directories contain the import JDK image
  1.2664 +                    for that platform.
  1.2665 +                </dd>
  1.2666 +                <dt><a name="ALT_BUILD_BINARY_PLUGS_PATH"><tt>ALT_BUILD_BINARY_PLUGS_PATH</tt></a></dt>
  1.2667 +                <dd>
  1.2668 +                    These are useful in managing builds on multiple platforms.
  1.2669 +                    The default network location for all of the binary plug images
  1.2670 +                    for all platforms. 
  1.2671 +                    If <tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>
  1.2672 +                    is not set, this directory will be used and should contain 
  1.2673 +                    the following directories:
  1.2674 +                    <tt>solaris-sparc</tt>,
  1.2675 +                    <tt>solaris-i586</tt>,
  1.2676 +                    <tt>solaris-sparcv9</tt>,
  1.2677 +                    <tt>solaris-amd64</tt>,
  1.2678 +                    <tt>linux-i586</tt>,
  1.2679 +                    <tt>linux-amd64</tt>,
  1.2680 +                    <tt>windows-i586</tt>,
  1.2681 +                    and
  1.2682 +                    <tt>windows-amd64</tt>.
  1.2683 +                    Where each of these directories contain the binary plugs image
  1.2684 +                    for that platform.
  1.2685 +                </dd>
  1.2686 +                <dt><strong>Windows specific:</strong></dt>
  1.2687 +                <dd>
  1.2688 +                    <dl>
  1.2689 +                        <dt><a name="ALT_MSDEVTOOLS_PATH"><tt>ALT_MSDEVTOOLS_PATH</tt></a> </dt>
  1.2690 +                        <dd>
  1.2691 +                            The location of the Microsoft Visual Studio .NET 2003
  1.2692 +                            tools 'bin' directory.
  1.2693 +                            The default is usually derived from
  1.2694 +                            <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>.
  1.2695 +                        </dd>
  1.2696 +                        <dt><tt><a name="ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> </dt>
  1.2697 +                        <dd>
  1.2698 +                            The location of the 
  1.2699 +                            <a href="#dxsdk">Microsoft DirectX 9 SDK</a>.
  1.2700 +                            The default will be to try and use the DirectX environment
  1.2701 +                            variable <tt>DXSDK_DIR</tt>,
  1.2702 +                            failing that, look in <tt>C:/DXSDK</tt>.
  1.2703 +                        </dd>
  1.2704 +                        <dt><tt><a name="ALT_MSVCRT_DLL_PATH">ALT_MSVCRT_DLL_PATH</a></tt> </dt>
  1.2705 +                        <dd>
  1.2706 +                            The location of the 
  1.2707 +                            <a href="#msvcrt"><tt>MSVCRT.DLL</tt></a>. 
  1.2708 +                        </dd>
  1.2709 +                        <dt><tt><a name="ALT_MSVCR71_DLL_PATH">ALT_MSVCR71_DLL_PATH</a></tt> </dt>
  1.2710 +                        <dd>
  1.2711 +                            <strong>i586 only:</strong>
  1.2712 +                            The location of the 
  1.2713 +                            <a href="#msvcr71"><tt>MSVCR71.DLL</tt></a>. 
  1.2714 +                        </dd>
  1.2715 +                    </dl>
  1.2716                  </dd>
  1.2717              </dl>
  1.2718 -        </dd>
  1.2719 -        
  1.2720 -    </dl>
  1.2721 -</blockquote>
  1.2722 -
  1.2723 -<!-- ------------------------------------------------------ -->
  1.2724 -<hr noshade="noshade" size="3">
  1.2725 -
  1.2726 -<h2><a name="troubleshooting">Troubleshooting</a></h2>
  1.2727 -
  1.2728 -<blockquote>
  1.2729 -    <p>
  1.2730 -    A build can fail for any number of reasons. 
  1.2731 -    Most failures
  1.2732 -    are a result of trying to build in an environment in which all the
  1.2733 -    pre-build requirements have not been met. 
  1.2734 -    The first step in
  1.2735 -    troubleshooting a build failure is to recheck that you have satisfied
  1.2736 -    all the pre-build requirements for your platform.
  1.2737 -    Look for the check list of the platform you are building on in the
  1.2738 -    <a href="#contents">Table of Contents</a>.
  1.2739 -    
  1.2740 -    <p>
  1.2741 -    You can validate your build environment by using the <tt>sanity</tt>
  1.2742 -    target.
  1.2743 -    Any errors listed
  1.2744 -    will stop the build from starting, and any warnings may result in
  1.2745 -    a flawed product build.
  1.2746 -    We strongly encourage you to evaluate every
  1.2747 -    sanity check warning and fix it if required, before you proceed
  1.2748 -    further with your build.
  1.2749 -    
  1.2750 -    <p>
  1.2751 -    Some of the more common problems with builds are briefly described
  1.2752 -    below, with suggestions for remedies.
  1.2753 -    
  1.2754 -    <ul>
  1.2755 -        <li>
  1.2756 -            <b>Slow Builds:</b>
  1.2757 -            <blockquote>
  1.2758 -                <p>
  1.2759 -                If your build machine seems to be overloaded from too many
  1.2760 -                simultaneous C++ compiles, try setting the <tt>HOTSPOT_BUILD_JOBS</tt>
  1.2761 -                variable to <tt>1</tt> (if you're using a multiple CPU
  1.2762 -                machine, setting it to more than the the number of CPUs is probably
  1.2763 -                not a good idea).
  1.2764 -                <p>
  1.2765 -                Creating the javadocs can be very slow, if you are running
  1.2766 -                javadoc, consider skipping that step.
  1.2767 -                <p>
  1.2768 -                Faster hardware and more RAM always helps too.
  1.2769 -                The VM build tends to be CPU intensive (many C++ compiles),
  1.2770 -                and the rest of the JDK will often be disk intensive.
  1.2771 -                <p>
  1.2772 -                Faster compiles are possible using a tool called
  1.2773 -                <a href="http://ccache.samba.org/">ccache</a>.
  1.2774 -            </blockquote>
  1.2775 -        </li>
  1.2776 -        <li>
  1.2777 -            <b>File time issues:</b>
  1.2778 -            <blockquote>
  1.2779 -                <p>
  1.2780 -                If you see warnings that refer to file time stamps, e.g.
  1.2781 -                <blockquote>
  1.2782 -                    <i>Warning message:</i><tt> File `xxx' has modification time in
  1.2783 -                    the future.</tt>
  1.2784 -                    <br>
  1.2785 -                    <i>Warning message:</i> <tt> Clock skew detected. Your build may
  1.2786 -                    be incomplete.</tt> 
  1.2787 -                </blockquote>
  1.2788 -                <p>
  1.2789 -                These warnings can occur when the clock on the build machine is out of
  1.2790 -                sync with the timestamps on the source files. Other errors, apparently
  1.2791 -                unrelated but in fact caused by the clock skew, can occur along with
  1.2792 -                the clock skew warnings. These secondary errors may tend to obscure the
  1.2793 -                fact that the true root cause of the problem is an out-of-sync clock.
  1.2794 -                For example, an out-of-sync clock has been known to cause an old
  1.2795 -                version of javac to be used to compile some files, resulting in errors
  1.2796 -                when the pre-1.4 compiler ran across the new <tt>assert</tt> keyword
  1.2797 -                in the 1.4 source code.
  1.2798 -                <p>
  1.2799 -                If you see these warnings, reset the clock on the build
  1.2800 -                machine, run "<tt><i>gmake</i> clobber</tt>" or delete the directory
  1.2801 -                containing the build output, and restart the build from the beginning.
  1.2802 -            </blockquote>
  1.2803 -        </li>
  1.2804 -        <li>
  1.2805 -            <b>Error message: <tt>Trouble writing out table to disk</tt></b>
  1.2806 -            <blockquote>
  1.2807 -                <p>
  1.2808 -                Increase the amount of swap space on your build machine.
  1.2809 -            </blockquote>
  1.2810 -        </li>
  1.2811 -        <li>
  1.2812 -            <b>Error Message: <tt>libstdc++ not found:</tt></b>
  1.2813 -            <blockquote>
  1.2814 -                This is caused by a missing libstdc++.a library.
  1.2815 -                This is installed as part of a specific package
  1.2816 -                (e.g. libstdc++.so.devel.386).
  1.2817 -                By default some 64bit Linux versions (e.g. Fedora)
  1.2818 -                only install the 64bit version of the libstdc++ package.
  1.2819 -                Various parts of the JDK build require a static
  1.2820 -                link of the C++ runtime libraries to allow for maximum
  1.2821 -                portability of the built images.
  1.2822 -            </blockquote>
  1.2823 -        </li>
  1.2824 -        <li>
  1.2825 -            <b>Error Message: <tt>cannot restore segment prot after reloc</tt></b>
  1.2826 -            <blockquote>
  1.2827 -                This is probably an issue with SELinux (See
  1.2828 -                <a href="http://en.wikipedia.org/wiki/SELinux">http://en.wikipedia.org/wiki/SELinux</a>).
  1.2829 -                Parts of the VM is built without the <tt>-fPIC</tt> for
  1.2830 -                performance reasons.
  1.2831 -                <p>
  1.2832 -                To completely disable SELinux:
  1.2833 -                <ol><tt>
  1.2834 -                    
  1.2835 -                    <li>$ su root</li>
  1.2836 -                    <li># system-config-securitylevel</li>
  1.2837 -                    <li>In the window that appears, select the SELinux tab</li>
  1.2838 -                    <li>Disable SELinux</li>
  1.2839 -                </ol></tt>
  1.2840 -                <p>
  1.2841 -                Alternatively, instead of completely disabling it you could
  1.2842 -                disable just this one check.
  1.2843 -                <ol><tt>
  1.2844 -                    <li>Select System->Administration->SELinux Management</li>
  1.2845 -                    <li>In the SELinux Management Tool which appears, 
  1.2846 -                    select "Boolean" from the menu on the left</li>
  1.2847 -                    <li>Expand the "Memory Protection" group</li>
  1.2848 -                    <li>Check the first item, labeled
  1.2849 -                    "Allow all unconfined executables to use libraries requiring text relocation ..."</li>
  1.2850 -                </ol></tt>
  1.2851 -            </blockquote>
  1.2852 -        </li>
  1.2853 -    </ul>
  1.2854 -</blockquote>
  1.2855 -
  1.2856 -<hr noshade="noshade" size="3">
  1.2857 +        </blockquote>
  1.2858 +        <!-- ------------------------------------------------------ -->
  1.2859 +        <hr>
  1.2860 +        <h2><a name="troubleshooting">Troubleshooting</a></h2>
  1.2861 +        <blockquote>
  1.2862 +            A build can fail for any number of reasons. 
  1.2863 +            Most failures
  1.2864 +            are a result of trying to build in an environment in which all the
  1.2865 +            pre-build requirements have not been met. 
  1.2866 +            The first step in
  1.2867 +            troubleshooting a build failure is to recheck that you have satisfied
  1.2868 +            all the pre-build requirements for your platform.
  1.2869 +            Look for the check list of the platform you are building on in the
  1.2870 +            <a href="#contents">Table of Contents</a>.
  1.2871 +            <p>
  1.2872 +            You can validate your build environment by using the <tt>sanity</tt>
  1.2873 +            target.
  1.2874 +            Any errors listed
  1.2875 +            will stop the build from starting, and any warnings may result in
  1.2876 +            a flawed product build.
  1.2877 +            We strongly encourage you to evaluate every
  1.2878 +            sanity check warning and fix it if required, before you proceed
  1.2879 +            further with your build.
  1.2880 +            <p>
  1.2881 +            Some of the more common problems with builds are briefly described
  1.2882 +            below, with suggestions for remedies.
  1.2883 +            <ul>
  1.2884 +                <li>
  1.2885 +                    <b>Slow Builds:</b>
  1.2886 +                    <blockquote>
  1.2887 +                        If your build machine seems to be overloaded from too many
  1.2888 +                        simultaneous C++ compiles, try setting the <tt>HOTSPOT_BUILD_JOBS</tt>
  1.2889 +                        variable to <tt>1</tt> (if you're using a multiple CPU
  1.2890 +                        machine, setting it to more than the the number of CPUs is probably
  1.2891 +                        not a good idea).
  1.2892 +                        <p>
  1.2893 +                        Creating the javadocs can be very slow, if you are running
  1.2894 +                        javadoc, consider skipping that step.
  1.2895 +                        <p>
  1.2896 +                        Faster hardware and more RAM always helps too.
  1.2897 +                        The VM build tends to be CPU intensive (many C++ compiles),
  1.2898 +                        and the rest of the JDK will often be disk intensive.
  1.2899 +                        <p>
  1.2900 +                        Faster compiles are possible using a tool called
  1.2901 +                        <a href="http://ccache.samba.org/" target="_blank">ccache</a>.
  1.2902 +                    </blockquote>
  1.2903 +                </li>
  1.2904 +                <li>
  1.2905 +                    <b>File time issues:</b>
  1.2906 +                    <blockquote>
  1.2907 +                        If you see warnings that refer to file time stamps, e.g.
  1.2908 +                        <blockquote>
  1.2909 +                            <i>Warning message:</i><tt> File `xxx' has modification time in
  1.2910 +                            the future.</tt>
  1.2911 +                            <br>
  1.2912 +                            <i>Warning message:</i> <tt> Clock skew detected. Your build may
  1.2913 +                            be incomplete.</tt> 
  1.2914 +                        </blockquote>
  1.2915 +                        These warnings can occur when the clock on the build machine is out of
  1.2916 +                        sync with the timestamps on the source files. Other errors, apparently
  1.2917 +                        unrelated but in fact caused by the clock skew, can occur along with
  1.2918 +                        the clock skew warnings. These secondary errors may tend to obscure the
  1.2919 +                        fact that the true root cause of the problem is an out-of-sync clock.
  1.2920 +                        For example, an out-of-sync clock has been known to cause an old
  1.2921 +                        version of javac to be used to compile some files, resulting in errors
  1.2922 +                        when the pre-1.4 compiler ran across the new <tt>assert</tt> keyword
  1.2923 +                        in the 1.4 source code.
  1.2924 +                        <p>
  1.2925 +                        If you see these warnings, reset the clock on the build
  1.2926 +                        machine, run "<tt><i>gmake</i> clobber</tt>" or delete the directory
  1.2927 +                        containing the build output, and restart the build from the beginning.
  1.2928 +                    </blockquote>
  1.2929 +                </li>
  1.2930 +                <li>
  1.2931 +                    <b>Error message: <tt>Trouble writing out table to disk</tt></b>
  1.2932 +                    <blockquote>
  1.2933 +                        Increase the amount of swap space on your build machine.
  1.2934 +                    </blockquote>
  1.2935 +                </li>
  1.2936 +                <li>
  1.2937 +                    <b>Error Message: <tt>libstdc++ not found:</tt></b>
  1.2938 +                    <blockquote>
  1.2939 +                        This is caused by a missing libstdc++.a library.
  1.2940 +                        This is installed as part of a specific package
  1.2941 +                        (e.g. libstdc++.so.devel.386).
  1.2942 +                        By default some 64bit Linux versions (e.g. Fedora)
  1.2943 +                        only install the 64bit version of the libstdc++ package.
  1.2944 +                        Various parts of the JDK build require a static
  1.2945 +                        link of the C++ runtime libraries to allow for maximum
  1.2946 +                        portability of the built images.
  1.2947 +                    </blockquote>
  1.2948 +                </li>
  1.2949 +                <li>
  1.2950 +                    <b>Error Message: <tt>cannot restore segment prot after reloc</tt></b>
  1.2951 +                    <blockquote>
  1.2952 +                        This is probably an issue with SELinux (See
  1.2953 +                        <a href="http://en.wikipedia.org/wiki/SELinux" target="_blank">
  1.2954 +                        http://en.wikipedia.org/wiki/SELinux</a>).
  1.2955 +                        Parts of the VM is built without the <tt>-fPIC</tt> for
  1.2956 +                        performance reasons.
  1.2957 +                        <p>
  1.2958 +                        To completely disable SELinux:
  1.2959 +                        <tt>
  1.2960 +                            <ol>
  1.2961 +                                <li>$ su root</li>
  1.2962 +                                <li># system-config-securitylevel</li>
  1.2963 +                                <li>In the window that appears, select the SELinux tab</li>
  1.2964 +                                <li>Disable SELinux</li>
  1.2965 +                            </ol>
  1.2966 +                        </tt>
  1.2967 +                        <p>
  1.2968 +                        Alternatively, instead of completely disabling it you could
  1.2969 +                        disable just this one check.
  1.2970 +                        <tt>
  1.2971 +                            <ol>
  1.2972 +                                <li>Select System->Administration->SELinux Management</li>
  1.2973 +                                <li>In the SELinux Management Tool which appears, 
  1.2974 +                                select "Boolean" from the menu on the left</li>
  1.2975 +                                <li>Expand the "Memory Protection" group</li>
  1.2976 +                                <li>Check the first item, labeled
  1.2977 +                                "Allow all unconfined executables to use libraries requiring text relocation ..."</li>
  1.2978 +                            </ol>
  1.2979 +                        </tt>
  1.2980 +                    </blockquote>
  1.2981 +                </li>
  1.2982 +                <li>
  1.2983 +                    <b>Windows Error Message: <tt>*** fatal error - couldn't allocate heap, ... </tt></b>
  1.2984 +                    <blockquote>
  1.2985 +                        The CYGWIN software can conflict with other non-CYGWIN
  1.2986 +                        software. See the CYGWIN FAQ section on
  1.2987 +                        <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank">
  1.2988 +                        BLODA (applications that interfere with CYGWIN)</a>.
  1.2989 +                    </blockquote>
  1.2990 +                </li>
  1.2991 +                <li>
  1.2992 +                    <b>Windows Error Message: <tt>*** multiple target patterns.  Stop.</tt></b>
  1.2993 +                    <blockquote>
  1.2994 +                        The CYGWIN make version 3.81 may not like the Windows <tt>C:/</tt>
  1.2995 +                        style paths, it may not like the ':' character in the path
  1.2996 +                        when used in a makefile target definition.
  1.2997 +                        See the <a href="#gmake"><tt><i>gmake</i></tt></a> section.
  1.2998 +                    </blockquote>
  1.2999 +                </li>
  1.3000 +            </ul>
  1.3001 +        </blockquote>
  1.3002 +        <hr>
  1.3003 +    </body>
  1.3004 +</html>

mercurial