Yet another OpenJDK7/Windows build story

Lussier, Denis denisl at openscg.com
Sun May 9 14:24:31 UTC 2010


I have to jump thru most all of those same hoops building OpenJDK 6 on
Win2k with VS2003.  Note that building on Linux is much easier and the
build takes less than 20% of the time on the same machine.  Also, in
my experience the Bootstrap jdk must be 1.6.0 Update 10.  I was
originally trying with Update 16 and it errors out building CORBA.

On 5/9/10, Raffaello Giulietti <raffaello.giulietti at gmail.com> wrote:
> I'm on Windows Vista 32-bit, SP2, Visual Studio 2008 Professional.
> I'm building OpenJDK7 b92.
>
>
> Mercurial
> ---------
> Mercurial for Windows in its .msi form is self-contained and doesn't
> require an additional Python installation. I've also added the
> installation folder to my Windows PATH.
>
> Download the forest extensions from
> http://bitbucket.org/pmezard/hgforest-crew/
> as explained there.
> Do *not* download from
> http://mercurial.selenic.com/wiki/ForestExtension
> this simply does not work.
> Copy hgforest-crew\forest.py to library.zip\hgext
> Add the following Mercurial.ini to the Mercurial installation directory
> --------
> [extensions]
> hgext.forest=
> --------
>
>
> FreeType2
> ---------
> From
> http://gnuwin32.sourceforge.net/packages/freetype.htm
> download the *-bin.zip and *-dep.zip and unzip them.
>
> OpenJDK erroneously expects a freetype.dll in the freetype lib folder.
> To prevent complains during the build, hold your nose and copy
> bin\freetype6.dll to lib\freetype.dll.
>
>
> Ant and JAVA_HOME
> -----------------
> I've installed Ant 1.8.0.
>
> OpenJDK can't tolerate JAVA_HOME being set. Ant uses the registry entry
> if JAVA_HOME is unset, but expects a full JDK. Hence, check the Windows
> regisitry to ensure that the appropriate key in
> HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment refers to
> a JRE that's *inside* a JDK.
>
>
> SDK and PATH
> ------------
> Although the SKD will be on the PATH before starting the build, for some
> obscure reason OpenJDK searches for rc.exe and mt.exe in VC\bin rather
> than on the PATH. Again, hold your nose, close your eyes and copy them
> in VC\bin.
>
>
> Cygwin
> ------
> I've installed cygwin 1.7.5 with the additions mentioned in the OpenJDK
> Build README. I've also installed libintl-2 and vim via normal cygwin
> setup. I don't remember if I've installed wget explicitly or if it came
> with the default installation.
>
>
> Make
> ----
> I downloaded make 3.80 from one of the sites mentioned in
> http://www.filewatcher.com/m/make-3.80-1.tar.bz2.286814.0.0.html
> and installed it in cygwin with
> tar xjf <yourDownloadsFolder>/make-3.80-1.tar.bz2
>
>
> Other issues
> ------------
> Apply the patch mentioned in
> http://mail.openjdk.java.net/pipermail/build-dev/2010-May/002945.html
> which certainly helps with b92 but which will be obsolete any time soon.
>
>
> Getting the repository
> ----------------------
> In a cygwin shell, cd to a folder of your choice (BUILD_HOME) and do
>
> mkdir jdk7
> hg fclone http://hg.openjdk.java.net/jdk7/jdk7/ jdk7
> wget
> http://www.java.net/download/openjdk/jdk7/promoted/b92/jdk-7-ea-plug-b92-windows-i586-06_may_2010.jar
> java -jar jdk-7-ea-plug-b92-windows-i586-06_may_2010.jar
>
> and install the binary plugs in BUILD_HOME
>
>
> Environment variables
> ---------------------
> Copy the following in cygwin's $HOME/env.bat
> --------
> call "%VS90COMNTOOLS%\vsvars32.bat"
> bash
> --------
>
> Copy and adapt the following in cygwin's $HOME/env.sh (pay attention to
> line breaks due to emailers)
> --------
> #!/usr/bin/bash
>
> unset CLASSPATH
> unset JAVA_HOME
>
> CYGPATH=/usr/bin/cygpath
> BUILD_HOME=$HOME
> FREETYPE_HOME="C:\Downloads\FreeType"
>
> export ANT_HOME=$(${CYGPATH} -u "C:\Downloads\Apache\apache-ant-1.8.0")
>
> export PATH=$PATH:$(${CYGPATH} -u
> "$FREETYPE_HOME\freetype-2.3.5-1-bin\bin"):$(${CYGPATH} -u
> "$FREETYPE_HOME\freetype-2.3.5-1-dep\bin")
>
> export ALT_BINARY_PLUGS_PATH="$BUILD_HOME/openjdk-binary-plugs"
> export ALT_BOOTDIR=$(${CYGPATH} -s -m "C:\Program Files\Java\jdk1.6.0_18")
> export ALT_COMPILER_PATH=$(${CYGPATH} -s -m "C:\Program Files\Microsoft
> Visual Studio 9.0\VC\BIN")
> export ALT_FREETYPE_LIB_PATH=$(${CYGPATH} -s -m
> "$FREETYPE_HOME\freetype-2.3.5-1-bin\lib")
> export ALT_FREETYPE_HEADERS_PATH=$(${CYGPATH} -s -m
> "$FREETYPE_HOME\freetype-2.3.5-1-bin\include")
> export ALT_DXSDK_PATH=$(${CYGPATH} -s -m "$DXSDK_DIR")
>
> export OPENJDK=true
> --------
>
>
> Building
> --------
> WARNING: As unbelievable as it might sound, you need to be online to
> build OpenJDK! During the build, some files are downloaded from the net.
>
> In a cygwin shell do the following to set the VisualStudio vars, the
> environment and to start the build.
>
> ./env.bat
> . ./env.sh
> cd $BUILD_HOME/jdk7
> make sanity
> make
>
> On my three years old laptop the build proper takes about 2:30 hours.
>



More information about the build-dev mailing list