make/build.xml

changeset 436
cff85998bf4d
parent 416
c287d51c57da
child 440
243d0be1ba99
     1.1 --- a/make/build.xml	Fri Nov 06 17:29:00 2009 -0800
     1.2 +++ b/make/build.xml	Tue Nov 17 16:45:19 2009 -0800
     1.3 @@ -112,7 +112,9 @@
     1.4  
     1.5      <target name="build-all-tools" depends="build-javac,build-javadoc,build-doclets,build-javah,build-javap,build-apt"/>
     1.6  
     1.7 -    <target name="build-all-classes" depends="build-classes-javac,build-classes-javadoc,build-classes-doclets,build-classes-javah,build-classes-javap,build-classes-apt"/>
     1.8 +    <target name="build-all-classes" depends="build-bootstrap-javac">
     1.9 +        <build-classes includes="${javac.includes} ${javadoc.includes} ${doclets.includes} ${javah.includes} ${javap.includes} ${apt.includes}"/>
    1.10 +    </target>
    1.11  
    1.12      <!-- clean -->
    1.13  
    1.14 @@ -188,23 +190,27 @@
    1.15  
    1.16      <!-- javac targets -->
    1.17  
    1.18 -    <target name="build-bootstrap-javac" depends="-def-build-bootstrap-tool">
    1.19 -        <build-bootstrap-tool name="javac" includes="${javac.includes}"/>
    1.20 +    <target name="build-bootstrap-javac"
    1.21 +            depends="-def-build-bootstrap-classes,-def-build-bootstrap-jar,-def-build-bootstrap-tool">
    1.22 +        <build-bootstrap-classes includes="${javac.includes}"/>
    1.23 +        <build-bootstrap-jar     name="javac" includes="${javac.includes}"/>
    1.24 +        <build-bootstrap-tool    name="javac"/>
    1.25      </target>
    1.26  
    1.27      <target name="build-classes-javac" depends="build-bootstrap-javac">
    1.28 -        <build-classes name="javac" includes="${javac.includes}"/>
    1.29 +        <build-classes includes="${javac.includes}"/>
    1.30      </target>
    1.31  
    1.32 -    <target name="build-javac" depends="build-bootstrap-javac">
    1.33 -        <build-tool name="javac" includes="${javac.includes}"/>
    1.34 +    <target name="build-javac" depends="build-classes-javac">
    1.35 +        <build-jar  name="javac" includes="${javac.includes}"/>
    1.36 +        <build-tool name="javac"/>
    1.37      </target>
    1.38  
    1.39      <target name="javadoc-javac" depends="build-javac,-def-javadoc-tool">
    1.40          <javadoc-tool name="javac" includes="${javac.includes}" options="${javadoc.jls3.option}"/>
    1.41      </target>
    1.42  
    1.43 -    <target name="jtreg-javac" depends="build-javac,-def-jtreg">
    1.44 +    <target name="jtreg-javac" depends="build-javac,build-javap,-def-jtreg">
    1.45          <jtreg-tool name="javac" tests="${javac.tests}"/>
    1.46      </target>
    1.47  
    1.48 @@ -217,19 +223,20 @@
    1.49      <!-- javadoc targets -->
    1.50  
    1.51      <target name="build-bootstrap-javadoc" depends="build-bootstrap-javac">
    1.52 -        <build-bootstrap-tool name="javadoc"
    1.53 -                              includes="${javadoc.includes}"
    1.54 -                              jarclasspath="javac.jar doclets.jar"/>
    1.55 +        <build-bootstrap-classes includes="${javadoc.includes}"/>
    1.56 +        <build-bootstrap-jar     name="javadoc" includes="${javadoc.includes}"
    1.57 +                                 jarclasspath="javac.jar doclets.jar"/>
    1.58 +        <build-bootstrap-tool    name="javadoc"/>
    1.59      </target>
    1.60  
    1.61      <target name="build-classes-javadoc" depends="build-classes-javac">
    1.62 -        <build-classes name="javadoc" includes="${javadoc.includes}"/>
    1.63 +        <build-classes includes="${javadoc.includes}"/>
    1.64      </target>
    1.65  
    1.66 -    <target name="build-javadoc" depends="build-javac">
    1.67 -        <build-tool name="javadoc"
    1.68 -                    includes="${javadoc.includes}"
    1.69 +    <target name="build-javadoc" depends="build-javac,build-classes-javadoc">
    1.70 +        <build-jar  name="javadoc" includes="${javadoc.includes}"
    1.71                      jarclasspath="javac.jar doclets.jar"/>
    1.72 +        <build-tool name="javadoc"/>
    1.73      </target>
    1.74  
    1.75      <target name="javadoc-javadoc" depends="build-javadoc,-def-javadoc-tool">
    1.76 @@ -249,21 +256,19 @@
    1.77      <!-- doclets targets -->
    1.78  
    1.79      <target name="build-bootstrap-doclets" depends="build-bootstrap-javadoc,-def-build-bootstrap-jar">
    1.80 -        <build-bootstrap-jar name="doclets"
    1.81 -                              includes="${doclets.includes}"
    1.82 -                              jarmainclass="com.sun.tools.javadoc.Main"
    1.83 -                              jarclasspath="javadoc.jar"/>
    1.84 +        <build-bootstrap-classes includes="${doclets.includes}"/>
    1.85 +        <build-bootstrap-jar     name="doclets" includes="${doclets.includes}"
    1.86 +                                 jarmainclass="com.sun.tools.javadoc.Main"
    1.87 +                                 jarclasspath="javadoc.jar"/>
    1.88      </target>
    1.89  
    1.90      <target name="build-classes-doclets" depends="build-classes-javadoc">
    1.91 -        <build-classes name="doclets" includes="${doclets.includes}"/>
    1.92 +        <build-classes includes="${doclets.includes}"/>
    1.93      </target>
    1.94  
    1.95 -    <target name="build-doclets" depends="build-javadoc">
    1.96 +    <target name="build-doclets" depends="build-javadoc,build-classes-doclets">
    1.97          <!-- just jar, no bin for doclets -->
    1.98 -        <build-jar name="doclets"
    1.99 -                    includes="${doclets.includes}"
   1.100 -                    jarclasspath="javadoc.jar"/>
   1.101 +        <build-jar name="doclets" includes="${doclets.includes}" jarclasspath="javadoc.jar"/>
   1.102      </target>
   1.103  
   1.104      <!-- (no javadoc for doclets) -->
   1.105 @@ -281,19 +286,19 @@
   1.106      <!-- javah targets -->
   1.107  
   1.108      <target name="build-bootstrap-javah" depends="build-bootstrap-javadoc">
   1.109 -        <build-bootstrap-tool name="javah"
   1.110 -                              includes="${javah.includes}"
   1.111 -                              jarclasspath="javadoc.jar doclets.jar javac.jar"/>
   1.112 +        <build-bootstrap-classes includes="${javah.includes}"/>
   1.113 +        <build-bootstrap-jar     name="javah" includes="${javah.includes}"
   1.114 +                                 jarclasspath="javadoc.jar doclets.jar javac.jar"/>
   1.115 +        <build-bootstrap-tool    name="javah"/>
   1.116      </target>
   1.117  
   1.118 -    <target name="build-javah" depends="build-javac">
   1.119 -        <build-tool name="javah"
   1.120 -                    includes="${javah.includes}"
   1.121 -                    jarclasspath="javac.jar"/>
   1.122 +    <target name="build-javah" depends="build-javac,build-classes-javah">
   1.123 +        <build-jar  name="javah" includes="${javah.includes}" jarclasspath="javac.jar"/>
   1.124 +        <build-tool name="javah"/>
   1.125      </target>
   1.126  
   1.127      <target name="build-classes-javah" depends="build-classes-javadoc">
   1.128 -        <build-classes name="javah" includes="${javah.includes}"/>
   1.129 +        <build-classes includes="${javah.includes}"/>
   1.130      </target>
   1.131  
   1.132      <!-- (no javadoc for javah) -->
   1.133 @@ -310,21 +315,23 @@
   1.134  
   1.135      <!-- javap targets -->
   1.136  
   1.137 -    <target name="build-bootstrap-javap" depends="-def-build-bootstrap-tool">
   1.138 -        <build-bootstrap-tool name="javap"
   1.139 -                              includes="${javap.includes}"
   1.140 -                              jarmainclass="sun.tools.javap.Main"/>
   1.141 +    <target name="build-bootstrap-javap"
   1.142 +            depends="-def-build-bootstrap-classes,-def-build-bootstrap-jar,-def-build-bootstrap-tool">
   1.143 +        <build-bootstrap-classes includes="${javap.includes}"/>
   1.144 +        <build-bootstrap-jar     name="javap" includes="${javap.includes}"
   1.145 +                                 jarmainclass="sun.tools.javap.Main"/>
   1.146 +        <build-bootstrap-tool    name="javap"/>
   1.147      </target>
   1.148  
   1.149      <target name="build-classes-javap" depends="build-classes-javac">
   1.150 -        <build-classes name="javap" includes="${javap.includes}"/>
   1.151 +        <build-classes includes="${javap.includes}"/>
   1.152      </target>
   1.153  
   1.154 -    <target name="build-javap" depends="build-javac">
   1.155 -        <build-tool name="javap"
   1.156 -                    includes="${javap.includes}"
   1.157 +    <target name="build-javap" depends="build-javac,build-classes-javap">
   1.158 +        <build-jar  name="javap" includes="${javap.includes}"
   1.159                      jarmainclass="com.sun.tools.javap.Main"
   1.160                      jarclasspath="javac.jar"/>
   1.161 +        <build-tool name="javap"/>
   1.162      </target>
   1.163  
   1.164      <!-- (no javadoc for javap) -->
   1.165 @@ -342,19 +349,19 @@
   1.166      <!-- apt targets -->
   1.167  
   1.168      <target name="build-bootstrap-apt" depends="build-bootstrap-javac">
   1.169 -        <build-bootstrap-tool name="apt"
   1.170 -                              includes="${apt.includes}"
   1.171 -                              jarclasspath="javac.jar"/>
   1.172 +        <build-bootstrap-classes includes="${apt.includes}"/>
   1.173 +        <build-bootstrap-jar     name="apt" includes="${apt.includes}"
   1.174 +                                 jarclasspath="javac.jar"/>
   1.175 +        <build-bootstrap-tool    name="apt"/>
   1.176      </target>
   1.177  
   1.178 -    <target name="build-apt" depends="build-javac">
   1.179 -        <build-tool name="apt"
   1.180 -                    includes="${apt.includes}"
   1.181 -                    jarclasspath="javac.jar"/>
   1.182 +    <target name="build-apt" depends="build-javac,build-classes-apt">
   1.183 +        <build-jar  name="apt" includes="${apt.includes}" jarclasspath="javac.jar"/>
   1.184 +        <build-tool name="apt"/>
   1.185      </target>
   1.186  
   1.187      <target name="build-classes-apt" depends="build-classes-javac">
   1.188 -        <build-classes name="apt" includes="${apt.includes}"/>
   1.189 +        <build-classes includes="${apt.includes}"/>
   1.190      </target>
   1.191  
   1.192      <target name="javadoc-apt" depends="build-apt,-def-javadoc-tool">
   1.193 @@ -396,40 +403,12 @@
   1.194  
   1.195      <!-- Ant macro and preset defs -->
   1.196  
   1.197 -    <target name="-def-build-tool" depends="-def-build-jar">
   1.198 +    <target name="-def-build-tool">
   1.199          <macrodef name="build-tool">
   1.200              <attribute name="name"/>
   1.201 -            <attribute name="includes"/>
   1.202 -            <attribute name="excludes" default="**/package-info.java"/>
   1.203              <attribute name="bin.dir" default="${dist.bin.dir}"/>
   1.204 -            <attribute name="classes.dir" default="${build.classes.dir}"/>
   1.205 -            <attribute name="gensrc.dir" default="${build.gensrc.dir}"/>
   1.206 -            <attribute name="lib.dir" default="${dist.lib.dir}"/>
   1.207              <attribute name="java" default="${launcher.java}"/>
   1.208 -            <attribute name="javac.bootclasspath" default="${build.bootstrap.dir}/classes"/>
   1.209 -            <attribute name="javac.java.home" default="${boot.java.home}"/>
   1.210 -            <attribute name="javac.source" default="${javac.source}"/>
   1.211 -            <attribute name="javac.target" default="${javac.target}"/>
   1.212 -            <attribute name="jarmainclass" default="com.sun.tools.@{name}.Main"/>
   1.213 -            <attribute name="jarclasspath" default=""/>
   1.214 -            <attribute name="release" default="${release}"/>
   1.215 -            <attribute name="full.version" default="${full.version}"/>
   1.216              <sequential>
   1.217 -                <build-jar
   1.218 -                    name="@{name}"
   1.219 -                    gensrc.dir="@{gensrc.dir}"
   1.220 -                    classes.dir="@{classes.dir}"
   1.221 -                    lib.dir="@{lib.dir}"
   1.222 -                    includes="@{includes}"
   1.223 -                    excludes="@{excludes}"
   1.224 -                    jarmainclass="@{jarmainclass}"
   1.225 -                    jarclasspath="@{jarclasspath}"
   1.226 -                    release="@{release}"
   1.227 -                    full.version="@{full.version}"
   1.228 -                    javac.bootclasspath="@{javac.bootclasspath}"
   1.229 -                    javac.source="@{javac.source}"
   1.230 -                    javac.target="@{javac.target}"
   1.231 -                />
   1.232                  <mkdir dir="@{bin.dir}"/>
   1.233                  <copy file="${src.bin.dir}/launcher.sh-template" tofile="@{bin.dir}/@{name}">
   1.234                      <filterset begintoken="#" endtoken="#">
   1.235 @@ -442,35 +421,15 @@
   1.236          </macrodef>
   1.237      </target>
   1.238  
   1.239 -    <target name="-def-build-jar" depends="-def-build-classes">
   1.240 +    <target name="-def-build-jar">
   1.241          <macrodef name="build-jar">
   1.242              <attribute name="name"/>
   1.243              <attribute name="includes"/>
   1.244 -            <attribute name="excludes" default="**/package-info.java"/>
   1.245              <attribute name="classes.dir" default="${build.classes.dir}"/>
   1.246 -            <attribute name="gensrc.dir" default="${build.gensrc.dir}"/>
   1.247              <attribute name="lib.dir" default="${dist.lib.dir}"/>
   1.248 -            <attribute name="javac.bootclasspath" default="${build.bootstrap.dir}/classes"/>
   1.249 -            <attribute name="javac.java.home" default="${boot.java.home}"/>
   1.250 -            <attribute name="javac.source" default="${javac.source}"/>
   1.251 -            <attribute name="javac.target" default="${javac.target}"/>
   1.252              <attribute name="jarmainclass" default="com.sun.tools.@{name}.Main"/>
   1.253              <attribute name="jarclasspath" default=""/>
   1.254 -            <attribute name="release" default="${release}"/>
   1.255 -            <attribute name="full.version" default="${full.version}"/>
   1.256              <sequential>
   1.257 -                <build-classes
   1.258 -                    name="@{name}"
   1.259 -                    gensrc.dir="@{gensrc.dir}"
   1.260 -                    classes.dir="@{classes.dir}"
   1.261 -                    includes="@{includes}"
   1.262 -                    excludes="@{excludes}"
   1.263 -                    release="@{release}"
   1.264 -                    full.version="@{full.version}"
   1.265 -                    javac.bootclasspath="@{javac.bootclasspath}"
   1.266 -                    javac.source="@{javac.source}"
   1.267 -                    javac.target="@{javac.target}"
   1.268 -                />
   1.269                  <mkdir dir="@{lib.dir}"/>
   1.270                  <jar destfile="@{lib.dir}/@{name}.jar"
   1.271                       basedir="@{classes.dir}"
   1.272 @@ -486,15 +445,14 @@
   1.273  
   1.274      <target name="-def-build-classes" depends="-def-pcompile">
   1.275          <macrodef name="build-classes">
   1.276 -            <attribute name="name"/>
   1.277              <attribute name="includes"/>
   1.278              <attribute name="excludes" default="**/package-info.java"/>
   1.279              <attribute name="classes.dir" default="${build.classes.dir}"/>
   1.280              <attribute name="gensrc.dir" default="${build.gensrc.dir}"/>
   1.281 -            <attribute name="javac.bootclasspath" default="${build.bootstrap.dir}/classes"/>
   1.282 -            <attribute name="javac.java.home" default="${boot.java.home}"/>
   1.283 -            <attribute name="javac.source" default="${javac.source}"/>
   1.284 -            <attribute name="javac.target" default="${javac.target}"/>
   1.285 +            <attribute name="bootclasspath" default="${build.bootstrap.dir}/classes"/>
   1.286 +            <attribute name="java.home" default="${boot.java.home}"/>
   1.287 +            <attribute name="source" default="${javac.source}"/>
   1.288 +            <attribute name="target" default="${javac.target}"/>
   1.289              <attribute name="release" default="${release}"/>
   1.290              <attribute name="full.version" default="${full.version}"/>
   1.291              <sequential>
   1.292 @@ -516,31 +474,18 @@
   1.293                            destdir="@{gensrc.dir}"
   1.294                            includes="**/*.properties"/>
   1.295                  <javac fork="true"
   1.296 -                       executable="@{javac.java.home}/bin/javac"
   1.297 -                       srcdir="@{gensrc.dir}"
   1.298 -                       destdir="@{classes.dir}"
   1.299 -                       includes="@{includes}"
   1.300 -                       sourcepath=""
   1.301 -                       includeAntRuntime="no"
   1.302 -                       source="@{javac.source}"
   1.303 -                       target="@{javac.target}">
   1.304 -                    <compilerarg value="-J-Xbootclasspath/p:@{javac.bootclasspath}"/>
   1.305 -                    <compilerarg line="${javac.version.opt}"/>
   1.306 -                    <compilerarg line="-Xlint"/>
   1.307 -                </javac>
   1.308 -                <javac fork="true"
   1.309 -                       executable="@{javac.java.home}/bin/javac"
   1.310 -                       srcdir="${src.classes.dir}"
   1.311 +                       executable="@{java.home}/bin/javac"
   1.312 +                       srcdir="${src.classes.dir}:@{gensrc.dir}"
   1.313                         destdir="@{classes.dir}"
   1.314                         includes="@{includes}"
   1.315                         excludes="@{excludes}"
   1.316                         sourcepath=""
   1.317                         includeAntRuntime="no"
   1.318 -                       source="@{javac.source}"
   1.319 -                       target="@{javac.target}"
   1.320 +                       source="@{source}"
   1.321 +                       target="@{target}"
   1.322                         debug="${javac.debug}"
   1.323                         debuglevel="${javac.debuglevel}">
   1.324 -                    <compilerarg value="-J-Xbootclasspath/p:@{javac.bootclasspath}"/>
   1.325 +                    <compilerarg value="-J-Xbootclasspath/p:@{bootclasspath}"/>
   1.326                      <compilerarg value="-Xbootclasspath/p:@{classes.dir}"/>
   1.327                      <compilerarg line="${javac.no.jdk.warnings}"/>
   1.328                      <compilerarg line="${javac.version.opt}"/>
   1.329 @@ -562,28 +507,27 @@
   1.330      <target name="-def-build-bootstrap-tool" depends="-check-boot.java.home,-def-build-tool">
   1.331          <presetdef name="build-bootstrap-tool">
   1.332              <build-tool
   1.333 -                javac.source="${boot.javac.source}"
   1.334 -                javac.target="${boot.javac.target}"
   1.335 -                gensrc.dir="${build.bootstrap.dir}/gensrc"
   1.336 -                classes.dir="${build.bootstrap.dir}/classes"
   1.337                  bin.dir="${build.bootstrap.dir}/bin"
   1.338 -                lib.dir="${build.bootstrap.dir}/lib"
   1.339 -                java="${boot.java}"
   1.340 -                javac.bootclasspath=""
   1.341 -                release="${bootstrap.release}"
   1.342 -                full.version="${bootstrap.full.version}"/>
   1.343 +                java="${boot.java}"/>
   1.344          </presetdef>
   1.345      </target>
   1.346  
   1.347      <target name="-def-build-bootstrap-jar" depends="-def-build-jar">
   1.348          <presetdef name="build-bootstrap-jar">
   1.349              <build-jar
   1.350 -                javac.source="${boot.javac.source}"
   1.351 -                javac.target="${boot.javac.target}"
   1.352 +                classes.dir="${build.bootstrap.dir}/classes"
   1.353 +                lib.dir="${build.bootstrap.dir}/lib"/>
   1.354 +        </presetdef>
   1.355 +    </target>
   1.356 +
   1.357 +    <target name="-def-build-bootstrap-classes" depends="-def-build-classes">
   1.358 +        <presetdef name="build-bootstrap-classes">
   1.359 +            <build-classes
   1.360 +                source="${boot.javac.source}"
   1.361 +                target="${boot.javac.target}"
   1.362                  gensrc.dir="${build.bootstrap.dir}/gensrc"
   1.363                  classes.dir="${build.bootstrap.dir}/classes"
   1.364 -                lib.dir="${build.bootstrap.dir}/lib"
   1.365 -                javac.bootclasspath=""
   1.366 +                bootclasspath=""
   1.367                  release="${bootstrap.release}"
   1.368                  full.version="${bootstrap.full.version}"/>
   1.369          </presetdef>

mercurial