IKVM.NET Build Instructions
---------------------------

This IKVM.NET source bundle requires OpenJDK 7u6 b24 sources (and build artifacts).

They can be downloaded from the SourceForge IKVM project, or from:

http://www.frijters.net/openjdk-7u6-b24-stripped.zip

This file should be unzipped in the same directory as where the ikvm directory
(that contains this unzipped source bundle) lives.

Download ICSharpCode.SharpZipLib.dll (from http://www.icsharpcode.net/opensource/sharpziplib/
or from the ikvmbin-x.y.z.r.zip in the SourceForge IKVM project) and copy it to ikvm/bin.

Add the bin directory of NAnt 0.85 and JDK 7 to the PATH. It is recommend to use the 64 bit
version of Java 7.

From the ikvm directory run "nant".

You now should have the built binaries in ikvm/bin. Note that this only builds the managed
binaries, to build the native binary see Native Build.


Native Build
------------

Windows:
Make sure you have Visual C++ 2008 installed. Open a Visual Studio 2008 Command Prompt.
From the ikvm directory run "nant native".

Linux:
Make sure you have gcc installed. From the ikvm directory run "nant native".


Additional Information
----------------------

IKVM.Runtime.dll and the various IKVM.OpenJDK.*.dll assemblies mutually depend on each other.
This is accomplished by building IKVM.Runtime.dll in two passes. The first pass defines the
methods and types that the IKVM.OpenJDK.*.dll assemblies use, but generally with an empty
method body (look for #if FIRST_PASS in the IKVM.Runtime.dll sources). The second pass is
built after the IKVM.OpenJDK.*.dll assemblies have been built.

The version number of the build is defined in ikvm/CommonAssemblyInfo.cs.in

If you want to do a strong named build, make sure you have a key container installed named
"ikvm-key" and run the build with "nant signed".
