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="extract-base"/>
7 <antcall target="beans"/>
8 <antcall target="applet"/>
10 <!-- basic parameters -->
12 <pathelement location="src/share/classes"/>
13 <pathelement location="src/windows/classes"/>
14 <pathelement location="src/solaris/classes"/>
16 <property name="build.dir" location="build/modularize"/>
18 <!-- this is the core of the separation - definition
19 of what classes belong into what compilation group.
21 <selector id="applet">
23 <filename name="java/applet/**"/>
24 <filename name="sun/applet/**"/>
29 <filename name="java/beans/**"/>
30 <filename name="sun/beans/**"/>
31 <filename name="com/sun/beans/**"/>
37 <filename name="org/omg/**"/>
38 <filename name="com/sun/corba/**"/>
44 <selector refid="applet"/>
45 <selector refid="beans"/>
46 <selector refid="corba"/>
50 <!-- individual compilation tasks -->
52 <target name="applet">
53 <antcall target="-compile-one-module">
54 <param name="module" value="applet"/>
58 <antcall target="-compile-one-module">
59 <param name="module" value="beans"/>
64 <!-- as I am currently unable to build JDK myself, I'll start
65 the modularization by extracting the base module from an existing
68 <target name="extract-base">
69 <property name="rt.jar" location="${java.home}/lib/rt.jar"/>
70 <fail message="Cannot find rt.jar, specify with -Drt.jar=...">
71 <condition><not><available file="${rt.jar}"/></not></condition>
74 <mkdir dir="${build.dir}/rt"/>
75 <unzip src="${rt.jar}" dest="${build.dir}/rt"/>
76 <jar file="${build.dir}/base.jar">
77 <fileset dir="${build.dir}/rt">
78 <selector refid="base"/>
83 <!-- shared routine to compile one of the modules -->
84 <target name="-compile-one-module">
85 <mkdir dir="${build.dir}/classes/${module}"/>
86 <javac bootclasspath="${build.dir}/base.jar" sourcepath="" destdir="${build.dir}/classes/${module}">
87 <src refid="src.path"/>
88 <selector refid="${module}"/>
90 <jar basedir="${build.dir}/classes/${module}" destfile="${build.dir}/${module}.jar"/>
93 <!-- clean everything -->
95 <delete dir="${build.dir}"/>