~ubuntu-branches/ubuntu/trusty/monodevelop/trusty-proposed

« back to all changes in this revision

Viewing changes to external/ikvm/openjdk/openjdk.build

  • Committer: Package Import Robot
  • Author(s): Jo Shields
  • Date: 2013-05-12 09:46:03 UTC
  • mto: This revision was merged to the branch mainline in revision 29.
  • Revision ID: package-import@ubuntu.com-20130512094603-mad323bzcxvmcam0
Tags: upstream-4.0.5+dfsg
ImportĀ upstreamĀ versionĀ 4.0.5+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version="1.0"?>
 
2
<project name="ClassLibrary" default="all">
 
3
    <include buildfile="../ikvm.include" />
 
4
    <property name="pathsep" value=":" />
 
5
    <property overwrite="false" name="signoption" value="" />
 
6
    <property overwrite="false" name="SkipSystemCoreDependency" value="false" />
 
7
    <property name="OPENJDK_VERSION" value="OpenJDK 7u6 b24" />
 
8
    <property name="OpenJDK7.dir" value="${project::get-base-directory()}/../../openjdk-7u6-b24" />
 
9
    <if test="${platform::is-win32()}">
 
10
        <property name="pathsep" value=";" />
 
11
    </if>
 
12
 
 
13
    <target name="all" depends="classes rmi vfs resources core">
 
14
    </target>
 
15
 
 
16
    <target name="version">
 
17
        <property name="VERSION" value="${assemblyname::get-version(assemblyname::get-assembly-name(path::combine(project::get-base-directory(), '../bin/IKVM.Runtime.dll')))}" />
 
18
    </target>
 
19
 
 
20
    <target name="allsources.gen.lst">
 
21
        <copy file="allsources.lst" tofile="allsources.gen.lst" outputencoding="ascii" overwrite="true">
 
22
            <filterchain>
 
23
                <replacetokens>
 
24
                    <token key="OPENJDK7" value="${OpenJDK7.dir}" />
 
25
                </replacetokens>
 
26
            </filterchain>
 
27
        </copy>
 
28
    </target>
 
29
 
 
30
    <target name="System.Core" unless="${SkipSystemCoreDependency}">
 
31
        <delete file="System.Core.dll" />
 
32
        <if test="${version::get-major(framework::get-version(framework::get-target-framework() )) &lt; 4}">
 
33
            <copy file="../bin/IKVM.Reflection.dll" todir="." overwrite="true" />
 
34
            <csc target="exe" output="GenerateSystemCore.exe">
 
35
                <sources>
 
36
                    <include name="GenerateSystemCore.cs" />
 
37
                </sources>
 
38
                <references>
 
39
                    <include name="IKVM.Reflection.dll" asis="true" />
 
40
                </references>
 
41
            </csc>
 
42
            <exec program="GenerateSystemCore.exe" useruntimeengine="true" />
 
43
            <delete>
 
44
                <fileset basedir=".">
 
45
                    <include name="IKVM.Reflection.dll"/>
 
46
                    <include name="GenerateSystemCore.exe"/>
 
47
                </fileset>
 
48
            </delete>
 
49
        </if>
 
50
    </target>
 
51
 
 
52
    <target name="DummySystemCoreJar">
 
53
        <exec program="javac" commandline="-implicit:none ExtensionAttribute.java" useruntimeengine="false" />
 
54
        <zip zipfile="System.Core.jar">
 
55
            <fileset prefix="cli/System/Runtime/CompilerServices">
 
56
                <include name="ExtensionAttribute.class" />
 
57
                <include name="ExtensionAttribute$Annotation.class" />
 
58
            </fileset>
 
59
        </zip>
 
60
        <delete>
 
61
            <fileset basedir=".">
 
62
                <include name="ExtensionAttribute.class" />
 
63
                <include name="ExtensionAttribute$Annotation.class" />
 
64
            </fileset>
 
65
        </delete>
 
66
    </target>
 
67
 
 
68
    <target name="classes" depends="version allsources.gen.lst System.Core">
 
69
        <delete>
 
70
            <fileset basedir="../classpath">
 
71
                <include name="**.class"/>
 
72
            </fileset>
 
73
        </delete>
 
74
        <delete>
 
75
            <fileset basedir="${OpenJDK7.dir}">
 
76
                <include name="**.class"/>
 
77
            </fileset>
 
78
        </delete>
 
79
        <delete>
 
80
            <fileset basedir=".">
 
81
                <include name="**.class"/>
 
82
                <include name="mscorlib.jar" />
 
83
                <include name="System.jar" />
 
84
                <include name="System.Core.jar" />
 
85
                <include name="System.Data.jar" />
 
86
                <include name="System.Drawing.jar" />
 
