README-builds.html
author ysr
Sun, 16 Mar 2008 21:57:25 -0700
changeset 341 6578aad59716
parent 15 09a7d98b9d8f
child 333 d4540117530e
permissions -rw-r--r--
6634032: CMS: Need CMSInitiatingPermOccupancyFraction for perm, divorcing from CMSInitiatingOccupancyFraction Summary: The option CMSInitiatingPermOccupancyFraction now controls perm triggering threshold. Even though the actual value of the threshold has not yet been changed, so there is no change in policy, we now have the infrastructure in place for dynamically deciding when to collect the perm gen, an issue that will be addressed in the near future. Reviewed-by: jmasa
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
fd16c54261b3 Initial load
duke
parents:
diff changeset
     1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
fd16c54261b3 Initial load
duke
parents:
diff changeset
     2
fd16c54261b3 Initial load
duke
parents:
diff changeset
     3
<html>
fd16c54261b3 Initial load
duke
parents:
diff changeset
     4
<head><title>OpenJDK Build README</title></head>
fd16c54261b3 Initial load
duke
parents:
diff changeset
     5
fd16c54261b3 Initial load
duke
parents:
diff changeset
     6
<!-- ------------------------------------------------------ -->
fd16c54261b3 Initial load
duke
parents:
diff changeset
     7
<hr noshade="noshade" size="3">
fd16c54261b3 Initial load
duke
parents:
diff changeset
     8
fd16c54261b3 Initial load
duke
parents:
diff changeset
     9
<center>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    10
    <h1>OpenJDK Build README</h1>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    11
</center>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    12
fd16c54261b3 Initial load
duke
parents:
diff changeset
    13
<!-- ------------------------------------------------------ --> 
fd16c54261b3 Initial load
duke
parents:
diff changeset
    14
<hr noshade="noshade" size="3">
fd16c54261b3 Initial load
duke
parents:
diff changeset
    15
fd16c54261b3 Initial load
duke
parents:
diff changeset
    16
<h2><a name="introduction">Introduction</a></h2>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    17
fd16c54261b3 Initial load
duke
parents:
diff changeset
    18
<blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    19
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    20
    This README file contains build instructions for the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
    21
    <a href="http://openjdk.java.net">OpenJDK</a>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
    22
    Building the source code for the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
    23
    OpenJDK
fd16c54261b3 Initial load
duke
parents:
diff changeset
    24
    requires
fd16c54261b3 Initial load
duke
parents:
diff changeset
    25
    a certain degree of technical expertise.
fd16c54261b3 Initial load
duke
parents:
diff changeset
    26
</blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    27
fd16c54261b3 Initial load
duke
parents:
diff changeset
    28
<!-- ------------------------------------------------------ -->
fd16c54261b3 Initial load
duke
parents:
diff changeset
    29
<hr noshade="noshade" size="3">
fd16c54261b3 Initial load
duke
parents:
diff changeset
    30
fd16c54261b3 Initial load
duke
parents:
diff changeset
    31
<h2><a name="contents">Contents</a></h2>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    32
fd16c54261b3 Initial load
duke
parents:
diff changeset
    33
<blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    34
    <ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    35
        <li><a href="#introduction">Introduction</a></li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    36
        <li><a href="#MBE">Minimum Build Environments</a></li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    37
        <li><a href="#SDBE">Specific Developer Build Environments</a></li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    38
        <li><a href="#directories">Source Directory Structure</a> </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    39
        <li><a href="#building">Build Information</a>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    40
            <ul type="disc">
fd16c54261b3 Initial load
duke
parents:
diff changeset
    41
                <li><a href="#gmake">GNU Make (<tt><i>gmake</i></tt>)</a> </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    42
                <li><a href="#linux">Basic Linux System Setup</a> </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    43
                <li><a href="#solaris">Basic Solaris System Setup</a> </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    44
                <li><a href="#windows">Basic Windows System Setup</a> </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    45
                <li><a href="#dependencies">Build Dependencies</a> </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    46
                <ul type="disc">
fd16c54261b3 Initial load
duke
parents:
diff changeset
    47
                    <li><a href="#bootjdk">Bootstrap JDK</a> </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    48
                    <li><a href="#binaryplugs">Binary Plugs</a> </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    49
                    <li><a href="#cacerts">Certificate Authority File (cacert)</a> </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    50
                    <li><a href="#compilers">Compilers</a> 
fd16c54261b3 Initial load
duke
parents:
diff changeset
    51
                        <ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    52
                            <li><a href="#msvc">Microsoft Visual Studio</a> </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    53
                            <li><a href="#mssdk">Microsoft Platform SDK</a> </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    54
                            <li><a href="#gcc">Linux gcc/binutils</a> </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    55
                            <li><a href="#studio">Sun Studio</a> </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    56
                        </ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    57
                    </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    58
                    <li>Linux and Solaris:
fd16c54261b3 Initial load
duke
parents:
diff changeset
    59
                        <ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    60
                            <li><a href="#cups">CUPS Include files</a> </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    61
                        </ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    62
                    </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    63
                    <li>Windows only:
fd16c54261b3 Initial load
duke
parents:
diff changeset
    64
                        <ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    65
                            <li>Unix Command Tools (<a href="#cygwin">CYGWIN</a>)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    66
                            <li><a href="#dxsdk">DirectX 9.0 SDK</a> </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    67
                        </ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    68
                    </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    69
                </ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    70
            </ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    71
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    72
        <li><a href="#creating">Creating the Build</a> </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    73
        <li><a href="#testing">Testing the Build</a> </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    74
        <li><a href="#variables">Environment/Make Variables</a></li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    75
        <li><a href="#troubleshooting">Troubleshooting</a></li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    76
    </ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    77
</blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    78
fd16c54261b3 Initial load
duke
parents:
diff changeset
    79
<!-- ------------------------------------------------------ -->
fd16c54261b3 Initial load
duke
parents:
diff changeset
    80
<hr noshade="noshade" size="3">
fd16c54261b3 Initial load
duke
parents:
diff changeset
    81
fd16c54261b3 Initial load
duke
parents:
diff changeset
    82
<h2><a name="MBE">Minimum Build Environments</a></h2>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    83
fd16c54261b3 Initial load
duke
parents:
diff changeset
    84
<blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    85
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    86
    This file often describes specific requirements for what we call the
fd16c54261b3 Initial load
duke
parents:
diff changeset
    87
    "minimum build environments" (MBE) for the JDK.
fd16c54261b3 Initial load
duke
parents:
diff changeset
    88
    Building with the MBE will generate the most compatible
fd16c54261b3 Initial load
duke
parents:
diff changeset
    89
    bits that install on, and run correctly on, the most variations
fd16c54261b3 Initial load
duke
parents:
diff changeset
    90
    of the same base OS and hardware architecture.
fd16c54261b3 Initial load
duke
parents:
diff changeset
    91
    These usually represent what is often called the
fd16c54261b3 Initial load
duke
parents:
diff changeset
    92
    least common denominator platforms.
fd16c54261b3 Initial load
duke
parents:
diff changeset
    93
    It is understood that most developers will NOT be using these 
fd16c54261b3 Initial load
duke
parents:
diff changeset
    94
    specific platforms, and in fact creating these specific platforms
fd16c54261b3 Initial load
duke
parents:
diff changeset
    95
    may be difficult due to the age of some of this software.
fd16c54261b3 Initial load
duke
parents:
diff changeset
    96
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    97
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
    98
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
    99
    The minimum OS and C/C++ compiler versions needed for building the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   100
    OpenJDK:
fd16c54261b3 Initial load
duke
parents:
diff changeset
   101
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   102
    <center>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   103
        <table border="1">
fd16c54261b3 Initial load
duke
parents:
diff changeset
   104
            <thead>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   105
                <tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   106
                    <th>Base OS and Architecture</th>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   107
                    <th>OS</th>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   108
                    <th>Compiler</th>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   109
                </tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   110
            </thead>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   111
            <tbody>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   112
                <tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   113
                    <td>Linux X86 (32bit)</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   114
                    <td>Red Hat Enterprise Linux 4 </td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   115
                    <td>gcc 4 </td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   116
                </tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   117
                <tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   118
                    <td>Linux X64 (64bit)</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   119
                    <td>Red Hat Enterprise Linux 4 </td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   120
                    <td>gcc 4 </td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   121
                </tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   122
                <tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   123
                    <td>Solaris SPARC (32bit)</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   124
                    <td>Solaris 10 + patches 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   125
                        <br>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   126
                        See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE">SunSolve</a> for patch downloads.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   127
                    </td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   128
                    <td>Sun Studio 11 </td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   129
                </tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   130
                <tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   131
                    <td>Solaris SPARCV9 (64bit)</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   132
                    <td>Solaris 10 + patches
fd16c54261b3 Initial load
duke
parents:
diff changeset
   133
                        <br>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   134
                        See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE">SunSolve</a> for patch downloads.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   135
                    </td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   136
                    <td>Sun Studio 11</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   137
                </tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   138
                <tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   139
                    <td>Solaris X86 (32bit)</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   140
                    <td>Solaris 10 + patches
fd16c54261b3 Initial load
duke
parents:
diff changeset
   141
                        <br>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   142
                        See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE">SunSolve</a> for patch downloads.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   143
                    </td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   144
                    <td>Sun Studio 11</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   145
                </tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   146
                <tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   147
                    <td>Solaris X64 (64bit)</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   148
                    <td>Solaris 10 + patches
fd16c54261b3 Initial load
duke
parents:
diff changeset
   149
                        <br>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   150
                        See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE">SunSolve</a> for patch downloads.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   151
                    </td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   152
                    <td>Sun Studio 11</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   153
                </tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   154
                <tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   155
                    <td>Windows X86 (32bit)</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   156
                    <td>Windows XP</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   157
                    <td>Microsoft Visual Studio .NET 2003 Professional</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   158
                </tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   159
                <tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   160
                    <td>Windows X64 (64bit)</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   161
                    <td>Windows Server 2003 - Enterprise x64 Edition</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   162
                    <td>Microsoft Platform SDK - April 2005</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   163
                </tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   164
            </tbody>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   165
        </table>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   166
    </center>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   167
</blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   168
fd16c54261b3 Initial load
duke
parents:
diff changeset
   169
<!-- ------------------------------------------------------ -->
fd16c54261b3 Initial load
duke
parents:
diff changeset
   170
<hr noshade="noshade" size="3">
fd16c54261b3 Initial load
duke
parents:
diff changeset
   171
fd16c54261b3 Initial load
duke
parents:
diff changeset
   172
<h2><a name="SDBE">Specific Developer Build Environments</a></h2>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   173
fd16c54261b3 Initial load
duke
parents:
diff changeset
   174
<blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   175
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   176
    We won't be listing all the possible environments, but
fd16c54261b3 Initial load
duke
parents:
diff changeset
   177
    we will try to provide what information we have available to us.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   178
</blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   179
fd16c54261b3 Initial load
duke
parents:
diff changeset
   180
<h3><a name="fedora">Fedora</a></h3>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   181
fd16c54261b3 Initial load
duke
parents:
diff changeset
   182
<blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   183
    TBD
fd16c54261b3 Initial load
duke
parents:
diff changeset
   184
</blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   185
fd16c54261b3 Initial load
duke
parents:
diff changeset
   186
<h3><a name="debian">Debian</a></h3>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   187
fd16c54261b3 Initial load
duke
parents:
diff changeset
   188
<blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   189
    TBD
fd16c54261b3 Initial load
duke
parents:
diff changeset
   190
</blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   191
fd16c54261b3 Initial load
duke
parents:
diff changeset
   192
<h3><a name="ubuntu">Ubuntu</a></h3>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   193
fd16c54261b3 Initial load
duke
parents:
diff changeset
   194
<blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   195
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   196
    In addition to needing the Bootstrap JDK and the Binary Plugs, 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   197
    when building on Ubuntu you will need to
fd16c54261b3 Initial load
duke
parents:
diff changeset
   198
    make sure certain packages are installed.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   199
    In particular, certain X11 packages, make, m4, gawk, gcc 4, 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   200
    binutils, cups, freetype
fd16c54261b3 Initial load
duke
parents:
diff changeset
   201
    and alsa.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   202
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
   203
    <h4>Ubuntu 6.06</h4>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   204
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
   205
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   206
    The following list of packages for Ubuntu 6.06 is a working set that
fd16c54261b3 Initial load
duke
parents:
diff changeset
   207
    does appear to work. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   208
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
   209
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   210
    <b>Note that it's quite possible that some of these
fd16c54261b3 Initial load
duke
parents:
diff changeset
   211
        packages are not required, so anyone discovering that some of the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   212
        packages listed below are NOT required,
fd16c54261b3 Initial load
duke
parents:
diff changeset
   213
        please let the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   214
        OpenJDK
fd16c54261b3 Initial load
duke
parents:
diff changeset
   215
    team know.</b>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   216
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   217
    All the packages below can be installed with the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   218
    Synaptic Package manager provided with the base Ubuntu 6.06 release.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   219
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
   220
    <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   221
        <ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   222
            <li>binutils (2.16.1cvs20060117-1ubuntu2.1)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   223
            <li>cpp (4:4.0.3-1)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   224
            <li>cpp-4.0 (4.0.3-1ubuntu5)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   225
            <li>libfreetype6-dev</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   226
            <li>g++ (4:4.0.3-1)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   227
            <li>g++-4.0 (4.0.3-1ubuntu5)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   228
            <li>gawk (1:3.1.5-2build1)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   229
            <li>gcc (4:4.0.3-1)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   230
            <li>gcc-4.0 (4.0.3-1ubuntu5)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   231
            <li>libasound2-dev (1.0.10-2ubuntu4)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   232
            <li>libc6 (2.3.6-0ubuntu20) to 2.3.6-0ubuntu20.4</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   233
            <li>libc6-dev (2.3.6-0ubuntu20.4)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   234
            <li>libc6-i686 (2.3.6-0ubuntu20) to 2.3.6-0ubuntu20.4</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   235
            <li>libcupsys2-dev (1.2.2-0ubuntu0.6.06)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   236
            <li>libgcrypt11-dev (1.2.2-1)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   237
            <li>libgnutls-dev (1.2.9-2ubuntu1.1)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   238
            <li>libgnutls12 (1.2.9-2ubuntu1) to 1.2.9-2ubuntu1.1</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   239
            <li>libgpg-error-dev (1.1-4)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   240
            <li>libice-dev (2:1.0.0-0ubuntu2)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   241
            <li>liblockfile1 (1.06.1)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   242
            <li>libopencdk8-dev (0.5.7-2)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   243
            <li>libpopt-dev (1.7-5)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   244
            <li>libsm-dev (2:1.0.0-0ubuntu2)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   245
            <li>libstdc++6-4.0-dev (4.0.3-1ubuntu5)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   246
            <li>libtasn1-2-dev (0.2.17-1ubuntu1)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   247
            <li>libx11-dev (2:1.0.0-0ubuntu9)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   248
            <li>libxau-dev (1:1.0.0-0ubuntu4)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   249
            <li>libxaw-headers (2:1.0.1-0ubuntu3)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   250
            <li>libxaw7-dev (2:1.0.1-0ubuntu3)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   251
            <li>libxdmcp-dev (1:1.0.0-0ubuntu2)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   252
            <li>libxext-dev (2:1.0.0-0ubuntu4)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   253
            <li>libxi-dev (2:1.0.0-0ubuntu3) </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   254
            <li>libxmu-dev (2:1.0.0-0ubuntu3)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   255
            <li>libxmu-headers (2:1.0.0-0ubuntu3)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   256
            <li>libxmuu-dev (2:1.0.0-0ubuntu3)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   257
            <li>libxp-dev (6.8.2-11ubuntu2)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   258
            <li>libxpm-dev (1:3.5.4.2-0ubuntu3)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   259
            <li>libxrandr-dev (1:1.1.0.2-0ubuntu4)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   260
            <li>libxt-dev (1:1.0.0-0ubuntu3)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   261
            <li>libxtrap-dev (2:1.0.0-0ubuntu2)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   262
            <li>libxtst-dev (2:1.0.1-0ubuntu2)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   263
            <li>libxv-dev (2:1.0.1-0ubuntu3)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   264
            <li>linux-kernel-headers (2.6.11.2-0ubuntu18)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   265
            <li>m4 (1.4.4-1)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   266
            <li>make (3.80+3.81.b4-1)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   267
            <li>ssl-cert (1.0.13)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   268
            <li>x-dev (7.0.4-0ubuntu2)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   269
            <li>x11proto-core-dev (7.0.4-0ubuntu2)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   270
            <li>x11proto-input-dev (1.3.2-0ubuntu2)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   271
            <li>x11proto-kb-dev (1.0.2-0ubuntu2)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   272
            <li>x11proto-randr-dev (1.1.2-0ubuntu2)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   273
            <li>x11proto-record-dev (1.13.2-0ubuntu2)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   274
            <li>x11proto-trap-dev (3.4.3-0ubuntu2)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   275
            <li>x11proto-video-dev (2.2.2-0ubuntu2)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   276
            <li>x11proto-xext-dev (7.0.2-0ubuntu2)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   277
            <li>xlibs-dev (7.0.0-0ubuntu45)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   278
            <li>zlib1g-dev (1:1.2.3-6ubuntu4)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   279
        </ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   280
    </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   281
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
   282
    <h4>Ubuntu 7.04</h4>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   283
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
   284
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   285
    Using the Synaptic Package Manager, download the following
fd16c54261b3 Initial load
duke
parents:
diff changeset
   286
    packages (double indented packages are automatically aquired
fd16c54261b3 Initial load
duke
parents:
diff changeset
   287
    due to package dependencies):
fd16c54261b3 Initial load
duke
parents:
diff changeset
   288
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
   289
    <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   290
        <ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   291
            <li>build-essential</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   292
            <ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   293
                <li>dpkg-dev</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   294
                <li>g++</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   295
                <li>g++-4.1</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   296
                <li>libc6-dev</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   297
                <li>libstdc++6.4.1-dev</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   298
                <li>linux-libc-dev</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   299
            </ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   300
            <li>gawk</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   301
            <li>m4</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   302
            <li>libasound2-dev</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   303
            <li>libcupsys2-dev</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   304
            <ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   305
                <li>libgcrypt11-dev</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   306
                <li>lgnutls-dev</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   307
                <li>libgpg-error-dev</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   308
                <li>liblzo-dev</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   309
                <li>libopencdk8-dev</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   310
                <li>libpopt-dev</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   311
                <li>libtasn1-3-dev</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   312
                <li>zlib1g-dev</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   313
            </ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   314
            <li>sun-java6-jdk</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   315
            <ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   316
                <li>java-common</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   317
                <li>libltdl3</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   318
                <li>odbcinst1debian1</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   319
                <li>sun-java6-bin</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   320
                <li>sun-java6-jre</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   321
                <li>unixodbc</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   322
            </ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   323
            <li>xlibs-dev</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   324
            <ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   325
                <li>(many)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   326
            </ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   327
            <li>x11proto-print-dev</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   328
            <li>libxaw7-dev</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   329
            <ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   330
                <li>libxaw-headers</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   331
            </ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   332
            <li>libxp-dev</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   333
            <li>libfreetype6-dev</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   334
        </ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   335
    </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   336
</blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   337
fd16c54261b3 Initial load
duke
parents:
diff changeset
   338
<!-- ------------------------------------------------------ -->
fd16c54261b3 Initial load
duke
parents:
diff changeset
   339
<hr noshade="noshade" size="3">
fd16c54261b3 Initial load
duke
parents:
diff changeset
   340
fd16c54261b3 Initial load
duke
parents:
diff changeset
   341
