Yet another OpenJDK7/Windows build story
Jonathan Gibbons
jonathan.gibbons at oracle.com
Sun May 9 16:41:43 UTC 2010
I agree it is useful to be able to build offline, as I discovered when I
was recently stranded by the Iceland volcano ;-)
You'll also need a jdk7 jaxws bundle. Together, the jaxp and jaxws
bundles replace the use of having a copy of the source code for jaxp and
jaxws in the jdk7 forest. Instead, these repos are now "almost empty"
and just have makefiles that pull the source code from upstream
bundles. The change to use upstream source bundles and not a copy of
the source tree is relatively recent.
The properties describing these source drops are in
jaxp/jaxp.properties
jaxws/jaxws.properties
The jaxws files point to a location on kenai.com, and it looks like you
can get all the files you need from there. In other words, go to
http://kenai.com/projects/jdk7-drops/downloads, dowload all 5 files
(just to be safe) into a directory on your system, then point
ALT_DROPS_DIR to that directory.
-- Jon
On 05/09/2010 08:06 AM, Raffaello Giulietti wrote:
> 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