87
            </fileset>
 
88
        </delete>
 
89
        <exec program="${project::get-base-directory()}/../bin/ikvmstub.exe" commandline="-bootstrap mscorlib" useruntimeengine="true" />
 
90
        <exec program="${project::get-base-directory()}/../bin/ikvmstub.exe" commandline="-bootstrap System" useruntimeengine="true" />
 
91
        <exec program="${project::get-base-directory()}/../bin/ikvmstub.exe" commandline="-bootstrap System.Core" useruntimeengine="true" unless="${SkipSystemCoreDependency}" />
 
92
        <if test="${SkipSystemCoreDependency}">
 
93
            <call target="DummySystemCoreJar" />
 
94
        </if>
 
95
        <exec program="${project::get-base-directory()}/../bin/ikvmstub.exe" commandline="-bootstrap System.Data" useruntimeengine="true" />
 
96
        <exec program="${project::get-base-directory()}/../bin/ikvmstub.exe" commandline="-bootstrap System.Drawing" useruntimeengine="true" />
 
97
        <property name="IKVM.Runtime" value="IKVM.Runtime" />
 
98
        <if test="${signoption != ''}">
 
99
            <loadfile file="../tools/pubkey.txt" property="publickey" />
 
100
            <property name="IKVM.Runtime" value="IKVM.Runtime, PublicKey=${publickey}" />
 
101
        </if>
 
102
        <copy file="AssemblyInfo.java.in" tofile="AssemblyInfo.java" outputencoding="ascii" overwrite="true">
 
103
            <filterchain>
 
104
                <replacetokens>
 
105
                    <token key="RUNTIME" value="${IKVM.Runtime}" />
 
106
                    <token key="VERSION" value="${VERSION}" />
 
107
                </replacetokens>
 
108
            </filterchain>
 
109
        </copy>
 
110
        <copy file="java/lang/PropertyConstants.java.in" tofile="java/lang/PropertyConstants.java" outputencoding="ascii" overwrite="true">
 
111
            <filterchain>
 
112
                <replacetokens>
 
113
                    <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')}" />
 
114
                    <token key="VERSION" value="${VERSION}" />
 
115
                    <token key="OPENJDK_VERSION" value="${OPENJDK_VERSION}" />
 
116
                </replacetokens>
 
117
            </filterchain>
 
118
        </copy>
 
119
        <exec program="javac" commandline="-J-Xmx1536M -implicit:none -g -nowarn -cp dummy -bootclasspath mscorlib.jar${pathsep}System.jar${pathsep}System.Core.jar${pathsep}System.Data.jar${pathsep}System.Drawing.jar${pathsep}../runtime/IKVM.Runtime.jar @allsources.gen.lst" useruntimeengine="false" />
 
120
    </target>
 
121
 
 
122
    <target name="rmi">
 
123
        <property name="VMARGS" value="-J-client -J-Xmx896m -J-Xms128m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m" />
 
124
        <property name="CLASSPATH" value="${OpenJDK7.dir}/jdk/src/share/classes/${pathsep}${OpenJDK7.dir}/build/linux-amd64/impsrc/${pathsep}." />
 
125
        <property name="OUTPUT" value="${OpenJDK7.dir}/build/linux-amd64/classes/" />
 
126
        <property name="ARGS" value="${VMARGS} -bootclasspath ${CLASSPATH} -d ${OUTPUT}" />
 
127
        <exec program="rmic" commandline="${ARGS} -v1.1 sun.rmi.registry.RegistryImpl" />
 
128
        <exec program="rmic" commandline="${ARGS} -v1.1 sun.rmi.transport.DGCImpl" />
 
129
        <exec program="rmic" commandline="${ARGS} -v1.2 sun.rmi.server.Activation$ActivationSystemImpl" />
 
130
        <exec program="rmic" commandline="${ARGS} -v1.2 java.rmi.activation.ActivationGroup" />
 
131
        <exec program="rmic" commandline="${ARGS} -v1.2 com.sun.jndi.rmi.registry.ReferenceWrapper" />
 
132
        <exec program="rmic" commandline="${ARGS} -v1.2 javax.management.remote.rmi.RMIConnectionImpl" />
 
133
        <exec program="rmic" commandline="${ARGS} -v1.2 -iiop javax.management.remote.rmi.RMIConnectionImpl" />
 
134
        <exec program="rmic" commandline="${ARGS} -v1.2 -iiop -standardPackage javax.management.remote.rmi.RMIConnectionImpl" />
 
135
        <exec program="rmic" commandline="${ARGS} -v1.2 javax.management.remote.rmi.RMIServerImpl" />
 
136
        <exec program="rmic" commandline="${ARGS} -v1.2 -iiop javax.management.remote.rmi.RMIServerImpl" />
 
