Invoking 'ant clean base' after the JDK is compiled via 'make all' now compiles everything into build/modularize/base.jar
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 <pathconvert property="gensrc">
14 <path><dirset dir="../build"><include name="*/gensrc"/></dirset></path>
16 <pathconvert property="javacompiler">
17 <path><dirset dir="../build"><include name="*/langtools/build/classes"/></dirset></path>
19 <fail message="You need to provide location of JDK's generated sources via -Dgensrc=...">
20 <condition><not><available file="${gensrc}"/></not></condition>
22 <fail message="Javacompiler build is missing">
23 <condition><not><available file="${javacompiler}"/></not></condition>
26 <pathelement location="src/share/classes"/>
27 <pathelement location="${gensrc}"/>
28 <pathelement location="src/windows/classes"/>
30 <pathelement location="src/solaris/classes"/>
33 <property name="build.dir" location="build/modularize"/>
35 <!-- this is the core of the separation - definition
36 of what classes belong into what compilation group.
38 <selector id="applet">
40 <filename name="java/beans/AppletInitializer*"/>
41 <filename name="java/applet/**"/>
42 <filename name="sun/applet/**"/>
43 <filename name="META-INF/services/sun.beans.AppletProxy"/>
49 <filename name="java/beans/**"/>
50 <filename name="sun/beans/**"/>
51 <filename name="com/sun/beans/**"/>
54 <selector refid="applet"/>
55 <selector refid="deprecated7"/>
60 <selector id="deprecated7">
62 <filename name="java/beans/Beans*"/>
68 <selector refid="applet"/>
69 <selector refid="beans"/>
70 <selector refid="client"/>
71 <selector refid="enterprise"/>
72 <selector refid="deprecated7"/>
74 <!-- exclude files that need pre-processing like
75 java/nio/ByteBufferAs-X-Buffer.java
79 <filename name="**/*-*"/>
80 <filename name="java/dyn/**"/>
81 <filename name="sun/dyn/**"/>
82 <filename name="javax/management/remote/rmi/RMIConnector*"/>
83 <filename name="sun/tracing/**"/>
84 <filename name="com/sun/tracing/**"/>
85 <filename name="com/sun/java/swing/plaf/gtk/**"/>
87 <!-- <filename name="javax/management/**"/> -->
88 <!-- <filename name="sun/nio/fs/**"/> -->
89 <!-- <filename name="com/sun/jmx/**"/> -->
91 <!-- exclude corba related stuff -->
92 <filename name="com/sun/jndi/cosnaming/**"/>
93 <filename name="com/sun/jndi/toolkit/corba/**"/>
95 <filename name="com/sun/script/javascript/**"/>
99 <!-- individual compilation tasks -->
101 <target name="deprecated7">
102 <antcall target="-compile-one-module">
103 <param name="module" value="deprecated7"/>
104 <param name="depends" value="beans:applet"/>
107 <target name="applet">
108 <antcall target="-compile-one-module">
109 <param name="module" value="applet"/>
110 <param name="depends" value="beans"/>
113 <target name="beans">
114 <antcall target="-compile-one-module">
115 <param name="module" value="beans"/>
121 <antcall target="-compile-one-module">
122 <param name="module" value="base"/>
126 <!-- shared routine to compile one of the modules -->
127 <target name="-compile-one-module">
128 <mkdir dir="${build.dir}/classes/${module}"/>
129 <pathconvert pathsep=":" property="module.cp">
130 <path path="${depends}"/>
131 <mapper type="regexp" from=".*[/\\]([^/\\]*)" to="${build.dir}/\1.jar"/>
134 bootclasspath="${build.dir}/base.jar"
136 destdir="${build.dir}/classes/${module}"
137 includejavaruntime="false"
138 includeantruntime="false"
141 <path path="${module.cp}"/>
142 <pathelement location="${javacompiler}"/>
144 <src refid="src.path"/>
145 <selector refid="${module}"/>
147 <copy todir="${build.dir}/classes/${module}">
148 <fileset dir="src/share/classes">
150 <selector refid="${module}"/>
152 <filename name="**/*.java"/>
159 basedir="${build.dir}/classes/${module}"
160 destfile="${build.dir}/${module}.jar"
165 <!-- clean everything -->
166 <target name="clean">
167 <delete dir="${build.dir}"/>