<h2><a name="directories">Source Directory Structure</a></h2>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   342
fd16c54261b3 Initial load
duke
parents:
diff changeset
   343
<blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   344
    <p>
15
09a7d98b9d8f 6662830: OpenJDK build testing results
ohair
parents: 0
diff changeset
   345
    The source code for the OpenJDK is delivered in a set of
09a7d98b9d8f 6662830: OpenJDK build testing results
ohair
parents: 0
diff changeset
   346
    directories:
0
fd16c54261b3 Initial load
duke
parents:
diff changeset
   347
    <tt>hotspot</tt>, 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   348
    <tt>langtools</tt>, 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   349
    <tt>corba</tt>, 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   350
    <tt>jaxws</tt>, 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   351
    <tt>jaxp</tt>, 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   352
    and
15
09a7d98b9d8f 6662830: OpenJDK build testing results
ohair
parents: 0
diff changeset
   353
    <tt>jdk</tt>.
0
fd16c54261b3 Initial load
duke
parents:
diff changeset
   354
    The <tt>hotspot</tt> directory contains the source code and make
15
09a7d98b9d8f 6662830: OpenJDK build testing results
ohair
parents: 0
diff changeset
   355
    files for building the OpenJDK Hotspot Virtual Machine. 
09a7d98b9d8f 6662830: OpenJDK build testing results
ohair
parents: 0
diff changeset
   356
    The <tt>langtools</tt> directory contains the source code and make
09a7d98b9d8f 6662830: OpenJDK build testing results
ohair
parents: 0
diff changeset
   357
    files for building the OpenJDK javac and language tools.
09a7d98b9d8f 6662830: OpenJDK build testing results
ohair
parents: 0
diff changeset
   358
    The <tt>corba</tt> directory contains the source code and make
09a7d98b9d8f 6662830: OpenJDK build testing results
ohair
parents: 0
diff changeset
   359
    files for building the OpenJDK Corba files.
09a7d98b9d8f 6662830: OpenJDK build testing results
ohair
parents: 0
diff changeset
   360
    The <tt>jaxws</tt> directory contains the source code and make
09a7d98b9d8f 6662830: OpenJDK build testing results
ohair
parents: 0
diff changeset
   361
    files for building the OpenJDK JAXWS files.
09a7d98b9d8f 6662830: OpenJDK build testing results
ohair
parents: 0
diff changeset
   362
    The <tt>jaxp</tt> directory contains the source code and make
09a7d98b9d8f 6662830: OpenJDK build testing results
ohair
parents: 0
diff changeset
   363
    files for building the OpenJDK JAXP files.
09a7d98b9d8f 6662830: OpenJDK build testing results
ohair
parents: 0
diff changeset
   364
    The <tt>jdk</tt> directory contains the source code and make files for
09a7d98b9d8f 6662830: OpenJDK build testing results
ohair
parents: 0
diff changeset
   365
    building the OpenJDK runtime libraries and misc files.
09a7d98b9d8f 6662830: OpenJDK build testing results
ohair
parents: 0
diff changeset
   366
    The top level <tt>Makefile</tt>
09a7d98b9d8f 6662830: OpenJDK build testing results
ohair
parents: 0
diff changeset
   367
    is used to build the entire OpenJDK.
0
fd16c54261b3 Initial load
duke
parents:
diff changeset
   368
</blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   369
fd16c54261b3 Initial load
duke
parents:
diff changeset
   370
<!-- ------------------------------------------------------ -->
fd16c54261b3 Initial load
duke
parents:
diff changeset
   371
<hr noshade="noshade" size="3">
fd16c54261b3 Initial load
duke
parents:
diff changeset
   372
fd16c54261b3 Initial load
duke
parents:
diff changeset
   373
<h2><a name="building">Build Information</a></h2>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   374
fd16c54261b3 Initial load
duke
parents:
diff changeset
   375
<blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   376
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   377
    Building the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   378
    OpenJDK
fd16c54261b3 Initial load
duke
parents:
diff changeset
   379
    is done with a <tt><i>gmake</i></tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   380
    command line and various
fd16c54261b3 Initial load
duke
parents:
diff changeset
   381
    environment or make variable settings that direct the make rules
fd16c54261b3 Initial load
duke
parents:
diff changeset
   382
    to where various components have been installed.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   383
    Where possible the makefiles will attempt to located the various
fd16c54261b3 Initial load
duke
parents:
diff changeset
   384
    components in the default locations or any component specific 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   385
    variable settings.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   386
    When the normal defaults fail or components cannot be found,
fd16c54261b3 Initial load
duke
parents:
diff changeset
   387
    the various
fd16c54261b3 Initial load
duke
parents:
diff changeset
   388
    <tt>ALT_*</tt> variables (alternates)
fd16c54261b3 Initial load
duke
parents:
diff changeset
   389
    can be used to help the makefiles locate components.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   390
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   391
    Refer to the bash/sh/ksh setup file
fd16c54261b3 Initial load
duke
parents:
diff changeset
   392
    <tt>jdk/make/jdk_generic_profile.sh</tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   393
    if you need help in setting up your environment variables.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   394
    A build could be as simple as:
fd16c54261b3 Initial load
duke
parents:
diff changeset
   395
    <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   396
        <pre><tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   397
                bash
fd16c54261b3 Initial load
duke
parents:
diff changeset
   398
                . jdk/make/jdk_generic_profile.sh
fd16c54261b3 Initial load
duke
parents:
diff changeset
   399
                <i>gmake</i> sanity &amp;&amp; <i>gmake</i>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   400
        </tt></pre>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   401
    </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   402
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   403
    Of course ksh or sh would work too.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   404
    But some customization will probably be necessary.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   405
    The <tt>sanity</tt> rule will make some basic checks on build
fd16c54261b3 Initial load
duke
parents:
diff changeset
   406
    dependencies and generate appropriate warning messages
fd16c54261b3 Initial load
duke
parents:
diff changeset
   407
    regarding missing, out of date, or newer than expected components
fd16c54261b3 Initial load
duke
parents:
diff changeset
   408
    found on your system.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   409
</blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   410
fd16c54261b3 Initial load
duke
parents:
diff changeset
   411
<!-- ------------------------------------------------------ -->
fd16c54261b3 Initial load
duke
parents:
diff changeset
   412
<hr noshade="noshade" size="3">
fd16c54261b3 Initial load
duke
parents:
diff changeset
   413
fd16c54261b3 Initial load
duke
parents:
diff changeset
   414
<h3><a name="gmake">GNU make (<tt><i>gmake</i></tt>)</a></h3>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   415
fd16c54261b3 Initial load
duke
parents:
diff changeset
   416
<blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   417
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   418
    The Makefiles in the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   419
    OpenJDK 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   420
    are only valid when used with the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   421
    GNU version of the utility command <tt>make</tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   422
    (<tt><i>gmake</i></tt>).
fd16c54261b3 Initial load
duke
parents:
diff changeset
   423
    A few notes about using GNU make:
fd16c54261b3 Initial load
duke
parents:
diff changeset
   424
    <ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   425
        <li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   426
            In general, you need GNU make version 3.78.1 or newer.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   427
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   428
        <li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   429
            Place the location of the GNU make binary in the <tt>PATH</tt>. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   430
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   431
        <li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   432
            <strong>Linux:</strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   433
            The <tt>/usr/bin/make</tt> command should work fine for you.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   434
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   435
        <li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   436
            <strong>Solaris:</strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   437
            Do NOT use <tt>/usr/bin/make</tt> on Solaris.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   438
            If your Solaris system has the software
fd16c54261b3 Initial load
duke
parents:
diff changeset
   439
            from the Solaris Companion CD installed, 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   440
            you should use <tt>gmake</tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   441
            which will be located in either the <tt>/opt/sfw/bin</tt> or 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   442
            <tt>/usr/sfw/bin</tt> directory.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   443
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   444
        <li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   445
            <strong>Windows:</strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   446
            Make sure you start your build inside a bash/sh/ksh shell.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   447
            <br>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   448
            <b>WARNING:</b> Watch out for make version 3.81, it may
fd16c54261b3 Initial load
duke
parents:
diff changeset
   449
            not work due to a lack of support for drive letter paths
fd16c54261b3 Initial load
duke
parents:
diff changeset
   450
            like <tt>C:/</tt>. Use a 3.80 version, or find a newer
fd16c54261b3 Initial load
duke
parents:
diff changeset
   451
            version that has this problem fixed.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   452
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   453
    </ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   454
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   455
    Information on GNU make, and access to ftp download sites, are
fd16c54261b3 Initial load
duke
parents:
diff changeset
   456
    available on the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   457
    <a href="http://www.gnu.org/software/make/make.html">
fd16c54261b3 Initial load
duke
parents:
diff changeset
   458
        GNU make web site
fd16c54261b3 Initial load
duke
parents:
diff changeset
   459
    </a>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   460
    The latest source to GNU make is available at
fd16c54261b3 Initial load
duke
parents:
diff changeset
   461
    <a href="http://ftp.gnu.org/pub/gnu/make/">ftp.gnu.org/pub/gnu/make/</a>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   462
</blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   463
fd16c54261b3 Initial load
duke
parents:
diff changeset
   464
<!-- ------------------------------------------------------ -->
fd16c54261b3 Initial load
duke
parents:
diff changeset
   465
<hr noshade="noshade" size="3">
fd16c54261b3 Initial load
duke
parents:
diff changeset
   466
fd16c54261b3 Initial load
duke
parents:
diff changeset
   467
<h3><a name="linux">Basic Linux System Setup</a></h3>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   468
fd16c54261b3 Initial load
duke
parents:
diff changeset
   469
<blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   470
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   471
    <strong>i586 only:</strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   472
    The minimum recommended hardware for building the Linux version
fd16c54261b3 Initial load
duke
parents:
diff changeset
   473
    is a Pentium class processor or better, at least 256 MB of RAM, and
