78 <li><a href="#mssdk64">Microsoft Windows SDK for 64 bit</a> </li>
79 <li><a href="#gcc">Linux gcc/binutils</a> </li>
80 <li><a href="#studio">Sun Studio</a> </li>
81 </ul>
82 </li>
83 <li><a href="#zip">Zip and Unzip</a> </li>
84 <li><a href="#freetype">FreeType2 Fonts</a> </li>
85 <li>Linux and Solaris:
86 <ul>
87 <li><a href="#cups">CUPS Include files</a> </li>
88 <li><a href="#xrender">XRender Include files</a></li>
89 </ul>
90 </li>
91 <li>Linux only:
92 <ul>
93 <li><a href="#alsa">ALSA files</a> </li>
94 </ul>
95 </li>
96 <li>Windows only:
97 <ul>
98 <li>Unix Command Tools (<a href="#cygwin">CYGWIN</a>)</li>
99 <li><a href="#dxsdk">DirectX 9.0 SDK</a> </li>
100 </ul>
101 </li>
102 </ul>
103 </li>
104 </ul>
105 </li>
106 <li><a href="#creating">Creating the Build</a> </li>
107 <li><a href="#testing">Testing the Build</a> </li>
108 <li><a href="#variables">Environment/Make Variables</a></li>
109 <li><a href="#troubleshooting">Troubleshooting</a></li>
110 </ul>
111 </blockquote>
112
113 <!-- ------------------------------------------------------ -->
114 <hr>
115 <h2><a name="hg">Use of Mercurial</a></h2>
116 <blockquote>
117 The OpenJDK sources are maintained with the revision control system
118 <a href="http://mercurial.selenic.com/wiki/Mercurial">Mercurial</a>.
662 and should work fine for you.
663 If this version is not 3.81 or newer,
664 see the <a href="#buildgmake">"Building GNU make"</a> section.
665 </li>
666 <li>
667 <strong>Solaris:</strong>
668 Do NOT use <tt>/usr/bin/make</tt> on Solaris.
669 If your Solaris system has the software
670 from the Solaris Companion CD installed,
671 you should try and use <tt>gmake</tt>
672 which will be located in either the <tt>/opt/sfw/bin</tt> or
673 <tt>/usr/sfw/bin</tt> directory.
674 In more recent versions of Solaris GNU make might be found
675 at <tt>/usr/bin/gmake</tt>.<br>
676 <b>NOTE:</b> It is very likely that this <tt>gmake</tt>
677 could be 3.80, you need 3.81, in which case,
678 see the <a href="#buildgmake">"Building GNU make"</a> section.
679 </li>
680 <li>
681 <strong>Windows:</strong>
682 Make sure you start your build inside a bash/sh/ksh shell
683 and are using a <tt>make.exe</tt> utility built for that
684 environment (a cygwin <tt>make.exe</tt> is not the same
685 as a <tt>make.exe</tt> built for something like
686 <a href="http://www.mkssoftware.com/">MKS</a>).
687 <br>
688 <b>WARNING:</b> Watch out on some make 3.81 versions, it may
689 not work due to a lack of support for MS-DOS drive letter paths
690 like <tt>C:/</tt> or <tt>C:\</tt>.
691 <br>
692 You may be able to use the information at the
693 <a href="http://developer.mozilla.org/en/docs/Windows_build_prerequisites_using_cygwin#make" target="_blank">
694 mozilla developer center</a>
695 on this topic.
696 <br>
697 It's hoped that when make 3.82 starts shipping in a future cygwin
698 release that this MS-DOS path issue will be fixed.
699 <br>
700 It may be possible to download the version at
701 <a href="http://www.cmake.org/files/cygwin/make.exe">
702 www.cmake.org make.exe</a>.
703 <br>
704 It might be necessary for you to build your own GNU make 3.81,
705 see the <a href="#buildgmake">"Building GNU make"</a> section
706 in that case.
707 </li>
708 </ul>
709 <p>
710 Information on GNU make, and access to ftp download sites, are
711 available on the
712 <a href="http://www.gnu.org/software/make/make.html" target="_blank">
713 GNU make web site
714 </a>.
715 The latest source to GNU make is available at
716 <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank">
717 ftp.gnu.org/pub/gnu/make/</a>.
718 </p>
719 <!-- ------------------------------------------------------ -->
720 <h4><a name="buildgmake">Building GNU make</a></h4>
721 <blockquote>
722 First step is to get the GNU make 3.81 source from
723 <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank">
724 ftp.gnu.org/pub/gnu/make/</a>.
725 Building is a little different depending on the OS and unix toolset
726 on Windows:
727 <ul>
728 <li>
729 <strong>Linux:</strong>
730 <tt>./configure && make</tt>
731 </li>
732 <li>
733 <strong>Solaris:</strong>
734 <tt>./configure && gmake CC=gcc</tt>
735 </li>
736 <li>
737 <strong>Windows for CYGWIN:</strong>
738 <tt>./configure && make</tt>
739 </li>
740 <li>
741 <strong>Windows for MKS: (CYGWIN is recommended)</strong>
742 <tt>./configure && make -f Makefile.win32</tt>
743 </li>
744 </ul>
745 </blockquote>
746 </blockquote>
747 <!-- ------------------------------------------------------ -->
748 <hr>
749 <h3><a name="linux">Basic Linux System Setup</a></h3>
750 <blockquote>
751 <strong>i586 only:</strong>
752 The minimum recommended hardware for building the Linux version
753 is a Pentium class processor or better, at least 256 MB of RAM, and
754 approximately 1.5 GB of free disk space.
755 <p>
756 <strong>X64 only:</strong>
757 The minimum recommended hardware for building the Linux
758 version is an AMD Opteron class processor, at least 512 MB of RAM, and
759 approximately 4 GB of free disk space.
760 <p>
761 The build will use the tools contained in
762 <tt>/bin</tt> and
869 <strong>i586 only:</strong>
870 The minimum recommended hardware for building the 32-bit or X86
871 Windows version is an Pentium class processor or better, at least
872 512 MB of RAM, and approximately 600 MB of free disk space.
873 <strong>
874 NOTE: The Windows build machines need to use the
875 file system NTFS.
876 Build machines formatted to FAT32 will not work
877 because FAT32 doesn't support case-sensitivity in file names.
878 </strong>
879 <p>
880 <strong>X64 only:</strong>
881 The minimum recommended hardware for building
882 the Windows X64 version is an AMD Opteron class processor, at least 1
883 GB of RAM, and approximately 10 GB of free disk space.
884 </blockquote>
885 <!-- ------------------------------------------------------ -->
886 <h4><a name="paths">Windows Paths</a></h4>
887 <blockquote>
888 <strong>Windows:</strong>
889 Note that GNU make is a historic utility and is based very
890 heavily on shell scripting, so it does not tolerate the Windows habit
891 of having spaces in pathnames or the use of the <tt>\</tt>characters in pathnames.
892 Luckily on most Windows systems, you can use <tt>/</tt>instead of \, and
893 there is always a 'short' pathname without spaces for any path that
894 contains spaces.
895 Unfortunately, this short pathname can be somewhat dynamic and the
896 formula is difficult to explain.
897 You can use <tt>cygpath</tt> utility to map pathnames with spaces
898 or the <tt>\</tt>character into the <tt>C:/</tt> style of pathname
899 (called 'mixed'), e.g.
900 <tt>cygpath -s -m "<i>path</i>"</tt>.
901 <p>
902 The makefiles will try to translate any pathnames supplied
903 to it into the <tt>C:/</tt> style automatically.
904 <p>
905 Note that use of CYGWIN creates a unique problem with regards to
906 setting <a href="#path"><tt>PATH</tt></a>. Normally on Windows
907 the <tt>PATH</tt> variable contains directories
908 separated with the ";" character (Solaris and Linux uses ":").
909 With CYGWIN, it uses ":", but that means that paths like "C:/path"
910 cannot be placed in the CYGWIN version of <tt>PATH</tt> and
911 instead CYGWIN uses something like <tt>/cygdrive/c/path</tt>
912 which CYGWIN understands, but only CYGWIN understands.
913 So be careful with paths on Windows.
914 </blockquote>
915 <!-- ------------------------------------------------------ -->
916 <h4><a name="windows_checklist">Basic Windows Check List</a></h4>
917 <blockquote>
918 <ol>
919 <li>
920 Install the
921 <a href="#cygwin">CYGWIN product</a>.
922 </li>
923 <li>
924 Install the
925 <a href="#bootjdk">Bootstrap JDK</a>, set
926 <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
927 </li>
928 <li>
929 <a href="#importjdk">Optional Import JDK</a>, set
930 <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>.
931 </li>
932 <li>
933 Install the
934 <a href="#msvc32">Microsoft Visual Studio Compilers</a>).
935 </li>
936 <li>
937 Setup all environment variables for compilers
938 (see <a href="#msvc32">compilers</a>).
939 </li>
940 <li>
941 Install
1227 the package provided by the particular version of Linux that
1228 you are using.
1229 <p>
1230 The CUPS header files can always be downloaded from
1231 <a href="http://www.cups.org" target="_blank">www.cups.org</a>.
1232 The variable
1233 <tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt>
1234 can be used to override the default location of the
1235 CUPS Header files.
1236 </blockquote>
1237 <!-- ------------------------------------------------------ -->
1238 <h4><a name="xrender">XRender Extension Headers (Solaris & Linux)</a></h4>
1239 <blockquote>
1240 <p>
1241 <strong>Solaris:</strong>
1242 XRender header files are required for building the
1243 OpenJDK on Solaris.
1244 The XRender header file is included with the other X11 header files
1245 in the package <strong>SFWxwinc</strong> on new enough versions of
1246 Solaris and will be installed in
1247 <tt>/usr/X11/include/X11/extensions/Xrender.h</tt>
1248 </p><p>
1249 <strong>Linux:</strong>
1250 XRender header files are required for building the
1251 OpenJDK on Linux.
1252 The Linux header files are usually available from a "Xrender"
1253 development package, it's recommended that you try and use
1254 the package provided by the particular distribution of Linux that
1255 you are using.
1256 </p>
1257 </blockquote>
1258 <!-- ------------------------------------------------------ -->
1259 <h4><a name="freetype">FreeType 2</a></h4>
1260 <blockquote>
1261 Version 2.3 or newer of FreeType is required for building the OpenJDK.
1262 On Unix systems required files can be available as part of your
1263 distribution (while you still may need to upgrade them).
1264 Note that you need development version of package that
1265 includes both FreeType library and header files.
1266 <p>
1267 You can always download latest FreeType version from the
1397 <tr>
1398 <td>Binary Name</td>
1399 <td>Category</td>
1400 <td>Package</td>
1401 <td>Description</td>
1402 </tr>
1403 </thead>
1404 <tbody>
1405 <tr>
1406 <td>ar.exe</td>
1407 <td>Devel</td>
1408 <td>binutils</td>
1409 <td>The GNU assembler, linker and binary
1410 utilities</td>
1411 </tr>
1412 <tr>
1413 <td>make.exe</td>
1414 <td>Devel</td>
1415 <td>make</td>
1416 <td>The GNU version of the 'make' utility built for CYGWIN.<br>
1417 <b>NOTE</b>: See <a href="#gmake">the GNU make section</a></td>
1418 </tr>
1419 <tr>
1420 <td>m4.exe</td>
1421 <td>Interpreters</td>
1422 <td>m4</td>
1423 <td>GNU implementation of the traditional Unix macro
1424 processor</td>
1425 </tr>
1426 <tr>
1427 <td>cpio.exe</td>
1428 <td>Utils</td>
1429 <td>cpio</td>
1430 <td>A program to manage archives of files</td>
1431 </tr>
1432 <tr>
1433 <td>gawk.exe</td>
1434 <td>Utils</td>
1435 <td>awk</td>
1436 <td>Pattern-directed scanning and processing language</td>
1437 </tr>
1438 <tr>
1439 <td>file.exe</td>
1440 <td>Utils</td>
1441 <td>file</td>
1442 <td>Determines file type using 'magic' numbers</td>
1443 </tr>
1444 <tr>
1445 <td>zip.exe</td>
1446 <td>Archive</td>
1447 <td>zip</td>
1448 <td>Package and compress (archive) files</td>
1449 </tr>
1450 <tr>
1451 <td>unzip.exe</td>
1452 <td>Archive</td>
1462 </tbody>
1463 </table>
1464 </blockquote>
1465 <p>
1466 Note that the CYGWIN software can conflict with other non-CYGWIN
1467 software on your Windows system.
1468 CYGWIN provides a
1469 <a href="http://cygwin.com/faq/faq.using.html" target="_blank">FAQ</a> for
1470 known issues and problems, of particular interest is the
1471 section on
1472 <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank">
1473 BLODA (applications that interfere with CYGWIN)</a>.
1474 <p>
1475 <b>WARNING:</b>
1476 Be very careful with <b><tt>link.exe</tt></b>, it will conflict
1477 with the Visual Studio version. You need the Visual Studio
1478 version of <tt>link.exe</tt>, not the CYGWIN one.
1479 So it's important that the Visual Studio paths in PATH preceed
1480 the CYGWIN path <tt>/usr/bin</tt>.
1481 </blockquote>
1482 <strong><a name="dxsdk">Microsoft DirectX 9.0 SDK header files and libraries</a></strong>
1483 <blockquote>
1484 Microsoft DirectX 9.0 SDK (Summer 2004)
1485 headers are required for building
1486 OpenJDK.
1487 This SDK can be downloaded from
1488 <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FD044A42-9912-42A3-9A9E-D857199F888E&displaylang=en" target="_blank">
1489 Microsoft DirectX 9.0 SDK (Summer 2004)</a>.
1490 If the link above becomes obsolete, the SDK can be found from
1491 <a href="http://download.microsoft.com" target="_blank">the Microsoft Download Site</a>
1492 (search with "DirectX 9.0 SDK Update Summer 2004").
1493 The location of this SDK can be set with
1494 <tt><a href="#ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt>
1495 but it's normally found via the DirectX environment variable
1496 <tt>DXSDK_DIR</tt>.
1497 </blockquote>
1498 <strong><a name="msvcrNN"><tt>MSVCR100.DLL</tt></a></strong>
1499 <blockquote>
1500 The OpenJDK build requires access to a redistributable
1501 <tt>MSVCR100.DLL</tt>.
|
78 <li><a href="#mssdk64">Microsoft Windows SDK for 64 bit</a> </li>
79 <li><a href="#gcc">Linux gcc/binutils</a> </li>
80 <li><a href="#studio">Sun Studio</a> </li>
81 </ul>
82 </li>
83 <li><a href="#zip">Zip and Unzip</a> </li>
84 <li><a href="#freetype">FreeType2 Fonts</a> </li>
85 <li>Linux and Solaris:
86 <ul>
87 <li><a href="#cups">CUPS Include files</a> </li>
88 <li><a href="#xrender">XRender Include files</a></li>
89 </ul>
90 </li>
91 <li>Linux only:
92 <ul>
93 <li><a href="#alsa">ALSA files</a> </li>
94 </ul>
95 </li>
96 <li>Windows only:
97 <ul>
98 <li>Unix Command Tools (<a href="#cygwin">CYGWIN</a>) <strong>or</strong></li>
99 <li>Minimalist GNU for Windows (<a href="#msys">MinGW/MSYS</a>)</li>
100 <li><a href="#dxsdk">DirectX 9.0 SDK</a> </li>
101 </ul>
102 </li>
103 </ul>
104 </li>
105 </ul>
106 </li>
107 <li><a href="#creating">Creating the Build</a> </li>
108 <li><a href="#testing">Testing the Build</a> </li>
109 <li><a href="#variables">Environment/Make Variables</a></li>
110 <li><a href="#troubleshooting">Troubleshooting</a></li>
111 </ul>
112 </blockquote>
113
114 <!-- ------------------------------------------------------ -->
115 <hr>
116 <h2><a name="hg">Use of Mercurial</a></h2>
117 <blockquote>
118 The OpenJDK sources are maintained with the revision control system
119 <a href="http://mercurial.selenic.com/wiki/Mercurial">Mercurial</a>.
663 and should work fine for you.
664 If this version is not 3.81 or newer,
665 see the <a href="#buildgmake">"Building GNU make"</a> section.
666 </li>
667 <li>
668 <strong>Solaris:</strong>
669 Do NOT use <tt>/usr/bin/make</tt> on Solaris.
670 If your Solaris system has the software
671 from the Solaris Companion CD installed,
672 you should try and use <tt>gmake</tt>
673 which will be located in either the <tt>/opt/sfw/bin</tt> or
674 <tt>/usr/sfw/bin</tt> directory.
675 In more recent versions of Solaris GNU make might be found
676 at <tt>/usr/bin/gmake</tt>.<br>
677 <b>NOTE:</b> It is very likely that this <tt>gmake</tt>
678 could be 3.80, you need 3.81, in which case,
679 see the <a href="#buildgmake">"Building GNU make"</a> section.
680 </li>
681 <li>
682 <strong>Windows:</strong>
683 Make sure you start your build inside a bash/sh/ksh shell and are
684 using a <tt>make.exe</tt> utility built for that
685 environment.<br/>
686 <strong>MKS</strong> builds need
687 a native Windows version of GNU make
688 (see <a href="#buildgmake">Building GNU make</a>).<br/>
689 <strong>Cygwin</strong> builds need
690 a make version which was specially compiled for the Cygwin environment
691 (see <a href="#buildgmake">Building GNU make</a>). <strong>WARNING:</strong>
692 the OpenJDK build with the make utility provided by Cygwin will <strong>not</strong>
693 work because it does not support drive letters in paths. Make sure that
694 your version of make will be found before the Cygwins default make by
695 setting an appropriate <tt>PATH</tt> environment variable or by removing
696 Cygwin's make after you built your own make version.<br/>
697 <strong>MinGW/MSYS</strong> builds you can use the default make which
698 comes with the environment.
699 </li>
700 </ul>
701 <p>
702 Information on GNU make, and access to ftp download sites, are
703 available on the
704 <a href="http://www.gnu.org/software/make/make.html" target="_blank">
705 GNU make web site
706 </a>.
707 The latest source to GNU make is available at
708 <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank">
709 ftp.gnu.org/pub/gnu/make/</a>.
710 </p>
711 <!-- ------------------------------------------------------ -->
712 <h4><a name="buildgmake">Building GNU make</a></h4>
713 <blockquote>
714 First step is to get the GNU make 3.81 (or newer) source from
715 <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank">
716 ftp.gnu.org/pub/gnu/make/</a>.
717 Building is a little different depending on the OS and unix toolset
718 on Windows:
719 <ul>
720 <li>
721 <strong>Linux:</strong>
722 <tt>./configure && make</tt>
723 </li>
724 <li>
725 <strong>Solaris:</strong>
726 <tt>./configure && gmake CC=gcc</tt>
727 </li>
728 <li>
729 <strong>Windows for CYGWIN:</strong><br/>
730 <tt>./configure</tt><br/>
731 Add the line <tt>#define HAVE_CYGWIN_SHELL 1</tt> to the end of <tt>config.h</tt><br/>
732 <tt>make</tt><br/>
733 <br/>
734 This should produce <tt>make.exe</tt> in the current directory.
735 </li>
736 <li>
737 <strong>Windows for MKS: </strong><br/>
738 Edit <tt>config.h.W32</tt> and uncomment the line <tt>#define HAVE_MKS_SHELL 1</tt><br/>
739 Set the environment for your native compiler (e.g. by calling:<br/>
740 <tt>"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /Release /xp /x64)</tt>
741 <tt>nmake -f NMakefile.win32</tt>
742 <br/>
743 This should produce <tt>WinDebug/make.exe</tt> and <tt>WinRel/make.exe</tt>
744 <br/>
745 If you get the error: <tt>NMAKE : fatal error U1045: spawn failed : Permission denied</tt>
746 you have to set the <tt>Read & execute</tt> permission for the file <tt>subproc.bat</tt>.
747 </li>
748 </ul>
749 </blockquote>
750 </blockquote>
751 <!-- ------------------------------------------------------ -->
752 <hr>
753 <h3><a name="linux">Basic Linux System Setup</a></h3>
754 <blockquote>
755 <strong>i586 only:</strong>
756 The minimum recommended hardware for building the Linux version
757 is a Pentium class processor or better, at least 256 MB of RAM, and
758 approximately 1.5 GB of free disk space.
759 <p>
760 <strong>X64 only:</strong>
761 The minimum recommended hardware for building the Linux
762 version is an AMD Opteron class processor, at least 512 MB of RAM, and
763 approximately 4 GB of free disk space.
764 <p>
765 The build will use the tools contained in
766 <tt>/bin</tt> and
873 <strong>i586 only:</strong>
874 The minimum recommended hardware for building the 32-bit or X86
875 Windows version is an Pentium class processor or better, at least
876 512 MB of RAM, and approximately 600 MB of free disk space.
877 <strong>
878 NOTE: The Windows build machines need to use the
879 file system NTFS.
880 Build machines formatted to FAT32 will not work
881 because FAT32 doesn't support case-sensitivity in file names.
882 </strong>
883 <p>
884 <strong>X64 only:</strong>
885 The minimum recommended hardware for building
886 the Windows X64 version is an AMD Opteron class processor, at least 1
887 GB of RAM, and approximately 10 GB of free disk space.
888 </blockquote>
889 <!-- ------------------------------------------------------ -->
890 <h4><a name="paths">Windows Paths</a></h4>
891 <blockquote>
892 <strong>Windows:</strong>
893 Note that GNU make, the shell and other Unix-tools required during the build
894 do not tolerate the Windows habit
895 of having spaces in pathnames or the use of the <tt>\</tt>characters in pathnames.
896 Luckily on most Windows systems, you can use <tt>/</tt>instead of \, and
897 there is always a short <a href="http://en.wikipedia.org/wiki/8.3_filename">
898 "8.3" pathname</a> without spaces for any path that contains spaces.
899 Unfortunately, this short pathname is somewhat dynamic (i.e. dependant on the
900 other files and directories inside a given directory) and can not be
901 algorithmicly calculated by only looking at a specific path name.
902 <p>
903 The makefiles will try to translate any pathnames supplied
904 to it into the <tt>C:/</tt> style automatically.
905 </p>
906 <p>
907 Special care has to be taken if native Windows applications
908 like <tt>nmake</tt> or <tt>cl</tt> are called with file arguments processed
909 by Unix-tools like <tt>make</tt> or <tt>sh</tt>!
910 </p>
911 </blockquote>
912 <!-- ------------------------------------------------------ -->
913 <h4><a name="paths">Windows build environments</a></h4>
914 <blockquote>
915 Building on Windows requires a Unix-like environment, notably a Unix-like shell.
916 There are several such environments available of which
917 <a href="http://www.mkssoftware.com/products/tk/ds_tkdev.asp">MKS</a>,
918 <a href="http://www.cygwin.com/">Cygwin</a> and
919 <a href="http://www.mingw.org/wiki/MSYS">MinGW/MSYS</a> are currently supported for
920 the OpenJDK build. One of the differences of these three systems is the way
921 how they handle Windows path names, particularly path names which contain
922 spaces, backslashes as path separators and possibly drive letters. Depending
923 on the use case and the specifics of each environment these path problems can
924 be solved by a combination of quoting whole paths, translating backslashes to
925 forward slashes, escaping backslashes with additional backslashes and
926 translating the path names to their <a href="http://en.wikipedia.org/wiki/8.3_filename">
927 "8.3" version</a>.
928 <p>
929 As of this writing (MKS ver. 9.4, Cygwin ver. 1.7.9, MinGW/MSYS 1.0.17),
930 MKS builds are known to be the fastes Windows builds while MingGW/MSYS
931 builds are slightly slower (about 10%) than MKS builds and Cygwin builds
932 require nearly twice the time (about 180%) of MKS builds (e.g. on a
933 DualCore i7 notebook with 8GB of RAM, HDD and 64-bit Windows 7 operating system
934 the complete OpenJDK 8 product build takes about 49min with MKS, 54min with
935 MinGW/MSYS and 88min with Cygwin).
936 </p>
937 <p>
938 Mixing tools from the different Unix emulation environments is no good
939 idea and will probably not work!
940 </p>
941 <p>
942 <strong>MKS:</strong> is a commercial product which includes
943 all the Unix utilities which are required to build the OpenJDK except GNU
944 make. In pre-OpenJDK times it was the only supported build environment on
945 Windows. The MKS tools support Windows paths with drive letters and
946 forward slashes as path separator. Paths in environment variables like for
947 example <tt>PATH</tt> are separated by semicolon '<tt>;</tt>'.
948 </p>
949 <p>
950 Recent versions of MKS provide the <tt>dosname</tt> utility to convert paths
951 with spaces to short (8.3) path names,e .g.
952 <tt>dosname -s "<i>path</i>"</tt>.
953 </p>
954 <p>
955 If you are using the MKS environment, you need a native Windows version
956 of Gnu make <a href="#buildgmake">which you can easily build yourself</a>.
957 </p>
958 <p>
959 <strong>Cygwin:</strong>
960 is an open source, Linux-like environment which tries to emulate
961 a complete POSIX layer on Windows. It tries to be smart about path names
962 and can usually handle all kinds of paths if they are correctly quoted
963 or escaped altough internally it maps drive letters <tt><drive>:</tt>
964 to a virtual directory <tt>/cygdrive/<drive></tt>.
965 </p>
966 <p>
967 You can always use the <tt>cygpath</tt> utility to map pathnames with spaces
968 or the backslash character into the <tt>C:/</tt> style of pathname
969 (called 'mixed'), e.g.
970 <tt>cygpath -s -m "<i>path</i>"</tt>.
971 </p>
972 <p>
973 Note that the use of CYGWIN creates a unique problem with regards to
974 setting <a href="#path"><tt>PATH</tt></a>. Normally on Windows
975 the <tt>PATH</tt> variable contains directories
976 separated with the ";" character (Solaris and Linux uses ":").
977 With CYGWIN, it uses ":", but that means that paths like "C:/path"
978 cannot be placed in the CYGWIN version of <tt>PATH</tt> and
979 instead CYGWIN uses something like <tt>/cygdrive/c/path</tt>
980 which CYGWIN understands, but only CYGWIN understands.
981 </p>
982 <p>
983 If you are using the Cygwin environment, you need to
984 <a href="#buildgmake">compile your own version</a>
985 of GNU make because the default Cygwin make can not handle drive letters in paths.
986 </p>
987 <p>
988 <strong>MinGW/MSYS:</strong>
989 MinGW ("Minimalist GNU for Windows") is a collection of free Windows
990 specific header files and import libraries combined with GNU toolsets that
991 allow one to produce native Windows programs that do not rely on any
992 3rd-party C runtime DLLs. MSYS is a supplement to MinGW which allows building
993 applications and programs which depend on traditional UNIX tools to
994 be present. Among others this includes tools like <tt>bash</tt> and <tt>make</tt>.
995 </p>
996 <p>
997 Like Cygwin, MinGW/MSYS can handle different types of path formats. They
998 are internally converted to paths with forward slashes and drive letters
999 <tt><drive>:</tt> replaced by a virtual
1000 directory <tt>/<drive></tt>. Additionally, MSYS automatically
1001 detects binaries compiled for the MSYS environment and feeds them with the
1002 internal, Unix-style path names. If native Windows applications are called
1003 from within MSYS programs their path arguments are automatically converted
1004 back to Windows style path names with drive letters and backslashes as
1005 path separators. This may cause problems for Windows applications which
1006 use forward slashes as parameter separator (e.g. <tt>cl /nologe /I</tt>)
1007 because MSYS may wrongly <a href="http://mingw.org/wiki/Posix_path_conversion">
1008 replace such parameters by drive letters</a>.
1009 </p>
1010 <p>
1011 If you are using the MinGW/MSYS system you can use the default make
1012 version supplied by the environment.
1013 </p>
1014 </blockquote>
1015 <!-- ------------------------------------------------------ -->
1016 <h4><a name="windows_checklist">Basic Windows Check List</a></h4>
1017 <blockquote>
1018 <ol>
1019 <li>
1020 Install one of the
1021 <a href="#cygwin">CYGWIN</a>, <a href="#msys">MinGW/MSYS</a> or
1022 <a href="http://www.mkssoftware.com/products/tk/ds_tkdev.asp">MKS</a> environments.
1023 </li>
1024 <li>
1025 Install the
1026 <a href="#bootjdk">Bootstrap JDK</a>, set
1027 <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
1028 </li>
1029 <li>
1030 <a href="#importjdk">Optional Import JDK</a>, set
1031 <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>.
1032 </li>
1033 <li>
1034 Install the
1035 <a href="#msvc32">Microsoft Visual Studio Compilers</a>).
1036 </li>
1037 <li>
1038 Setup all environment variables for compilers
1039 (see <a href="#msvc32">compilers</a>).
1040 </li>
1041 <li>
1042 Install
1328 the package provided by the particular version of Linux that
1329 you are using.
1330 <p>
1331 The CUPS header files can always be downloaded from
1332 <a href="http://www.cups.org" target="_blank">www.cups.org</a>.
1333 The variable
1334 <tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt>
1335 can be used to override the default location of the
1336 CUPS Header files.
1337 </blockquote>
1338 <!-- ------------------------------------------------------ -->
1339 <h4><a name="xrender">XRender Extension Headers (Solaris & Linux)</a></h4>
1340 <blockquote>
1341 <p>
1342 <strong>Solaris:</strong>
1343 XRender header files are required for building the
1344 OpenJDK on Solaris.
1345 The XRender header file is included with the other X11 header files
1346 in the package <strong>SFWxwinc</strong> on new enough versions of
1347 Solaris and will be installed in
1348 <tt>/usr/X11/include/X11/extensions/Xrender.h</tt> or
1349 <tt>/usr/openwin/share/include/X11/extensions/Xrender.h</tt>
1350 </p><p>
1351 <strong>Linux:</strong>
1352 XRender header files are required for building the
1353 OpenJDK on Linux.
1354 The Linux header files are usually available from a "Xrender"
1355 development package, it's recommended that you try and use
1356 the package provided by the particular distribution of Linux that
1357 you are using.
1358 </p>
1359 </blockquote>
1360 <!-- ------------------------------------------------------ -->
1361 <h4><a name="freetype">FreeType 2</a></h4>
1362 <blockquote>
1363 Version 2.3 or newer of FreeType is required for building the OpenJDK.
1364 On Unix systems required files can be available as part of your
1365 distribution (while you still may need to upgrade them).
1366 Note that you need development version of package that
1367 includes both FreeType library and header files.
1368 <p>
1369 You can always download latest FreeType version from the
1499 <tr>
1500 <td>Binary Name</td>
1501 <td>Category</td>
1502 <td>Package</td>
1503 <td>Description</td>
1504 </tr>
1505 </thead>
1506 <tbody>
1507 <tr>
1508 <td>ar.exe</td>
1509 <td>Devel</td>
1510 <td>binutils</td>
1511 <td>The GNU assembler, linker and binary
1512 utilities</td>
1513 </tr>
1514 <tr>
1515 <td>make.exe</td>
1516 <td>Devel</td>
1517 <td>make</td>
1518 <td>The GNU version of the 'make' utility built for CYGWIN.<br>
1519 <b>NOTE</b>: the Cygwin make can not be used to build the
1520 OpenJDK, you only need it to build your own version of make
1521 (see <a href="#gmake">the GNU make section</a>)</td>
1522 </tr>
1523 <tr>
1524 <td>m4.exe</td>
1525 <td>Interpreters</td>
1526 <td>m4</td>
1527 <td>GNU implementation of the traditional Unix macro
1528 processor</td>
1529 </tr>
1530 <tr>
1531 <td>gawk.exe</td>
1532 <td>Utils</td>
1533 <td>awk</td>
1534 <td>Pattern-directed scanning and processing language</td>
1535 </tr>
1536 <tr>
1537 <td>file.exe</td>
1538 <td>Utils</td>
1539 <td>file</td>
1540 <td>Determines file type using 'magic' numbers</td>
1541 </tr>
1542 <tr>
1543 <td>zip.exe</td>
1544 <td>Archive</td>
1545 <td>zip</td>
1546 <td>Package and compress (archive) files</td>
1547 </tr>
1548 <tr>
1549 <td>unzip.exe</td>
1550 <td>Archive</td>
1560 </tbody>
1561 </table>
1562 </blockquote>
1563 <p>
1564 Note that the CYGWIN software can conflict with other non-CYGWIN
1565 software on your Windows system.
1566 CYGWIN provides a
1567 <a href="http://cygwin.com/faq/faq.using.html" target="_blank">FAQ</a> for
1568 known issues and problems, of particular interest is the
1569 section on
1570 <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank">
1571 BLODA (applications that interfere with CYGWIN)</a>.
1572 <p>
1573 <b>WARNING:</b>
1574 Be very careful with <b><tt>link.exe</tt></b>, it will conflict
1575 with the Visual Studio version. You need the Visual Studio
1576 version of <tt>link.exe</tt>, not the CYGWIN one.
1577 So it's important that the Visual Studio paths in PATH preceed
1578 the CYGWIN path <tt>/usr/bin</tt>.
1579 </blockquote>
1580 <strong> Minimalist GNU for Windows (<a name="msys">MinGW/MSYS</a>)</strong>
1581 <blockquote>
1582 Alternatively, the set of unix command tools for the OpenJDK build on
1583 Windows can be supplied by
1584 <a href="http://www.mingw.org/wiki/MSYS" target="_blank">MinGW/MSYS</a>.
1585 <p>
1586 In addition to the tools which will be installed by default you have
1587 to manually install the <tt>msys-zip</tt> and <tt>msys-unzip</tt> packages.
1588 This can be easily done with the MinGW command line installer:<br/>
1589 <tt><br/>
1590 mingw-get.exe install msys-zip<br/>
1591 mingw-get.exe install msys-unzip<br/>
1592 </tt>
1593 </p>
1594 </blockquote>
1595 <strong><a name="dxsdk">Microsoft DirectX 9.0 SDK header files and libraries</a></strong>
1596 <blockquote>
1597 Microsoft DirectX 9.0 SDK (Summer 2004)
1598 headers are required for building
1599 OpenJDK.
1600 This SDK can be downloaded from
1601 <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FD044A42-9912-42A3-9A9E-D857199F888E&displaylang=en" target="_blank">
1602 Microsoft DirectX 9.0 SDK (Summer 2004)</a>.
1603 If the link above becomes obsolete, the SDK can be found from
1604 <a href="http://download.microsoft.com" target="_blank">the Microsoft Download Site</a>
1605 (search with "DirectX 9.0 SDK Update Summer 2004").
1606 The location of this SDK can be set with
1607 <tt><a href="#ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt>
1608 but it's normally found via the DirectX environment variable
1609 <tt>DXSDK_DIR</tt>.
1610 </blockquote>
1611 <strong><a name="msvcrNN"><tt>MSVCR100.DLL</tt></a></strong>
1612 <blockquote>
1613 The OpenJDK build requires access to a redistributable
1614 <tt>MSVCR100.DLL</tt>.
|