1 <?xml version="1.0" encoding="UTF-8"?>
2 <project name="modularize" default="all" basedir=".">
3 <description>Scripts to build JDK Java sources in modularized way</description>
6 <antcall target="base"/>
7 <antcall target="beans"/>
8 <antcall target="applet"/>
9 <antcall target="deprecated7"/>
12 <!-- basic parameters -->
13 <property name="plugs" value="../../plugs"/>
14 <fail message="You need to provide location of plugs">
15 <condition><not><available file="${plugs}/jre/lib/rt-closed.jar"/></not></condition>
17 <pathconvert property="gensrc">
18 <path><dirset dir="../build"><include name="*/gensrc"/></dirset></path>
20 <fail message="You need to provide location of JDK's generated sources via -Dgensrc=...">
21 <condition><not><available file="${gensrc}"/></not></condition>
24 <target name="merge-sources"
25 description="Copies sources from all over the JDK tree into one place"
27 <mkdir dir="build/sources"/>
28 <copy todir="build/sources">
29 <fileset dir="${gensrc}"/>
30 <fileset dir="${gensrc}/../impsrc">
31 <exclude name="org/relaxng/datatype/**"/>
33 <fileset dir="../jaxp/src/share/classes/">
34 <exclude name="org/relaxng/datatype/**"/>
36 <fileset dir="../langtools/src/share/classes/">
37 <exclude name="org/relaxng/datatype/**"/>
39 <fileset dir="../jaxws/src/share/classes/">
40 <exclude name="org/relaxng/datatype/**"/>
42 <fileset dir="../corba/src/share/classes/"/>
47 <pathelement location="src/share/classes"/>
48 <pathelement location="build/sources"/>
49 <pathelement location="src/solaris/classes"/>
50 <!-- <pathelement location="src/windows/classes"/> -->
52 <property name="build.dir" location="build/modularize"/>
54 <!-- this is the core of the separation - definition
55 of what classes belong into what compilation group.
57 <selector id="applet">
59 <filename name="java/beans/AppletInitializer*"/>
60 <filename name="java/applet/**"/>
61 <filename name="sun/applet/**"/>
62 <filename name="META-INF/services/sun.beans.AppletProxy"/>
68 <filename name="java/beans/**"/>
69 <filename name="sun/beans/**"/>
70 <filename name="com/sun/beans/**"/>
73 <selector refid="applet"/>
74 <selector refid="deprecated7"/>
79 <selector id="deprecated7">
81 <filename name="java/beans/Beans*"/>
87 <selector refid="applet"/>
88 <selector refid="beans"/>
89 <selector refid="client"/>
90 <selector refid="enterprise"/>
91 <selector refid="deprecated7"/>
93 <!-- exclude files that need pre-processing like
94 java/nio/ByteBufferAs-X-Buffer.java
98 <filename name="**/*-*"/>
99 <filename name="java/dyn/**"/>
100 <filename name="sun/dyn/**"/>
102 <filename name="com/sun/script/javascript/**"/>
103 <filename name="sun/dc/**"/>
104 <filename name="sun/nio/fs/Solaris**"/>
105 <filename name="sun/tracing/**"/>
106 <filename name="com/sun/tracing/ProviderFactory*"/>
110 <!-- individual compilation tasks -->
112 <target name="deprecated7">
113 <antcall target="-compile-one-module">
114 <param name="module" value="deprecated7"/>
115 <param name="depends" value="beans:applet"/>
118 <target name="applet">
119 <antcall target="-compile-one-module">
120 <param name="module" value="applet"/>
121 <param name="depends" value="beans"/>
124 <target name="beans">
125 <antcall target="-compile-one-module">
126 <param name="module" value="beans"/>
132 <antcall target="-compile-one-module">
133 <param name="module" value="base"/>
137 <!-- shared routine to compile one of the modules -->
138 <target name="-compile-one-module">
139 <mkdir dir="${build.dir}/classes/${module}"/>
140 <pathconvert pathsep=":" property="module.cp">
141 <path path="${depends}"/>
142 <mapper type="regexp" from=".*[/\\]([^/\\]*)" to="${build.dir}/\1.jar"/>
145 basedir="${build.dir}/classes/${module}"
146 destfile="${build.dir}/empty.jar"
152 bootclasspath="${build.dir}/empty.jar"
154 destdir="${build.dir}/classes/${module}"
155 includejavaruntime="false"
156 includeantruntime="false"
157 classpath="${module.cp}:${plugs}/jre/lib/rt-closed.jar"
159 <src refid="src.path"/>
160 <selector refid="${module}"/>
162 <copy todir="${build.dir}/classes/${module}">
163 <fileset dir="src/share/classes">
165 <selector refid="${module}"/>
167 <filename name="**/*.java"/>
174 basedir="${build.dir}/classes/${module}"
175 destfile="${build.dir}/${module}.jar"
180 <!-- clean everything -->
181 <target name="clean">
182 <delete dir="${build.dir}"/>