fd16c54261b3 Initial load
duke
parents:
diff changeset
   474
    approximately 1.5 GB of free disk space.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   475
    <p> 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   476
    <strong>X64 only:</strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   477
    The minimum recommended hardware for building the Linux
fd16c54261b3 Initial load
duke
parents:
diff changeset
   478
    version is an AMD Opteron class processor, at least 512 MB of RAM, and
fd16c54261b3 Initial load
duke
parents:
diff changeset
   479
    approximately 4 GB of free disk space.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   480
    <p> 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   481
    The build will use the tools contained in 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   482
    <tt>/bin</tt> and 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   483
    <tt>/usr/bin</tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   484
    of a standard installation of the Linux operating environment. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   485
    You should ensure that these directories are in your 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   486
    <tt>PATH</tt>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   487
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   488
    Note that some Linux systems have a habit of pre-populating
fd16c54261b3 Initial load
duke
parents:
diff changeset
   489
    your environment variables for you, for example <tt>JAVA_HOME</tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   490
    might get pre-defined for you to refer to the JDK installed on
fd16c54261b3 Initial load
duke
parents:
diff changeset
   491
    your Linux system. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   492
    You will need to unset <tt>JAVA_HOME</tt>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   493
    It's a good idea to run <tt>env</tt> and verify the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   494
    environment variables you are getting from the default system
fd16c54261b3 Initial load
duke
parents:
diff changeset
   495
    settings make sense for building the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   496
    OpenJDK.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   497
</blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   498
fd16c54261b3 Initial load
duke
parents:
diff changeset
   499
<!-- ------------------------------------------------------ -->
fd16c54261b3 Initial load
duke
parents:
diff changeset
   500
fd16c54261b3 Initial load
duke
parents:
diff changeset
   501
<h4><a name="linux_checklist">Basic Linux Check List</a></h4>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   502
fd16c54261b3 Initial load
duke
parents:
diff changeset
   503
<blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   504
    <ol>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   505
        <li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   506
            Install the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   507
            <a href="#bootjdk">Bootstrap JDK</a>, set
fd16c54261b3 Initial load
duke
parents:
diff changeset
   508
            <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   509
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   510
        <li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   511
            Install the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   512
            <a href="#binaryplugs">Binary Plugs</a>, set
fd16c54261b3 Initial load
duke
parents:
diff changeset
   513
            <tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   514
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   515
        <li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   516
            Install or upgrade the <a href="#freetype">FreeType development
fd16c54261b3 Initial load
duke
parents:
diff changeset
   517
            package</a>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   518
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   519
    </ol>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   520
</blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   521
fd16c54261b3 Initial load
duke
parents:
diff changeset
   522
<!-- ------------------------------------------------------ -->
fd16c54261b3 Initial load
duke
parents:
diff changeset
   523
<hr noshade="noshade" size="3">
fd16c54261b3 Initial load
duke
parents:
diff changeset
   524
fd16c54261b3 Initial load
duke
parents:
diff changeset
   525
<h3><a name="solaris">Basic Solaris System Setup</a></h3>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   526
fd16c54261b3 Initial load
duke
parents:
diff changeset
   527
<blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   528
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   529
    The minimum recommended hardware for building the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   530
    Solaris SPARC version is an UltraSPARC with 512 MB of RAM. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   531
    For building
fd16c54261b3 Initial load
duke
parents:
diff changeset
   532
    the Solaris x86 version, a Pentium class processor or better and at
fd16c54261b3 Initial load
duke
parents:
diff changeset
   533
    least 128 MB of RAM are recommended. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   534
    Approximately 1.4 GB of free disk
fd16c54261b3 Initial load
duke
parents:
diff changeset
   535
    space is needed for a 32-bit build.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   536
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   537
    If you are building the 64bit version, you should
fd16c54261b3 Initial load
duke
parents:
diff changeset
   538
    run the command "isainfo -v" to verify that you have a
fd16c54261b3 Initial load
duke
parents:
diff changeset
   539
    64-bit installation. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   540
    An additional 7 GB of free disk space is needed
fd16c54261b3 Initial load
duke
parents:
diff changeset
   541
    for a 64-bit build.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   542
    <p> 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   543
    The build uses the tools contained in <tt>/usr/ccs/bin</tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   544
    and <tt>/usr/bin</tt> of a standard developer or full installation of
fd16c54261b3 Initial load
duke
parents:
diff changeset
   545
    the Solaris operating environment.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   546
</blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   547
fd16c54261b3 Initial load
duke
parents:
diff changeset
   548
<!-- ------------------------------------------------------ -->
fd16c54261b3 Initial load
duke
parents:
diff changeset
   549
fd16c54261b3 Initial load
duke
parents:
diff changeset
   550
<h4><a name="solaris_checklist">Basic Solaris Check List</a></h4>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   551
fd16c54261b3 Initial load
duke
parents:
diff changeset
   552
<blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   553
    <ol>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   554
        <li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   555
            Install the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   556
            <a href="#bootjdk">Bootstrap JDK</a>, set
fd16c54261b3 Initial load
duke
parents:
diff changeset
   557
            <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   558
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   559
        <li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   560
            Install the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   561
            <a href="#binaryplugs">Binary Plugs</a>, set
fd16c54261b3 Initial load
duke
parents:
diff changeset
   562
            <tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   563
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   564
        <li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   565
            Install the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   566
            <a href="#studio">Sun Studio Compilers</a>, set
fd16c54261b3 Initial load
duke
parents:
diff changeset
   567
            <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   568
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   569
        <li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   570
            Install the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   571
            <a href="#cups">CUPS Include files</a>, set
fd16c54261b3 Initial load
duke
parents:
diff changeset
   572
            <tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   573
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   574
    </ol>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   575
</blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   576
fd16c54261b3 Initial load
duke
parents:
diff changeset
   577
<!-- ------------------------------------------------------ -->
fd16c54261b3 Initial load
duke
parents:
diff changeset
   578
<hr noshade="noshade" size="3">
fd16c54261b3 Initial load
duke
parents:
diff changeset
   579
fd16c54261b3 Initial load
duke
parents:
diff changeset
   580
<h3><a name="windows">Basic Windows System Setup</a></h3>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   581
fd16c54261b3 Initial load
duke
parents:
diff changeset
   582
<blockquote> 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   583
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   584
    <strong>i586 only:</strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   585
    The minimum recommended hardware for building the 32bit or X86
fd16c54261b3 Initial load
duke
parents:
diff changeset
   586
    Windows version is an Pentium class processor or better, at least
fd16c54261b3 Initial load
duke
parents:
diff changeset
   587
    512 MB of RAM, and approximately 600 MB of free disk space.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   588
    <strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   589
        NOTE: The Windows 2000 build machines need to use the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   590
        file system NTFS. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   591
        Build machines formatted to FAT32 will not work 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   592
        because FAT32 doesn't support case-sensitivity in file names.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   593
    </strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   594
    <p> 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   595
    <strong>X64 only:</strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   596
    The minimum recommended hardware for building
fd16c54261b3 Initial load
duke
parents:
diff changeset
   597
    the Windows X64 version is an AMD Opteron class processor, at least 1
fd16c54261b3 Initial load
duke
parents:
diff changeset
   598
    GB of RAM, and approximately 10 GB of free disk space.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   599
</blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   600
fd16c54261b3 Initial load
duke
parents:
diff changeset
   601
<!-- ------------------------------------------------------ -->
fd16c54261b3 Initial load
duke
parents:
diff changeset
   602
fd16c54261b3 Initial load
duke
parents:
diff changeset
   603
<h4><a name="paths">Windows Paths</a></h4>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   604
fd16c54261b3 Initial load
duke
parents:
diff changeset
   605
<blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   606
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   607
    <strong>Windows:</strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   608
    Note that GNU make is a historic utility and is based very
fd16c54261b3 Initial load
duke
parents:
diff changeset
   609
    heavily on shell scripting, so it does not tolerate the Windows habit
fd16c54261b3 Initial load
duke
parents:
diff changeset
   610
    of having spaces in pathnames or the use of the <tt>\</tt>characters in pathnames.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   611
    Luckily on most Windows systems, you can use <tt>/</tt>instead of \, and
fd16c54261b3 Initial load
duke
parents:
diff changeset
   612
    there is always a 'short' pathname without spaces for any path that 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   613
    contains spaces.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   614
    Unfortunately, this short pathname can be somewhat dynamic and the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   615
    formula is difficult to explain.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   616
    You can use <tt>cygpath</tt> utility to map pathnames with spaces
fd16c54261b3 Initial load
duke
parents:
diff changeset
   617
    or the <tt>\</tt>character into the <tt>C:/</tt> style of pathname
fd16c54261b3 Initial load
duke
parents:
diff changeset
   618
    (called 'mixed'), e.g.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   619
    <tt>cygpath -s -m "<i>path</i>"</tt>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   620
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   621
    The makefiles will try to translate any pathnames supplied
fd16c54261b3 Initial load
duke
parents:
diff changeset
   622
    to it into the <tt>C:/</tt> style automatically.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   623
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   624
    Note that use of CYGWIN creates a unique problem with regards to
fd16c54261b3 Initial load
duke
parents:
diff changeset
   625
    setting <a href="#path"><tt>PATH</tt></a>. Normally on Windows
fd16c54261b3 Initial load
duke
parents:
diff changeset
   626
    the <tt>PATH</tt> variable contains directories
fd16c54261b3 Initial load
duke
parents:
diff changeset
   627
    separated with the ";" character (Solaris and Linux uses ":").
fd16c54261b3 Initial load
duke
parents:
diff changeset
   628
    With CYGWIN, it uses ":", but that means that paths like "C:/path"
fd16c54261b3 Initial load
duke
parents:
diff changeset
   629
    cannot be placed in the CYGWIN version  of <tt>PATH</tt> and
fd16c54261b3 Initial load
duke
parents:
diff changeset
   630
    instead CYGWIN uses something like <tt>/cygdrive/c/path</tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   631
    which CYGWIN understands, but only CYGWIN understands.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   632
    So be careful with paths on Windows.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   633
</blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   634
fd16c54261b3 Initial load
duke
parents:
diff changeset
   635
<!-- ------------------------------------------------------ -->
fd16c54261b3 Initial load
duke
parents:
diff changeset
   636
fd16c54261b3 Initial load
duke
parents:
diff changeset
   637
<h4><a name="windows_checklist">Basic Windows Check List</a></h4>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   638
fd16c54261b3 Initial load
duke
parents:
diff changeset
   639
<blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   640
    <ol>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   641
        <li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   642
            Install the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   643
            <a href="#cygwin">CYGWIN product</a>. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   644
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   645
        <li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   646
            Install the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   647
            <a href="#bootjdk">Bootstrap JDK</a>, set
fd16c54261b3 Initial load
duke
parents:
diff changeset
   648
            <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   649
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   650
        <li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   651
            Install the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   652
            <a href="#binaryplugs">Binary Plugs</a>, set
fd16c54261b3 Initial load
duke
parents:
diff changeset
   653
            <tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>..
fd16c54261b3 Initial load
duke
parents:
diff changeset
   654
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   655
        <li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   656
            Install the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   657
            <a href="#msvc">Microsoft Visual Studio .NET 2003 Professional</a> or the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   658
            <a href="#mssdk">Microsoft Platform SDK</a>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   659
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   660
        <li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   661
            Setup all environment variables for compilers 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   662
            (see <a href="#msvc">compilers</a>).
fd16c54261b3 Initial load
duke
parents:
diff changeset
   663
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   664
        <li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   665
            Install 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   666
            <a href="#dxsdk">Microsoft DirectX SDK</a>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   667
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   668
    </ol>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   669
</blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   670
fd16c54261b3 Initial load
duke
parents:
diff changeset
   671
<!-- ------------------------------------------------------ -->
fd16c54261b3 Initial load
duke
parents:
diff changeset
   672
<hr noshade="noshade" size="3">
fd16c54261b3 Initial load
duke
parents:
diff changeset
   673
fd16c54261b3 Initial load
duke
parents:
diff changeset
   674
<h3><a name="dependencies">Build Dependencies</a></h3>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   675
fd16c54261b3 Initial load
duke
parents:
diff changeset
   676
<blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   677
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   678
    Depending on the platform, the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   679
    OpenJDK 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   680
    build process has some basic
fd16c54261b3 Initial load
duke
parents:
diff changeset
   681
    dependencies on components not part of the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   682
    OpenJDK 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   683
    sources.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   684
    Some of these are specific to a platform, some even specific to
fd16c54261b3 Initial load
duke
parents:
diff changeset
   685
    an architecture.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   686
    Each dependency will have a set of ALT variables that can be set
fd16c54261b3 Initial load
duke
parents:
diff changeset
   687
    to tell the makefiles where to locate the component.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   688
    In most cases setting these ALT variables may not be necessary
fd16c54261b3 Initial load
duke
parents:
diff changeset
   689
    and the makefiles will find defaults on the system in standard
fd16c54261b3 Initial load
duke
parents:
diff changeset
   690
    install locations or through component specific variables.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   691
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
   692
    <h4><a name="bootjdk">Bootstrap JDK</a></h4>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   693
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
   694
    <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   695
        <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   696
        All 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   697
        OpenJDK 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   698
        builds require access to the previously released 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   699
        JDK 6, this is often called a bootstrap JDK.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   700
        The JDK 6 binaries can be downloaded from Sun's 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   701
        <a href="http://java.sun.com/javase/1.6.0/download.html">JDK 6 download site</a>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   702
        For build performance reasons
fd16c54261b3 Initial load
duke
parents:
diff changeset
   703
        is very important that this bootstrap JDK be made available on the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   704
        local disk of the machine doing the build.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   705
        You should always set 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   706
        <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   707
        to point to the location of
fd16c54261b3 Initial load
duke
parents:
diff changeset
   708
        the bootstrap JDK installation, this is the directory pathname
fd16c54261b3 Initial load
duke
parents:
diff changeset
   709
        that contains a <tt>bin, lib, and include</tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   710
        It's also a good idea to also place its <tt>bin</tt> directory
fd16c54261b3 Initial load
duke
parents:
diff changeset
   711
        in the <tt>PATH</tt> environment variable, although it's
fd16c54261b3 Initial load
duke
parents:
diff changeset
   712
        not required.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   713
        <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   714
        <strong>Solaris:</strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   715
        Some pre-installed JDK images may be available to you in the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   716
        directory <tt>/usr/jdk/instances</tt>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   717
        If you don't set
fd16c54261b3 Initial load
duke
parents:
diff changeset
   718
        <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   719
        the makefiles will look in that location for a JDK it can use.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   720
    </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   721
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
   722
    <h4><a name="binaryplugs">Binary Plugs</a></h4>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   723
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
   724
    <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   725
        <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   726
        Not all of the source code that makes up the JDK is available
fd16c54261b3 Initial load
duke
parents:
diff changeset
   727
        under an open-source license.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   728
        In order to build an OpenJDK binary from source code,
fd16c54261b3 Initial load
duke
parents:
diff changeset
   729
        you must first download and install the appropriate
15
09a7d98b9d8f 6662830: OpenJDK build testing results
ohair
parents: 0
diff changeset
   730
	binary plug bundles from the OpenJDK, go to the
09a7d98b9d8f 6662830: OpenJDK build testing results
ohair
parents: 0
diff changeset
   731
	<a href="http://openjdk.java.net">OpenJDK</a> site and select
09a7d98b9d8f 6662830: OpenJDK build testing results
ohair
parents: 0
diff changeset
   732
	the "<b>Bundles(7)</b>" link.
0
fd16c54261b3 Initial load
duke
parents:
diff changeset
   733
        During the OpenJDK build process these "binary plugs"
fd16c54261b3 Initial load
duke
parents:
diff changeset
   734
        for the encumbered components will be copied into your
fd16c54261b3 Initial load
duke
parents:
diff changeset
   735
        resulting OpenJDK binary build image.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   736
        These binary plug files are only for the purpose of
fd16c54261b3 Initial load
duke
parents:
diff changeset
   737
        building an OpenJDK binary.
15
09a7d98b9d8f 6662830: OpenJDK build testing results
ohair
parents: 0
diff changeset
   738
        Make sure you set
0
fd16c54261b3 Initial load
duke
parents:
diff changeset
   739
        <tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   740
        to the root of this installation.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   741
    </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   742
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
   743
    <h4><a name="cacerts">Certificate Authority File (cacert)</a></h4>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   744
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
   745
    <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   746
        <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   747
        See <a href="http://en.wikipedia.org/wiki/CAcert">
fd16c54261b3 Initial load
duke
parents:
diff changeset
   748
        www.wikipedia.org/wiki/CAcert</a>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   749
        for a better understanding of the Certificate Authority (CA).
fd16c54261b3 Initial load
duke
parents:
diff changeset
   750
        A certificates file named "cacerts"
fd16c54261b3 Initial load
duke
parents:
diff changeset
   751
        represents a system-wide keystore with CA certificates. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   752
        In JDK and JRE
fd16c54261b3 Initial load
duke
parents:
diff changeset
   753
        binary bundles, the "cacerts" file contains root CA certificates from
fd16c54261b3 Initial load
duke
parents:
diff changeset
   754
        several public CAs (e.g., VeriSign, Thawte, and Baltimore).
fd16c54261b3 Initial load
duke
parents:
diff changeset
   755
        The source contain a cacerts file
fd16c54261b3 Initial load
duke
parents:
diff changeset
   756
        without CA root certificates. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   757
        Formal JDK builders will need to secure
fd16c54261b3 Initial load
duke
parents:
diff changeset
   758
        permission from each public CA and include the certificates into their
fd16c54261b3 Initial load
duke
parents:
diff changeset
   759
        own custom cacerts file. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   760
        Failure to provide a populated cacerts file
fd16c54261b3 Initial load
duke
parents:
diff changeset
   761
        will result in verification errors of a certificate chain during runtime.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   762
        The variable 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   763
        <tt><a href="#ALT_CACERTS_FILE">ALT_CACERTS_FILE</a></tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   764
        can be used to override the default location of the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   765
        cacerts file that will get placed in your build.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   766
        By default an empty cacerts file is provided and that should be
fd16c54261b3 Initial load
duke
parents:
diff changeset
   767
        fine for most JDK developers.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   768
    </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   769
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
   770
    <h4><a name="compilers">Compilers</a></h4>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   771
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
   772
    <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   773
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
   774
        <a name="gcc">
fd16c54261b3 Initial load
duke
parents:
diff changeset
   775
            <strong>Linux gcc/binutils</strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   776
        </a>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   777
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
   778
        <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   779
            <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   780
            The GNU gcc compiler version should be 3.2.2 or newer.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   781
            The binutils package should be 2.11.93.0.2-11 or newer.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   782
            The compiler used should be the default compiler installed
fd16c54261b3 Initial load
duke
parents:
diff changeset
   783
            in <tt>/usr/bin</tt>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   784
        </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   785
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
   786
        <strong><a name="studio">Solaris: Sun Studio</a></strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   787
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
   788
        <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   789
            <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   790
            At a minimum, the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   791
            <a href="http://developers.sun.com/sunstudio/index.jsp">
fd16c54261b3 Initial load
duke
parents:
diff changeset
   792
            Sun Studio 11 Compilers</a>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   793
            (containing version 5.8 of the C and C++ compilers) is required,
fd16c54261b3 Initial load
duke
parents:
diff changeset
   794
            with patches from the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   795
            <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access">
fd16c54261b3 Initial load
duke
parents:
diff changeset
   796
            SunSolve web site</a>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   797
            <p> 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   798
            Set 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   799
            <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   800
            to point to the location of
