Using the no-charge "Express" tools to build a JDK on win32 [RE: Upcoming OpenJDK infrastructure projects]

Tim Bell Tim.Bell at Sun.COM
Mon Dec 31 20:42:49 UTC 2007


Back in November, dan at fabulich.com wrote:

> [...] pipe up in favor of simplifying the Windows build experience.

I am all for that, since I spend more hours maintaining Windows build systems than on all our 
other build systems combined.  :-/

> Specifically...
> 
> 1) Update the build to work with Visual C++ 2005 Express, the free 
> (no-charge) version of the Visual Studio C++ compiler.

The question of using the no-charge "Express" tools to build on win32 comes back from time to 
time.  As Kelly wrote [1], when we were opening up the JDK under the JRL/JDL [2], we looked at 
the free 2003 kit and concluded it did not include enough of the necessary pieces to be useful 
for JDK development.  Unfortunately I don't recall the details.

Last week I got my hands on a surplus 3Ghz 1.5MByte P4 system (still a nice build machine) and 
resolved to repeat the experiment after wiping the disks and installing from scratch.  The 
Windows XP license was paid for as part of my MSDN 'Professional' membership, but I wanted to 
see how far I could get beyond that while using only zero cost tools.  As it is no fair to pull 
from our internal servers, everything I used during setup came from the open Internet (more on 
that later).

Specifically I was interested in: Visual C++ 2005 Express [3] combined with the Express 2005 
platform SDK [4].  Both 'Express' packages are available for download at zero $$ (registration 
required).

To cut to the chase, my conclusion is no.  The free kit does not include the WIN32/MFC/ATL 
headers (atlmfc.h, windows.h to name two) or the supporting libraries needed.  I was able to 
pass 'make sanity', but as soon as I tried to compile any of the open native code in JDK7 [that 
would be the corba, hotspot, jdk repositories] the build quickly failed:

In corba:
> ../../../../src/windows/resource/version.rc(26) : fatal error RC1015: cannot ope n include file 
'afxres.h'.
In hotspot:
> g:\tbell\jdk7\2007_12_21\hotspot\src\os\windows\vm\jvm_windows.h(33) : fatal error C1083: Cannot open include file: 'windows.h': No such file or directory
Or in JDK:
> g:/tbell/jdk7/2007_1~1/jdk/src/windows/resource/version.rc(26) : fatal error RC1015: cannot open include file 'afxres.h'.

Other developers may have reported better success, but after reading over the archives I 
believe they were using 1) the fully paid-for Visual C++ 2005 kit, or 2) a paid-for SDK that 
was already on their system.  If I am mistaken here, please follow up with specific details of 
your build platform and how I (or we) could reproduce the results.

This email is already too long, so I omit further details.  I will write up my notes over the 
next few days and post a description of the build setup on my long dormant weblog:

   http://blogs.sun.com/TimBell

Tim Bell

[1] http://mail.openjdk.java.net/pipermail/build-dev/2007-July/000139.html
[2] https://jdk.dev.java.net/
[3] http://www.microsoft.com/express/2005/download/default.aspx
     English Language version available here:
     http://go.microsoft.com/fwlink/?LinkId=51410&clcid=0x409
[4] http://www.microsoft.com/express/2005/platformsdk/default.aspx

Note: these URLs were working as of December 2007, but I can't control what may happen to them 
in the future.



More information about the build-dev mailing list