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

This IKVM.NET source bundle requires OpenJDK 8u45 b14 sources (and build artifacts).

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

http://www.frijters.net/openjdk-8u45-b14-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 8 to the PATH. Java 8 is required to build
the Java class library. It is recommend to use the 64 bit version.

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".
