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.


Reply via email to