22 <!-- ------------------------------------------------------ --> |
22 <!-- ------------------------------------------------------ --> |
23 <hr> |
23 <hr> |
24 <h2><a name="introduction">Introduction</a></h2> |
24 <h2><a name="introduction">Introduction</a></h2> |
25 <blockquote> |
25 <blockquote> |
26 <p> |
26 <p> |
27 This README file contains build instructions for the |
27 This README file contains build instructions for the |
28 <a href="http://openjdk.java.net" target="_blank">OpenJDK</a>. |
28 <a href="http://openjdk.java.net" target="_blank">OpenJDK</a>. |
29 Building the source code for the |
29 Building the source code for the |
30 OpenJDK |
30 OpenJDK |
31 requires |
31 requires |
32 a certain degree of technical expertise. |
32 a certain degree of technical expertise. |
33 </blockquote> |
33 </blockquote> |
34 <!-- ------------------------------------------------------ --> |
34 <!-- ------------------------------------------------------ --> |
35 <hr> |
35 <hr> |
36 <h2><a name="contents">Contents</a></h2> |
36 <h2><a name="contents">Contents</a></h2> |
37 <blockquote> |
37 <blockquote> |
38 <ul> |
38 <ul> |
39 <li><a href="#introduction">Introduction</a></li> |
39 <li><a href="#introduction">Introduction</a></li> |
|
40 <li><a href="#hg">Use of Mercurial</a> |
|
41 <ul> |
|
42 <li><a href="#get_source">Getting the Source</a></li> |
|
43 </ul> |
|
44 </li> |
40 <li><a href="#MBE">Minimum Build Environments</a></li> |
45 <li><a href="#MBE">Minimum Build Environments</a></li> |
41 <li><a href="#SDBE">Specific Developer Build Environments</a> |
46 <li><a href="#SDBE">Specific Developer Build Environments</a> |
42 <ul> |
47 <ul> |
43 <li><a href="#fedora">Fedora Linux</a> </li> |
48 <li><a href="#fedora">Fedora Linux</a> </li> |
44 <li><a href="#centos">CentOS Linux</a> </li> |
49 <li><a href="#centos">CentOS Linux</a> </li> |
45 <li><a href="#debian">Debian GNU/Linux</a></li> |
50 <li><a href="#debian">Debian GNU/Linux</a></li> |
46 <li><a href="#ubuntu">Ubuntu Linux</a> </li> |
51 <li><a href="#ubuntu">Ubuntu Linux</a> </li> |
47 <li><a href="#opensuse">OpenSUSE</a></li> |
52 <li><a href="#opensuse">OpenSUSE</a></li> |
48 <li><a href="#mandriva">Mandriva</a></li> |
53 <li><a href="#mandriva">Mandriva</a></li> |
49 <li><a href="#opensolaris">OpenSolaris</a></li> |
54 <li><a href="#opensolaris">OpenSolaris</a></li> |
50 </ul> |
55 </ul> |
51 </li> |
56 </li> |
52 <li><a href="#directories">Source Directory Structure</a> </li> |
57 <li><a href="#directories">Source Directory Structure</a> </li> |
53 <li><a href="#building">Build Information</a> |
58 <li><a href="#building">Build Information</a> |
54 <ul> |
59 <ul> |
55 <li><a href="#gmake">GNU Make (<tt><i>gmake</i></tt>)</a> </li> |
60 <li><a href="#gmake">GNU Make (<tt><i>gmake</i></tt>)</a> </li> |
56 <li><a href="#linux">Basic Linux System Setup</a> </li> |
61 <li><a href="#linux">Basic Linux System Setup</a> </li> |
57 <li><a href="#solaris">Basic Solaris System Setup</a> </li> |
62 <li><a href="#solaris">Basic Solaris System Setup</a> </li> |
58 <li><a href="#windows">Basic Windows System Setup</a> </li> |
63 <li><a href="#windows">Basic Windows System Setup</a> </li> |
59 <li><a href="#dependencies">Build Dependencies</a> </li> |
64 <li><a href="#dependencies">Build Dependencies</a> |
60 <ul> |
65 <ul> |
61 <li><a href="#bootjdk">Bootstrap JDK</a> </li> |
66 <li><a href="#bootjdk">Bootstrap JDK</a> </li> |
62 <li><a href="#binaryplugs">Binary Plugs</a> </li> |
67 <li><a href="#importjdk">Optional Import JDK</a> </li> |
63 <li><a href="#importjdk">Optional Import JDK</a> </li> |
68 <li><a href="#ant">Ant</a> </li> |
64 <li><a href="#ant">Ant</a> </li> |
69 <li><a href="#cacerts">Certificate Authority File (cacert)</a> </li> |
65 <li><a href="#cacerts">Certificate Authority File (cacert)</a> </li> |
70 <li><a href="#compilers">Compilers</a> |
66 <li><a href="#compilers">Compilers</a> |
71 <ul> |
67 <ul> |
72 <li><a href="#msvc32">Microsoft Visual Studio Professional/Express for 32 bit</a> </li> |
68 <li><a href="#msvc32">Microsoft Visual Studio Professional/Express for 32 bit</a> </li> |
73 <li><a href="#msvc64">Microsoft Visual Studio Professional for 64 bit</a> </li> |
69 <li><a href="#msvc64">Microsoft Visual Studio Professional for 64 bit</a> </li> |
74 <li><a href="#mssdk64">Microsoft Windows SDK for 64 bit</a> </li> |
70 <li><a href="#mssdk64">Microsoft Windows SDK for 64 bit</a> </li> |
75 <li><a href="#gcc">Linux gcc/binutils</a> </li> |
71 <li><a href="#gcc">Linux gcc/binutils</a> </li> |
76 <li><a href="#studio">Sun Studio</a> </li> |
72 <li><a href="#studio">Sun Studio</a> </li> |
77 </ul> |
73 </ul> |
78 </li> |
74 </li> |
79 <li><a href="#zip">Zip and Unzip</a> </li> |
75 <li><a href="#zip">Zip and Unzip</a> </li> |
80 <li><a href="#freetype">FreeType2 Fonts</a> </li> |
76 <li><a href="#freetype">FreeType2 Fonts</a> </li> |
81 <li>Linux and Solaris: |
77 <li>Linux and Solaris: |
82 <ul> |
78 <ul> |
83 <li><a href="#cups">CUPS Include files</a> </li> |
79 <li><a href="#cups">CUPS Include files</a> </li> |
84 <li><a href="#xrender">XRender Include files</a></li> |
80 <li><a href="#xrender">XRender Include files</a></li> |
85 </ul> |
81 </ul> |
86 </li> |
82 </li> |
87 <li>Linux only: |
83 <li>Linux only: |
88 <ul> |
84 <ul> |
89 <li><a href="#alsa">ALSA files</a> </li> |
85 <li><a href="#alsa">ALSA files</a> </li> |
90 </ul> |
86 </ul> |
91 </li> |
87 </li> |
92 <li>Windows only: |
88 <li>Windows only: |
93 <ul> |
89 <ul> |
94 <li>Unix Command Tools (<a href="#cygwin">CYGWIN</a>)</li> |
90 <li>Unix Command Tools (<a href="#cygwin">CYGWIN</a>)</li> |
95 <li><a href="#dxsdk">DirectX 9.0 SDK</a> </li> |
91 <li><a href="#dxsdk">DirectX 9.0 SDK</a> </li> |
96 </ul> |
92 </ul> |
97 </li> |
93 </li> |
98 </ul> |
94 </ul> |
99 </li> |
95 </ul> |
100 </ul> |
96 </li> |
101 </li> |
97 <li><a href="#creating">Creating the Build</a> </li> |
102 <li><a href="#creating">Creating the Build</a> </li> |
98 <li><a href="#testing">Testing the Build</a> </li> |
103 <li><a href="#testing">Testing the Build</a> </li> |
99 <li><a href="#variables">Environment/Make Variables</a></li> |
104 <li><a href="#variables">Environment/Make Variables</a></li> |
100 <li><a href="#troubleshooting">Troubleshooting</a></li> |
105 <li><a href="#troubleshooting">Troubleshooting</a></li> |
101 </ul> |
106 </ul> |
102 </blockquote> |
107 </blockquote> |
|
108 |
|
109 <!-- ------------------------------------------------------ --> |
|
110 <hr> |
|
111 <h2><a name="hg">Use of Mercurial</a></h2> |
|
112 <blockquote> |
|
113 The OpenJDK sources are maintained with the revision control system |
|
114 <a href="http://mercurial.selenic.com/wiki/Mercurial">Mercurial</a>. |
|
115 If you are new to Mercurial, please see the |
|
116 <a href="http://mercurial.selenic.com/wiki/BeginnersGuides">Beginner Guides</a> |
|
117 or refer to the <a href=""http://hgbook.red-bean.com/">Mercurial Book</a>. |
|
118 The first few chapters of the book provide an excellent overview of |
|
119 Mercurial, what it is and how it works. |
|
120 <br> |
|
121 For using Mercurial with the OpenJDK refer to the |
|
122 <a href=""http://openjdk.java.net/guide/repositories.html#installConfig"> |
|
123 Developer Guide: Installing and Configuring Mercurial</a> |
|
124 section for more information. |
|
125 The Forest Extension is not part of the Mercurial install, |
|
126 and is optional, |
|
127 but can be obtained with the following commands: |
|
128 <blockquote> |
|
129 <tt> |
|
130 hg clone https://bitbucket.org/pmezard/hgforest-crew/overview/ <i>YourHgForest</i> |
|
131 </tt> |
|
132 </blockquote> |
|
133 Once you have the file <tt>forest.py</tt>, you need to add these |
|
134 lines to your <tt>${HOME}/.hgrc</tt> file: |
|
135 <blockquote> |
|
136 <tt> |
|
137 [extensions] |
|
138 <br>forest = <i>YourHgForest</i>/forest.py |
|
139 </tt> |
|
140 </blockquote> |
|
141 |
|
142 <!-- ------------------------------------------------------ --> |
|
143 <h3><a name="get_source">Getting the Source</a></h3> |
|
144 <blockquote> |
|
145 To get the entire set of OpenJDK Mercurial repositories |
|
146 using the Forest Extension: |
|
147 <blockquote> |
|
148 <tt> |
|
149 hg fclone http://openjdk.java.net/jdk7/jdk7 <i>YourOpenJDK</i> |
|
150 </tt> |
|
151 </blockquote> |
|
152 To get the entire set of OpenJDK Mercurial repositories |
|
153 without using the Forest Extension: |
|
154 <blockquote> |
|
155 <tt> |
|
156 hg clone http://openjdk.java.net/jdk7/jdk7 <i>YourOpenJDK</i> |
|
157 <br>cd <i>YourOpenJDK</i> |
|
158 <br>sh ./get_source.sh |
|
159 </tt> |
|
160 </blockquote> |
|
161 Once you have all the repositories, the |
|
162 script <tt>make/scripts/hgforest.sh</tt> |
|
163 can be used to repeat the same <tt>hg</tt> |
|
164 command on every repository in the forest, e.g. |
|
165 <blockquote> |
|
166 <tt> |
|
167 cd <i>YourOpenJDK</i> |
|
168 <br>sh ./make/scripts/hgforest.sh pull -u |
|
169 </tt> |
|
170 </blockquote> |
|
171 You may find this script <tt>make/scripts/hgforest.sh</tt> faster |
|
172 than the <tt>hg</tt> forest commands provided by the |
|
173 Forest Extension. |
|
174 </blockquote> |
|
175 |
|
176 </blockquote> |
|
177 |
103 <!-- ------------------------------------------------------ --> |
178 <!-- ------------------------------------------------------ --> |
104 <hr> |
179 <hr> |
105 <h2><a name="MBE">Minimum Build Environments</a></h2> |
180 <h2><a name="MBE">Minimum Build Environments</a></h2> |
106 <blockquote> |
181 <blockquote> |
107 This file often describes specific requirements for what we call the |
182 This file often describes specific requirements for what we call the |
215 we will try to provide what information we have available to us. |
290 we will try to provide what information we have available to us. |
216 </blockquote> |
291 </blockquote> |
217 <!-- ------------------------------------------------------ --> |
292 <!-- ------------------------------------------------------ --> |
218 <h3><a name="fedora">Fedora</a></h3> |
293 <h3><a name="fedora">Fedora</a></h3> |
219 <blockquote> |
294 <blockquote> |
220 <h4>Fedora 9</h4> |
295 <h4>Fedora 9</h4> |
221 <p> |
296 <p> |
222 <blockquote> |
297 <blockquote> |
223 After installing <a href="http://fedoraproject.org">Fedora</a> 9 |
298 After installing <a href="http://fedoraproject.org">Fedora</a> 9 |
224 you need to install several build dependencies. The simplest |
299 you need to install several build dependencies. The simplest |
225 way to do it is to execute the following commands as user |
300 way to do it is to execute the following commands as user |
226 <tt>root</tt>: |
301 <tt>root</tt>: |
227 <p/> |
302 <p/> |
228 <code>yum-builddep java-openjdk</code> |
303 <code>yum-builddep java-openjdk</code> |
229 <p/> |
304 <p/> |
230 <code>yum install gcc gcc-c++</code> |
305 <code>yum install gcc gcc-c++</code> |
231 <p/> |
306 <p/> |
232 In addition, it's necessary to set a few environment variables for the build: |
307 In addition, it's necessary to set a few environment variables for the build: |
233 |
308 |
234 <p/> |
309 <p/> |
235 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code> |
310 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code> |
236 </blockquote> |
311 </blockquote> |
237 <h4>Fedora 10</h4> |
312 <h4>Fedora 10</h4> |
238 <p> |
313 <p> |
239 <blockquote> |
314 <blockquote> |
240 After installing <a href="http://fedoraproject.org">Fedora</a> 10 |
315 After installing <a href="http://fedoraproject.org">Fedora</a> 10 |
241 you need to install several build dependencies. The simplest |
316 you need to install several build dependencies. The simplest |
242 way to do it is to execute the following commands as user |
317 way to do it is to execute the following commands as user |
243 <tt>root</tt>: |
318 <tt>root</tt>: |
244 <p/> |
319 <p/> |
245 <code>yum-builddep java-1.6.0-openjdk</code> |
320 <code>yum-builddep java-1.6.0-openjdk</code> |
246 <p/> |
321 <p/> |
247 <code>yum install gcc gcc-c++</code> |
322 <code>yum install gcc gcc-c++</code> |
248 <p/> |
323 <p/> |
249 In addition, it's necessary to set a few environment variables for the build: |
324 In addition, it's necessary to set a few environment variables for the build: |
250 |
325 |
251 <p/> |
326 <p/> |
252 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code> |
327 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code> |
253 </blockquote> |
328 </blockquote> |
254 <h4>Fedora 11</h4> |
329 <h4>Fedora 11</h4> |
255 <p> |
330 <p> |
256 <blockquote> |
331 <blockquote> |
257 After installing <a href="http://fedoraproject.org">Fedora</a> 11 |
332 After installing <a href="http://fedoraproject.org">Fedora</a> 11 |
258 you need to install several build dependencies. The simplest |
333 you need to install several build dependencies. The simplest |
259 way to do it is to execute the following commands as user |
334 way to do it is to execute the following commands as user |
260 <tt>root</tt>: |
335 <tt>root</tt>: |
261 <p/> |
336 <p/> |
262 <code>yum-builddep java-1.6.0-openjdk</code> |
337 <code>yum-builddep java-1.6.0-openjdk</code> |
263 <p/> |
338 <p/> |
264 <code>yum install gcc gcc-c++</code> |
339 <code>yum install gcc gcc-c++</code> |
265 <p/> |
340 <p/> |
266 In addition, it's necessary to set a few environment variables for the build: |
341 In addition, it's necessary to set a few environment variables for the build: |
267 |
342 |
268 <p/> |
343 <p/> |
269 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code> |
344 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code> |
270 </blockquote> |
345 </blockquote> |
271 </blockquote> |
346 </blockquote> |
272 <!-- ------------------------------------------------------ --> |
347 <!-- ------------------------------------------------------ --> |
273 <h3><a name="centos">CentOS 5.2</a></h3> |
348 <h3><a name="centos">CentOS 5.2</a></h3> |
274 <blockquote> |
349 <blockquote> |
275 After installing |
350 After installing |
283 <li>Java Development</li> |
358 <li>Java Development</li> |
284 <li>X Software Development</li> |
359 <li>X Software Development</li> |
285 </ul> |
360 </ul> |
286 </blockquote> |
361 </blockquote> |
287 <p> |
362 <p> |
288 Plus the following packages: |
363 Plus the following packages: |
289 <blockquote> |
364 <blockquote> |
290 <ul> |
365 <ul> |
291 <li>cups devel: Cups Development Package</li> |
366 <li>cups devel: Cups Development Package</li> |
292 <li>alsa devel: Alsa Development Package</li> |
367 <li>alsa devel: Alsa Development Package</li> |
293 <li>ant: Ant Package</li> |
368 <li>ant: Ant Package</li> |
294 <li>Xi devel: libXi.so Development Package</li> |
369 <li>Xi devel: libXi.so Development Package</li> |
295 </ul> |
370 </ul> |
296 </blockquote> |
371 </blockquote> |
297 <p> |
372 <p> |
298 The freetype 2.3 packages don't seem to be available, |
373 The freetype 2.3 packages don't seem to be available, |
299 but the freetype 2.3 sources can be downloaded, built, |
374 but the freetype 2.3 sources can be downloaded, built, |
300 and installed easily enough from |
375 and installed easily enough from |
301 <a href="http://downloads.sourceforge.net/freetype"> |
376 <a href="http://downloads.sourceforge.net/freetype"> |
302 the freetype site</a>. |
377 the freetype site</a>. |
303 Build and install with something like: |
378 Build and install with something like: |
304 <blockquote> |
379 <blockquote> |
305 <tt>./configure && make && sudo -u root make install</tt> |
380 <tt>./configure && make && sudo -u root make install</tt> |
306 </blockquote> |
381 </blockquote> |
307 <p> |
382 <p> |
308 Mercurial packages could not be found easily, but a Google |
383 Mercurial packages could not be found easily, but a Google |
309 search should find ones, and they usually include Python if |
384 search should find ones, and they usually include Python if |
310 it's needed. |
385 it's needed. |
311 </blockquote> |
386 </blockquote> |
312 <!-- ------------------------------------------------------ --> |
387 <!-- ------------------------------------------------------ --> |
313 <h3><a name="debian">Debian</a></h3> |
388 <h3><a name="debian">Debian</a></h3> |
314 <blockquote> |
389 <blockquote> |
315 <h4>Debian 5.0 (Lenny)</h4> |
390 <h4>Debian 5.0 (Lenny)</h4> |
316 <p> |
391 <p> |
317 <blockquote> |
392 <blockquote> |
318 After installing <a href="http://debian.org">Debian</a> 5 |
393 After installing <a href="http://debian.org">Debian</a> 5 |
319 you need to install several build dependencies. |
394 you need to install several build dependencies. |
320 The simplest way to install the build dependencies is to |
395 The simplest way to install the build dependencies is to |
321 execute the following commands as user <tt>root</tt>: |
396 execute the following commands as user <tt>root</tt>: |
322 <p/> |
397 <p/> |
323 <code>aptitude build-dep openjdk-6</code> |
398 <code>aptitude build-dep openjdk-6</code> |
324 <p/> |
399 <p/> |
325 <code>aptitude install openjdk-6-jdk libmotif-dev</code> |
400 <code>aptitude install openjdk-6-jdk libmotif-dev</code> |
326 <p/> |
401 <p/> |
327 In addition, it's necessary to set a few environment variables for the build: |
402 In addition, it's necessary to set a few environment variables for the build: |
328 <p/> |
403 <p/> |
329 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> |
404 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> |
330 </blockquote> |
405 </blockquote> |
331 </blockquote> |
406 </blockquote> |
332 <!-- ====================================================== --> |
407 <!-- ====================================================== --> |
333 <h3><a name="ubuntu">Ubuntu</a></h3> |
408 <h3><a name="ubuntu">Ubuntu</a></h3> |
334 <blockquote> |
409 <blockquote> |
335 <h4>Ubuntu 8.04</h4> |
410 <h4>Ubuntu 8.04</h4> |
336 <p> |
411 <p> |
337 <blockquote> |
412 <blockquote> |
338 After installing <a href="http://ubuntu.org">Ubuntu</a> 8.04 |
413 After installing <a href="http://ubuntu.org">Ubuntu</a> 8.04 |
339 you need to install several build dependencies. |
414 you need to install several build dependencies. |
340 <p/> |
415 <p/> |
341 First, you need to enable the universe repository in the |
416 First, you need to enable the universe repository in the |
342 Software Sources application and reload the repository |
417 Software Sources application and reload the repository |
343 information. The Software Sources application is available |
418 information. The Software Sources application is available |
344 under the System/Administration menu. |
419 under the System/Administration menu. |
345 <p/> |
420 <p/> |
346 The simplest way to install the build dependencies is to |
421 The simplest way to install the build dependencies is to |
347 execute the following commands: |
422 execute the following commands: |
348 <p/> |
423 <p/> |
349 <code>sudo aptitude build-dep openjdk-6</code> |
424 <code>sudo aptitude build-dep openjdk-6</code> |
350 <p/> |
425 <p/> |
351 <code>sudo aptitude install openjdk-6-jdk</code> |
426 <code>sudo aptitude install openjdk-6-jdk</code> |
352 <p/> |
427 <p/> |
353 In addition, it's necessary to set a few environment variables for the build: |
428 In addition, it's necessary to set a few environment variables for the build: |
354 <p/> |
429 <p/> |
355 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> |
430 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> |
356 </blockquote> |
431 </blockquote> |
357 <h4>Ubuntu 8.10</h4> |
432 <h4>Ubuntu 8.10</h4> |
358 <p> |
433 <p> |
359 <blockquote> |
434 <blockquote> |
360 After installing <a href="http://ubuntu.org">Ubuntu</a> 8.10 |
435 After installing <a href="http://ubuntu.org">Ubuntu</a> 8.10 |
361 you need to install several build dependencies. The simplest |
436 you need to install several build dependencies. The simplest |
362 way to do it is to execute the following commands: |
437 way to do it is to execute the following commands: |
363 <p/> |
438 <p/> |
364 <code>sudo aptitude build-dep openjdk-6</code> |
439 <code>sudo aptitude build-dep openjdk-6</code> |
365 <p/> |
440 <p/> |
366 <code>sudo aptitude install openjdk-6-jdk</code> |
441 <code>sudo aptitude install openjdk-6-jdk</code> |
367 <p/> |
442 <p/> |
368 In addition, it's necessary to set a few environment variables for the build: |
443 In addition, it's necessary to set a few environment variables for the build: |
369 <p/> |
444 <p/> |
370 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> |
445 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> |
371 </blockquote> |
446 </blockquote> |
372 <h4>Ubuntu 9.04</h4> |
447 <h4>Ubuntu 9.04</h4> |
373 <p> |
448 <p> |
374 <blockquote> |
449 <blockquote> |
375 After installing <a href="http://ubuntu.org">Ubuntu</a> 9.04 |
450 After installing <a href="http://ubuntu.org">Ubuntu</a> 9.04 |
376 you need to install several build dependencies. The simplest |
451 you need to install several build dependencies. The simplest |
377 way to do it is to execute the following commands: |
452 way to do it is to execute the following commands: |
378 <p/> |
453 <p/> |
379 <code>sudo aptitude build-dep openjdk-6</code> |
454 <code>sudo aptitude build-dep openjdk-6</code> |
380 <p/> |
455 <p/> |
381 <code>sudo aptitude install openjdk-6-jdk</code> |
456 <code>sudo aptitude install openjdk-6-jdk</code> |
382 <p/> |
457 <p/> |
383 In addition, it's necessary to set a few environment variables for the build: |
458 In addition, it's necessary to set a few environment variables for the build: |
384 <p/> |
459 <p/> |
385 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> |
460 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> |
386 </blockquote> |
461 </blockquote> |
387 </blockquote> |
462 </blockquote> |
388 <!-- ====================================================== --> |
463 <!-- ====================================================== --> |
389 <h3><a name="opensuse">OpenSUSE</a></h3> |
464 <h3><a name="opensuse">OpenSUSE</a></h3> |
390 <blockquote> |
465 <blockquote> |
391 <h4>OpenSUSE 11.1</h4> |
466 <h4>OpenSUSE 11.1</h4> |
392 <p> |
467 <p> |
393 <blockquote> |
468 <blockquote> |
394 After installing <a href="http://opensuse.org">OpenSUSE</a> 11.1 |
469 After installing <a href="http://opensuse.org">OpenSUSE</a> 11.1 |
395 you need to install several build dependencies. |
470 you need to install several build dependencies. |
396 The simplest way to install the build dependencies is to |
471 The simplest way to install the build dependencies is to |
397 execute the following commands: |
472 execute the following commands: |
398 <p/> |
473 <p/> |
399 <code>sudo zypper source-install -d java-1_6_0-openjdk</code> |
474 <code>sudo zypper source-install -d java-1_6_0-openjdk</code> |
400 <p/> |
475 <p/> |
401 <code>sudo zypper install make</code> |
476 <code>sudo zypper install make</code> |
402 <p/> |
477 <p/> |
403 In addition, it is necessary to set a few environment variables for the build: |
478 In addition, it is necessary to set a few environment variables for the build: |
404 <p/> |
479 <p/> |
405 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code> |
480 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code> |
406 <p/> |
481 <p/> |
407 Finally, you need to unset the <code>JAVA_HOME</code> environment variable: |
482 Finally, you need to unset the <code>JAVA_HOME</code> environment variable: |
408 <p/> |
483 <p/> |
409 <code>export -n JAVA_HOME</code> |
484 <code>export -n JAVA_HOME</code> |
410 </blockquote> |
485 </blockquote> |
411 </blockquote> |
486 </blockquote> |
412 <!-- ====================================================== --> |
487 <!-- ====================================================== --> |
413 <h3><a name="mandriva">Mandriva</a></h3> |
488 <h3><a name="mandriva">Mandriva</a></h3> |
414 <blockquote> |
489 <blockquote> |
415 <h4>Mandriva Linux One 2009 Spring</h4> |
490 <h4>Mandriva Linux One 2009 Spring</h4> |
416 <p> |
491 <p> |
417 <blockquote> |
492 <blockquote> |
418 After installing <a href="http://mandriva.org">Mandriva</a> Linux One 2009 Spring |
493 After installing <a href="http://mandriva.org">Mandriva</a> Linux One 2009 Spring |
419 you need to install several build dependencies. |
494 you need to install several build dependencies. |
420 The simplest way to install the build dependencies is to |
495 The simplest way to install the build dependencies is to |
421 execute the following commands as user <tt>root</tt>: |
496 execute the following commands as user <tt>root</tt>: |
422 <p/> |
497 <p/> |
423 <code>urpmi java-1.6.0-openjdk-devel ant make gcc gcc-c++ freetype-devel zip unzip libcups2-devel libxrender1-devel libalsa2-devel libstc++-static-devel libxtst6-devel libxi-devel</code> |
498 <code>urpmi java-1.6.0-openjdk-devel ant make gcc gcc-c++ freetype-devel zip unzip libcups2-devel libxrender1-devel libalsa2-devel libstc++-static-devel libxtst6-devel libxi-devel</code> |
424 <p/> |
499 <p/> |
425 In addition, it is necessary to set a few environment variables for the build: |
500 In addition, it is necessary to set a few environment variables for the build: |
426 <p/> |
501 <p/> |
427 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code> |
502 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code> |
428 </blockquote> |
503 </blockquote> |
429 </blockquote> |
504 </blockquote> |
430 <!-- ====================================================== --> |
505 <!-- ====================================================== --> |
431 <h3><a name="opensolaris">OpenSolaris</a></h3> |
506 <h3><a name="opensolaris">OpenSolaris</a></h3> |
432 <blockquote> |
507 <blockquote> |
433 <h4>OpenSolaris 2009.06</h4> |
508 <h4>OpenSolaris 2009.06</h4> |
434 <p> |
509 <p> |
435 <blockquote> |
510 <blockquote> |
436 After installing <a href="http://opensolaris.org">OpenSolaris</a> 2009.06 |
511 After installing <a href="http://opensolaris.org">OpenSolaris</a> 2009.06 |
437 you need to install several build dependencies. |
512 you need to install several build dependencies. |
438 The simplest way to install the build dependencies is to |
513 The simplest way to install the build dependencies is to |
439 execute the following commands: |
514 execute the following commands: |
440 <p/> |
515 <p/> |
441 <code>pfexec pkg install SUNWgmake SUNWj6dev SUNWant sunstudioexpress SUNWcups SUNWzip SUNWunzip SUNWxwhl SUNWxorg-headers SUNWaudh SUNWfreetype2</code> |
516 <code>pfexec pkg install SUNWgmake SUNWj6dev SUNWant sunstudioexpress SUNWcups SUNWzip SUNWunzip SUNWxwhl SUNWxorg-headers SUNWaudh SUNWfreetype2</code> |
442 <p/> |
517 <p/> |
443 In addition, it is necessary to set a few environment variables for the build: |
518 In addition, it is necessary to set a few environment variables for the build: |
444 <p/> |
519 <p/> |
445 <code>export LANG=C ALT_COMPILER_PATH=/opt/SunStudioExpress/bin/ ALT_CUPS_HEADERS_PATH=/usr/include/</code> |
520 <code>export LANG=C ALT_COMPILER_PATH=/opt/SunStudioExpress/bin/ ALT_CUPS_HEADERS_PATH=/usr/include/</code> |
446 <p/> |
521 <p/> |
447 Finally, you need to make sure that the build process can find the Sun Studio compilers: |
522 Finally, you need to make sure that the build process can find the Sun Studio compilers: |
448 <p/> |
523 <p/> |
449 <code>export PATH=$PATH:/opt/SunStudioExpress/bin/</code> |
524 <code>export PATH=$PATH:/opt/SunStudioExpress/bin/</code> |
450 </blockquote> |
525 </blockquote> |
451 </blockquote> |
526 </blockquote> |
452 <!-- ------------------------------------------------------ --> |
527 <!-- ------------------------------------------------------ --> |
453 <hr> |
528 <hr> |
454 <h2><a name="directories">Source Directory Structure</a></h2> |
529 <h2><a name="directories">Source Directory Structure</a></h2> |
455 <blockquote> |
530 <blockquote> |
456 <p> |
531 <p> |
457 The source code for the OpenJDK is delivered in a set of |
532 The source code for the OpenJDK is delivered in a set of |
458 directories: |
533 directories: |
459 <tt>hotspot</tt>, |
534 <tt>hotspot</tt>, |
460 <tt>langtools</tt>, |
535 <tt>langtools</tt>, |
461 <tt>corba</tt>, |
536 <tt>corba</tt>, |
462 <tt>jaxws</tt>, |
537 <tt>jaxws</tt>, |
463 <tt>jaxp</tt>, |
538 <tt>jaxp</tt>, |
464 and |
539 and |
465 <tt>jdk</tt>. |
540 <tt>jdk</tt>. |
466 The <tt>hotspot</tt> directory contains the source code and make |
541 The <tt>hotspot</tt> directory contains the source code and make |
467 files for building the OpenJDK Hotspot Virtual Machine. |
542 files for building the OpenJDK Hotspot Virtual Machine. |
468 The <tt>langtools</tt> directory contains the source code and make |
543 The <tt>langtools</tt> directory contains the source code and make |
469 files for building the OpenJDK javac and language tools. |
544 files for building the OpenJDK javac and language tools. |
470 The <tt>corba</tt> directory contains the source code and make |
545 The <tt>corba</tt> directory contains the source code and make |
471 files for building the OpenJDK Corba files. |
546 files for building the OpenJDK Corba files. |
472 The <tt>jaxws</tt> directory contains the source code and make |
547 The <tt>jaxws</tt> directory contains the source code and make |
473 files for building the OpenJDK JAXWS files. |
548 files for building the OpenJDK JAXWS files. |
474 The <tt>jaxp</tt> directory contains the source code and make |
549 The <tt>jaxp</tt> directory contains the source code and make |
475 files for building the OpenJDK JAXP files. |
550 files for building the OpenJDK JAXP files. |
476 The <tt>jdk</tt> directory contains the source code and make files for |
551 The <tt>jdk</tt> directory contains the source code and make files for |
477 building the OpenJDK runtime libraries and misc files. |
552 building the OpenJDK runtime libraries and misc files. |
478 The top level <tt>Makefile</tt> |
553 The top level <tt>Makefile</tt> |
479 is used to build the entire OpenJDK. |
554 is used to build the entire OpenJDK. |
480 </blockquote> |
555 </blockquote> |
481 <!-- ------------------------------------------------------ --> |
556 <!-- ------------------------------------------------------ --> |
482 <hr> |
557 <hr> |
483 <h2><a name="building">Build Information</a></h2> |
558 <h2><a name="building">Build Information</a></h2> |
484 <blockquote> |
559 <blockquote> |
557 like <tt>C:/</tt> or <tt>C:\</tt>. |
632 like <tt>C:/</tt> or <tt>C:\</tt>. |
558 Use a 3.80 version, or find a newer |
633 Use a 3.80 version, or find a newer |
559 version that has this problem fixed. |
634 version that has this problem fixed. |
560 The older 3.80 version of make.exe can be downloaded with this |
635 The older 3.80 version of make.exe can be downloaded with this |
561 <a href="http://cygwin.paracoda.com/release/make/make-3.80-1.tar.bz2" target="_blank"> |
636 <a href="http://cygwin.paracoda.com/release/make/make-3.80-1.tar.bz2" target="_blank"> |
562 link</a>. |
637 link</a>. |
563 Use of this older 3.80 make.exe may require that you install the |
638 Use of this older 3.80 make.exe may require that you install the |
564 libintl2.dll library or libintl2 cygwin package which is |
639 libintl2.dll library or libintl2 cygwin package which is |
565 no longer installed by default by the cygwin installer. |
640 no longer installed by default by the cygwin installer. |
566 <br> |
641 <br> |
567 Also see the |
642 Also see the |
568 <a href="http://developer.mozilla.org/en/docs/Windows_build_prerequisites_using_cygwin#make" target="_blank"> |
643 <a href="http://developer.mozilla.org/en/docs/Windows_build_prerequisites_using_cygwin#make" target="_blank"> |
569 mozilla developer center</a> |
644 mozilla developer center</a> |
570 on this topic. |
645 on this topic. |
571 <br> |
646 <br> |
572 It's hoped that when make 3.82 starts shipping in a future cygwin |
647 It's hoped that when make 3.82 starts shipping in a future cygwin |
573 release that this MS-DOS path issue will be fixed. |
648 release that this MS-DOS path issue will be fixed. |
574 In addition to the above 3.80 make.exe you can download |
649 In addition to the above 3.80 make.exe you can download |
575 this |
650 this |
576 <a href="http://www.cmake.org/files/cygwin/make.exe"> |
651 <a href="http://www.cmake.org/files/cygwin/make.exe"> |
577 www.cmake.org make.exe</a> which will not have a libintl2.dll |
652 www.cmake.org make.exe</a> which will not have a libintl2.dll |
578 dependency. |
653 dependency. |
579 </li> |
654 </li> |
580 </ul> |
655 </ul> |
581 <p> |
656 <p> |
582 Information on GNU make, and access to ftp download sites, are |
657 Information on GNU make, and access to ftp download sites, are |
583 available on the |
658 available on the |
584 <a href="http://www.gnu.org/software/make/make.html" target="_blank"> |
659 <a href="http://www.gnu.org/software/make/make.html" target="_blank"> |
585 GNU make web site |
660 GNU make web site |
586 </a>. |
661 </a>. |
587 The latest source to GNU make is available at |
662 The latest source to GNU make is available at |
588 <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank"> |
663 <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank"> |
589 ftp.gnu.org/pub/gnu/make/</a>. |
664 ftp.gnu.org/pub/gnu/make/</a>. |
590 </blockquote> |
665 </blockquote> |
591 <!-- ------------------------------------------------------ --> |
666 <!-- ------------------------------------------------------ --> |
592 <hr> |
667 <hr> |
593 <h3><a name="linux">Basic Linux System Setup</a></h3> |
668 <h3><a name="linux">Basic Linux System Setup</a></h3> |
594 <blockquote> |
669 <blockquote> |
595 <strong>i586 only:</strong> |
670 <strong>i586 only:</strong> |
596 The minimum recommended hardware for building the Linux version |
671 The minimum recommended hardware for building the Linux version |
597 is a Pentium class processor or better, at least 256 MB of RAM, and |
672 is a Pentium class processor or better, at least 256 MB of RAM, and |
598 approximately 1.5 GB of free disk space. |
673 approximately 1.5 GB of free disk space. |
599 <p> |
674 <p> |
600 <strong>X64 only:</strong> |
675 <strong>X64 only:</strong> |
601 The minimum recommended hardware for building the Linux |
676 The minimum recommended hardware for building the Linux |
602 version is an AMD Opteron class processor, at least 512 MB of RAM, and |
677 version is an AMD Opteron class processor, at least 512 MB of RAM, and |
603 approximately 4 GB of free disk space. |
678 approximately 4 GB of free disk space. |
604 <p> |
679 <p> |
605 The build will use the tools contained in |
680 The build will use the tools contained in |
606 <tt>/bin</tt> and |
681 <tt>/bin</tt> and |
607 <tt>/usr/bin</tt> |
682 <tt>/usr/bin</tt> |
608 of a standard installation of the Linux operating environment. |
683 of a standard installation of the Linux operating environment. |
609 You should ensure that these directories are in your |
684 You should ensure that these directories are in your |
610 <tt>PATH</tt>. |
685 <tt>PATH</tt>. |
611 <p> |
686 <p> |
612 Note that some Linux systems have a habit of pre-populating |
687 Note that some Linux systems have a habit of pre-populating |
613 your environment variables for you, for example <tt>JAVA_HOME</tt> |
688 your environment variables for you, for example <tt>JAVA_HOME</tt> |
614 might get pre-defined for you to refer to the JDK installed on |
689 might get pre-defined for you to refer to the JDK installed on |
615 your Linux system. |
690 your Linux system. |
616 You will need to unset <tt>JAVA_HOME</tt>. |
691 You will need to unset <tt>JAVA_HOME</tt>. |
617 It's a good idea to run <tt>env</tt> and verify the |
692 It's a good idea to run <tt>env</tt> and verify the |
618 environment variables you are getting from the default system |
693 environment variables you are getting from the default system |
619 settings make sense for building the |
694 settings make sense for building the |
620 OpenJDK. |
695 OpenJDK. |
621 </blockquote> |
696 </blockquote> |
622 <!-- ------------------------------------------------------ --> |
697 <!-- ------------------------------------------------------ --> |
623 <h4><a name="linux_checklist">Basic Linux Check List</a></h4> |
698 <h4><a name="linux_checklist">Basic Linux Check List</a></h4> |
624 <blockquote> |
699 <blockquote> |
625 <ol> |
700 <ol> |
658 the Solaris x86 version, a Pentium class processor or better and at |
728 the Solaris x86 version, a Pentium class processor or better and at |
659 least 512 MB of RAM are recommended. |
729 least 512 MB of RAM are recommended. |
660 Approximately 1.4 GB of free disk |
730 Approximately 1.4 GB of free disk |
661 space is needed for a 32-bit build. |
731 space is needed for a 32-bit build. |
662 <p> |
732 <p> |
663 If you are building the 64-bit version, you should |
733 If you are building the 64-bit version, you should |
664 run the command "isainfo -v" to verify that you have a |
734 run the command "isainfo -v" to verify that you have a |
665 64-bit installation, it should say <tt>sparcv9</tt> or |
735 64-bit installation, it should say <tt>sparcv9</tt> or |
666 <tt>amd64</tt>. |
736 <tt>amd64</tt>. |
667 An additional 7 GB of free disk space is needed |
737 An additional 7 GB of free disk space is needed |
668 for a 64-bit build. |
738 for a 64-bit build. |
669 <p> |
739 <p> |
670 The build uses the tools contained in <tt>/usr/ccs/bin</tt> |
740 The build uses the tools contained in <tt>/usr/ccs/bin</tt> |
671 and <tt>/usr/bin</tt> of a standard developer or full installation of |
741 and <tt>/usr/bin</tt> of a standard developer or full installation of |
672 the Solaris operating environment. |
742 the Solaris operating environment. |
673 <p> |
743 <p> |
674 Solaris patches specific to the JDK can be downloaded from the |
744 Solaris patches specific to the JDK can be downloaded from the |
675 <a href="http://sunsolve.sun.com/show.do?target=patches/JavaSE" target="_blank"> |
745 <a href="http://sunsolve.sun.com/show.do?target=patches/JavaSE" target="_blank"> |
676 SunSolve JDK Solaris patches download page</a>. |
746 SunSolve JDK Solaris patches download page</a>. |
677 You should ensure that the latest patch cluster for |
747 You should ensure that the latest patch cluster for |
678 your version of the Solaris operating environment has also |
748 your version of the Solaris operating environment has also |
679 been installed. |
749 been installed. |
680 </blockquote> |
750 </blockquote> |
681 <!-- ------------------------------------------------------ --> |
751 <!-- ------------------------------------------------------ --> |
682 <h4><a name="solaris_checklist">Basic Solaris Check List</a></h4> |
752 <h4><a name="solaris_checklist">Basic Solaris Check List</a></h4> |
683 <blockquote> |
753 <blockquote> |
684 <ol> |
754 <ol> |
685 <li> |
755 <li> |
686 Install the |
756 Install the |
687 <a href="#bootjdk">Bootstrap JDK</a>, set |
757 <a href="#bootjdk">Bootstrap JDK</a>, set |
688 <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>. |
758 <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>. |
689 </li> |
|
690 <li> |
|
691 Install the |
|
692 <a href="#binaryplugs">Binary Plugs</a>, set |
|
693 <tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>. |
|
694 </li> |
759 </li> |
695 <li> |
760 <li> |
696 <a href="#importjdk">Optional Import JDK</a>, set |
761 <a href="#importjdk">Optional Import JDK</a>, set |
697 <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>. |
762 <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>. |
698 </li> |
763 </li> |
839 that contains a <tt>bin, lib, and include</tt> |
899 that contains a <tt>bin, lib, and include</tt> |
840 It's also a good idea to also place its <tt>bin</tt> directory |
900 It's also a good idea to also place its <tt>bin</tt> directory |
841 in the <tt>PATH</tt> environment variable, although it's |
901 in the <tt>PATH</tt> environment variable, although it's |
842 not required. |
902 not required. |
843 <p> |
903 <p> |
844 <strong>Solaris:</strong> |
904 <strong>Solaris:</strong> |
845 Some pre-installed JDK images may be available to you in the |
905 Some pre-installed JDK images may be available to you in the |
846 directory <tt>/usr/jdk/instances</tt>. |
906 directory <tt>/usr/jdk/instances</tt>. |
847 If you don't set |
907 If you don't set |
848 <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt> |
908 <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt> |
849 the makefiles will look in that location for a JDK it can use. |
909 the makefiles will look in that location for a JDK it can use. |
850 </blockquote> |
|
851 <!-- ------------------------------------------------------ --> |
|
852 <h4><a name="binaryplugs">Binary Plugs</a></h4> |
|
853 <blockquote> |
|
854 Not all of the source code that makes up the JDK is available |
|
855 under an open-source license. |
|
856 This is a temporary situation and these binary plugs will be |
|
857 replaced with fully open source replacements as soon as possible. |
|
858 So currently, in order to build a complete OpenJDK image, |
|
859 you must first download and install the appropriate |
|
860 binary plug bundles for the OpenJDK, go to the |
|
861 <a href="http://openjdk.java.net" target="_blank">OpenJDK</a> site and select |
|
862 the |
|
863 "<b>Bundles(7)</b>" |
|
864 link and download the binaryplugs for |
|
865 your particular platform. |
|
866 The file downloaded is a jar file that must be extracted by running |
|
867 the jar file with: |
|
868 <blockquote> |
|
869 <pre> |
|
870 <tt><b>java -jar jdk-7-ea-plug-b<i>nn</i>-<i>os</i>-<i>arch</i>-<i>dd</i>_<i>month</i>_<i>year</i>.jar</b></tt> |
|
871 </pre> |
|
872 </blockquote> |
|
873 A prompt will be issued for acceptance of these binary plug files. |
|
874 During the OpenJDK build process these "binary plugs" |
|
875 for the encumbered components will be copied into your |
|
876 resulting OpenJDK binary build image. |
|
877 These binary plug files are only for the purpose of |
|
878 building an OpenJDK binary. |
|
879 Make sure you set |
|
880 <tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt> |
|
881 to the root of this installation. |
|
882 </blockquote> |
910 </blockquote> |
883 <!-- ------------------------------------------------------ --> |
911 <!-- ------------------------------------------------------ --> |
884 <h4><a name="importjdk">Optional Import JDK</a></h4> |
912 <h4><a name="importjdk">Optional Import JDK</a></h4> |
885 <blockquote> |
913 <blockquote> |
886 The <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt> |
914 The <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt> |
940 </blockquote> |
968 </blockquote> |
941 <strong><a name="studio">Solaris: Sun Studio</a></strong> |
969 <strong><a name="studio">Solaris: Sun Studio</a></strong> |
942 <blockquote> |
970 <blockquote> |
943 At a minimum, the |
971 At a minimum, the |
944 <a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.htm" target="_blank"> |
972 <a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.htm" target="_blank"> |
945 Sun Studio 12 Update 1 Compilers</a> |
973 Sun Studio 12 Update 1 Compilers</a> |
946 (containing version 5.10 of the C and C++ compilers) is required, |
974 (containing version 5.10 of the C and C++ compilers) is required, |
947 including specific patches. |
975 including specific patches. |
948 <p> |
976 <p> |
949 The Solaris SPARC patch list is: |
977 The Solaris SPARC patch list is: |
950 <ul> |
978 <ul> |
951 <li> |
979 <li> |
952 118683-05: SunOS 5.10: Patch for profiling libraries and assembler |
980 118683-05: SunOS 5.10: Patch for profiling libraries and assembler |
953 </li> |
981 </li> |
954 <li> |
982 <li> |
955 119963-21: SunOS 5.10: Shared library patch for C++ |
983 119963-21: SunOS 5.10: Shared library patch for C++ |
956 </li> |
984 </li> |
957 <li> |
985 <li> |
958 120753-08: SunOS 5.10: Microtasking libraries (libmtsk) patch |
986 120753-08: SunOS 5.10: Microtasking libraries (libmtsk) patch |
959 </li> |
987 </li> |
960 <li> |
988 <li> |
961 128228-09: Sun Studio 12 Update 1: Patch for Sun C++ Compiler |
989 128228-09: Sun Studio 12 Update 1: Patch for Sun C++ Compiler |
962 </li> |
990 </li> |
963 <li> |
991 <li> |
964 141860-03: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95 |
992 141860-03: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95 |
965 </li> |
993 </li> |
966 <li> |
994 <li> |
967 141861-05: Sun Studio 12 Update 1: Patch for Sun C Compiler |
995 141861-05: Sun Studio 12 Update 1: Patch for Sun C Compiler |
968 </li> |
996 </li> |
969 <li> |
997 <li> |
970 142371-01: Sun Studio 12.1 Update 1: Patch for dbx |
998 142371-01: Sun Studio 12.1 Update 1: Patch for dbx |
971 </li> |
999 </li> |
972 <li> |
1000 <li> |
973 143384-02: Sun Studio 12 Update 1: Patch for debuginfo handling |
1001 143384-02: Sun Studio 12 Update 1: Patch for debuginfo handling |
974 </li> |
1002 </li> |
975 <li> |
1003 <li> |
976 143385-02: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95 |
1004 143385-02: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95 |
977 </li> |
1005 </li> |
978 <li> |
1006 <li> |
979 142369-01: Sun Studio 12.1: Patch for Performance Analyzer Tools |
1007 142369-01: Sun Studio 12.1: Patch for Performance Analyzer Tools |
980 </li> |
1008 </li> |
981 </ul> |
1009 </ul> |
982 <p> |
1010 <p> |
983 The Solaris X86 patch list is: |
1011 The Solaris X86 patch list is: |
984 <ul> |
1012 <ul> |
985 <li> |
1013 <li> |
986 119961-07: SunOS 5.10_x86, x64, Patch for profiling libraries and assembler |
1014 119961-07: SunOS 5.10_x86, x64, Patch for profiling libraries and assembler |
987 </li> |
1015 </li> |
988 <li> |
1016 <li> |
989 119964-21: SunOS 5.10_x86: Shared library patch for C++_x86 |
1017 119964-21: SunOS 5.10_x86: Shared library patch for C++_x86 |
990 </li> |
1018 </li> |
991 <li> |
1019 <li> |
992 120754-08: SunOS 5.10_x86: Microtasking libraries (libmtsk) patch |
1020 120754-08: SunOS 5.10_x86: Microtasking libraries (libmtsk) patch |
993 </li> |
1021 </li> |
994 <li> |
1022 <li> |
995 141858-06: Sun Studio 12 Update 1_x86: Sun Compiler Common patch for x86 backend |
1023 141858-06: Sun Studio 12 Update 1_x86: Sun Compiler Common patch for x86 backend |
996 </li> |
1024 </li> |
997 <li> |
1025 <li> |
998 128229-09: Sun Studio 12 Update 1_x86: Patch for C++ Compiler |
1026 128229-09: Sun Studio 12 Update 1_x86: Patch for C++ Compiler |
999 </li> |
1027 </li> |
1000 <li> |
1028 <li> |
1001 142363-05: Sun Studio 12 Update 1_x86: Patch for C Compiler |
1029 142363-05: Sun Studio 12 Update 1_x86: Patch for C Compiler |
1002 </li> |
1030 </li> |
1003 <li> |
1031 <li> |
1004 142368-01: Sun Studio 12.1_x86: Patch for Performance Analyzer Tools |
1032 142368-01: Sun Studio 12.1_x86: Patch for Performance Analyzer Tools |
1005 </li> |
1033 </li> |
1006 </ul> |
1034 </ul> |
1007 <p> |
1035 <p> |
1008 Set |
1036 Set |
1009 <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a> |
1037 <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a> |
1010 to point to the location of |
1038 to point to the location of |
1011 the compiler binaries, and place this location in the <tt>PATH</tt>. |
1039 the compiler binaries, and place this location in the <tt>PATH</tt>. |
1012 <p> |
1040 <p> |
1013 The Oracle Solaris Studio Express compilers at: |
1041 The Oracle Solaris Studio Express compilers at: |
1014 <a href="http://developers.sun.com/sunstudio/downloads/express.jsp" target="_blank"> |
1042 <a href="http://developers.sun.com/sunstudio/downloads/express.jsp" target="_blank"> |
1015 Oracle Solaris Studio Express Download site</a> |
1043 Oracle Solaris Studio Express Download site</a> |
1016 are also an option, although these compilers have not |
1044 are also an option, although these compilers have not |
1017 been extensively used yet. |
1045 been extensively used yet. |
1018 </blockquote> |
1046 </blockquote> |
1019 <strong><a name="msvc32">Windows i586: Microsoft Visual Studio 2010 Compilers</a></strong> |
1047 <strong><a name="msvc32">Windows i586: Microsoft Visual Studio 2010 Compilers</a></strong> |
1020 <blockquote> |
1048 <blockquote> |
1021 <p> |
1049 <p> |
1022 <b>BEGIN WARNING</b>: At this time (Spring/Summer 2010) JDK 7 is starting a transition to |
1050 <b>BEGIN WARNING</b>: At this time (Spring/Summer 2010) JDK 7 is starting a transition to |
1023 use the newest VS2010 Microsoft compilers. These build instructions are updated |
1051 use the newest VS2010 Microsoft compilers. These build instructions are updated |
1024 to show where we are going. We have a QA process to go through before |
1052 to show where we are going. We have a QA process to go through before |
1025 official builds actually use VS2010. So for now, official builds are |
1053 official builds actually use VS2010. So for now, official builds are |
1026 still using VS2003. No other compilers are known to build the entire JDK, |
1054 still using VS2003. No other compilers are known to build the entire JDK, |
1027 including non-open portions. |
1055 including non-open portions. |
1028 So for now you should be able to build with either VS2003 or VS2010. |
1056 So for now you should be able to build with either VS2003 or VS2010. |
1029 We do not guarantee that VS2008 will work, although there is sufficient |
1057 We do not guarantee that VS2008 will work, although there is sufficient |
1030 makefile support to make at least basic JDK builds plausible. |
1058 makefile support to make at least basic JDK builds plausible. |
1031 Visual Studio 2010 Express compilers are now able to build all the |
1059 Visual Studio 2010 Express compilers are now able to build all the |
1032 open source repositories, but this is 32 bit only. To build 64 bit |
1060 open source repositories, but this is 32 bit only. To build 64 bit |
1033 Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> |
1061 Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> |
1034 <p> |
1062 <p> |
1035 The 32-bit OpenJDK Windows build |
1063 The 32-bit OpenJDK Windows build |
1036 requires |
1064 requires |
1037 Microsoft Visual Studio C++ 2010 (VS2010) Professional |
1065 Microsoft Visual Studio C++ 2010 (VS2010) Professional |
1038 Edition or Express compiler. |
1066 Edition or Express compiler. |
1039 The compiler and other tools are expected to reside |
1067 The compiler and other tools are expected to reside |
1040 in the location defined by the variable |
1068 in the location defined by the variable |
1041 <tt>VS100COMNTOOLS</tt> which |
1069 <tt>VS100COMNTOOLS</tt> which |
1042 is set by the Microsoft Visual Studio installer. |
1070 is set by the Microsoft Visual Studio installer. |
1043 <p> |
1071 <p> |
1044 Once the compiler is installed, |
1072 Once the compiler is installed, |
1045 it is recommended that you run <tt>VCVARS32.BAT</tt> |
1073 it is recommended that you run <tt>VCVARS32.BAT</tt> |
1046 to set the compiler environment variables |
1074 to set the compiler environment variables |
1047 <tt>INCLUDE</tt>, |
1075 <tt>INCLUDE</tt>, |
1048 <tt>LIB</tt>, and |
1076 <tt>LIB</tt>, and |
1049 <tt>PATH</tt> |
1077 <tt>PATH</tt> |
1050 prior to building the |
1078 prior to building the |
1051 OpenJDK. |
1079 OpenJDK. |
1052 The above environment variables <b>MUST</b> be set. |
1080 The above environment variables <b>MUST</b> be set. |
1053 This compiler also contains the Windows SDK v 7.0a, |
1081 This compiler also contains the Windows SDK v 7.0a, |
1054 which is an update to the Windows 7 SDK. |
1082 which is an update to the Windows 7 SDK. |
1055 <p> |
1083 <p> |
1056 <b>WARNING:</b> Make sure you check out the |
1084 <b>WARNING:</b> Make sure you check out the |
1057 <a href="#cygwin">CYGWIN link.exe WARNING</a>. |
1085 <a href="#cygwin">CYGWIN link.exe WARNING</a>. |
1058 The path <tt>/usr/bin</tt> must be after the path to the |
1086 The path <tt>/usr/bin</tt> must be after the path to the |
1059 Visual Studio product. |
1087 Visual Studio product. |
1060 </blockquote> |
1088 </blockquote> |
1061 <strong><a name="msvc64">Windows x64: Microsoft Visual Studio 2010 Professional Compiler</a></strong> |
1089 <strong><a name="msvc64">Windows x64: Microsoft Visual Studio 2010 Professional Compiler</a></strong> |
1062 <blockquote> |
1090 <blockquote> |
1063 For <b>X64</b>, builds, when using the VS2010 Professional |
1091 For <b>X64</b>, builds, when using the VS2010 Professional |
1064 compiler, the 64 bit build set up is much the same as 32 bit |
1092 compiler, the 64 bit build set up is much the same as 32 bit |
1108 The Solaris header files can be obtained by installing |
1136 The Solaris header files can be obtained by installing |
1109 the package <strong>SFWcups</strong> from the Solaris Software |
1137 the package <strong>SFWcups</strong> from the Solaris Software |
1110 Companion CD/DVD, these often will be installed into |
1138 Companion CD/DVD, these often will be installed into |
1111 <tt>/opt/sfw/cups</tt>. |
1139 <tt>/opt/sfw/cups</tt>. |
1112 <p> |
1140 <p> |
1113 <strong>Linux:</strong> |
1141 <strong>Linux:</strong> |
1114 CUPS header files are required for building the |
1142 CUPS header files are required for building the |
1115 OpenJDK on Linux. |
1143 OpenJDK on Linux. |
1116 The Linux header files are usually available from a "cups" |
1144 The Linux header files are usually available from a "cups" |
1117 development package, it's recommended that you try and use |
1145 development package, it's recommended that you try and use |
1118 the package provided by the particular version of Linux that |
1146 the package provided by the particular version of Linux that |
1119 you are using. |
1147 you are using. |
1120 <p> |
1148 <p> |
1121 The CUPS header files can always be downloaded from |
1149 The CUPS header files can always be downloaded from |
1122 <a href="http://www.cups.org" target="_blank">www.cups.org</a>. |
1150 <a href="http://www.cups.org" target="_blank">www.cups.org</a>. |
1123 The variable |
1151 The variable |
1124 <tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt> |
1152 <tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt> |
1125 can be used to override the default location of the |
1153 can be used to override the default location of the |
1126 CUPS Header files. |
1154 CUPS Header files. |
1127 </blockquote> |
1155 </blockquote> |
1128 <!-- ------------------------------------------------------ --> |
1156 <!-- ------------------------------------------------------ --> |
1129 <h4><a name="xrender">XRender Extension Headers (Solaris & Linux)</a></h4> |
1157 <h4><a name="xrender">XRender Extension Headers (Solaris & Linux)</a></h4> |
1130 <blockquote> |
1158 <blockquote> |
1131 <p> |
1159 <p> |
1132 <strong>Solaris:</strong> |
1160 <strong>Solaris:</strong> |
1133 XRender header files are required for building the |
1161 XRender header files are required for building the |
1134 OpenJDK on Solaris. |
1162 OpenJDK on Solaris. |
1135 The XRender header file is included with the other X11 header files |
1163 The XRender header file is included with the other X11 header files |
1136 in the package <strong>SFWxwinc</strong> on new enough versions of |
1164 in the package <strong>SFWxwinc</strong> on new enough versions of |
1137 Solaris and will be installed in |
1165 Solaris and will be installed in |
1138 <tt>/usr/X11/include/X11/extensions/Xrender.h</tt> |
1166 <tt>/usr/X11/include/X11/extensions/Xrender.h</tt> |
1139 </p><p> |
1167 </p><p> |
1140 <strong>Linux:</strong> |
1168 <strong>Linux:</strong> |
1141 XRender header files are required for building the |
1169 XRender header files are required for building the |
1142 OpenJDK on Linux. |
1170 OpenJDK on Linux. |
1143 The Linux header files are usually available from a "Xrender" |
1171 The Linux header files are usually available from a "Xrender" |
1144 development package, it's recommended that you try and use |
1172 development package, it's recommended that you try and use |
1145 the package provided by the particular distribution of Linux that |
1173 the package provided by the particular distribution of Linux that |
1146 you are using. |
1174 you are using. |
1147 </p> |
1175 </p> |
1148 </blockquote> |
1176 </blockquote> |
1149 <!-- ------------------------------------------------------ --> |
1177 <!-- ------------------------------------------------------ --> |
1150 <h4><a name="freetype">FreeType 2</a></h4> |
1178 <h4><a name="freetype">FreeType 2</a></h4> |
1151 <blockquote> |
1179 <blockquote> |
1152 Version 2.3 or newer of FreeType is required for building the OpenJDK. |
1180 Version 2.3 or newer of FreeType is required for building the OpenJDK. |
1153 On Unix systems required files can be available as part of your |
1181 On Unix systems required files can be available as part of your |
1154 distribution (while you still may need to upgrade them). |
1182 distribution (while you still may need to upgrade them). |
1155 Note that you need development version of package that |
1183 Note that you need development version of package that |
1156 includes both FreeType library and header files. |
1184 includes both FreeType library and header files. |
1157 <p> |
1185 <p> |
1158 You can always download latest FreeType version from the |
1186 You can always download latest FreeType version from the |
1159 <a href="http://www.freetype.org" target="_blank">FreeType website</a>. |
1187 <a href="http://www.freetype.org" target="_blank">FreeType website</a>. |
1160 <p> |
1188 <p> |
1161 Makefiles will try to pick FreeType from /usr/lib and /usr/include. |
1189 Makefiles will try to pick FreeType from /usr/lib and /usr/include. |
1162 In case it is installed elsewhere you will need to set environment |
1190 In case it is installed elsewhere you will need to set environment |
1163 variables |
1191 variables |
1164 <tt><a href="#ALT_FREETYPE_LIB_PATH">ALT_FREETYPE_LIB_PATH</a></tt> |
1192 <tt><a href="#ALT_FREETYPE_LIB_PATH">ALT_FREETYPE_LIB_PATH</a></tt> |
1165 and |
1193 and |
1166 <tt><a href="#ALT_FREETYPE_HEADERS_PATH">ALT_FREETYPE_HEADERS_PATH</a></tt> |
1194 <tt><a href="#ALT_FREETYPE_HEADERS_PATH">ALT_FREETYPE_HEADERS_PATH</a></tt> |
1167 to refer to place where library and header files are installed. |
1195 to refer to place where library and header files are installed. |
1168 <p> |
1196 <p> |
1169 Building the freetype 2 libraries from scratch is also possible, |
1197 Building the freetype 2 libraries from scratch is also possible, |
1170 however on Windows refer to the |
1198 however on Windows refer to the |
1171 <a href="http://freetype.freedesktop.org/wiki/FreeType_DLL"> |
1199 <a href="http://freetype.freedesktop.org/wiki/FreeType_DLL"> |
1172 Windows FreeType DLL build instructions</a>. |
1200 Windows FreeType DLL build instructions</a>. |
1173 <p> |
1201 <p> |
1174 Note that by default FreeType is built with byte code hinting |
1202 Note that by default FreeType is built with byte code hinting |
1175 support disabled due to licensing restrictions. |
1203 support disabled due to licensing restrictions. |
1176 In this case, text appearance and metrics are expected to |
1204 In this case, text appearance and metrics are expected to |
1177 differ from Sun's official JDK build. |
1205 differ from Sun's official JDK build. |
1178 See |
1206 See |
1179 <a href="http://freetype.sourceforge.net/freetype2/index.html"> |
1207 <a href="http://freetype.sourceforge.net/freetype2/index.html"> |
1180 the SourceForge FreeType2 Home Page |
1208 the SourceForge FreeType2 Home Page |
1181 </a> |
1209 </a> |
1182 for more information. |
1210 for more information. |
1183 </blockquote> |
1211 </blockquote> |
1184 <!-- ------------------------------------------------------ --> |
1212 <!-- ------------------------------------------------------ --> |
1185 <h4><a name="alsa">Advanced Linux Sound Architecture (ALSA) (Linux only)</a></h4> |
1213 <h4><a name="alsa">Advanced Linux Sound Architecture (ALSA) (Linux only)</a></h4> |
1186 <blockquote> |
1214 <blockquote> |
1187 <strong>Linux only:</strong> |
1215 <strong>Linux only:</strong> |
1193 the package provided by the particular version of Linux that |
1221 the package provided by the particular version of Linux that |
1194 you are using. |
1222 you are using. |
1195 The makefiles will check this emit a sanity error if it is |
1223 The makefiles will check this emit a sanity error if it is |
1196 missing or the wrong version. |
1224 missing or the wrong version. |
1197 <p> |
1225 <p> |
1198 In particular, older Linux systems will likely not have the |
1226 In particular, older Linux systems will likely not have the |
1199 right version of ALSA installed, for example |
1227 right version of ALSA installed, for example |
1200 Redhat AS 2.1 U2 and SuSE 8.1 do not include a sufficiently |
1228 Redhat AS 2.1 U2 and SuSE 8.1 do not include a sufficiently |
1201 recent ALSA distribution. |
1229 recent ALSA distribution. |
1202 On rpm-based systems, you can see if ALSA is installed by |
1230 On rpm-based systems, you can see if ALSA is installed by |
1203 running this command: |
1231 running this command: |
1204 <pre> |
1232 <pre> |
1205 <tt>rpm -qa | grep alsa</tt> |
1233 <tt>rpm -qa | grep alsa</tt> |
1206 </pre> |
1234 </pre> |
1207 Both <tt>alsa</tt> and <tt>alsa-devel</tt> packages are needed. |
1235 Both <tt>alsa</tt> and <tt>alsa-devel</tt> packages are needed. |
1208 <p> |
1236 <p> |
1209 If your distribution does not come with ALSA, and you can't |
1237 If your distribution does not come with ALSA, and you can't |
1210 find ALSA packages built for your particular system, |
1238 find ALSA packages built for your particular system, |
1211 you can try to install the pre-built ALSA rpm packages from |
1239 you can try to install the pre-built ALSA rpm packages from |
1212 <a href="http://www.freshrpms.net/" target="_blank"> |
1240 <a href="http://www.freshrpms.net/" target="_blank"> |
1213 <tt>www.freshrpms.net</tt></a>. |
1241 <tt>www.freshrpms.net</tt></a>. |
1214 Note that installing a newer ALSA could |
1242 Note that installing a newer ALSA could |
1215 break sound output if an older version of ALSA was previously |
1243 break sound output if an older version of ALSA was previously |
1216 installed on the system, but it will enable JDK compilation. |
1244 installed on the system, but it will enable JDK compilation. |
1217 <blockquote> |
1245 <blockquote> |
1218 Installation: execute as root<br> |
1246 Installation: execute as root<br> |
1219 [i586]: <code>rpm -Uv --force alsa-lib-devel-0.9.1-rh61.i386.rpm</code><br> |
1247 [i586]: <code>rpm -Uv --force alsa-lib-devel-0.9.1-rh61.i386.rpm</code><br> |
1220 [x64]: <code>rpm -Uv --force alsa-lib-devel-0.9.8-amd64.x86_64.rpm</code><br> |
1248 [x64]: <code>rpm -Uv --force alsa-lib-devel-0.9.8-amd64.x86_64.rpm</code><br> |
1221 Uninstallation:<br> |
1249 Uninstallation:<br> |
1352 </tr> |
1380 </tr> |
1353 </tbody> |
1381 </tbody> |
1354 </table> |
1382 </table> |
1355 </blockquote> |
1383 </blockquote> |
1356 <p> |
1384 <p> |
1357 Note that the CYGWIN software can conflict with other non-CYGWIN |
1385 Note that the CYGWIN software can conflict with other non-CYGWIN |
1358 software on your Windows system. |
1386 software on your Windows system. |
1359 CYGWIN provides a |
1387 CYGWIN provides a |
1360 <a href="http://cygwin.com/faq/faq.using.html" target="_blank">FAQ</a> for |
1388 <a href="http://cygwin.com/faq/faq.using.html" target="_blank">FAQ</a> for |
1361 known issues and problems, of particular interest is the |
1389 known issues and problems, of particular interest is the |
1362 section on |
1390 section on |
1363 <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank"> |
1391 <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank"> |
1364 BLODA (applications that interfere with CYGWIN)</a>. |
1392 BLODA (applications that interfere with CYGWIN)</a>. |
1365 <p> |
1393 <p> |
1366 <b>WARNING:</b> |
1394 <b>WARNING:</b> |
1367 Be very careful with <b><tt>link.exe</tt></b>, it will conflict |
1395 Be very careful with <b><tt>link.exe</tt></b>, it will conflict |
1368 with the Visual Studio version. You need the Visual Studio |
1396 with the Visual Studio version. You need the Visual Studio |
1369 version of <tt>link.exe</tt>, not the CYGWIN one. |
1397 version of <tt>link.exe</tt>, not the CYGWIN one. |
1370 So it's important that the Visual Studio paths in PATH preceed |
1398 So it's important that the Visual Studio paths in PATH preceed |
1371 the CYGWIN path <tt>/usr/bin</tt>. |
1399 the CYGWIN path <tt>/usr/bin</tt>. |
1372 </blockquote> |
1400 </blockquote> |
1373 <strong><a name="dxsdk">Microsoft DirectX 9.0 SDK header files and libraries</a></strong> |
1401 <strong><a name="dxsdk">Microsoft DirectX 9.0 SDK header files and libraries</a></strong> |
1374 <blockquote> |
1402 <blockquote> |
1375 Microsoft DirectX 9.0 SDK (Summer 2004) |
1403 Microsoft DirectX 9.0 SDK (Summer 2004) |
1376 headers are required for building |
1404 headers are required for building |
1377 OpenJDK. |
1405 OpenJDK. |
1378 This SDK can be downloaded from |
1406 This SDK can be downloaded from |
1379 <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FD044A42-9912-42A3-9A9E-D857199F888E&displaylang=en" target="_blank"> |
1407 <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FD044A42-9912-42A3-9A9E-D857199F888E&displaylang=en" target="_blank"> |
1380 Microsoft DirectX 9.0 SDK (Summer 2004)</a>. |
1408 Microsoft DirectX 9.0 SDK (Summer 2004)</a>. |
1381 If the link above becomes obsolete, the SDK can be found from |
1409 If the link above becomes obsolete, the SDK can be found from |
1382 <a href="http://download.microsoft.com" target="_blank">the Microsoft Download Site</a> |
1410 <a href="http://download.microsoft.com" target="_blank">the Microsoft Download Site</a> |
1383 (search with "DirectX 9.0 SDK Update Summer 2004"). |
1411 (search with "DirectX 9.0 SDK Update Summer 2004"). |
1384 The location of this SDK can be set with |
1412 The location of this SDK can be set with |
1385 <tt><a href="#ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> |
1413 <tt><a href="#ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> |
1448 binaries and associated files in the <tt>j2sdk-image</tt> |
1476 binaries and associated files in the <tt>j2sdk-image</tt> |
1449 directory in the output directory. |
1477 directory in the output directory. |
1450 The default output directory is |
1478 The default output directory is |
1451 <tt>build/<i>platform</i></tt>, |
1479 <tt>build/<i>platform</i></tt>, |
1452 where <tt><i>platform</i></tt> is one of |
1480 where <tt><i>platform</i></tt> is one of |
1453 <tt><ul> |
1481 <blockquote> |
1454 <li>solaris-sparc</li> |
1482 <ul> |
1455 <li>solaris-sparcv9</li> |
1483 <li><tt>solaris-sparc</tt></li> |
1456 <li>solaris-i586</li> |
1484 <li><tt>solaris-sparcv9</tt></li> |
1457 <li>solaris-amd64</li> |
1485 <li><tt>solaris-i586</tt></li> |
1458 <li>linux-i586</li> |
1486 <li><tt>solaris-amd64</tt></li> |
1459 <li>linux-amd64</li> |
1487 <li><tt>linux-i586</tt></li> |
1460 <li>windows-i586</li> |
1488 <li><tt>linux-amd64</tt></li> |
1461 <li>windows-amd64</li> |
1489 <li><tt>windows-i586</tt></li> |
1462 </ul></tt> |
1490 <li><tt>windows-amd64</tt></li> |
|
1491 </ul> |
|
1492 </blockquote> |
1463 In particular, the |
1493 In particular, the |
1464 <tt>build/<i>platform</i>/j2sdk-image/bin</tt> |
1494 <tt>build/<i>platform</i>/j2sdk-image/bin</tt> |
1465 directory should contain executables for the |
1495 directory should contain executables for the |
1466 OpenJDK tools and utilities. |
1496 OpenJDK tools and utilities. |
1467 <p> |
1497 <p> |
1468 You can test that the build completed properly by using the build |
1498 You can test that the build completed properly by using the build |
1469 to run the various demos that you will find in the |
1499 to run the various demos that you will find in the |
1470 <tt>build/<i>platform</i>/j2sdk-image/demo</tt> |
1500 <tt>build/<i>platform</i>/j2sdk-image/demo</tt> |
1471 directory. |
1501 directory. |
1472 <p> |
1502 <p> |
1473 The provided regression tests can be run with the <tt>jtreg</tt> |
1503 The provided regression tests can be run with the <tt>jtreg</tt> |
1474 utility from |
1504 utility from |
1475 <a href="http://openjdk.java.net/jtreg/" target="_blank">the jtreg site</a>. |
1505 <a href="http://openjdk.java.net/jtreg/" target="_blank">the jtreg site</a>. |
1476 </blockquote> |
1506 </blockquote> |
1477 <!-- ------------------------------------------------------ --> |
1507 <!-- ------------------------------------------------------ --> |
1478 <hr> |
1508 <hr> |
1479 <h2><a name="variables">Environment/Make Variables</a></h2> |
1509 <h2><a name="variables">Environment/Make Variables</a></h2> |
1480 <p> |
1510 <p> |
1481 Some of the |
1511 Some of the |
1482 environment or make variables (just called <b>variables</b> in this |
1512 environment or make variables (just called <b>variables</b> in this |
1483 document) that can impact the build are: |
1513 document) that can impact the build are: |
1484 <blockquote> |
1514 <blockquote> |
1485 <dl> |
1515 <dl> |
1486 <dt><a name="path"><tt>PATH</tt></a> </dt> |
1516 <dt><a name="path"><tt>PATH</tt></a> </dt> |
1487 <dd>Typically you want to set the <tt>PATH</tt> to include: |
1517 <dd>Typically you want to set the <tt>PATH</tt> to include: |
1488 <ul> |
1518 <ul> |
1489 <li>The location of the GNU make binary</li> |
1519 <li>The location of the GNU make binary</li> |
1490 <li>The location of the Bootstrap JDK <tt>java</tt> |
1520 <li>The location of the Bootstrap JDK <tt>java</tt> |
1491 (see <a href="#bootjdk">Bootstrap JDK</a>)</li> |
1521 (see <a href="#bootjdk">Bootstrap JDK</a>)</li> |
1492 <li>The location of the C/C++ compilers |
1522 <li>The location of the C/C++ compilers |
1493 (see <a href="#compilers"><tt>compilers</tt></a>)</li> |
1523 (see <a href="#compilers"><tt>compilers</tt></a>)</li> |
1494 <li>The location or locations for the Unix command utilities |
1524 <li>The location or locations for the Unix command utilities |
1495 (e.g. <tt>/usr/bin</tt>)</li> |
1525 (e.g. <tt>/usr/bin</tt>)</li> |
1496 </ul> |
1526 </ul> |
1497 </dd> |
1527 </dd> |
1498 <dt><tt>MILESTONE</tt> </dt> |
1528 <dt><tt>MILESTONE</tt> </dt> |
1499 <dd> |
1529 <dd> |
1500 The milestone name for the build (<i>e.g.</i>"beta"). |
1530 The milestone name for the build (<i>e.g.</i>"beta"). |
1692 troubleshooting a build failure is to recheck that you have satisfied |
1697 troubleshooting a build failure is to recheck that you have satisfied |
1693 all the pre-build requirements for your platform. |
1698 all the pre-build requirements for your platform. |
1694 Look for the check list of the platform you are building on in the |
1699 Look for the check list of the platform you are building on in the |
1695 <a href="#contents">Table of Contents</a>. |
1700 <a href="#contents">Table of Contents</a>. |
1696 <p> |
1701 <p> |
1697 You can validate your build environment by using the <tt>sanity</tt> |
1702 You can validate your build environment by using the <tt>sanity</tt> |
1698 target. |
1703 target. |
1699 Any errors listed |
1704 Any errors listed |
1700 will stop the build from starting, and any warnings may result in |
1705 will stop the build from starting, and any warnings may result in |
1701 a flawed product build. |
1706 a flawed product build. |
1702 We strongly encourage you to evaluate every |
1707 We strongly encourage you to evaluate every |
1703 sanity check warning and fix it if required, before you proceed |
1708 sanity check warning and fix it if required, before you proceed |
1704 further with your build. |
1709 further with your build. |
1705 <p> |
1710 <p> |
1706 Some of the more common problems with builds are briefly described |
1711 Some of the more common problems with builds are briefly described |
1707 below, with suggestions for remedies. |
1712 below, with suggestions for remedies. |
1708 <ul> |
1713 <ul> |
1709 <li> |
1714 <li> |
1710 <b>Slow Builds:</b> |
1715 <b>Slow Builds:</b> |
1711 <blockquote> |
1716 <blockquote> |
1712 If your build machine seems to be overloaded from too many |
1717 If your build machine seems to be overloaded from too many |
1713 simultaneous C++ compiles, try setting the <tt>HOTSPOT_BUILD_JOBS</tt> |
1718 simultaneous C++ compiles, try setting the <tt>HOTSPOT_BUILD_JOBS</tt> |
1714 variable to <tt>1</tt> (if you're using a multiple CPU |
1719 variable to <tt>1</tt> (if you're using a multiple CPU |
1715 machine, setting it to more than the the number of CPUs is probably |
1720 machine, setting it to more than the the number of CPUs is probably |
1716 not a good idea). |
1721 not a good idea). |
1717 <p> |
1722 <p> |
1718 Creating the javadocs can be very slow, if you are running |
1723 Creating the javadocs can be very slow, if you are running |
1719 javadoc, consider skipping that step. |
1724 javadoc, consider skipping that step. |
1720 <p> |
1725 <p> |
1721 Faster hardware and more RAM always helps too. |
1726 Faster hardware and more RAM always helps too. |
1722 The VM build tends to be CPU intensive (many C++ compiles), |
1727 The VM build tends to be CPU intensive (many C++ compiles), |
1723 and the rest of the JDK will often be disk intensive. |
1728 and the rest of the JDK will often be disk intensive. |
1724 <p> |
1729 <p> |
1725 Faster compiles are possible using a tool called |
1730 Faster compiles are possible using a tool called |
1726 <a href="http://ccache.samba.org/" target="_blank">ccache</a>. |
1731 <a href="http://ccache.samba.org/" target="_blank">ccache</a>. |
1727 </blockquote> |
1732 </blockquote> |
1728 </li> |
1733 </li> |
1729 <li> |
1734 <li> |
1730 <b>File time issues:</b> |
1735 <b>File time issues:</b> |
1731 <blockquote> |
1736 <blockquote> |
1732 If you see warnings that refer to file time stamps, e.g. |
1737 If you see warnings that refer to file time stamps, e.g. |
1733 <blockquote> |
1738 <blockquote> |
1734 <i>Warning message:</i><tt> File `xxx' has modification time in |
1739 <i>Warning message:</i><tt> File `xxx' has modification time in |
1735 the future.</tt> |
1740 the future.</tt> |
1736 <br> |
1741 <br> |
1737 <i>Warning message:</i> <tt> Clock skew detected. Your build may |
1742 <i>Warning message:</i> <tt> Clock skew detected. Your build may |
1738 be incomplete.</tt> |
1743 be incomplete.</tt> |
1739 </blockquote> |
1744 </blockquote> |
1740 These warnings can occur when the clock on the build machine is out of |
1745 These warnings can occur when the clock on the build machine is out of |
1741 sync with the timestamps on the source files. Other errors, apparently |
1746 sync with the timestamps on the source files. Other errors, apparently |
1742 unrelated but in fact caused by the clock skew, can occur along with |
1747 unrelated but in fact caused by the clock skew, can occur along with |
1743 the clock skew warnings. These secondary errors may tend to obscure the |
1748 the clock skew warnings. These secondary errors may tend to obscure the |
1774 <li> |
1779 <li> |
1775 <b>Error Message: <tt>cannot restore segment prot after reloc</tt></b> |
1780 <b>Error Message: <tt>cannot restore segment prot after reloc</tt></b> |
1776 <blockquote> |
1781 <blockquote> |
1777 This is probably an issue with SELinux (See |
1782 This is probably an issue with SELinux (See |
1778 <a href="http://en.wikipedia.org/wiki/SELinux" target="_blank"> |
1783 <a href="http://en.wikipedia.org/wiki/SELinux" target="_blank"> |
1779 http://en.wikipedia.org/wiki/SELinux</a>). |
1784 http://en.wikipedia.org/wiki/SELinux</a>). |
1780 Parts of the VM is built without the <tt>-fPIC</tt> for |
1785 Parts of the VM is built without the <tt>-fPIC</tt> for |
1781 performance reasons. |
1786 performance reasons. |
1782 <p> |
1787 <p> |
1783 To completely disable SELinux: |
1788 To completely disable SELinux: |
1784 <tt> |
1789 <ol> |
1785 <ol> |
1790 <li><tt>$ su root</tt></li> |
1786 <li>$ su root</li> |
1791 <li><tt># system-config-securitylevel</tt></li> |
1787 <li># system-config-securitylevel</li> |
1792 <li><tt>In the window that appears, select the SELinux tab</tt></li> |
1788 <li>In the window that appears, select the SELinux tab</li> |
1793 <li><tt>Disable SELinux</tt></li> |
1789 <li>Disable SELinux</li> |
1794 </ol> |
1790 </ol> |
|
1791 </tt> |
|
1792 <p> |
1795 <p> |
1793 Alternatively, instead of completely disabling it you could |
1796 Alternatively, instead of completely disabling it you could |
1794 disable just this one check. |
1797 disable just this one check. |
1795 <tt> |
1798 <ol> |
1796 <ol> |
1799 <li>Select System->Administration->SELinux Management</li> |
1797 <li>Select System->Administration->SELinux Management</li> |
1800 <li>In the SELinux Management Tool which appears, |
1798 <li>In the SELinux Management Tool which appears, |
|
1799 select "Boolean" from the menu on the left</li> |
1801 select "Boolean" from the menu on the left</li> |
1800 <li>Expand the "Memory Protection" group</li> |
1802 <li>Expand the "Memory Protection" group</li> |
1801 <li>Check the first item, labeled |
1803 <li>Check the first item, labeled |
1802 "Allow all unconfined executables to use libraries requiring text relocation ..."</li> |
1804 "Allow all unconfined executables to use libraries requiring text relocation ..."</li> |
1803 </ol> |
1805 </ol> |
1804 </tt> |
|
1805 </blockquote> |
1806 </blockquote> |
1806 </li> |
1807 </li> |
1807 <li> |
1808 <li> |
1808 <b>Windows Error Message: <tt>*** fatal error - couldn't allocate heap, ... </tt></b> |
1809 <b>Windows Error Message: <tt>*** fatal error - couldn't allocate heap, ... </tt></b> |
1809 <blockquote> |
1810 <blockquote> |
1810 The CYGWIN software can conflict with other non-CYGWIN |
1811 The CYGWIN software can conflict with other non-CYGWIN |
1811 software. See the CYGWIN FAQ section on |
1812 software. See the CYGWIN FAQ section on |
1812 <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank"> |
1813 <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank"> |
1813 BLODA (applications that interfere with CYGWIN)</a>. |
1814 BLODA (applications that interfere with CYGWIN)</a>. |
1814 </blockquote> |
1815 </blockquote> |
1815 </li> |
1816 </li> |
1816 <li> |
1817 <li> |
1817 <b>Windows Error Message: <tt>*** multiple target patterns. Stop.</tt></b> |
1818 <b>Windows Error Message: <tt>*** multiple target patterns. Stop.</tt></b> |
1818 <blockquote> |
1819 <blockquote> |