forked from gluck/ikvm
-
Notifications
You must be signed in to change notification settings - Fork 7
/
HOWTO
52 lines (35 loc) · 2 KB
/
HOWTO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
IKVM.NET Build Instructions
---------------------------
This IKVM.NET source bundle requires OpenJDK 6 b22 sources (and build artifacts).
They can be downloaded from the SourceForge IKVM project, or from:
http://www.frijters.net/openjdk6-b22-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 1.6 to the PATH.
Make sure you run the build using Java 6.
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".
Strong name Build
-----------------
If you want to do a strong named build, make sure you have a key container installed named
"ikvm-key". Add the strong name tool in PATH, it is usually located in
"C:\Program Files (x86)\Microsoft SDKs\Windows\vXX.X\bin\NETFX X.X Tools". For installing
a key in the container run "sn -i keyname.snk ikvm-key". Run the build with "nant signed".
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 numbers of the build is defined in ikvm/CommonAssemblyInfo.cs.