2007-05-24 13:23:02 +04:00
<?xml version="1.0"?>
2008-08-07 11:47:57 +04:00
<project name="ClassLibrary" default="all">
2010-08-20 09:35:49 +04:00
<include buildfile="../ikvm.include" />
2007-05-24 13:23:02 +04:00
<property name="pathsep" value=":" />
<property overwrite="false" name="signoption" value="" />
2011-03-02 10:32:50 +03:00
<property name="OpenJDK.dir" value="${project::get-base-directory()}/../../openjdk6-b22" />
2007-05-24 13:23:02 +04:00
<if test="${platform::is-win32()}">
<property name="pathsep" value=";" />
</if>
2009-06-08 19:01:11 +04:00
<target name="all" depends="classes rmi vfs resources core">
2008-08-07 11:47:57 +04:00
</target>
2009-07-03 10:57:06 +04:00
<target name="version">
<property name="VERSION" value="${assemblyname::get-version(assemblyname::get-assembly-name(path::combine(project::get-base-directory(), '../bin/IKVM.Runtime.dll')))}" />
2011-03-02 10:32:50 +03:00
<property name="OPENJDK_VERSION" value="OpenJDK 6 b22" />
2009-07-03 10:57:06 +04:00
</target>
2010-02-19 17:31:14 +03:00
<target name="allsources.gen.lst">
<copy file="allsources.lst" tofile="allsources.gen.lst" outputencoding="ascii" overwrite="true">
<filterchain>
<replacetokens>
<token key="OPENJDK" value="${OpenJDK.dir}" />
</replacetokens>
</filterchain>
</copy>
</target>
2010-04-20 09:33:11 +04:00
<target name="System.Core">
<delete file="System.Core.dll" />
<if test="${version::get-major(framework::get-version(framework::get-target-framework() )) < 4}">
<copy file="../bin/IKVM.Reflection.dll" todir="." overwrite="true" />
<csc target="exe" output="GenerateSystemCore.exe">
<sources>
<include name="GenerateSystemCore.cs" />
</sources>
<references>
<include name="IKVM.Reflection.dll" asis="true" />
</references>
</csc>
<exec program="GenerateSystemCore.exe" useruntimeengine="true" />
<delete>
<fileset basedir=".">
<include name="IKVM.Reflection.dll"/>
<include name="GenerateSystemCore.exe"/>
</fileset>
</delete>
</if>
</target>
2010-04-23 08:58:36 +04:00
<target name="classes" depends="version allsources.gen.lst System.Core">
2007-05-24 13:23:02 +04:00
<delete>
2008-08-07 11:40:57 +04:00
<fileset basedir="../classpath">
<include name="**.class"/>
</fileset>
</delete>
<delete>
<fileset basedir="${OpenJDK.dir}">
2009-06-08 19:01:11 +04:00
<include name="**.class"/>
2008-08-07 11:40:57 +04:00
</fileset>
</delete>
<delete>
<fileset basedir=".">
<include name="**.class"/>
2010-01-28 11:06:56 +03:00
<include name="mscorlib.jar" />
<include name="System.jar" />
<include name="System.Core.jar" />
<include name="System.Data.jar" />
<include name="System.Drawing.jar" />
<include name="IKVM.Runtime.jar" />
2008-08-07 11:40:57 +04:00
</fileset>
</delete>
2010-05-19 19:48:52 +04:00
<exec program="${project::get-base-directory()}/../bin/ikvmstub.exe" commandline="-bootstrap mscorlib" useruntimeengine="true" />
<exec program="${project::get-base-directory()}/../bin/ikvmstub.exe" commandline="-bootstrap System" useruntimeengine="true" />
<exec program="${project::get-base-directory()}/../bin/ikvmstub.exe" commandline="-bootstrap System.Core" useruntimeengine="true" />
<exec program="${project::get-base-directory()}/../bin/ikvmstub.exe" commandline="-bootstrap System.Data" useruntimeengine="true" />
<exec program="${project::get-base-directory()}/../bin/ikvmstub.exe" commandline="-bootstrap System.Drawing" useruntimeengine="true" />
<exec program="${project::get-base-directory()}/../bin/ikvmstub.exe" commandline="-bootstrap ../bin/IKVM.Runtime.dll" useruntimeengine="true" />
2008-01-03 12:41:12 +03:00
<property name="IKVM.Runtime" value="IKVM.Runtime" />
<if test="${signoption != ''}">
2008-09-21 13:53:06 +04:00
<loadfile file="../tools/pubkey.txt" property="publickey" />
<property name="IKVM.Runtime" value="IKVM.Runtime, PublicKey=${publickey}" />
2008-01-03 12:41:12 +03:00
</if>
2008-11-14 10:53:04 +03:00
<copy file="AssemblyInfo.java.in" tofile="AssemblyInfo.java" outputencoding="ascii" overwrite="true">
2008-01-03 12:41:12 +03:00
<filterchain>
<replacetokens>
<token key="RUNTIME" value="${IKVM.Runtime}" />
</replacetokens>
</filterchain>
</copy>
2009-07-03 10:09:49 +04:00
<copy file="java/lang/PropertyConstants.java.in" tofile="java/lang/PropertyConstants.java" outputencoding="ascii" overwrite="true">
2008-11-18 10:46:53 +03:00
<filterchain>
<replacetokens>
2008-11-18 10:59:02 +03:00
<token key="AWTASSEMBLY" value="${string::replace(assemblyname::get-full-name(assemblyname::get-assembly-name(path::combine(project::get-base-directory(), '../bin/IKVM.Runtime.dll'))), 'IKVM.Runtime', 'IKVM.AWT.WinForms')}" />
2009-07-03 10:57:06 +04:00
<token key="VERSION" value="${VERSION}" />
<token key="OPENJDK_VERSION" value="${OPENJDK_VERSION}" />
2008-11-18 10:46:53 +03:00
</replacetokens>
</filterchain>
</copy>
2011-05-10 13:55:05 +04:00
<exec program="javac" commandline="-J-Xmx1536M -g -nowarn -cp dummy -bootclasspath mscorlib.jar${pathsep}System.jar${pathsep}System.Core.jar${pathsep}System.Data.jar${pathsep}System.Drawing.jar${pathsep}IKVM.Runtime.jar @allsources.gen.lst" useruntimeengine="false" />
2007-05-24 13:23:02 +04:00
</target>
2009-06-08 19:01:11 +04:00
<target name="rmi">
<property name="VMARGS" value="-J-client -J-Xmx896m -J-Xms128m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m" />
<property name="CLASSPATH" value="${OpenJDK.dir}/jdk/src/share/classes/${pathsep}${OpenJDK.dir}/build/linux-amd64/impsrc/${pathsep}." />
<property name="OUTPUT" value="${OpenJDK.dir}/build/linux-amd64/classes/" />
<property name="ARGS" value="${VMARGS} -bootclasspath ${CLASSPATH} -d ${OUTPUT}" />
<exec program="rmic" commandline="${ARGS} -v1.1 sun.rmi.registry.RegistryImpl" />
<exec program="rmic" commandline="${ARGS} -v1.1 sun.rmi.transport.DGCImpl" />
<exec program="rmic" commandline="${ARGS} -v1.2 sun.rmi.server.Activation$ActivationSystemImpl" />
<exec program="rmic" commandline="${ARGS} -v1.2 java.rmi.activation.ActivationGroup" />
<exec program="rmic" commandline="${ARGS} -v1.2 com.sun.jndi.rmi.registry.ReferenceWrapper" />
<exec program="rmic" commandline="${ARGS} -v1.2 javax.management.remote.rmi.RMIConnectionImpl" />
<exec program="rmic" commandline="${ARGS} -v1.2 -iiop javax.management.remote.rmi.RMIConnectionImpl" />
<exec program="rmic" commandline="${ARGS} -v1.2 -iiop -standardPackage javax.management.remote.rmi.RMIConnectionImpl" />
<exec program="rmic" commandline="${ARGS} -v1.2 javax.management.remote.rmi.RMIServerImpl" />
<exec program="rmic" commandline="${ARGS} -v1.2 -iiop javax.management.remote.rmi.RMIServerImpl" />
<exec program="rmic" commandline="${ARGS} -v1.2 -iiop -standardPackage javax.management.remote.rmi.RMIServerImpl" />
<exec program="rmic" commandline="${ARGS} -iiop javax.management.remote.rmi.RMIConnection" />
<exec program="rmic" commandline="${ARGS} -iiop -standardPackage javax.management.remote.rmi.RMIConnection" />
<exec program="rmic" commandline="${ARGS} -iiop javax.management.remote.rmi.RMIServer" />
<exec program="rmic" commandline="${ARGS} -iiop -standardPackage javax.management.remote.rmi.RMIServer" />
</target>
2007-06-27 10:14:54 +04:00
<target name="vfs">
2008-08-07 11:40:57 +04:00
<!-- This file is generated here, but it is added as a resource to IKVM.Runtime.dll, because Ref.Emit on .NET 1.1 doesn't support adding a raw resource. -->
<zip zipfile="vfs.zip">
2009-04-17 10:24:30 +04:00
<fileset basedir="${OpenJDK.dir}/build/linux-amd64/j2re-image">
2011-05-17 10:59:57 +04:00
<include name="lib/calendars.properties" />
<include name="lib/logging.properties" />
<include name="lib/net.properties" />
<include name="lib/psfontj2d.properties" />
<include name="lib/sound.properties" />
2009-04-03 12:56:00 +04:00
<include name="lib/cmm/*" />
2008-08-07 11:40:57 +04:00
<include name="lib/zi/**/*" />
<include name="lib/currency.data" />
<include name="lib/security/java.policy" />
<include name="lib/security/java.security" />
2010-04-21 10:16:37 +04:00
<!--
we don't add lib/security/local_policy.jar, because it is the restricted version,
instead we'll add a link in vfs from local_policy.jar to US_export_policy.jar
(because US_export_policy.jar is unrestricted)
-->
2008-08-07 11:40:57 +04:00
<include name="lib/security/US_export_policy.jar" />
</fileset>
2009-03-04 14:12:50 +03:00
<fileset basedir="${OpenJDK.dir}/jdk/src/windows">
<include name="lib/flavormap.properties" />
<include name="lib/content-types.properties" />
</fileset>
2009-06-04 22:26:08 +04:00
</zip>
</target>
<target name="resources">
2010-02-19 17:31:14 +03:00
<!-- resources that are not in @OPENJDK@/build/linux-amd64/j2re-image/lib/resources.jar -->
2009-06-04 22:26:08 +04:00
<zip zipfile="resources.zip">
<fileset basedir="${OpenJDK.dir}/jdk/src/share/classes">
<include name="com/sun/swing/internal/plaf/**/*" />
2011-03-02 10:32:50 +03:00
<include name="com/sun/java/swing/plaf/**/*.properties" />
<include name="com/sun/java/swing/plaf/**/*.gif" />
2009-06-04 22:26:08 +04:00
</fileset>
2008-08-07 11:40:57 +04:00
</zip>
2007-06-27 10:14:54 +04:00
</target>
2010-02-19 17:31:14 +03:00
<target name="response.gen.txt">
<copy file="response.txt" tofile="response.gen.txt" outputencoding="ascii" overwrite="true">
<filterchain>
<replacetokens>
<token key="OPENJDK" value="${OpenJDK.dir}" />
</replacetokens>
</filterchain>
</copy>
</target>
<target name="core" depends="version response.gen.txt">
2010-04-23 08:58:36 +04:00
<copy file="../bin/IKVM.Runtime.dll" todir="." />
2010-06-09 16:26:28 +04:00
<copy file="../bin/IKVM.AWT.WinForms.dll" todir="." />
2007-05-24 13:23:02 +04:00
<exec program="${project::get-base-directory()}/../bin/ikvmc.exe" useruntimeengine="true">
2008-11-19 08:42:47 +03:00
<arg value="-version:${VERSION}" />
2008-08-07 11:40:57 +04:00
<arg value="${signoption}" />
<arg value="-compressresources" />
<arg value="-opt:fields" />
<arg value="-strictfinalfieldsemantics" />
<arg value="-removeassertions" />
<arg value="-target:library" />
2008-12-23 10:28:20 +03:00
<arg value="-sharedclassloader" />
2010-04-23 09:05:13 +04:00
<arg value="-r:mscorlib.dll" />
<arg value="-r:System.dll" />
<arg value="-r:System.Core.dll" />
<arg value="-r:IKVM.Runtime.dll" />
2008-09-22 08:13:47 +04:00
<!-- we already know that the JNI assembly is not available, so suppress the warning -->
<arg value="-nowarn:110" />
2010-02-19 17:31:14 +03:00
<arg value="@response.gen.txt" />
2007-05-24 13:23:02 +04:00
</exec>
2010-08-20 09:35:49 +04:00
<if test="${property::exists('peverify')}">
<exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Beans.dll" />
<exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Charsets.dll" />
<exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Corba.dll" />
<exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Core.dll" />
<exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Jdbc.dll" />
<exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Management.dll" />
<exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Media.dll" />
<exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Misc.dll" />
<exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Naming.dll" />
<exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Remoting.dll" />
<exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Security.dll" />
<exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.SwingAWT.dll" />
<exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Text.dll" />
<exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Util.dll" />
<exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.XML.API.dll" />
<exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.XML.Bind.dll" />
<exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.XML.Crypto.dll" />
<exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.XML.Parse.dll" />
<exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.XML.Transform.dll" />
<exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.XML.WebServices.dll" />
<exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.XML.XPath.dll" />
2007-06-05 10:57:18 +04:00
</if>
2009-06-29 13:32:59 +04:00
<!-- make sure that we haven't accidentally introduced new dependencies -->
<exec program="${project::get-base-directory()}/../tools/depcheck.exe" commandline="response.txt dependencies.txt" useruntimeengine="true" />
2008-12-23 10:28:20 +03:00
<copy todir="../bin">
<fileset basedir=".">
<include name="IKVM.OpenJDK.*.dll" />
</fileset>
</copy>
2009-06-29 12:53:33 +04:00
<!-- update base addresses in response.txt for next build -->
<exec program="${project::get-base-directory()}/../tools/updbaseaddresses.exe" commandline="response.txt" useruntimeengine="true" />
2010-12-24 11:00:53 +03:00
<!-- generate stubs for the public Java APIs we expose -->
<mkdir dir="../lib" />
<exec program="${project::get-base-directory()}/../bin/ikvmstub.exe" useruntimeengine="true">
<arg value="-out:../lib/ikvm-api.jar" />
<arg value="../bin/IKVM.OpenJDK.Core.dll" />
<arg value="-namespace:ikvm.io" />
<arg value="-namespace:ikvm.lang" />
<arg value="-namespace:ikvm.runtime" />
</exec>
2007-05-24 13:23:02 +04:00
</target>
2010-02-19 17:38:41 +03:00
<target name="tools.gen.rsp">
<copy file="tools.rsp" tofile="tools.gen.rsp" outputencoding="ascii" overwrite="true">
<filterchain>
<replacetokens>
<token key="OPENJDK" value="${OpenJDK.dir}" />
</replacetokens>
</filterchain>
</copy>
</target>
<target name="tools" depends="version tools.gen.rsp">
2009-11-12 10:40:52 +03:00
<exec program="${project::get-base-directory()}/../bin/ikvmc.exe" useruntimeengine="true">
<arg value="-version:${VERSION}" />
<arg value="${signoption}" />
2010-02-19 17:38:41 +03:00
<arg value="@tools.gen.rsp" />
2009-11-12 10:40:52 +03:00
</exec>
</target>
2010-06-10 12:45:40 +04:00
<target name="jdk-tools" depends="version">
<exec program="${project::get-base-directory()}/../bin/ikvmc.exe" useruntimeengine="true">
<arg value="-version:${VERSION}" />
<arg value="-out:../bin/javac.exe" />
<arg value="-main:com.sun.tools.javac.Main" />
<arg value="-r:../bin/IKVM.OpenJDK.Tools.dll" />
</exec>
<exec program="${project::get-base-directory()}/../bin/ikvmc.exe" useruntimeengine="true">
<arg value="-version:${VERSION}" />
<arg value="-out:../bin/javah.exe" />
<arg value="-main:com.sun.tools.javah.Main" />
<arg value="-r:../bin/IKVM.OpenJDK.Tools.dll" />
</exec>
<exec program="${project::get-base-directory()}/../bin/ikvmc.exe" useruntimeengine="true">
<arg value="-version:${VERSION}" />
<arg value="-out:../bin/javap.exe" />
<arg value="-main:sun.tools.javap.Main" />
<arg value="-r:../bin/IKVM.OpenJDK.Tools.dll" />
</exec>
</target>
2007-05-24 13:23:02 +04:00
</project>