137
        <exec program="rmic" commandline="${ARGS} -v1.2 -iiop -standardPackage javax.management.remote.rmi.RMIServerImpl" />
 
138
        <exec program="rmic" commandline="${ARGS} -iiop javax.management.remote.rmi.RMIConnection" />
 
139
        <exec program="rmic" commandline="${ARGS} -iiop -standardPackage javax.management.remote.rmi.RMIConnection" />
 
140
        <exec program="rmic" commandline="${ARGS} -iiop javax.management.remote.rmi.RMIServer" />
 
141
        <exec program="rmic" commandline="${ARGS} -iiop -standardPackage javax.management.remote.rmi.RMIServer" />
 
142
    </target>
 
143
 
 
144
    <target name="vfs">
 
145
        <!-- 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. -->
 
146
        <zip zipfile="vfs.zip">
 
147
            <fileset basedir="${OpenJDK7.dir}/build/linux-amd64/j2re-image">
 
148
                <include name="lib/calendars.properties" />
 
149
                <include name="lib/logging.properties" />
 
150
                <include name="lib/management/management.properties" />
 
151
                <include name="lib/net.properties" />
 
152
                <include name="lib/psfontj2d.properties" />
 
153
                <include name="lib/sound.properties" />
 
154
                <include name="lib/cmm/*" />
 
155
                <include name="lib/zi/**/*" />
 
156
                <include name="lib/currency.data" />
 
157
                <include name="lib/security/java.policy" />
 
158
                <include name="lib/security/java.security" />
 
159
                <!--
 
160
                we don't add lib/security/local_policy.jar, because it is the restricted version,
 
161
                instead we'll add a link in vfs from local_policy.jar to US_export_policy.jar
 
162
                (because US_export_policy.jar is unrestricted)
 
163
                -->
 
164
                <include name="lib/security/US_export_policy.jar" />
 
165
            </fileset>
 
166
            <fileset basedir="${OpenJDK7.dir}/jdk/src/windows">
 
167
                <include name="lib/flavormap.properties" />
 
168
                <include name="lib/content-types.properties" />
 
169
            </fileset>
 
170
            </zip>
 
171
        </target>
 
172
 
 
173
    <target name="resources">
 
174
        <!-- resources that are not in @OPENJDK7@/build/linux-amd64/j2re-image/lib/resources.jar -->
 
175
        <zip zipfile="resources.zip">
 
176
            <fileset basedir="${OpenJDK7.dir}/jdk/src/share/classes">
 
177
                <include name="com/sun/swing/internal/plaf/**/*" />
 
178
                <include name="com/sun/java/swing/plaf/**/*.properties" />
 
179
                <include name="com/sun/java/swing/plaf/**/*.gif" />
 
180
            </fileset>
 
181
        </zip>
 
182
    </target>
 
183
 
 
184
    <target name="response.gen.txt">
 
185
        <copy file="response.txt" tofile="response.gen.txt" outputencoding="ascii" overwrite="true">
 
186
            <filterchain>
 
187
                <replacetokens>
 
188
                    <token key="OPENJDK7" value="${OpenJDK7.dir}" />
 
189
                </replacetokens>
 
190
            </filterchain>
 
191
        </copy>
 
192
    </target>
 
193
 
 
194
    <target name="core" depends="version response.gen.txt">
 
195
        <copy file="../bin/IKVM.Runtime.dll" todir="." />
 
196
        <copy file="../bin/IKVM.AWT.WinForms.dll" todir="." />
 
197
        <exec program="${project::get-base-directory()}/../bin/ikvmc.exe" useruntimeengine="true">
 
198
            <arg value="-version:${VERSION}" />
 
199
            <arg value="${signoption}" />
 
200
            <arg value="-compressresources" />
 
201
            <arg value="-opt:fields" />
 
202
            <arg value="-strictfinalfieldsemantics" />
 
203
            <arg value="-removeassertions" />
 
204
            <arg value="-target:library" />
 
205
            <arg value="-sharedclassloader" />
 
206
            <arg value="-r:mscorlib.dll" />
 
207
            <arg value="-r:System.dll" />
 
208
            <arg value="-r:System.Core.dll" unless="${SkipSystemCoreDependency}" />
 
209
            <arg value="-r:IKVM.Runtime.dll" />
 
210
            <!-- we already know that the JNI assembly is not available, so suppress the warning -->
 
211
            <arg value="-nowarn:110" />
 
212
            <arg value="-warnaserror" />
 
213
            <arg value="@response.gen.txt" />
 
214
        </exec>
 
215
        <if test="${property::exists('peverify')}">
 
216
            <exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Beans.dll" />
 
