This was the easy part, even if it took much too much time. Now begins the hard part: applying the patches from the Multi Language Virtual Machine project and trying to build it on Windows. I've done this some time ago on OpenSolaris and Linux. It was a pain, but somehow simpler than building the pure OpenJDK on Windows.
Although I fully understand that OpenJDK is a really complex project, I'm still a little bit disappointed about how hard it is to build it on supported platforms. It would be instructive to know how many man-hours have been spent around the globe just for setting up the right environment for a successful build. It took some days to me and I was lucky to have many useful inputs from blogs and other people. In other words, there must be a better way... To conclude, many thanks to everybody that helped me on this focused mailing list, a truly great resource with excellent posts and very few noise (perhaps even none). Raffaello On 2010-05-09 16:24, Lussier, Denis wrote: > 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 <[email protected]> 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. >>
