README-builds.html

changeset 320
b87875789600
parent 298
a6b015b59fbc
child 323
dada8003df87
equal deleted inserted replaced
318:ddc2fcb3682f 320:b87875789600
52 <li><a href="#opensuse">OpenSUSE</a></li> 52 <li><a href="#opensuse">OpenSUSE</a></li>
53 <li><a href="#mandriva">Mandriva</a></li> 53 <li><a href="#mandriva">Mandriva</a></li>
54 <li><a href="#opensolaris">OpenSolaris</a></li> 54 <li><a href="#opensolaris">OpenSolaris</a></li>
55 </ul> 55 </ul>
56 </li> 56 </li>
57 <li><a href="#directories">Source Directory Structure</a> </li> 57 <li><a href="#directories">Source Directory Structure</a>
58 <ul>
59 <li><a href="#drops">Managing the Source Drops</a></li>
60 </ul>
61 </li>
58 <li><a href="#building">Build Information</a> 62 <li><a href="#building">Build Information</a>
59 <ul> 63 <ul>
60 <li><a href="#gmake">GNU Make (<tt><i>gmake</i></tt>)</a> </li> 64 <li><a href="#gmake">GNU Make (<tt><i>gmake</i></tt>)</a> </li>
61 <li><a href="#linux">Basic Linux System Setup</a> </li> 65 <li><a href="#linux">Basic Linux System Setup</a> </li>
62 <li><a href="#solaris">Basic Solaris System Setup</a> </li> 66 <li><a href="#solaris">Basic Solaris System Setup</a> </li>
63 <li><a href="#windows">Basic Windows System Setup</a> </li> 67 <li><a href="#windows">Basic Windows System Setup</a> </li>
64 <li><a href="#dependencies">Build Dependencies</a> 68 <li><a href="#dependencies">Build Dependencies</a>
65 <ul> 69 <ul>
66 <li><a href="#bootjdk">Bootstrap JDK</a> </li> 70 <li><a href="#bootjdk">Bootstrap JDK</a> </li>
67 <li><a href="#importjdk">Optional Import JDK</a> </li> 71 <li><a href="#importjdk">Optional Import JDK</a> </li>
68 <li><a href="#ant">Ant</a> </li> 72 <li><a href="#ant">Ant 1.7.1</a> </li>
69 <li><a href="#cacerts">Certificate Authority File (cacert)</a> </li> 73 <li><a href="#cacerts">Certificate Authority File (cacert)</a> </li>
70 <li><a href="#compilers">Compilers</a> 74 <li><a href="#compilers">Compilers</a>
71 <ul> 75 <ul>
72 <li><a href="#msvc32">Microsoft Visual Studio Professional/Express for 32 bit</a> </li> 76 <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> 77 <li><a href="#msvc64">Microsoft Visual Studio Professional for 64 bit</a> </li>
112 <blockquote> 116 <blockquote>
113 The OpenJDK sources are maintained with the revision control system 117 The OpenJDK sources are maintained with the revision control system
114 <a href="http://mercurial.selenic.com/wiki/Mercurial">Mercurial</a>. 118 <a href="http://mercurial.selenic.com/wiki/Mercurial">Mercurial</a>.
115 If you are new to Mercurial, please see the 119 If you are new to Mercurial, please see the
116 <a href="http://mercurial.selenic.com/wiki/BeginnersGuides">Beginner Guides</a> 120 <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>. 121 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 122 The first few chapters of the book provide an excellent overview of
119 Mercurial, what it is and how it works. 123 Mercurial, what it is and how it works.
120 <br> 124 <br>
121 For using Mercurial with the OpenJDK refer to the 125 For using Mercurial with the OpenJDK refer to the
122 <a href=""http://openjdk.java.net/guide/repositories.html#installConfig"> 126 <a href="http://openjdk.java.net/guide/repositories.html#installConfig">
123 Developer Guide: Installing and Configuring Mercurial</a> 127 Developer Guide: Installing and Configuring Mercurial</a>
124 section for more information. 128 section for more information.
125 The Forest Extension is not part of the Mercurial install, 129 The Forest Extension is not part of the Mercurial install,
126 and is optional, 130 and is optional,
127 but can be obtained with the following commands: 131 but can be obtained with the following commands:
128 <blockquote> 132 <blockquote>
144 <blockquote> 148 <blockquote>
145 To get the entire set of OpenJDK Mercurial repositories 149 To get the entire set of OpenJDK Mercurial repositories
146 using the Forest Extension: 150 using the Forest Extension:
147 <blockquote> 151 <blockquote>
148 <tt> 152 <tt>
149 hg fclone http://openjdk.java.net/jdk7/jdk7 <i>YourOpenJDK</i> 153 hg fclone http://hg.openjdk.java.net/jdk7/jdk7 <i>YourOpenJDK</i>
150 </tt> 154 </tt>
151 </blockquote> 155 </blockquote>
152 To get the entire set of OpenJDK Mercurial repositories 156 To get the entire set of OpenJDK Mercurial repositories
153 without using the Forest Extension: 157 without using the Forest Extension:
154 <blockquote> 158 <blockquote>
155 <tt> 159 <tt>
156 hg clone http://openjdk.java.net/jdk7/jdk7 <i>YourOpenJDK</i> 160 hg clone http://hg.openjdk.java.net/jdk7/jdk7 <i>YourOpenJDK</i>
157 <br>cd <i>YourOpenJDK</i> 161 <br>cd <i>YourOpenJDK</i>
158 <br>sh ./get_source.sh 162 <br>sh ./get_source.sh
159 </tt> 163 </tt>
160 </blockquote> 164 </blockquote>
161 Once you have all the repositories, the 165 Once you have all the repositories, the
205 </thead> 209 </thead>
206 <tbody> 210 <tbody>
207 <tr> 211 <tr>
208 <td>Linux X86 (32-bit)</td> 212 <td>Linux X86 (32-bit)</td>
209 <td>Fedora 9</td> 213 <td>Fedora 9</td>
210 <td>gcc 4 </td> 214 <td>gcc 4.3 </td>
211 <td>JDK 6u14 FCS </td> 215 <td>JDK 6u18</td>
212 </tr> 216 </tr>
213 <tr> 217 <tr>
214 <td>Linux X64 (64-bit)</td> 218 <td>Linux X64 (64-bit)</td>
215 <td>Fedora 9</td> 219 <td>Fedora 9</td>
216 <td>gcc 4 </td> 220 <td>gcc 4.3 </td>
217 <td>JDK 6u14 FCS </td> 221 <td>JDK 6u18</td>
218 </tr> 222 </tr>
219 <tr> 223 <tr>
220 <td>Solaris SPARC (32-bit)</td> 224 <td>Solaris SPARC (32-bit)</td>
221 <td>Solaris 10u2 + patches 225 <td>Solaris 10 Update 6</td>
222 <br>
223 See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
224 SunSolve</a> for patch downloads.
225 </td>
226 <td>Sun Studio 12 Update 1 + patches</td> 226 <td>Sun Studio 12 Update 1 + patches</td>
227 <td>JDK 6u14 FCS </td> 227 <td>JDK 6u18</td>
228 </tr> 228 </tr>
229 <tr> 229 <tr>
230 <td>Solaris SPARCV9 (64-bit)</td> 230 <td>Solaris SPARCV9 (64-bit)</td>
231 <td>Solaris 10u2 + patches 231 <td>Solaris 10 Update 6</td>
232 <br>
233 See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
234 SunSolve</a> for patch downloads.
235 </td>
236 <td>Sun Studio 12 Update 1 + patches</td> 232 <td>Sun Studio 12 Update 1 + patches</td>
237 <td>JDK 6u14 FCS </td> 233 <td>JDK 6u18</td>
238 </tr> 234 </tr>
239 <tr> 235 <tr>
240 <td>Solaris X86 (32-bit)</td> 236 <td>Solaris X86 (32-bit)</td>
241 <td>Solaris 10u2 + patches 237 <td>Solaris 10 Update 6</td>
242 <br>
243 See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
244 SunSolve</a> for patch downloads.
245 </td>
246 <td>Sun Studio 12 Update 1 + patches</td> 238 <td>Sun Studio 12 Update 1 + patches</td>
247 <td>JDK 6u14 FCS </td> 239 <td>JDK 6u18</td>
248 </tr> 240 </tr>
249 <tr> 241 <tr>
250 <td>Solaris X64 (64-bit)</td> 242 <td>Solaris X64 (64-bit)</td>
251 <td>Solaris 10u2 + patches 243 <td>Solaris 10 Update 6</td>
252 <br>
253 See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
254 SunSolve</a> for patch downloads.
255 </td>
256 <td>Sun Studio 12 Update 1 + patches</td> 244 <td>Sun Studio 12 Update 1 + patches</td>
257 <td>JDK 6u14 FCS </td> 245 <td>JDK 6u18</td>
258 </tr> 246 </tr>
259 <tr> 247 <tr>
260 <td>Windows X86 (32-bit)</td> 248 <td>Windows X86 (32-bit)</td>
261 <td>Windows XP</td> 249 <td>Windows XP</td>
262 <td>Microsoft Visual Studio C++ 2010 Professional Edition</td> 250 <td>Microsoft Visual Studio C++ 2010 Professional Edition</td>
263 <td>JDK 6u14 FCS </td> 251 <td>JDK 6u18</td>
264 </tr> 252 </tr>
265 <tr> 253 <tr>
266 <td>Windows X64 (64-bit)</td> 254 <td>Windows X64 (64-bit)</td>
267 <td>Windows Server 2003 - Enterprise x64 Edition</td> 255 <td>Windows Server 2003 - Enterprise x64 Edition</td>
268 <td>Microsoft Visual Studio C++ 2010 Professional Edition</td> 256 <td>Microsoft Visual Studio C++ 2010 Professional Edition</td>
269 <td>JDK 6u14 FCS </td> 257 <td>JDK 6u18</td>
270 </tr> 258 </tr>
271 </tbody> 259 </tbody>
272 </table> 260 </table>
273 <p> 261 <p>
274 These same sources do indeed build on many more systems than the 262 These same sources do indeed build on many more systems than the
298 After installing <a href="http://fedoraproject.org">Fedora</a> 9 286 After installing <a href="http://fedoraproject.org">Fedora</a> 9
299 you need to install several build dependencies. The simplest 287 you need to install several build dependencies. The simplest
300 way to do it is to execute the following commands as user 288 way to do it is to execute the following commands as user
301 <tt>root</tt>: 289 <tt>root</tt>:
302 <p/> 290 <p/>
303 <code>yum-builddep java-openjdk</code> 291 <code>yum-builddep java-1.6.0-openjdk</code>
304 <p/> 292 <p/>
305 <code>yum install gcc gcc-c++</code> 293 <code>yum install gcc gcc-c++</code>
306 <p/> 294 <p/>
307 In addition, it's necessary to set a few environment variables for the build: 295 In addition, it's necessary to set a few environment variables for the build:
308 296
343 <p/> 331 <p/>
344 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code> 332 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code>
345 </blockquote> 333 </blockquote>
346 </blockquote> 334 </blockquote>
347 <!-- ------------------------------------------------------ --> 335 <!-- ------------------------------------------------------ -->
348 <h3><a name="centos">CentOS 5.2</a></h3> 336 <h3><a name="centos">CentOS 5.5</a></h3>
349 <blockquote> 337 <blockquote>
350 After installing 338 After installing
351 <a href="http://www.centos.org/">CentOS 5.2</a> 339 <a href="http://www.centos.org/">CentOS 5.5</a>
352 you need to make sure you have 340 you need to make sure you have
353 the following Development bundles installed: 341 the following Development bundles installed:
354 <blockquote> 342 <blockquote>
355 <ul> 343 <ul>
356 <li>Development Libraries</li> 344 <li>Development Libraries</li>
357 <li>Development Tools</li> 345 <li>Development Tools</li>
358 <li>Java Development</li> 346 <li>Java Development</li>
359 <li>X Software Development</li> 347 <li>X Software Development (Including XFree86-devel)</li>
360 </ul> 348 </ul>
361 </blockquote> 349 </blockquote>
362 <p> 350 <p>
363 Plus the following packages: 351 Plus the following packages:
364 <blockquote> 352 <blockquote>
550 files for building the OpenJDK JAXP files. 538 files for building the OpenJDK JAXP files.
551 The <tt>jdk</tt> directory contains the source code and make files for 539 The <tt>jdk</tt> directory contains the source code and make files for
552 building the OpenJDK runtime libraries and misc files. 540 building the OpenJDK runtime libraries and misc files.
553 The top level <tt>Makefile</tt> 541 The top level <tt>Makefile</tt>
554 is used to build the entire OpenJDK. 542 is used to build the entire OpenJDK.
543
544 <h3><a name="drops">Managing the Source Drops</a></h3>
545 <blockquote>
546 <p>
547 The repositories <tt>jaxp</tt> and <tt>jaxws</tt> actually
548 do not contain the sources for JAXP or JAX-WS.
549 These products have their own open source procedures at their
550 <a href="http://jaxp.java.net/">JAXP</a> and
551 <a href="http://jax-ws.java.net/">JAX-WS</a> home pages.
552 The OpenJDK project does need access to these sources to build
553 a complete JDK image because JAXP and JAX-WS are part of the JDK.
554 The current process for delivery of the JAXP and JAX-WS sources
555 involves so called "source drop bundles" downloaded from a public
556 website.
557 There are many reasons for this current mechanism, and it is
558 understood that this is not ideal for the open source community.
559 It is possible this process could change in the future.
560 <br>
561 <b>NOTE:</b> The <a href="http://download.java.net/openjdk/jdk7/">
562 Complete OpenJDK Source Bundles</a> <u>will</u> contain the JAXP and
563 JAX-WS sources.
564 </p>
565
566 <h4><a name="dropcreation">Creation of New Source Drop Bundles</a></h4>
567 <blockquote>
568 <ol>
569 <li>
570 The JAXP or JAX-WS team prepares a new zip bundle,
571 places a copy in a public download area on java.net,
572 sends us a link and a list of CRs (Change Request Numbers).
573 The older download bundles should not be deleted.
574 It is the responsibility of the JAXP and JAX-WS team to
575 place the proper GPL legal notices on the sources
576 and do any filtering or java re-packaging for the
577 OpenJDK instances of these classes.
578 </li>
579 <li>
580 The OpenJDK team copies this new bundle into shared
581 area (e.g. <tt>/java/devtools/share/jdk7-drops</tt>).
582 Older bundles are never deleted so we retain the history.
583 </li>
584 <li>
585 The OpenJDK team edits the ant property file
586 <tt>jaxp/jaxp.properties</tt> or
587 <tt>jaxws/jaxws.properties</tt> to update the
588 base URL, the zip bundle name, and the MD5 checksum
589 of the zip bundle
590 (on Solaris: <tt>sum -c md5 <i>bundlename</i></tt>)
591 </li>
592 <li>
593 OpenJDK team reviews and commits those changes with the
594 given CRs.
595 </li>
596 </ol>
597 </blockquote>
598
599 <h4><a name="dropusage">Using Source Drop Bundles</a></h4>
600 <blockquote>
601 <p>
602 The ant scripts that build <tt>jaxp</tt> and <tt>jaxws</tt>
603 will attempt to locate these zip bundles from the directory
604 in the environment variable
605 <tt><a href="#ALT_DROPS_DIR">ALT_DROPS_DIR</a></tt>.
606 The checksums protect from getting the wrong, corrupted, or
607 improperly modified sources.
608 Once the sources are made available, the population will not
609 happen again unless a <tt>make clobber</tt> is requested
610 or the <tt>jaxp/drop/</tt> or <tt>jaxws/drop/</tt>
611 directory is explicitly deleted.
612 <br>
613 <b>NOTE:</b> The default Makefile and ant script behavior
614 is to NOT download these bundles from the public http site.
615 In general, doing downloads
616 during the build process is not advised, it creates too much
617 unpredictability in the build process.
618 However, you can use <tt>make ALLOW_DOWNLOADS=true</tt> to
619 tell the ant script that the download of the zip bundle is
620 acceptable.
621 </p>
622 <p>
623 The recommended procedure for keeping a cache of these
624 source bundles would be to download them once, place them
625 in a directory outside the repositories, and then set
626 <tt><a href="#ALT_DROPS_DIR">ALT_DROPS_DIR</a></tt> to refer
627 to that directory.
628 These drop bundles do change occasionally, so the newer
629 bundles may need to be added to this area from time to time.
630 </p>
631 </blockquote>
632 </blockquote>
555 </blockquote> 633 </blockquote>
556 <!-- ------------------------------------------------------ --> 634 <!-- ------------------------------------------------------ -->
557 <hr> 635 <hr>
558 <h2><a name="building">Build Information</a></h2> 636 <h2><a name="building">Build Information</a></h2>
559 <blockquote> 637 <blockquote>
560 Building the OpenJDK 638 Building the OpenJDK
561 is done with a <tt><i>gmake</i></tt> 639 is done with a <a href="#gmake">GNU <tt>make</tt></a> command line
562 command line and various 640 and various
563 environment or make variable settings that direct the make rules 641 environment or make variable settings that direct the makefile rules
564 to where various components have been installed. 642 to where various components have been installed.
565 Where possible the makefiles will attempt to located the various 643 Where possible the makefiles will attempt to located the various
566 components in the default locations or any component specific 644 components in the default locations or any component specific
567 variable settings. 645 variable settings.
568 When the normal defaults fail or components cannot be found, 646 When the normal defaults fail or components cannot be found,
576 A build could be as simple as: 654 A build could be as simple as:
577 <blockquote> 655 <blockquote>
578 <pre><tt> 656 <pre><tt>
579 bash 657 bash
580 . jdk/make/jdk_generic_profile.sh 658 . jdk/make/jdk_generic_profile.sh
581 <i>gmake</i> sanity &amp;&amp; <i>gmake</i> 659 <a href="#gmake"><tt>make</tt></a> sanity &amp;&amp; <a href="#gmake"><tt>make</tt></a>
582 </tt></pre> 660 </tt></pre>
583 </blockquote> 661 </blockquote>
584 <p> 662 <p>
585 Of course ksh or sh would work too. 663 Of course ksh or sh would work too.
586 But some customization will probably be necessary. 664 But some customization will probably be necessary.
597 GNU version of the utility command <tt>make</tt> 675 GNU version of the utility command <tt>make</tt>
598 (<tt><i>gmake</i></tt>). 676 (<tt><i>gmake</i></tt>).
599 A few notes about using GNU make: 677 A few notes about using GNU make:
600 <ul> 678 <ul>
601 <li> 679 <li>
602 In general, you need GNU make version 3.81 or newer. 680 You need GNU make version 3.81 or newer.
603 </li> 681 </li>
604 <li> 682 <li>
605 Place the location of the GNU make binary in the <tt>PATH</tt>. 683 Place the location of the GNU make binary in the <tt>PATH</tt>.
606 </li> 684 </li>
607 <li> 685 <li>
608 <strong>Linux:</strong> 686 <strong>Linux:</strong>
609 The <tt>/usr/bin/make</tt> command should work fine for you. 687 The <tt>/usr/bin/make</tt> should be 3.81 or newer
688 and should work fine for you.
689 If this version is not 3.81 or newer,
690 see the <a href="#buildgmake">"Building GNU make"</a> section.
610 </li> 691 </li>
611 <li> 692 <li>
612 <strong>Solaris:</strong> 693 <strong>Solaris:</strong>
613 Do NOT use <tt>/usr/bin/make</tt> on Solaris. 694 Do NOT use <tt>/usr/bin/make</tt> on Solaris.
614 If your Solaris system has the software 695 If your Solaris system has the software
615 from the Solaris Companion CD installed, 696 from the Solaris Companion CD installed,
616 you should use <tt>gmake</tt> 697 you should try and use <tt>gmake</tt>
617 which will be located in either the <tt>/opt/sfw/bin</tt> or 698 which will be located in either the <tt>/opt/sfw/bin</tt> or
618 <tt>/usr/sfw/bin</tt> directory. 699 <tt>/usr/sfw/bin</tt> directory.
619 In more recent versions of Solaris GNU make can be found 700 In more recent versions of Solaris GNU make might be found
620 at <tt>/usr/bin/gmake</tt>. 701 at <tt>/usr/bin/gmake</tt>.<br>
702 <b>NOTE:</b> It is very likely that this <tt>gmake</tt>
703 could be 3.80, you need 3.81, in which case,
704 see the <a href="#buildgmake">"Building GNU make"</a> section.
621 </li> 705 </li>
622 <li> 706 <li>
623 <strong>Windows:</strong> 707 <strong>Windows:</strong>
624 Make sure you start your build inside a bash/sh/ksh shell 708 Make sure you start your build inside a bash/sh/ksh shell
625 and are using a <tt>make.exe</tt> utility built for that 709 and are using a <tt>make.exe</tt> utility built for that
626 environment (a cygwin <tt>make.exe</tt> is not the same 710 environment (a cygwin <tt>make.exe</tt> is not the same
627 as a <tt>make.exe</tt> built for something like 711 as a <tt>make.exe</tt> built for something like
628 <a href="http://www.mkssoftware.com/">MKS</a>). 712 <a href="http://www.mkssoftware.com/">MKS</a>).
629 <br> 713 <br>
630 <b>WARNING:</b> Watch out for make version 3.81, it may 714 <b>WARNING:</b> Watch out on some make 3.81 versions, it may
631 not work due to a lack of support for MS-DOS drive letter paths 715 not work due to a lack of support for MS-DOS drive letter paths
632 like <tt>C:/</tt> or <tt>C:\</tt>. 716 like <tt>C:/</tt> or <tt>C:\</tt>.
633 Use a 3.80 version, or find a newer
634 version that has this problem fixed.
635 The older 3.80 version of make.exe can be downloaded with this
636 <a href="http://cygwin.paracoda.com/release/make/make-3.80-1.tar.bz2" target="_blank">
637 link</a>.
638 Use of this older 3.80 make.exe may require that you install the
639 libintl2.dll library or libintl2 cygwin package which is
640 no longer installed by default by the cygwin installer.
641 <br> 717 <br>
642 Also see the 718 You may be able to use the information at the
643 <a href="http://developer.mozilla.org/en/docs/Windows_build_prerequisites_using_cygwin#make" target="_blank"> 719 <a href="http://developer.mozilla.org/en/docs/Windows_build_prerequisites_using_cygwin#make" target="_blank">
644 mozilla developer center</a> 720 mozilla developer center</a>
645 on this topic. 721 on this topic.
646 <br> 722 <br>
647 It's hoped that when make 3.82 starts shipping in a future cygwin 723 It's hoped that when make 3.82 starts shipping in a future cygwin
648 release that this MS-DOS path issue will be fixed. 724 release that this MS-DOS path issue will be fixed.
649 In addition to the above 3.80 make.exe you can download 725 <br>
650 this 726 It may be possible to download the version at
651 <a href="http://www.cmake.org/files/cygwin/make.exe"> 727 <a href="http://www.cmake.org/files/cygwin/make.exe">
652 www.cmake.org make.exe</a> which will not have a libintl2.dll 728 www.cmake.org make.exe</a>.
653 dependency. 729 <br>
730 It might be necessary for you to build your own GNU make 3.81,
731 see the <a href="#buildgmake">"Building GNU make"</a> section
732 in that case.
654 </li> 733 </li>
655 </ul> 734 </ul>
656 <p> 735 <p>
657 Information on GNU make, and access to ftp download sites, are 736 Information on GNU make, and access to ftp download sites, are
658 available on the 737 available on the
660 GNU make web site 739 GNU make web site
661 </a>. 740 </a>.
662 The latest source to GNU make is available at 741 The latest source to GNU make is available at
663 <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank"> 742 <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank">
664 ftp.gnu.org/pub/gnu/make/</a>. 743 ftp.gnu.org/pub/gnu/make/</a>.
744 </p>
745 <!-- ------------------------------------------------------ -->
746 <h4><a name="buildgmake">Building GNU make</a></h4>
747 <blockquote>
748 First step is to get the GNU make 3.81 source from
749 <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank">
750 ftp.gnu.org/pub/gnu/make/</a>.
751 Building is a little different depending on the OS and unix toolset
752 on Windows:
753 <ul>
754 <li>
755 <strong>Linux:</strong>
756 <tt>./configure && make</tt>
757 </li>
758 <li>
759 <strong>Solaris:</strong>
760 <tt>./configure && gmake CC=gcc</tt>
761 </li>
762 <li>
763 <strong>Windows for CYGWIN:</strong>
764 <tt>./configure && make</tt>
765 </li>
766 <li>
767 <strong>Windows for MKS: (CYGWIN is recommended)</strong>
768 <tt>./configure && make -f Makefile.win32</tt>
769 </li>
770 </ul>
771 </blockquote>
665 </blockquote> 772 </blockquote>
666 <!-- ------------------------------------------------------ --> 773 <!-- ------------------------------------------------------ -->
667 <hr> 774 <hr>
668 <h3><a name="linux">Basic Linux System Setup</a></h3> 775 <h3><a name="linux">Basic Linux System Setup</a></h3>
669 <blockquote> 776 <blockquote>
711 Install or upgrade the <a href="#freetype">FreeType development 818 Install or upgrade the <a href="#freetype">FreeType development
712 package</a>. 819 package</a>.
713 </li> 820 </li>
714 <li> 821 <li>
715 Install 822 Install
716 <a href="#ant">Ant</a>, 823 <a href="#ant">Ant 1.7.1 or newer</a>,
717 make sure it is in your PATH. 824 make sure it is in your PATH.
718 </li> 825 </li>
719 </ol> 826 </ol>
720 </blockquote> 827 </blockquote>
721 <!-- ------------------------------------------------------ --> 828 <!-- ------------------------------------------------------ -->
774 <li> 881 <li>
775 Install the <a href="#xrender">XRender Include files</a>. 882 Install the <a href="#xrender">XRender Include files</a>.
776 </li> 883 </li>
777 <li> 884 <li>
778 Install 885 Install
779 <a href="#ant">Ant</a>, 886 <a href="#ant">Ant 1.7.1 or newer</a>,
780 make sure it is in your PATH. 887 make sure it is in your PATH.
781 </li> 888 </li>
782 </ol> 889 </ol>
783 </blockquote> 890 </blockquote>
784 <!-- ------------------------------------------------------ --> 891 <!-- ------------------------------------------------------ -->
860 Install 967 Install
861 <a href="#dxsdk">Microsoft DirectX SDK</a>. 968 <a href="#dxsdk">Microsoft DirectX SDK</a>.
862 </li> 969 </li>
863 <li> 970 <li>
864 Install 971 Install
865 <a href="#ant">Ant</a>, 972 <a href="#ant">Ant 1.7.1 or newer</a>,
866 make sure it is in your PATH and set 973 make sure it is in your PATH and set
867 <tt><a href="#ANT_HOME">ANT_HOME</a></tt>. 974 <tt><a href="#ANT_HOME">ANT_HOME</a></tt>.
868 </li> 975 </li>
869 </ol> 976 </ol>
870 </blockquote> 977 </blockquote>
921 <!-- ------------------------------------------------------ --> 1028 <!-- ------------------------------------------------------ -->
922 <h4><a name="ant">Ant</a></h4> 1029 <h4><a name="ant">Ant</a></h4>
923 <blockquote> 1030 <blockquote>
924 All OpenJDK builds require access to least Ant 1.7.1. 1031 All OpenJDK builds require access to least Ant 1.7.1.
925 The Ant tool is available from the 1032 The Ant tool is available from the
926 <a href="http://ant.apache.org" target="_blank"> 1033 <a href="http://archive.apache.org/dist/ant/binaries/apache-ant-1.7.1-bin.zip" target="_blank">
927 Ant download site</a>. 1034 Ant 1.7.1 archive download site</a>.
928 You should always make sure <tt>ant</tt> is in your PATH, and 1035 You should always make sure <tt>ant</tt> is in your PATH, and
929 on Windows you may also need to set 1036 on Windows you may also need to set
930 <tt><a href="#ANT_HOME">ANT_HOME</a></tt> 1037 <tt><a href="#ANT_HOME">ANT_HOME</a></tt>
931 to point to the location of 1038 to point to the location of
932 the Ant installation, this is the directory pathname 1039 the Ant installation, this is the directory pathname
933 that contains a <tt>bin and lib</tt>. 1040 that contains a <tt>bin and lib</tt>.
1041 <br>
1042 <b>WARNING:</b> Ant versions used from IDE tools like NetBeans
1043 or installed via system packages may not operate the same
1044 as the one obtained from the Ant download bundles.
1045 These system and IDE installers sometimes choose to change
1046 the ant installation enough to cause differences.
934 </blockquote> 1047 </blockquote>
935 <!-- ------------------------------------------------------ --> 1048 <!-- ------------------------------------------------------ -->
936 <h4><a name="cacerts">Certificate Authority File (cacert)</a></h4> 1049 <h4><a name="cacerts">Certificate Authority File (cacert)</a></h4>
937 <blockquote> 1050 <blockquote>
938 See <a href="http://en.wikipedia.org/wiki/Certificate_Authority" target="_blank"> 1051 See <a href="http://en.wikipedia.org/wiki/Certificate_Authority" target="_blank">
960 <!-- ------------------------------------------------------ --> 1073 <!-- ------------------------------------------------------ -->
961 <h4><a name="compilers">Compilers</a></h4> 1074 <h4><a name="compilers">Compilers</a></h4>
962 <blockquote> 1075 <blockquote>
963 <strong><a name="gcc">Linux gcc/binutils</a></strong> 1076 <strong><a name="gcc">Linux gcc/binutils</a></strong>
964 <blockquote> 1077 <blockquote>
965 The GNU gcc compiler version should be 4 or newer. 1078 The GNU gcc compiler version should be 4.3 or newer.
966 The compiler used should be the default compiler installed 1079 The compiler used should be the default compiler installed
967 in <tt>/usr/bin</tt>. 1080 in <tt>/usr/bin</tt>.
968 </blockquote> 1081 </blockquote>
969 <strong><a name="studio">Solaris: Sun Studio</a></strong> 1082 <strong><a name="studio">Solaris: Sun Studio</a></strong>
970 <blockquote> 1083 <blockquote>
1045 been extensively used yet. 1158 been extensively used yet.
1046 </blockquote> 1159 </blockquote>
1047 <strong><a name="msvc32">Windows i586: Microsoft Visual Studio 2010 Compilers</a></strong> 1160 <strong><a name="msvc32">Windows i586: Microsoft Visual Studio 2010 Compilers</a></strong>
1048 <blockquote> 1161 <blockquote>
1049 <p> 1162 <p>
1050 <b>BEGIN WARNING</b>: At this time (Spring/Summer 2010) JDK 7 is starting a transition to 1163 <b>BEGIN WARNING</b>: JDK 7 has transitioned to
1051 use the newest VS2010 Microsoft compilers. These build instructions are updated 1164 use the newest VS2010 Microsoft compilers.
1052 to show where we are going. We have a QA process to go through before 1165 No other compilers are known to build the entire JDK,
1053 official builds actually use VS2010. So for now, official builds are
1054 still using VS2003. No other compilers are known to build the entire JDK,
1055 including non-open portions. 1166 including non-open portions.
1056 So for now you should be able to build with either VS2003 or VS2010.
1057 We do not guarantee that VS2008 will work, although there is sufficient
1058 makefile support to make at least basic JDK builds plausible.
1059 Visual Studio 2010 Express compilers are now able to build all the 1167 Visual Studio 2010 Express compilers are now able to build all the
1060 open source repositories, but this is 32 bit only. To build 64 bit 1168 open source repositories, but this is 32 bit only. To build 64 bit
1061 Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> 1169 Windows binaries use the the 7.1 Windows SDK.
1170 <b>END WARNING.</b>
1062 <p> 1171 <p>
1063 The 32-bit OpenJDK Windows build 1172 The 32-bit OpenJDK Windows build requires
1064 requires
1065 Microsoft Visual Studio C++ 2010 (VS2010) Professional 1173 Microsoft Visual Studio C++ 2010 (VS2010) Professional
1066 Edition or Express compiler. 1174 Edition or Express compiler.
1067 The compiler and other tools are expected to reside 1175 The compiler and other tools are expected to reside
1068 in the location defined by the variable 1176 in the location defined by the variable
1069 <tt>VS100COMNTOOLS</tt> which 1177 <tt>VS100COMNTOOLS</tt> which
1086 The path <tt>/usr/bin</tt> must be after the path to the 1194 The path <tt>/usr/bin</tt> must be after the path to the
1087 Visual Studio product. 1195 Visual Studio product.
1088 </blockquote> 1196 </blockquote>
1089 <strong><a name="msvc64">Windows x64: Microsoft Visual Studio 2010 Professional Compiler</a></strong> 1197 <strong><a name="msvc64">Windows x64: Microsoft Visual Studio 2010 Professional Compiler</a></strong>
1090 <blockquote> 1198 <blockquote>
1091 For <b>X64</b>, builds, when using the VS2010 Professional 1199 For <b>X64</b>, the set up is much the same as 32 bit
1092 compiler, the 64 bit build set up is much the same as 32 bit
1093 except that you run <tt>amd64\VCVARS64.BAT</tt> 1200 except that you run <tt>amd64\VCVARS64.BAT</tt>
1094 to set the compiler environment variables. 1201 to set the compiler environment variables.
1095 Previously 64 bit builds had used the 64 bit compiler in 1202 Previously 64 bit builds had to use the 64 bit compiler in
1096 an unbundled Windows SDK but this is no longer necessary if 1203 an unbundled Windows SDK but this is no longer necessary if
1097 you have VS2010 Professional. 1204 you have VS2010 Professional.
1098 </blockquote> 1205 </blockquote>
1099 <strong><a name="mssdk64">Windows x64: Microsoft Windows 7.1 SDK 64 bit compilers.</a></strong> 1206 <strong><a name="mssdk64">Windows x64: Microsoft Windows 7.1 SDK 64 bit compilers.</a></strong>
1100 For a free alternative for 64 bit builds, use the 7.1 SDK. 1207 For a free alternative for 64 bit builds, use the 7.1 SDK.
1612 on Solaris 1719 on Solaris
1613 <tt>$(ALT_JDK_DEVTOOLS_PATH)/<i>{sparc,i386}</i>/bin</tt>, 1720 <tt>$(ALT_JDK_DEVTOOLS_PATH)/<i>{sparc,i386}</i>/bin</tt>,
1614 and on Windows with CYGWIN 1721 and on Windows with CYGWIN
1615 <tt>/usr/bin</tt>. 1722 <tt>/usr/bin</tt>.
1616 </dd> 1723 </dd>
1724 <dt><tt><a name="ALT_DROPS_DIR">ALT_DROPS_DIR</a></tt> </dt>
1725 <dd>
1726 The location of any source drop bundles
1727 (see <a href="#drops">Managing the Source Drops</a>).
1728 The default will be
1729 <tt>$(ALT_JDK_DEVTOOLS_PATH)/share/jdk7-drops</tt>.
1730 </dd>
1617 <dt><a name="ALT_UNIXCCS_PATH"><tt>ALT_UNIXCCS_PATH</tt></a></dt> 1731 <dt><a name="ALT_UNIXCCS_PATH"><tt>ALT_UNIXCCS_PATH</tt></a></dt>
1618 <dd> 1732 <dd>
1619 <strong>Solaris only:</strong> 1733 <strong>Solaris only:</strong>
1620 An override for specifying where the Unix CCS 1734 An override for specifying where the Unix CCS
1621 command set are located. 1735 command set are located.
1657 The location of the 1771 The location of the
1658 Microsoft Windows SDK where some tools will be 1772 Microsoft Windows SDK where some tools will be
1659 located. 1773 located.
1660 The default is whatever WINDOWSSDKDIR is set to 1774 The default is whatever WINDOWSSDKDIR is set to
1661 (or WindowsSdkDir) or the path 1775 (or WindowsSdkDir) or the path
1662 <pre> 1776 <br>
1663 c:\Program Files\Microsoft SDKs\Windows\v6.1a 1777 <tt>c:\Program Files\Microsoft SDKs\Windows\v7.0a</tt>
1664 </pre>
1665 </dd> 1778 </dd>
1666 <dt><tt><a name="ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> </dt> 1779 <dt><tt><a name="ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> </dt>
1667 <dd> 1780 <dd>
1668 The location of the 1781 The location of the
1669 <a href="#dxsdk">Microsoft DirectX 9 SDK</a>. 1782 <a href="#dxsdk">Microsoft DirectX 9 SDK</a>.
1680 </dd> 1793 </dd>
1681 </dl> 1794 </dl>
1682 </blockquote> 1795 </blockquote>
1683 <!-- ------------------------------------------------------ --> 1796 <!-- ------------------------------------------------------ -->
1684 <hr> 1797 <hr>
1798 <h2><a name="hints">Hints and Tips</a></h2>
1799 <blockquote>
1800 You don't have to use all these hints and tips, and in fact people do actually
1801 build with systems that contradict these, but they might prove to be
1802 helpful to some.
1803 <ul>
1804 <li>
1805 If <tt>make sanity</tt> does not work, find out why, fix that
1806 before going any further. Or at least understand what the
1807 complaints are from it.
1808 </li>
1809 <li>
1810 JDK: Keep in mind that you are building a JDK, but you need
1811 a JDK (BOOTDIR JDK) to build this JDK.
1812 </li>
1813 <li>
1814 Ant: The ant utility is a java application and besides having
1815 ant available to you, it's important that ant finds the right
1816 java to run with. Make sure you can type <tt>ant -version</tt>
1817 and get clean results with no error messages.
1818 </li>
1819 <li>
1820 Linux: Try and favor the system packages over building your own
1821 or getting packages from other areas.
1822 Most Linux builds should be possible with the system's
1823 available packages.
1824 </li>
1825 <li>
1826 Solaris: Typically you will need to get compilers on your systems
1827 and occasionally GNU make 3.81 if a gmake binary is not available.
1828 The gmake binary might not be 3.81, be careful.
1829 </li>
1830 <li>
1831 Windows VS2010:
1832 <ul>
1833 <li>
1834 Only the C++ part of VS2010 is needed.
1835 Try to let the installation go to the default install directory.
1836 Always reboot your system after installing VS2010.
1837 The system environment variable VS100COMNTOOLS should be
1838 set in your environment.
1839 </li>
1840 <li>
1841 Make sure that TMP and TEMP are also set in the environment
1842 and refer to Windows paths that exist, like <tt>C:\temp</tt>,
1843 not <tt>/tmp</tt>, not <tt>/cygdrive/c/temp</tt>, and not <tt>C:/temp</tt>.
1844 <tt>C:\temp</tt> is just an example, it is assumed that this area is
1845 private to the user, so by default after installs you should
1846 see a unique user path in these variables.
1847 </li>
1848 <li>
1849 You need to use vsvars32.bat or vsvars64.bat to get the
1850 PATH, INCLUDE, LIB, LIBPATH, and WINDOWSSDKDIR
1851 variables set in your shell environment.
1852 These bat files are not easy to use from a shell environment.
1853 However, there is a script placed in the root jdk7 repository called
1854 vsvars.sh that can help, it should only be done once in a shell
1855 that will be doing the build, e.g.<br>
1856 <tt>sh ./make/scripts/vsvars.sh -v10 > settings<br>
1857 eval `cat settings`</tt><br>
1858 Or just <tt>eval `sh ./make/scripts/vsvars.sh -v10`</tt>.
1859 </li>
1860 </ul>
1861 </li>
1862 <li>
1863 Windows: PATH order is critical, see the
1864 <a href="#paths">paths</a> section for more information.
1865 </li>
1866 <li>
1867 Windows 64bit builds: Use ARCH_DATA_MODEL=64.
1868 </li>
1869 </ul>
1870 </blockquote>
1871 <!-- ------------------------------------------------------ -->
1872 <hr>
1685 <h2><a name="troubleshooting">Troubleshooting</a></h2> 1873 <h2><a name="troubleshooting">Troubleshooting</a></h2>
1686 <blockquote> 1874 <blockquote>
1687 A build can fail for any number of reasons. 1875 A build can fail for any number of reasons.
1688 Most failures 1876 Most failures
1689 are a result of trying to build in an environment in which all the 1877 are a result of trying to build in an environment in which all the
1704 further with your build. 1892 further with your build.
1705 <p> 1893 <p>
1706 Some of the more common problems with builds are briefly described 1894 Some of the more common problems with builds are briefly described
1707 below, with suggestions for remedies. 1895 below, with suggestions for remedies.
1708 <ul> 1896 <ul>
1897 <li>
1898 <b>Corrupted Bundles on Windows:</b>
1899 <blockquote>
1900 Some virus scanning software has been known to corrupt the
1901 downloading of zip bundles.
1902 It may be necessary to disable the 'on access' or 'real time'
1903 virus scanning features to prevent this corruption.
1904 This type of "real time" virus scanning can also slow down the
1905 build process significantly.
1906 Temporarily disabling the feature, or excluding the build
1907 output directory may be necessary to get correct and faster builds.
1908 </blockquote>
1909 </li>
1709 <li> 1910 <li>
1710 <b>Slow Builds:</b> 1911 <b>Slow Builds:</b>
1711 <blockquote> 1912 <blockquote>
1712 If your build machine seems to be overloaded from too many 1913 If your build machine seems to be overloaded from too many
1713 simultaneous C++ compiles, try setting the <tt>HOTSPOT_BUILD_JOBS</tt> 1914 simultaneous C++ compiles, try setting the <tt>HOTSPOT_BUILD_JOBS</tt>
1799 "Allow all unconfined executables to use libraries requiring text relocation ..."</li> 2000 "Allow all unconfined executables to use libraries requiring text relocation ..."</li>
1800 </ol> 2001 </ol>
1801 </blockquote> 2002 </blockquote>
1802 </li> 2003 </li>
1803 <li> 2004 <li>
1804 <b>Windows Error Message: <tt>*** fatal error - couldn't allocate heap, ... </tt></b> 2005 <b>Windows Error Messages:</b><br>
2006 <tt>*** fatal error - couldn't allocate heap, ... </tt><br>
2007 <tt>rm fails with "Directory not empty"</tt><br>
2008 <tt>unzip fails with "cannot create ... Permission denied"</tt><br>
2009 <tt>unzip fails with "cannot create ... Error 50"</tt><br>
1805 <blockquote> 2010 <blockquote>
1806 The CYGWIN software can conflict with other non-CYGWIN 2011 The CYGWIN software can conflict with other non-CYGWIN
1807 software. See the CYGWIN FAQ section on 2012 software. See the CYGWIN FAQ section on
1808 <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank"> 2013 <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank">
1809 BLODA (applications that interfere with CYGWIN)</a>. 2014 BLODA (applications that interfere with CYGWIN)</a>.
1810 </blockquote> 2015 </blockquote>
1811 </li> 2016 </li>
1812 <li> 2017 <li>
1813 <b>Windows Error Message: <tt>*** multiple target patterns. Stop.</tt></b> 2018 <b>Windows Error Message: <tt>spawn failed</tt></b>
1814 <blockquote> 2019 <blockquote>
1815 The CYGWIN make version 3.81 may not like the Windows <tt>C:/</tt> 2020 Try rebooting the system, or there could be some kind of
1816 style paths, it may not like the ':' character in the path 2021 issue with the disk or disk partition being used.
1817 when used in a makefile target definition. 2022 Sometimes it comes with a "Permission Denied" message.
1818 See the <a href="#gmake"><tt><i>gmake</i></tt></a> section.
1819 </blockquote> 2023 </blockquote>
1820 </li> 2024 </li>
1821 </ul> 2025 </ul>
1822 </blockquote> 2026 </blockquote>
1823 <hr> 2027 <hr>

mercurial