diff --git a/IKVM.sln b/IKVM.sln
index d69efc6beb..e2dbf3936d 100644
--- a/IKVM.sln
+++ b/IKVM.sln
@@ -54,6 +54,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IKVM.MSBuild.Tasks.Tests",
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IKVM.Java", "src\IKVM.Java\IKVM.Java.msbuildproj", "{ABD81C7E-F986-4018-986E-ACAF82C64D3A}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IKVM.Java.runtime.linux", "src\IKVM.Java.runtime.linux\IKVM.Java.runtime.linux.msbuildproj", "{BC8E0429-5E53-4F23-8CE8-86A1B44D669E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IKVM.Java.runtime.win", "src\IKVM.Java.runtime.win\IKVM.Java.runtime.win.msbuildproj", "{537B5ACE-81A2-4DCA-AB4D-9862E63F448D}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IKVM.Java.runtime.osx", "src\IKVM.Java.runtime.osx\IKVM.Java.runtime.osx.msbuildproj", "{C6BC9419-F394-4B59-A707-F9A82A3FE625}"
+EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IKVM.NET.Sdk", "src\IKVM.NET.Sdk\IKVM.NET.Sdk.msbuildproj", "{704BD7C7-7746-4D72-A86E-ECFE7BBD80CC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IKVM.MSBuild", "src\IKVM.MSBuild\IKVM.MSBuild.msbuildproj", "{AE5BFBC6-7DD4-4ACA-BEA7-86F842F38B64}"
@@ -383,6 +389,18 @@ Global
{ABD81C7E-F986-4018-986E-ACAF82C64D3A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{ABD81C7E-F986-4018-986E-ACAF82C64D3A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{ABD81C7E-F986-4018-986E-ACAF82C64D3A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BC8E0429-5E53-4F23-8CE8-86A1B44D669E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BC8E0429-5E53-4F23-8CE8-86A1B44D669E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BC8E0429-5E53-4F23-8CE8-86A1B44D669E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BC8E0429-5E53-4F23-8CE8-86A1B44D669E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {537B5ACE-81A2-4DCA-AB4D-9862E63F448D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {537B5ACE-81A2-4DCA-AB4D-9862E63F448D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {537B5ACE-81A2-4DCA-AB4D-9862E63F448D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {537B5ACE-81A2-4DCA-AB4D-9862E63F448D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C6BC9419-F394-4B59-A707-F9A82A3FE625}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C6BC9419-F394-4B59-A707-F9A82A3FE625}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C6BC9419-F394-4B59-A707-F9A82A3FE625}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C6BC9419-F394-4B59-A707-F9A82A3FE625}.Release|Any CPU.Build.0 = Release|Any CPU
{704BD7C7-7746-4D72-A86E-ECFE7BBD80CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{704BD7C7-7746-4D72-A86E-ECFE7BBD80CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{704BD7C7-7746-4D72-A86E-ECFE7BBD80CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
diff --git a/openjdk.props b/openjdk.props
index cee82ceadb..6b1b4373f1 100644
--- a/openjdk.props
+++ b/openjdk.props
@@ -2,7 +2,15 @@
%(Identity)
+
+
+
+
+
+
+
+
@@ -1348,33 +1356,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -1537,42 +1519,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -1674,18 +1621,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/src/IKVM.Java.runtime.linux/IKVM.Java.runtime.linux.msbuildproj b/src/IKVM.Java.runtime.linux/IKVM.Java.runtime.linux.msbuildproj
new file mode 100644
index 0000000000..fe5d9ed7e5
--- /dev/null
+++ b/src/IKVM.Java.runtime.linux/IKVM.Java.runtime.linux.msbuildproj
@@ -0,0 +1,9 @@
+
+
+ IKVM.Java.runtime.linux
+ linux
+
+
+
+
+
diff --git a/src/IKVM.Java.runtime.osx/IKVM.Java.runtime.osx.msbuildproj b/src/IKVM.Java.runtime.osx/IKVM.Java.runtime.osx.msbuildproj
new file mode 100644
index 0000000000..3d716ad07a
--- /dev/null
+++ b/src/IKVM.Java.runtime.osx/IKVM.Java.runtime.osx.msbuildproj
@@ -0,0 +1,9 @@
+
+
+ IKVM.Java.runtime.osx
+ osx
+
+
+
+
+
diff --git a/src/IKVM.Java.runtime.win/IKVM.Java.runtime.win.msbuildproj b/src/IKVM.Java.runtime.win/IKVM.Java.runtime.win.msbuildproj
new file mode 100644
index 0000000000..8b00a8071f
--- /dev/null
+++ b/src/IKVM.Java.runtime.win/IKVM.Java.runtime.win.msbuildproj
@@ -0,0 +1,9 @@
+
+
+ IKVM.Java.runtime.win
+ win
+
+
+
+
+
diff --git a/src/IKVM.Java/IKVM.Java.msbuildproj b/src/IKVM.Java/IKVM.Java.msbuildproj
index 81ddd9d256..cac99f43a6 100644
--- a/src/IKVM.Java/IKVM.Java.msbuildproj
+++ b/src/IKVM.Java/IKVM.Java.msbuildproj
@@ -1,154 +1,8 @@
-
-
-
-
-
- net472;net6.0
- true
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- $([System.IO.Path]::GetFullPath('$(JAVA_HOME)\bin\javac'))
- $([System.IO.Path]::GetFullPath('$(JAVA_HOME)\bin\javac.exe'))
- -J-Xmx1536M
- "$(JavaCompilerPath)" $(JavaCompilerArgs)
-
-
-
-
-
-
-
-
-
-
-
-
-
- $([System.IO.Path]::GetFullPath('$(JAVA_HOME)\bin\rmic'))
- $([System.IO.Path]::GetFullPath('$(JAVA_HOME)\bin\rmic.exe'))
- -J-client -J-Xms128m
- "$(RmiCompilerPath)" $(RmiCompilerArgs)
-
-
-
-
-
- $(IntermediateOutputPath)rmistubs\
- <_BuildRmiStubsCoreStampFile>$(RmiStubsOutputPath)stamp
-
-
-
-
- <_RmiCompilerClasspath Include="@(Classpath);$(ClassOutputPath)" />
- <_RmiCompilerArgs Include="@(RmiCompilerArgs)" />
- <_RmiCompilerArgs Include="-nowarn" />
- <_RmiCompilerArgs Include="-bootclasspath" />
- <_RmiCompilerArgs Include="@(_RmiCompilerClasspath, '$([System.IO.Path]::PathSeparator)')" />
- <_RmiCompilerArgs Include="-d" />
- <_RmiCompilerArgs Include="$(RmiStubsOutputPath)" />
-
-
- <_RmiCompilerArgs>@(_RmiCompilerArgs, ' ')
-
-
-
-
-
-
-
-
-
-
- $(BuildRmiStubsDependsOn)
- CompileJava;
- ResolveRmiStubInputItems;
- _BuildRmiStubs;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- $(CoreCleanDependsOn);
- CleanRmiStubs;
-
-
-
-
- BuildRmiStubs;
- $(CoreCompileDependsOn);
-
+ ref
+
+
diff --git a/src/IKVM.Java/IKVM.Java.runtime.props b/src/IKVM.Java/IKVM.Java.runtime.props
new file mode 100644
index 0000000000..fd751e1bee
--- /dev/null
+++ b/src/IKVM.Java/IKVM.Java.runtime.props
@@ -0,0 +1,86 @@
+
+
+
+
+ $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
+
+
+
+
+
+
+
+ net472;net6.0
+ IKVM.Java
+ false
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/IKVM.Java/IKVM.Java.runtime.targets b/src/IKVM.Java/IKVM.Java.runtime.targets
new file mode 100644
index 0000000000..aaa976f4fa
--- /dev/null
+++ b/src/IKVM.Java/IKVM.Java.runtime.targets
@@ -0,0 +1,105 @@
+
+
+
+
+ $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
+
+
+
+
+
+
+
+
+
+ $([System.IO.Path]::GetFullPath('$(JAVA_HOME)\bin\javac'))
+ $([System.IO.Path]::GetFullPath('$(JAVA_HOME)\bin\javac.exe'))
+ -J-Xmx1536M
+ "$(JavaCompilerPath)" $(JavaCompilerArgs)
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $([System.IO.Path]::GetFullPath('$(JAVA_HOME)\bin\rmic'))
+ $([System.IO.Path]::GetFullPath('$(JAVA_HOME)\bin\rmic.exe'))
+ -J-client -J-Xms128m
+ "$(RmiCompilerPath)" $(RmiCompilerArgs)
+
+
+
+
+
+ $(IntermediateOutputPath)rmistubs\
+ <_BuildRmiStubsCoreStampFile>$(RmiStubsOutputPath)stamp
+
+
+
+
+ <_RmiCompilerClasspath Include="@(Classpath);$(ClassOutputPath)" />
+ <_RmiCompilerArgs Include="@(RmiCompilerArgs)" />
+ <_RmiCompilerArgs Include="-nowarn" />
+ <_RmiCompilerArgs Include="-bootclasspath" />
+ <_RmiCompilerArgs Include="@(_RmiCompilerClasspath, '$([System.IO.Path]::PathSeparator)')" />
+ <_RmiCompilerArgs Include="-d" />
+ <_RmiCompilerArgs Include="$(RmiStubsOutputPath)" />
+
+
+ <_RmiCompilerArgs>@(_RmiCompilerArgs, ' ')
+
+
+
+
+
+
+
+
+
+
+ $(BuildRmiStubsDependsOn)
+ CompileJava;
+ ResolveRmiStubInputItems;
+ _BuildRmiStubs;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(CoreCleanDependsOn);
+ CleanRmiStubs;
+
+
+
+
+
+ BuildRmiStubs;
+ $(CoreCompileDependsOn);
+
+
+
+
diff --git a/src/libawt/libawt.clangproj b/src/libawt/libawt.clangproj
index f3140e4309..ef4e1b3c00 100644
--- a/src/libawt/libawt.clangproj
+++ b/src/libawt/libawt.clangproj
@@ -13,4 +13,4 @@
-
\ No newline at end of file
+
diff --git a/src/libiava/libiava.clangproj b/src/libiava/libiava.clangproj
index fc18582a62..d10120fbd4 100644
--- a/src/libiava/libiava.clangproj
+++ b/src/libiava/libiava.clangproj
@@ -14,7 +14,6 @@
-
diff --git a/src/libnet/libnet.clangproj b/src/libnet/libnet.clangproj
index a7ac7d24f3..d541b70ac7 100644
--- a/src/libnet/libnet.clangproj
+++ b/src/libnet/libnet.clangproj
@@ -14,7 +14,6 @@
-
diff --git a/src/libnio/libnio.clangproj b/src/libnio/libnio.clangproj
index 14fb5e5dd5..0e53cc0de0 100644
--- a/src/libnio/libnio.clangproj
+++ b/src/libnio/libnio.clangproj
@@ -19,7 +19,6 @@
-
diff --git a/src/libunpack/libunpack.clangproj b/src/libunpack/libunpack.clangproj
index 9e0f94059c..970f0f2a0b 100644
--- a/src/libunpack/libunpack.clangproj
+++ b/src/libunpack/libunpack.clangproj
@@ -12,7 +12,6 @@
-
diff --git a/targets/openjdk.lib.props b/targets/openjdk.lib.props
index 5a739d38f1..39465d08ca 100644
--- a/targets/openjdk.lib.props
+++ b/targets/openjdk.lib.props
@@ -28,6 +28,10 @@
$(PreprocessorDefinitions);_STATIC_CPPLIB;_DISABLE_DEPRECATE_STATIC_CPPLIB;WIN32_LEAN_AND_MEAN;IAL
+
+
+
+
solaris
@@ -35,6 +39,10 @@
$(PreprocessorDefinitions);_GNU_SOURCE;_REENTRANT;_LARGEFILE64_SOURCE
+
+
+
+
solaris
@@ -42,6 +50,10 @@
true
+
+
+
+
$(IncludeDirectories);$(OpenJdkDir)jdk\src\share\native\common