fd16c54261b3 Initial load
duke
parents:
diff changeset
   801
            the compiler binaries, and place this location in the <tt>PATH</tt>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   802
            <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   803
            The Sun Studio Express compilers at:
fd16c54261b3 Initial load
duke
parents:
diff changeset
   804
            <a href="http://developers.sun.com/sunstudio/downloads/express.jsp">
fd16c54261b3 Initial load
duke
parents:
diff changeset
   805
            Sun Studio Express Download site</a>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   806
            are also an option, although these compilers have not
fd16c54261b3 Initial load
duke
parents:
diff changeset
   807
            been extensively used yet.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   808
        </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   809
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
   810
        <a name="msvc">
fd16c54261b3 Initial load
duke
parents:
diff changeset
   811
            <strong>Windows i586: Microsoft Visual Studio .NET 2003 Professional</strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   812
        </a>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   813
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
   814
        <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   815
            <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   816
            The 32-bit 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   817
            OpenJDK
fd16c54261b3 Initial load
duke
parents:
diff changeset
   818
            Windows build
fd16c54261b3 Initial load
duke
parents:
diff changeset
   819
            requires Microsoft Visual Studio .NET 2003 (VS2003) Professional
fd16c54261b3 Initial load
duke
parents:
diff changeset
   820
            Edition compiler. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   821
            The compiler and other tools are expected to reside
fd16c54261b3 Initial load
duke
parents:
diff changeset
   822
            in the location defined by the variable <tt>VS71COMNTOOLS</tt> which
fd16c54261b3 Initial load
duke
parents:
diff changeset
   823
            is set by the Microsoft Visual Studio .NET installer.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   824
            <p> 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   825
            Once the compiler is installed, 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   826
            it is recommended that you run <tt>VCVARS32.BAT</tt> 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   827
            to set the compiler environment variables
fd16c54261b3 Initial load
duke
parents:
diff changeset
   828
            <tt>MSVCDIR</tt>, 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   829
            <tt>INCLUDE</tt>,
fd16c54261b3 Initial load
duke
parents:
diff changeset
   830
            <tt>LIB</tt>, and
fd16c54261b3 Initial load
duke
parents:
diff changeset
   831
            <tt>PATH</tt> 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   832
            prior to building the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   833
            OpenJDK.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   834
            The above environment variables <b>MUST</b> be set.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   835
            <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   836
            The Microsoft Visual Studio .NET 2005 (VS2005) compiler
fd16c54261b3 Initial load
duke
parents:
diff changeset
   837
            will not work at this time due to the new runtime dll
fd16c54261b3 Initial load
duke
parents:
diff changeset
   838
            and the manifest requirements.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   839
        </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   840
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
   841
        <a name="mssdk">
fd16c54261b3 Initial load
duke
parents:
diff changeset
   842
            <strong>Windows X64: Microsoft Platform SDK April 2005</strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   843
        </a>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   844
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
   845
        <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   846
            <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   847
            On <b>X64</b>,
fd16c54261b3 Initial load
duke
parents:
diff changeset
   848
            the Microsoft Platform Software
fd16c54261b3 Initial load
duke
parents:
diff changeset
   849
            Development Kit (SDK), April 2005 Edition compiler, is required for
fd16c54261b3 Initial load
duke
parents:
diff changeset
   850
            building the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   851
            OpenJDK
fd16c54261b3 Initial load
duke
parents:
diff changeset
   852
            because it contains the C/C++ compiler. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   853
            You will need to minimally install the Core SDK and
fd16c54261b3 Initial load
duke
parents:
diff changeset
   854
            the MDAC SDK features of this compiler.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   855
            <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   856
            Once the Platform SDK is installed,
fd16c54261b3 Initial load
duke
parents:
diff changeset
   857
            it is recommended that you run <tt>SetEnv.Cmd /X64</tt> 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   858
            to set the compiler environment variables
fd16c54261b3 Initial load
duke
parents:
diff changeset
   859
            <tt>MSSDK</tt>, 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   860
            <tt>MSTOOLS</tt>,
fd16c54261b3 Initial load
duke
parents:
diff changeset
   861
            <tt>INCLUDE</tt>,
fd16c54261b3 Initial load
duke
parents:
diff changeset
   862
            <tt>LIB</tt>, and
fd16c54261b3 Initial load
duke
parents:
diff changeset
   863
            <tt>PATH</tt> 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   864
            prior to building the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   865
            OpenJDK.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   866
            The above environment variables <b>MUST</b> be set.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   867
            <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   868
            Note that this compiler may say it's version is a
fd16c54261b3 Initial load
duke
parents:
diff changeset
   869
            Microsoft Visual Studio .NET 2005 (VS2005), but be careful,
fd16c54261b3 Initial load
duke
parents:
diff changeset
   870
            it will not match the official VS2005 product.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   871
            This Platform SDK compiler is only used on X64 builds.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   872
        </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   873
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
   874
    </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   875
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
   876
    <h4><a name="cups">Common UNIX Printing System (CUPS) Headers (Solaris &amp; Linux)</a></h4>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   877
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
   878
    <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   879
        <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   880
        <strong>Solaris:</strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   881
        CUPS header files are required for building the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   882
        OpenJDK on Solaris.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   883
        The Solaris header files can be obtained by installing 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   884
        the package <strong>SFWcups</strong> from the Solaris Software
fd16c54261b3 Initial load
duke
parents:
diff changeset
   885
        Companion CD/DVD, these often will be installed into 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   886
        <tt>/opt/sfw/cups</tt>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   887
        <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   888
        <strong>Linux:</strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   889
        CUPS header files are required for building the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   890
        OpenJDK on Linux.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   891
        The Linux header files are usually available from a "cups"
fd16c54261b3 Initial load
duke
parents:
diff changeset
   892
        development package, it's recommended that you try and use
fd16c54261b3 Initial load
duke
parents:
diff changeset
   893
        the package provided by the particular version of Linux that
fd16c54261b3 Initial load
duke
parents:
diff changeset
   894
        you are using.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   895
        <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   896
        The CUPS header files can always be downloaded from 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   897
        <a href="http://www.cups.org">www.cups.org</a>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   898
        The variable 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   899
        <tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   900
        can be used to override the default location of the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   901
        CUPS Header files.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   902
    </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   903
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
   904
    <h4><a name="freetype">FreeType 2</a></h4>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   905
fd16c54261b3 Initial load
duke
parents:
diff changeset
   906
    <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   907
        <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   908
        Version 2.3 or newer of FreeType is required for building the OpenJDK.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   909
        On Unix systems required files can be available as part of your
fd16c54261b3 Initial load
duke
parents:
diff changeset
   910
        distribution (while you still may need to upgrade them).
fd16c54261b3 Initial load
duke
parents:
diff changeset
   911
        Note that you need development version of package that 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   912
        includes both FreeType library and header files.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   913
        </p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   914
        <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   915
        You can always download latest FreeType version from the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   916
        <a href="http://www.freetype.org">FreeType website</a>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   917
        </p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   918
        <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   919
        Makefiles will try to pick FreeType from /usr/lib and /usr/include.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   920
        In case it is installed elsewhere you will need to set environment
fd16c54261b3 Initial load
duke
parents:
diff changeset
   921
        variables 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   922
        <tt><a href="#ALT_FREETYPE_LIB_PATH">ALT_FREETYPE_LIB_PATH</a></tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   923
        and 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   924
        <tt><a href="#ALT_FREETYPE_HEADERS_PATH">ALT_FREETYPE_HEADERS_PATH</a></tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   925
        to refer to place where library and header files are installed.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   926
        </p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   927
    </blockquote>    
fd16c54261b3 Initial load
duke
parents:
diff changeset
   928
fd16c54261b3 Initial load
duke
parents:
diff changeset
   929
    <h4><a name="alsa">Advanced Linux Sound Architecture (ALSA) (Linux only)</a></h4>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   930
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
   931
    <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   932
        <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   933
        <strong>Linux only:</strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   934
        Version 0.9.1 or newer of the ALSA files are
fd16c54261b3 Initial load
duke
parents:
diff changeset
   935
        required for building the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   936
        OpenJDK on Linux.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   937
        These Linux files are usually available from an "alsa"
fd16c54261b3 Initial load
duke
parents:
diff changeset
   938
        of "libasound"
fd16c54261b3 Initial load
duke
parents:
diff changeset
   939
        development package, it's recommended that you try and use
fd16c54261b3 Initial load
duke
parents:
diff changeset
   940
        the package provided by the particular version of Linux that
fd16c54261b3 Initial load
duke
parents:
diff changeset
   941
        you are using.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   942
        The makefiles will check this emit a sanity error if it is
fd16c54261b3 Initial load
duke
parents:
diff changeset
   943
        missing or the wrong version.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   944
        As a last resort you can go to the
fd16c54261b3 Initial load
duke
parents:
diff changeset
   945
        <a href="http://www.alsa-project.org" target="_blank">
fd16c54261b3 Initial load
duke
parents:
diff changeset
   946
        Advanced Linux Sound Architecture Site</a>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   947
    </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   948
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
   949
    <h4>Windows Specific Dependencies</h4>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   950
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
   951
    <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   952
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
   953
        <strong>Unix Command Tools (<a name="cygwin">CYGWIN</a>)</strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   954
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
   955
        <blockquote> 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   956
            <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   957
            The 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   958
            OpenJDK
fd16c54261b3 Initial load
duke
parents:
diff changeset
   959
            requires access to a set of unix command tools
fd16c54261b3 Initial load
duke
parents:
diff changeset
   960
            on Windows which can be supplied by 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   961
            <a href="http://www.cygwin.com">CYGWIN</a>. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   962
            <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   963
            The 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   964
            OpenJDK 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   965
            build
fd16c54261b3 Initial load
duke
parents:
diff changeset
   966
            requires CYGWIN version 1.5.12 or newer. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   967
            Information about CYGWIN can