217
            <exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Charsets.dll" />
 
218
            <exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Corba.dll" />
 
219
            <exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Core.dll" />
 
220
            <exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Jdbc.dll" />
 
221
            <exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Management.dll" />
 
222
            <exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Media.dll" />
 
223
            <exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Misc.dll" />
 
224
            <exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Naming.dll" />
 
225
            <exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Remoting.dll" />
 
226
            <exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Security.dll" />
 
227
            <exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.SwingAWT.dll" />
 
228
            <exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Text.dll" />
 
229
            <exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.Util.dll" />
 
230
            <exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.XML.API.dll" />
 
231
            <exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.XML.Bind.dll" />
 
232
            <exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.XML.Crypto.dll" />
 
233
            <exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.XML.Parse.dll" />
 
234
            <exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.XML.Transform.dll" />
 
235
            <exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.XML.WebServices.dll" />
 
236
            <exec program="${peverify}" commandline="-nologo IKVM.OpenJDK.XML.XPath.dll" />
 
237
        </if>
 
238
        <!-- make sure that we haven't accidentally introduced new dependencies -->
 
239
        <exec program="${project::get-base-directory()}/../tools/depcheck.exe" commandline="response.txt dependencies.txt" useruntimeengine="true" />
 
240
        <copy todir="../bin">
 
241
            <fileset basedir=".">
 
242
                <include name="IKVM.OpenJDK.*.dll" />
 
243
            </fileset>
 
244
        </copy>
 
245
        <!-- update base addresses in response.txt for next build -->
 
246
        <exec program="${project::get-base-directory()}/../tools/updbaseaddresses.exe" commandline="response.txt" useruntimeengine="true" />
 
247
 
 
248
        <!-- generate stubs for the public Java APIs we expose -->
 
249
        <mkdir dir="../lib" />
 
250
        <exec program="${project::get-base-directory()}/../bin/ikvmstub.exe" useruntimeengine="true">
 
251
            <arg value="-out:../lib/ikvm-api.jar" />
 
252
            <arg value="../bin/IKVM.OpenJDK.Core.dll" />
 
253
            <arg value="-namespace:ikvm.io" />
 
254
            <arg value="-namespace:ikvm.lang" />
 
255
            <arg value="-namespace:ikvm.runtime" />
 
256
        </exec>
 
257
    </target>
 
258
 
 
259
    <target name="tools.gen.rsp">
 
260
        <copy file="tools.rsp" tofile="tools.gen.rsp" outputencoding="ascii" overwrite="true">
 
261
            <filterchain>
 
262
                <replacetokens>
 
263
                    <token key="OPENJDK7" value="${OpenJDK7.dir}" />
 
264
                </replacetokens>
 
265
            </filterchain>
 
266
        </copy>
 
267
    </target>
 
268
 
 
269
    <target name="tools" depends="version tools.gen.rsp">
 
270
        <exec program="${project::get-base-directory()}/../bin/ikvmc.exe" useruntimeengine="true">
 
271
            <arg value="-r:mscorlib.dll" />
 
272
            <arg value="-version:${VERSION}" />
 
273
            <arg value="${signoption}" />
 
274
            <arg value="-warnaserror" />
 
275
            <arg value="@tools.gen.rsp" />
 
276
        </exec>
 
277
    </target>
 
278
 
 
279
    <target name="jdk-tools" depends="version">
 
280
        <exec program="${project::get-base-directory()}/../bin/ikvmc.exe" useruntimeengine="true">
 
281
            <arg value="-version:${VERSION}" />
 
282
            <arg value="-out:../bin/javac.exe" />
 
283
            <arg value="-main:com.sun.tools.javac.Main" />
 
284
            <arg value="-r:../bin/IKVM.OpenJDK.Tools.dll" />
 
285
        </exec>
 
286
        <exec program="${project::get-base-directory()}/../bin/ikvmc.exe" useruntimeengine="true">
 
287
            <arg value="-version:${VERSION}" />
 
288
            <arg value="-out:../bin/javah.exe" />
 
289
            <arg value="-main:com.sun.tools.javah.Main" />
 
290
            <arg value="-r:../bin/IKVM.OpenJDK.Tools.dll" />
 
291
        </exec>
 
292
        <exec program="${project::get-base-directory()}/../bin/ikvmc.exe" useruntimeengine="true">
 
293
            <arg value="-version:${VERSION}" />
 
294
            <arg value="-out:../bin/javap.exe" />
 
295
            <arg value="-main:sun.tools.javap.Main" />
 
296
            <arg value="-r:../bin/IKVM.OpenJDK.Tools.dll" />
 
297
        </exec>
 
298
    </target>
 
299
 
 
300
</project>