Yet another OpenJDK7/Windows build story

Raffaello Giulietti raffaello.giulietti at gmail.com
Sun May 9 15:06:32 UTC 2010


Jon,

to be clear, I'm usually online, like perhaps everybody interested in
building OpenJDK. But I would still like to have everything on my disk
when I do a build.

I discovered that
https://jaxp.dev.java.net/files/documents/913/147490/jdk7-jaxp-m6.zip
is one location from where downloads are performed during the build if
the resource is absent. Do you know of others?

Raffaello



On 2010-05-09 16:31, Jonathan Gibbons wrote:
> Raffaello,
> 
> As regards being online, you only have to be online if the required
> files are not already available on your system. On subsequent builds,
> you do not need to be online; or you can download the files ahead of
> time and set ALT_DROPS_DIR to the downloaded location.
> 
> -- Jon
> 
> 
> 
> Raffaello Giulietti 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