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