build.xml
author Jaroslav Tulach <jtulach@netbeans.org>
Mon, 22 Jun 2009 10:15:54 +0200
brancheliminateswing
changeset 1250 7d9cedc2c758
parent 1249 cf9b143bfaf9
child 1251 adeb4a4c4aa6
permissions -rw-r--r--
In attempt to remove swing I had to comment out also AWT and a lot of XML related stuff which references AWT, DataFlavors, activation, etc. all the time. Now there is about 50 remaining errors in compilation of base classes.
     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>
     4 
     5     <target name="all">
     6         <antcall target="base"/>
     7         <antcall target="applet"/>
     8         <antcall target="corba"/>
     9         <antcall target="deprecated7"/>
    10     </target>
    11 
    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>
    16     </fail>
    17 
    18     <target name="merge-sources"
    19         description="Copies sources from all over the JDK tree into one place"
    20     >
    21         <pathconvert property="gensrc">
    22             <path>
    23                 <dirset dir="../build">
    24                     <include name="*/gensrc"/>
    25                 </dirset>
    26             </path>
    27         </pathconvert>
    28         <fail message="You need to provide location of JDK's generated sources via -Dgensrc=...">
    29             <condition>
    30                 <not>
    31                     <available file="${gensrc}"/>
    32                 </not>
    33             </condition>
    34         </fail>
    35         <mkdir dir="build/sources"/>
    36         <copy todir="build/sources">
    37             <fileset dir="${gensrc}"/>
    38             <fileset dir="${gensrc}/../impsrc">
    39                 <exclude name="org/relaxng/datatype/**"/>
    40             </fileset>
    41             <fileset dir="../jaxp/src/share/classes/">
    42                 <exclude name="org/relaxng/datatype/**"/>
    43             </fileset>
    44             <fileset dir="../langtools/src/share/classes/">
    45                 <exclude name="org/relaxng/datatype/**"/>
    46             </fileset>
    47             <fileset dir="../jaxws/src/share/classes/">
    48                 <exclude name="org/relaxng/datatype/**"/>
    49             </fileset>
    50             <fileset dir="../corba/src/share/classes/"/>
    51         </copy>
    52     </target>
    53 
    54     <path id="src.path">
    55         <pathelement location="src/share/classes"/>
    56         <pathelement location="build/sources"/>
    57         <pathelement location="src/solaris/classes"/>
    58 <!--        <pathelement location="src/windows/classes"/> -->
    59     </path>
    60     <property name="build.dir" location="build/modularize"/>
    61 
    62     <!-- this is the core of the separation - definition
    63       of what classes belong into what compilation group.
    64     -->
    65     <selector id="applet">
    66         <and>
    67             <or>
    68                 <filename name="java/beans/AppletInitializer*"/>
    69                 <filename name="java/applet/**"/>
    70                 <filename name="javax/swing/JApplet*"/>
    71                 <filename name="sun/applet/**"/>
    72                 <filename name="META-INF/services/sun.beans.AppletProxy"/>
    73                 <!-- either this or include AudioClip in client package
    74                 <filename name="sun/net/www/content/audio/**"/>
    75                 -->
    76             </or>
    77             <none>
    78                 <filename name="java/applet/AudioClip*"/>
    79                 <filename name="sun/applet/AppletAudioClip*"/>
    80             </none>
    81         </and>
    82     </selector>
    83     <selector id="corba">
    84         <or>
    85             <filename name="org/omg/**"/>
    86             <filename name="com/sun/corba/**"/>
    87             <filename name="com/sun/jmx/remote/internal/ProxyInputStream.java"/>
    88             <filename name="com/sun/jndi/cosnaming/**"/>
    89             <filename name="com/sun/jndi/toolkit/corba/**"/>
    90             <filename name="com/sun/jndi/url/iiop/**"/>
    91             <filename name="com/sun/jndi/url/iiopname/**"/>
    92             <filename name="com/sun/jndi/url/corbaname/**"/>
    93             <filename name="javax/management/remote/rmi/RMIConnector.java"/>
    94             <filename name="javax/management/remote/rmi/RMIConnectorServer.java"/>
    95             <filename name="javax/management/remote/rmi/RMIServerImpl.java"/>
    96             <filename name="javax/management/remote/rmi/RMIIIOPServerImpl.java"/>
    97             <filename name="javax/management/remote/rmi/RMIConnectionImpl.java"/>
    98             <filename name="javax/management/remote/rmi/RMIJRMPServerImpl.java"/>
    99             <filename name="javax/rmi/PortableRemoteObject.java"/>
   100             <filename name="com/sun/jmx/remote/security/FileLoginModule.java"/>
   101             <filename name="com/sun/jmx/remote/security/JMXPluggableAuthenticator.java"/>
   102             <filename name="com/sun/jmx/remote/protocol/rmi/ClientProvider.java"/>
   103             <filename name="com/sun/jmx/remote/protocol/rmi/ClientProvider.java"/>
   104             <filename name="com/sun/jmx/remote/protocol/iiop/ClientProvider.java"/>
   105             <filename name="com/sun/jmx/remote/protocol/iiop/ServerProvider.java"/>
   106             <filename name="com/sun/jmx/remote/protocol/rmi/ServerProvider.java"/>
   107             <filename name="com/sun/jndi/url/iiop/iiopURLContextFactory.java"/>
   108             <filename name="sun/rmi/rmic/RMIGenerator.java"/>
   109             <filename name="sun/management/jmxremote/ConnectorBootstrap.java"/>
   110             <filename name="sun/management/Agent.java"/>
   111             <filename name="sun/management/snmp/AdaptorBootstrap.java"/>
   112             <filename name="javax/rmi/CORBA/**"/>
   113             <filename name="com/sun/org/omg/**"/>
   114             <filename name="javax/management/remote/rmi/RMIConnectorServer.java"/>
   115             <filename name="com/sun/jndi/url/iiop/iiopURLContext.java"/>
   116             <filename name="sun/rmi/rmic/iiop/**"/>
   117 
   118             <!-- now there are just two references in jconsole -->
   119             <filename name="sun/tools/jconsole/**"/>
   120         </or>
   121     </selector>
   122     <selector id="beans">
   123         <and>
   124             <or>
   125                 <filename name="java/beans/**"/>
   126                 <filename name="sun/beans/**"/>
   127                 <filename name="com/sun/beans/**"/>
   128             </or>
   129             <none>
   130                 <selector refid="applet"/>
   131                 <selector refid="deprecated7"/>
   132             </none>
   133         </and>
   134     </selector>
   135 
   136     <selector id="swing">
   137         <and>
   138             <or>
   139                 <filename name="java/awt/**"/>
   140                 <filename name="sun/awt/**"/>
   141                 <filename name="com/sun/awt/**"/>
   142                 <filename name="javax/imageio/**"/>
   143                 <filename name="javax/print/**"/>
   144                 <filename name="javax/accessibility/**"/>
   145                 <filename name="com/sun/imageio/**"/>
   146                 <filename name="javax/swing/**"/>
   147                 <filename name="sun/swing/**"/>
   148                 <filename name="sun/java2d/**"/>
   149                 <filename name="sun/print/**"/>
   150                 <filename name="sun/font/**"/>
   151                 <filename name="sun/beans/**"/>
   152                 <filename name="sun/awt/shell/**"/>
   153                 <filename name="com/sun/swing/**"/>
   154                 <filename name="com/sun/java/swing/**"/>
   155                 <filename name="com/sun/xml/internal/xsom/impl/util/**"/>
   156                 <filename name="com/sun/security/auth/callback/**"/>
   157                 <filename name="com/sun/inputmethods/internal/**"/>
   158                 <filename name="com/sun/xml/internal/bind/**"/>
   159                 
   160                 <filename name="com/sun/xml/internal/messaging/saaj/**"/>
   161                 <filename name="com/sun/xml/internal/ws/**"/>
   162                 <filename name="com/sun/xml/internal/org/jvnet/staxex/**"/>
   163                 <filename name="com/sun/xml/internal/stream/buffer/stax/**"/>
   164                 <filename name="com/sun/istack/internal/**"/>
   165                 <filename name="com/sun/xml/internal/stream/buffer/**"/>
   166 <!--                <filename name="com/sun/xml/internal/stream/**"/>-->
   167                 <filename name="com/sun/xml/internal/xsom/**"/>
   168                 
   169                 <filename name="javax/xml/soap/**"/>
   170                 <filename name="javax/xml/bind/**"/>
   171                 <filename name="javax/xml/ws/**"/>
   172                 <filename name="javax/activation/**"/>
   173 
   174                 <filename name="sun/net/www/content/image/**"/>
   175 
   176                 <!--<filename name="com/sun/naming/internal/**"/>-->
   177 
   178                 <!-- input method has JFrame in signature -->
   179                 <filename name="sun/awt/im/**"/>
   180                 <filename name="sun/awt/X11/**"/>
   181 
   182                 <filename name="java/beans/javax_swing*"/>
   183                 <filename name="java/beans/MetaData*"/>
   184                 <filename name="java/beans/PropertyEdit*"/>
   185                 <filename name="java/beans/beancontext/*"/>
   186             </or>
   187             <none>
   188                 <filename name="java/awt/AWTPermission*"/>
   189             </none>
   190         </and>
   191     </selector>
   192 
   193     <selector id="deprecated7">
   194         <or>
   195             <!-- deprecated as it contains one method
   196             that references Applet
   197             -->
   198             <filename name="java/beans/Beans*"/>
   199             <!-- deprecated as it contains one method
   200             that references Applet
   201             -->
   202             <filename name="javax/swing/RepaintManager*"/>
   203 
   204             <!-- tools -->
   205             <filename name="sun/security/tools/**"/>
   206             <filename name="com/sun/tools/**"/>
   207             <filename name="sun/tools/**"/>
   208             <filename name="sun/rmi/rmic/**"/>
   209         </or>
   210     </selector>
   211 
   212     <selector id="base">
   213         <none>
   214             <!-- exclude classes from other modules -->
   215             <selector refid="corba"/>
   216             <selector refid="applet"/>
   217             <selector refid="swing"/>
   218             <selector refid="deprecated7"/>
   219         <!--
   220             <selector refid="client"/>
   221             <selector refid="enterprise"/>
   222             <selector refid="deprecated7"/>
   223             -->
   224 
   225 
   226             <!-- non-important non-API things
   227                 which cannot be compiled easily
   228             -->
   229             <filename name="**/*-*"/>
   230             <filename name="java/dyn/**"/>
   231             <filename name="sun/dyn/**"/>
   232             
   233             <filename name="com/sun/script/javascript/**"/>
   234             <filename name="sun/dc/**"/>
   235             <filename name="sun/nio/fs/Solaris**"/>
   236             <filename name="sun/tracing/**"/>
   237             <filename name="com/sun/tracing/ProviderFactory*"/>
   238         </none>
   239     </selector>
   240 
   241     <!-- individual compilation tasks -->
   242 
   243     <target name="deprecated7">
   244         <antcall target="-compile-one-module">
   245             <param name="module" value="deprecated7"/>
   246             <param name="depends" value="base:applet"/>
   247         </antcall>
   248     </target>
   249     <target name="applet">
   250         <antcall target="-compile-one-module">
   251             <param name="module" value="applet"/>
   252             <param name="depends" value="base"/>
   253         </antcall>
   254     </target>
   255     <target name="beans">
   256         <antcall target="-compile-one-module">
   257             <param name="module" value="beans"/>
   258         </antcall>
   259     </target>
   260     <target name="swing">
   261         <antcall target="-compile-one-module">
   262             <param name="module" value="swing"/>
   263             <param name="depends" value="base"/>
   264         </antcall>
   265     </target>
   266     <target name="corba">
   267         <antcall target="-compile-one-module">
   268             <param name="module" value="corba"/>
   269             <param name="depends" value="base:applet"/>
   270         </antcall>
   271     </target>
   272 
   273 
   274     <target name="base">
   275         <antcall target="-compile-one-module">
   276             <param name="module" value="base"/>
   277         </antcall>
   278     </target>
   279 
   280     <!-- shared routine to compile one of the modules -->
   281     <target name="-compile-one-module">
   282         <mkdir dir="${build.dir}/classes/${module}"/>
   283         <pathconvert pathsep=":"  property="module.cp">
   284             <path path="${depends}"/>
   285             <mapper type="regexp" from=".*[/\\]([^/\\]*)" to="${build.dir}/\1.jar"/>
   286         </pathconvert>
   287         <jar
   288             basedir="${build.dir}/classes/${module}"
   289             destfile="${build.dir}/empty.jar"
   290             compress="false"
   291         >
   292             <exclude name="**"/>
   293         </jar>
   294         <javac
   295             bootclasspath="${build.dir}/empty.jar"
   296             sourcepath=""
   297             destdir="${build.dir}/classes/${module}"
   298             includejavaruntime="false"
   299             includeantruntime="false"
   300             classpath="${module.cp}:${plugs}/jre/lib/rt-closed.jar"
   301         >
   302             <src refid="src.path"/>
   303             <and>
   304                 <selector refid="${module}"/>
   305                 <not><filename name="**/*-template.java"/></not>
   306             </and>
   307         </javac>
   308         <copy todir="${build.dir}/classes/${module}">
   309             <fileset dir="src/share/classes">
   310                 <and>
   311                     <selector refid="${module}"/>
   312                     <not>
   313                         <filename name="**/*.java"/>
   314                     </not>
   315                 </and>
   316             </fileset>
   317         </copy>
   318 
   319         <jar 
   320             basedir="${build.dir}/classes/${module}"
   321             destfile="${build.dir}/${module}.jar"
   322             compress="false"
   323         />
   324     </target>
   325 
   326     <!-- clean everything -->
   327     <target name="clean">
   328         <delete dir="${build.dir}"/>
   329     </target>
   330 </project>