fd16c54261b3 Initial load
duke
parents:
diff changeset
   968
            be obtained from the CYGWIN website at 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   969
            <a href="http://www.cygwin.com">www.cygwin.com</a>. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
   970
            <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   971
            By default CYGWIN doesn't install all the tools required for building
fd16c54261b3 Initial load
duke
parents:
diff changeset
   972
            the OpenJDK.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   973
            Along with the default installation, you need to install
fd16c54261b3 Initial load
duke
parents:
diff changeset
   974
            the following tools.
fd16c54261b3 Initial load
duke
parents:
diff changeset
   975
            <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   976
                <table border="1">
fd16c54261b3 Initial load
duke
parents:
diff changeset
   977
                    <thead>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   978
                        <tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   979
                            <td>Binary Name</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   980
                            <td>Package</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   981
                            <td>Description</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   982
                        </tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   983
                    </thead>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   984
                    <tbody>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   985
                        <tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   986
                            <td>ar.exe</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   987
                            <td>Devel</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   988
                            <td>binutils: The GNU assembler, linker and binary
fd16c54261b3 Initial load
duke
parents:
diff changeset
   989
                            utilities</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   990
                        </tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   991
                        <tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   992
                            <td>make.exe</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   993
                            <td>Devel</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   994
                            <td>make: The GNU version of the 'make' utility</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   995
                        </tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   996
                        <tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   997
                            <td>m4.exe</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   998
                            <td>Interpreters</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
   999
                            <td>m4: GNU implementation of the traditional Unix macro
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1000
                            processor</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1001
                        </tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1002
                        <tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1003
                            <td>cpio.exe</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1004
                            <td>Utils</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1005
                            <td>cpio: A program to manage archives of files</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1006
                        </tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1007
                        <tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1008
                            <td>file.exe</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1009
                            <td>Utils</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1010
                            <td>file: Determines file type using 'magic' numbers</td>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1011
                        </tr>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1012
                    </tbody>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1013
                </table>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1014
            </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1015
        </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1016
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1017
        <a name="dxsdk">
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1018
            <strong>Microsoft DirectX 9.0 SDK header files and libraries</strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1019
        </a>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1020
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1021
        <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1022
            <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1023
            Microsoft DirectX 9.0 SDK (Summer 2004)
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1024
            headers are required for building
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1025
            OpenJDK.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1026
            This SDK can be downloaded from 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1027
            <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FD044A42-9912-42A3-9A9E-D857199F888E&amp;displaylang=en">
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1028
            Microsoft DirectX 9.0 SDK (Summer 2004)</a>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1029
            If the link above becomes obsolete, the SDK can be found from 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1030
            <a href="http://download.microsoft.com">the Microsoft Download Site</a>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1031
            (search with "DirectX 9.0 SDK Update Summer 2004"). 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1032
            The location of this SDK can be set with 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1033
            <tt><a href="#ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1034
            but it's normally found via the DirectX environment variable
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1035
            <tt>DXSDK_DIR</tt>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1036
        </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1037
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1038
        <a name="msvcrt">
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1039
            <strong><tt>MSVCRT.DLL</tt></strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1040
        </a>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1041
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1042
        <blockquote> 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1043
            <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1044
            <strong>i586 only:</strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1045
            The 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1046
            OpenJDK
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1047
            32bit build requires
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1048
            access to <tt>MSVCRT.DLL</tt> 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1049
            version 6.00.8337.0 or newer.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1050
            If the <tt>MSVCRT.DLL</tt> is not installed in 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1051
            the system32 directory set the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1052
            <a href="#ALT_MSVCRT_DLL_PATH"><tt>ALT_MSVCRT_DLL_PATH</tt></a>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1053
            variable to the location.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1054
            <p> 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1055
            <strong>X64 only:</strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1056
            The OpenJDK 64bit build requires access to
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1057
            <tt>MSVCRT.DLL</tt> version 7.0.3790.0 or newer, which is
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1058
            usually supplied by the
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1059
            <a href="#mssdk">Platform SDK</a>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1060
            If it is not available from the Platform SDK,
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1061
            set the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1062
            <a href="#ALT_MSVCRT_DLL_PATH"><tt>ALT_MSVCRT_DLL_PATH</tt></a>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1063
            variable to the location.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1064
        </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1065
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1066
        <a name="msvcr71">
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1067
            <strong><tt>MSVCR71.DLL</tt></strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1068
        </a>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1069
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1070
        <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1071
            <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1072
            <strong>i586 only:</strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1073
            The 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1074
            OpenJDK
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1075
            build requires access to 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1076
            MSVCR71.DLL version 7.10.3052.4 or newer which should be
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1077
            supplied by the
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1078
            <a href="#msvc">Visual Studio product</a>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1079
            If the <tt>MSVCR71.DLL</tt> is not available from the
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1080
            Visual Studio product
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1081
            set the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1082
            <a href="#ALT_MSVCR71_DLL_PATH"><tt>ALT_MSVCR71_DLL_PATH</tt></a>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1083
            variable to the location.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1084
        </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1085
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1086
    </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1087
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1088
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1089
</blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1090
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1091
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1092
<hr noshade="noshade" size="3">
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1093
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1094
<h2><a name="creating">Creating the Build</a></h2>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1095
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1096
<blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1097
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1098
    Once a machine is setup to build the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1099
    OpenJDK,
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1100
    the steps to create the
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1101
    build are fairly simple.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1102
    The various ALT settings can either be made into  variables
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1103
    or can be supplied on the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1104
    <a href="#gmake"><tt><i>gmake</i></tt></a> 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1105
    command.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1106
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1107
    <ol>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1108
        <li>Use the sanity rule to double check all the ALT settings:
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1109
            <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1110
                <tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1111
                    <i>gmake</i> 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1112
                    sanity
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1113
                    [ARCH_DATA_MODEL=<i>32 or 64</i>]
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1114
                    [other "ALT_" overrides]
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1115
                </tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1116
            </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1117
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1118
        <li>Start the build with the command:
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1119
            <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1120
                <tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1121
                    <i>gmake</i> 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1122
                    [ARCH_DATA_MODEL=<i>32 or 64</i>]
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1123
                    [ALT_OUTPUTDIR=<i>output_directory</i>] 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1124
                    [other "ALT_" overrides] 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1125
                </tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1126
            </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1127
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1128
    </ol>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1129
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1130
    <strong>Solaris:</strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1131
    Note that ARCH_DATA_MODEL is really only needed on Solaris to
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1132
    indicate you want to built the 64-bit version.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1133
    And before the Solaris 64-bit binaries can be used, they
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1134
    must be merged with the binaries from a separate 32-bit build. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1135
    The merged binaries may then be used in either 32-bit or 64-bit mode, with
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1136
    the selection occurring at runtime 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1137
    with the <tt>-d32</tt> or <tt>-d64</tt> options. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1138
</blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1139
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1140
<!-- ------------------------------------------------------ -->
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1141
<hr noshade="noshade" size="3">
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1142
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1143
<h2><a name="testing">Testing the Build</a></h2>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1144
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1145
<blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1146
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1147
    When the build is completed, you should see the generated
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1148
    binaries and associated files in the <tt>j2sdk-image</tt> 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1149
    directory in the output directory. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1150
    The default output directory is
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1151
    <tt>build/<i>platform</i></tt>,
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1152
    where <tt><i>platform</i></tt> is one of
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1153
    <tt><ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1154
            <li>solaris-sparc</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1155
            <li>solaris-sparcv9</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1156
            <li>solaris-i586</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1157
            <li>solaris-amd64</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1158
            <li>linux-i586</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1159
            <li>linux-amd64</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1160
            <li>windows-i586</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1161
            <li>windows-amd64</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1162
    </ul></tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1163
    In particular, the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1164
    <tt>build/<i>platform</i>/j2sdk-image/bin</tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1165
    directory should contain executables for the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1166
    OpenJDK
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1167
    tools and utilities.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1168
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1169
    You can test that the build completed properly by using the build
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1170
    to run the various demos that you will find in the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1171
    <tt>build/<i>platform</i>/j2sdk-image/demo</tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1172
    directory.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1173
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1174
    The provided regression tests can be run with the <tt>jtreg</tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1175
    utility from 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1176
    <a href="http://openjdk.java.net/jtreg/">the jtreg site</a>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1177
</blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1178
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1179
<!-- ------------------------------------------------------ -->
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1180
<hr noshade="noshade" size="3">
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1181
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1182
<h2><a name="variables">Environment/Make Variables</a></h2>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1183
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1184
<p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1185
Some of the
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1186
environment or make variables (just called <b>variables</b> in this
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1187
document) that can impact the build are:
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1188
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1189
<blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1190
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1191
    <dl>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1192
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1193
        <dt><a name="path"><tt>PATH</tt></a> </dt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1194
        <dd>Typically you want to set the <tt>PATH</tt> to include:
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1195
            <ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1196
                <li>The location of the GNU make binary</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1197
                <li>The location of the JDK 6 <tt>java</tt> 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1198
                (see <a href="#bootjdk">Bootstrap JDK</a>)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1199
                <li>The location of the C/C++ compilers 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1200
                (see <a href="#compilers"><tt>compilers</tt></a>)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1201
                <li>The location or locations for the Unix command utilities
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1202
                (e.g. <tt>/usr/bin</tt>)</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1203
            </ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1204
        </dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1205
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1206
        <dt><a name="arch_data_model"><tt>ARCH_DATA_MODEL</tt></a></dt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1207
        <dd>The <tt>ARCH_DATA_MODEL</tt> variable
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1208
            is used to specify whether the build is to generate 32-bit or 64-bit
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1209
            binaries. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1210
            The Solaris build supports either 32-bit or 64-bit builds, but
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1211
            Windows and Linux will support only one, depending on the specific
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1212
            OS being used.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1213
            Normally, setting this variable is only necessary on Solaris.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1214
            Set <tt>ARCH_DATA_MODEL</tt> to <tt>32</tt> for generating 32-bit binaries, 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1215
            or to <tt>64</tt> for generating 64-bit binaries.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1216
        </dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1217
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1218
        <dt><a name="ALT_BOOTDIR"><tt>ALT_BOOTDIR</tt></a></dt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1219
        <dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1220
            The location of the bootstrap JDK installation. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1221
            See <a href="#bootjdk">Bootstrap JDK</a> for more information.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1222
            You should always install your own local Bootstrap JDK and
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1223
            always set <tt>ALT_BOOTDIR</tt> explicitly.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1224
        </dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1225
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1226
        <dt><a name="ALT_OUTPUTDIR"><tt>ALT_OUTPUTDIR</tt></a> </dt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1227
        <dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1228
            An override for specifying the (absolute) path of where the
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1229
            build output is to go.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1230
            The default output directory will be build/<i>platform</i>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1231
        </dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1232
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1233
        <dt><a name="ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a> </dt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1234
        <dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1235
            The location of the C/C++ compiler.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1236
            The default varies depending on the platform. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1237
        </dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1238
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1239
        <dt><tt><a name="ALT_CACERTS_FILE">ALT_CACERTS_FILE</a></tt></dt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1240
        <dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1241
            The location of the <a href="#cacerts">cacerts</a> file.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1242
            The default will refer to 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1243
            <tt>jdk/src/share/lib/security/cacerts</tt>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1244
        </dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1245
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1246
        <dt><a name="ALT_BINARY_PLUGS_PATH"><tt>ALT_BINARY_PLUGS_PATH</tt></a></dt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1247
        <dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1248
            The location of the binary plugs installation.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1249
            See <a href="#binaryplugs">Binary Plugs</a> for more information.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1250
            You should always have a local copy of a
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1251
            recent Binary Plugs install image
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1252
            and set this variable to that location.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1253
        </dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1254
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1255
        <dt><a name="ALT_CUPS_HEADERS_PATH"><tt>ALT_CUPS_HEADERS_PATH</tt></a> </dt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1256
        <dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1257
            The location of the CUPS header files.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1258
            See <a href="#cups">CUPS information</a> for more information.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1259
            If this path does not exist the fallback path is 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1260
            <tt>/usr/include</tt>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1261
        </dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1262
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1263
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1264
        <dt><a name="ALT_FREETYPE_LIB_PATH"><tt>ALT_FREETYPE_LIB_PATH</tt></a></dt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1265
        <dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1266
            The location of the FreeType shared library. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1267
            See <a href="#freetype">FreeType information</a> for details. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1268
        </dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1269
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1270
        <dt><a name="ALT_FREETYPE_HEADERS_PATH"><tt>ALT_FREETYPE_HEADERS_PATH</tt></a></dt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1271
        <dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1272
            The location of the FreeType header files.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1273
            See <a href="#freetype">FreeType information</a> for details. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1274
        </dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1275
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1276
        <dt><strong>Windows specific:</strong></dt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1277
        <dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1278
            <dl>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1279
                <dt><a name="ALT_MSDEVTOOLS_PATH"><tt>ALT_MSDEVTOOLS_PATH</tt></a> </dt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1280
                <dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1281
                    The location of the Microsoft Visual Studio .NET 2003
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1282
                    tools 'bin' directory.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1283
                    The default is usually derived from
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1284
                    <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1285
                </dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1286
                
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1287
                <dt><tt><a name="ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> </dt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1288
                <dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1289
                    The location of the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1290
                    <a href="#dxsdk">Microsoft DirectX 9 SDK</a>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1291
                    The default will be to try and use the DirectX environment
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1292
                    variable <tt>DXSDK_DIR</tt>,
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1293
                    failing that, look in <tt>C:/DXSDK</tt>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1294
                </dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1295
                
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1296
                <dt><tt><a name="ALT_MSVCRT_DLL_PATH">ALT_MSVCRT_DLL_PATH</a></tt> </dt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1297
                <dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1298
                    The location of the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1299
                    <a href="#msvcrt"><tt>MSVCRT.DLL</tt></a>. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1300
                </dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1301
                
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1302
                <dt><tt><a name="ALT_MSVCR71_DLL_PATH">ALT_MSVCR71_DLL_PATH</a></tt> </dt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1303
                <dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1304
                    <strong>i586 only:</strong>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1305
                    The location of the 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1306
                    <a href="#msvcr71"><tt>MSVCR71.DLL</tt></a>. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1307
                </dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1308
            </dl>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1309
        </dd>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1310
        
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1311
    </dl>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1312
</blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1313
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1314
<!-- ------------------------------------------------------ -->
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1315
<hr noshade="noshade" size="3">
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1316
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1317
<h2><a name="troubleshooting">Troubleshooting</a></h2>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1318
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1319
<blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1320
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1321
    A build can fail for any number of reasons. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1322
    Most failures
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1323
    are a result of trying to build in an environment in which all the
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1324
    pre-build requirements have not been met. 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1325
    The first step in
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1326
    troubleshooting a build failure is to recheck that you have satisfied
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1327
    all the pre-build requirements for your platform.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1328
    Look for the check list of the platform you are building on in the
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1329
    <a href="#contents">Table of Contents</a>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1330
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1331
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1332
    You can validate your build environment by using the <tt>sanity</tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1333
    target.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1334
    Any errors listed
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1335
    will stop the build from starting, and any warnings may result in
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1336
    a flawed product build.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1337
    We strongly encourage you to evaluate every
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1338
    sanity check warning and fix it if required, before you proceed
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1339
    further with your build.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1340
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1341
    <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1342
    Some of the more common problems with builds are briefly described
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1343
    below, with suggestions for remedies.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1344
    
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1345
    <ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1346
        <li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1347
            <b>Slow Builds:</b>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1348
            <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1349
                <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1350
                If your build machine seems to be overloaded from too many
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1351
                simultaneous C++ compiles, try setting the <tt>HOTSPOT_BUILD_JOBS</tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1352
                variable to <tt>1</tt> (if you're using a multiple CPU
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1353
                machine, setting it to more than the the number of CPUs is probably
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1354
                not a good idea).
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1355
                <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1356
                Creating the javadocs can be very slow, if you are running
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1357
                javadoc, consider skipping that step.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1358
                <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1359
                Faster hardware and more RAM always helps too.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1360
                The VM build tends to be CPU intensive (many C++ compiles),
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1361
                and the rest of the JDK will often be disk intensive.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1362
                <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1363
                Faster compiles are possible using a tool called
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1364
                <a href="http://ccache.samba.org/">ccache</a>.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1365
            </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1366
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1367
        <li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1368
            <b>File time issues:</b>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1369
            <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1370
                <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1371
                If you see warnings that refer to file time stamps, e.g.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1372
                <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1373
                    <i>Warning message:</i><tt> File `xxx' has modification time in
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1374
                    the future.</tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1375
                    <br>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1376
                    <i>Warning message:</i> <tt> Clock skew detected. Your build may
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1377
                    be incomplete.</tt> 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1378
                </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1379
                <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1380
                These warnings can occur when the clock on the build machine is out of
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1381
                sync with the timestamps on the source files. Other errors, apparently
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1382
                unrelated but in fact caused by the clock skew, can occur along with
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1383
                the clock skew warnings. These secondary errors may tend to obscure the
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1384
                fact that the true root cause of the problem is an out-of-sync clock.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1385
                For example, an out-of-sync clock has been known to cause an old
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1386
                version of javac to be used to compile some files, resulting in errors
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1387
                when the pre-1.4 compiler ran across the new <tt>assert</tt> keyword
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1388
                in the 1.4 source code.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1389
                <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1390
                If you see these warnings, reset the clock on the build
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1391
                machine, run "<tt><i>gmake</i> clobber</tt>" or delete the directory
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1392
                containing the build output, and restart the build from the beginning.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1393
            </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1394
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1395
        <li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1396
            <b>Error message: <tt>Trouble writing out table to disk</tt></b>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1397
            <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1398
                <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1399
                Increase the amount of swap space on your build machine.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1400
            </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1401
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1402
        <li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1403
            <b>Error Message: <tt>libstdc++ not found:</tt></b>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1404
            <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1405
                This is caused by a missing libstdc++.a library.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1406
                This is installed as part of a specific package
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1407
                (e.g. libstdc++.so.devel.386).
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1408
                By default some 64bit Linux versions (e.g. Fedora)
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1409
                only install the 64bit version of the libstdc++ package.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1410
                Various parts of the JDK build require a static
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1411
                link of the C++ runtime libraries to allow for maximum
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1412
                portability of the built images.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1413
            </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1414
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1415
        <li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1416
            <b>Error Message: <tt>cannot restore segment prot after reloc</tt></b>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1417
            <blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1418
                This is probably an issue with SELinux (See
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1419
                <a href="http://en.wikipedia.org/wiki/SELinux">http://en.wikipedia.org/wiki/SELinux</a>).
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1420
                Parts of the VM is built without the <tt>-fPIC</tt> for
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1421
                performance reasons.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1422
                <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1423
                To completely disable SELinux:
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1424
                <ol><tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1425
                    
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1426
                    <li>$ su root</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1427
                    <li># system-config-securitylevel</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1428
                    <li>In the window that appears, select the SELinux tab</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1429
                    <li>Disable SELinux</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1430
                </ol></tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1431
                <p>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1432
                Alternatively, instead of completely disabling it you could
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1433
                disable just this one check.
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1434
                <ol><tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1435
                    <li>Select System->Administration->SELinux Management</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1436
                    <li>In the SELinux Management Tool which appears, 
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1437
                    select "Boolean" from the menu on the left</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1438
                    <li>Expand the "Memory Protection" group</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1439
                    <li>Check the first item, labeled
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1440
                    "Allow all unconfined executables to use libraries requiring text relocation ..."</li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1441
                </ol></tt>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1442
            </blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1443
        </li>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1444
    </ul>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1445
</blockquote>
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1446
fd16c54261b3 Initial load
duke
parents:
diff changeset
  1447
<hr noshade="noshade" size="3">