build.xml
author Jaroslav Tulach <jtulach@netbeans.org>
Mon, 22 Jun 2009 13:15:21 +0200
brancheliminateswing
changeset 1253 e7750e44f345
parent 1251 adeb4a4c4aa6
child 1255 29da1ab1c5bb
permissions -rw-r--r--
Exluding just GSS visual callback handler, not the textual one
     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/security/auth/callback/DialogCallbackHandler*"/>
   158                 <filename name="com/sun/inputmethods/internal/**"/>
   159                 <filename name="com/sun/xml/internal/bind/**"/>
   160                 
   161                 <filename name="com/sun/xml/internal/messaging/saaj/**"/>
   162                 <filename name="com/sun/xml/internal/ws/**"/>
   163                 <filename name="com/sun/xml/internal/org/jvnet/staxex/**"/>
   164                 <filename name="com/sun/xml/internal/stream/buffer/stax/**"/>
   165                 <filename name="com/sun/istack/internal/**"/>
   166                 <filename name="com/sun/xml/internal/stream/buffer/**"/>
   167 <!--                <filename name="com/sun/xml/internal/stream/**"/>-->
   168                 <filename name="com/sun/xml/internal/xsom/**"/>
   169                 
   170                 <filename name="javax/xml/soap/**"/>
   171                 <filename name="javax/xml/bind/**"/>
   172                 <filename name="javax/xml/ws/**"/>
   173                 <filename name="javax/activation/**"/>
   174 
   175                 <filename name="sun/net/www/content/image/**"/>
   176 
   177                 <!--<filename name="com/sun/naming/internal/**"/>-->
   178 
   179                 <!-- input method has JFrame in signature -->
   180                 <filename name="sun/awt/im/**"/>
   181                 <filename name="sun/awt/X11/**"/>
   182 
   183                 <filename name="java/beans/javax_swing*"/>
   184                 <filename name="java/beans/**"/>
   185                 <filename name="com/sun/beans/**"/>
   186                 <!-- bridge between jmx and beans -->
   187                 <filename name="META-INF/services/com.sun.jmx.mbeanserver.IntrospectorProxy"/>
   188             </or>
   189             <none>
   190                 <filename name="java/awt/AWTPermission*"/>
   191 
   192                 <filename name="java/beans/ConstructorProperties*"/>
   193                 <filename name="java/beans/PropertyChangeListener*"/>
   194                 <filename name="java/beans/PropertyChangeEvent*"/>
   195                 <filename name="java/beans/IndexedPropertyChangeEvent*"/>
   196                 <filename name="java/beans/PropertyChangeSupport*"/>
   197                 <filename name="java/beans/ChangeListenerMap*"/>
   198             </none>
   199         </and>
   200     </selector>
   201 
   202     <selector id="deprecated7">
   203         <or>
   204             <!-- deprecated as it contains one method
   205             that references Applet
   206             -->
   207             <filename name="java/beans/Beans*"/>
   208             <!-- deprecated as it contains one method
   209             that references Applet
   210             -->
   211             <filename name="javax/swing/RepaintManager*"/>
   212 
   213             <!-- tools -->
   214             <filename name="sun/security/tools/**"/>
   215             <filename name="com/sun/tools/**"/>
   216             <filename name="sun/tools/**"/>
   217             <filename name="sun/rmi/rmic/**"/>
   218         </or>
   219     </selector>
   220 
   221     <selector id="base">
   222         <none>
   223             <!-- exclude classes from other modules -->
   224             <selector refid="corba"/>
   225             <selector refid="applet"/>
   226             <selector refid="swing"/>
   227             <selector refid="deprecated7"/>
   228         <!--
   229             <selector refid="client"/>
   230             <selector refid="enterprise"/>
   231             <selector refid="deprecated7"/>
   232             -->
   233 
   234 
   235             <!-- non-important non-API things
   236                 which cannot be compiled easily
   237             -->
   238             <filename name="**/*-*"/>
   239             <filename name="java/dyn/**"/>
   240             <filename name="sun/dyn/**"/>
   241             
   242             <filename name="com/sun/script/javascript/**"/>
   243             <filename name="sun/dc/**"/>
   244             <filename name="sun/nio/fs/Solaris**"/>
   245             <filename name="sun/tracing/**"/>
   246             <filename name="com/sun/tracing/ProviderFactory*"/>
   247         </none>
   248     </selector>
   249 
   250     <!-- individual compilation tasks -->
   251 
   252     <target name="deprecated7">
   253         <antcall target="-compile-one-module">
   254             <param name="module" value="deprecated7"/>
   255             <param name="depends" value="base:applet"/>
   256         </antcall>
   257     </target>
   258     <target name="applet">
   259         <antcall target="-compile-one-module">
   260             <param name="module" value="applet"/>
   261             <param name="depends" value="base"/>
   262         </antcall>
   263     </target>
   264     <target name="beans">
   265         <antcall target="-compile-one-module">
   266             <param name="module" value="beans"/>
   267         </antcall>
   268     </target>
   269     <target name="swing">
   270         <antcall target="-compile-one-module">
   271             <param name="module" value="swing"/>
   272             <param name="depends" value="base"/>
   273         </antcall>
   274     </target>
   275     <target name="corba">
   276         <antcall target="-compile-one-module">
   277             <param name="module" value="corba"/>
   278             <param name="depends" value="base:applet"/>
   279         </antcall>
   280     </target>
   281 
   282 
   283     <target name="base">
   284         <antcall target="-compile-one-module">
   285             <param name="module" value="base"/>
   286         </antcall>
   287     </target>
   288 
   289     <!-- shared routine to compile one of the modules -->
   290     <target name="-compile-one-module">
   291         <mkdir dir="${build.dir}/classes/${module}"/>
   292         <pathconvert pathsep=":"  property="module.cp">
   293             <path path="${depends}"/>
   294             <mapper type="regexp" from=".*[/\\]([^/\\]*)" to="${build.dir}/\1.jar"/>
   295         </pathconvert>
   296         <jar
   297             basedir="${build.dir}/classes/${module}"
   298             destfile="${build.dir}/empty.jar"
   299             compress="false"
   300         >
   301             <exclude name="**"/>
   302         </jar>
   303         <javac
   304             bootclasspath="${build.dir}/empty.jar"
   305             sourcepath=""
   306             destdir="${build.dir}/classes/${module}"
   307             includejavaruntime="false"
   308             includeantruntime="false"
   309             classpath="${module.cp}:${plugs}/jre/lib/rt-closed.jar"
   310         >
   311             <src refid="src.path"/>
   312             <and>
   313                 <selector refid="${module}"/>
   314                 <not><filename name="**/*-template.java"/></not>
   315             </and>
   316         </javac>
   317         <copy todir="${build.dir}/classes/${module}">
   318             <fileset dir="src/share/classes">
   319                 <and>
   320                     <selector refid="${module}"/>
   321                     <not>
   322                         <filename name="**/*.java"/>
   323                     </not>
   324                 </and>
   325             </fileset>
   326         </copy>
   327 
   328         <jar 
   329             basedir="${build.dir}/classes/${module}"
   330             destfile="${build.dir}/${module}.jar"
   331             compress="false"
   332         />
   333     </target>
   334 
   335     <!-- clean everything -->
   336     <target name="clean">
   337         <delete dir="${build.dir}"/>
   338     </target>
   339 </project>