make/build.xml

changeset 445
ceb2857fce7d
parent 441
4325b440eb3e
child 450
4011f49b4af8
     1.1 --- a/make/build.xml	Thu Dec 03 12:53:12 2009 -0800
     1.2 +++ b/make/build.xml	Tue Dec 08 09:16:34 2009 -0800
     1.3 @@ -56,6 +56,7 @@
     1.4      <property name="build.coverage.dir" location="${build.dir}/coverage"/>
     1.5      <property name="build.classes.dir" location="${build.dir}/classes"/>
     1.6      <property name="build.gensrc.dir" location="${build.dir}/gensrc"/>
     1.7 +    <property name="build.genstubs.dir" location="${build.dir}/genstubs"/>
     1.8      <property name="build.javadoc.dir" location="${build.dir}/javadoc"/>
     1.9      <property name="build.jtreg.dir" location="${build.dir}/jtreg"/>
    1.10      <property name="build.toolclasses.dir" location="${build.dir}/toolclasses"/>
    1.11 @@ -93,6 +94,41 @@
    1.12          <isset property="target.java.home"/>
    1.13      </condition>
    1.14  
    1.15 +    <!-- Logic for handling access import jdk classes, if available.
    1.16 +        import.jdk should be unset, or set to jdk home (to use rt.jar)
    1.17 +        or to jdk repo (to use src/share/classes).
    1.18 +        Based on the value, if any, set up default values for javac's sourcepath,
    1.19 +        classpath and bootclasspath. Note: the default values are overridden 
    1.20 +        in the build-bootstrap-classes macro. -->
    1.21 +
    1.22 +    <available property="import.jdk.src.dir" value="${import.jdk}/src/share/classes"
    1.23 +        filepath="${import.jdk}/src/share/classes" file="java/nio/file/Path.java"/>
    1.24 +    <available property="import.jdk.jar" value="${import.jdk}/jre/lib/rt.jar"
    1.25 +        ignoresystemclasses="true"
    1.26 +        classpath="${import.jdk}/jre/lib/rt.jar" classname="java.nio.file.Path"/>
    1.27 +
    1.28 +    <condition property="javac.sourcepath" value="${build.genstubs.dir}" else="">
    1.29 +        <isset property="import.jdk.src.dir"/>
    1.30 +    </condition>
    1.31 +
    1.32 +    <property name="javac.classpath" value=""/>
    1.33 +
    1.34 +    <condition property="javac.bootclasspath.opt"
    1.35 +            value="-Xbootclasspath:${build.classes.dir}:${import.jdk.jar}"
    1.36 +            else="-Xbootclasspath/p:${build.classes.dir}">
    1.37 +        <isset property="import.jdk.jar"/>
    1.38 +    </condition>
    1.39 +
    1.40 +    <condition property="exclude.files" value="" else="${require.import.jdk.files}">
    1.41 +        <isset property="import.jdk"/>
    1.42 +    </condition>
    1.43 +
    1.44 +    <!-- for debugging -->
    1.45 +    <target name="check-import.jdk">
    1.46 +        <echo message="import.jdk: ${import.jdk}"/>
    1.47 +        <echo message="import.jdk.jar: ${import.jdk.jar}"/>
    1.48 +        <echo message="import.jdk.src.dir: ${import.jdk.src.dir}"/>
    1.49 +    </target>
    1.50  
    1.51      <!-- Standard target to build deliverables for JDK build. -->
    1.52  
    1.53 @@ -108,11 +144,17 @@
    1.54          <zip file="${dist.lib.dir}/src.zip" basedir="${src.classes.dir}"/>
    1.55      </target>
    1.56  
    1.57 -    <target name="build-bootstrap-tools" depends="build-bootstrap-javac,build-bootstrap-javadoc,build-bootstrap-doclets,build-bootstrap-javah"/>
    1.58 +    <target name="build-bootstrap-tools"
    1.59 +        depends="build-bootstrap-javac,build-bootstrap-javadoc,build-bootstrap-doclets,build-bootstrap-javah"
    1.60 +    />
    1.61  
    1.62 -    <target name="build-all-tools" depends="build-javac,build-javadoc,build-doclets,build-javah,build-javap,build-apt"/>
    1.63 +    <target name="build-all-tools"
    1.64 +        depends="build-javac,build-javadoc,build-doclets,build-javah,build-javap,build-apt"
    1.65 +    />
    1.66  
    1.67 -    <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.68 +    <target name="build-all-classes" depends="build-bootstrap-javac,-create-import-jdk-stubs">
    1.69 +        <build-classes includes="${javac.includes} ${javadoc.includes} ${doclets.includes} ${javah.includes} ${javap.includes} ${apt.includes}"/>
    1.70 +    </target>
    1.71  
    1.72      <!-- clean -->
    1.73  
    1.74 @@ -188,23 +230,27 @@
    1.75  
    1.76      <!-- javac targets -->
    1.77  
    1.78 -    <target name="build-bootstrap-javac" depends="-def-build-bootstrap-tool">
    1.79 -        <build-bootstrap-tool name="javac" includes="${javac.includes}"/>
    1.80 +    <target name="build-bootstrap-javac"
    1.81 +            depends="-def-build-bootstrap-classes,-def-build-bootstrap-jar,-def-build-bootstrap-tool">
    1.82 +        <build-bootstrap-classes includes="${javac.includes}"/>
    1.83 +        <build-bootstrap-jar     name="javac" includes="${javac.includes}"/>
    1.84 +        <build-bootstrap-tool    name="javac"/>
    1.85      </target>
    1.86  
    1.87 -    <target name="build-classes-javac" depends="build-bootstrap-javac">
    1.88 -        <build-classes name="javac" includes="${javac.includes}"/>
    1.89 +    <target name="build-classes-javac" depends="build-bootstrap-javac,-create-import-jdk-stubs">
    1.90 +        <build-classes includes="${javac.includes}"/>
    1.91      </target>
    1.92  
    1.93 -    <target name="build-javac" depends="build-bootstrap-javac">
    1.94 -        <build-tool name="javac" includes="${javac.includes}"/>
    1.95 +    <target name="build-javac" depends="build-classes-javac">
    1.96 +        <build-jar  name="javac" includes="${javac.includes}"/>
    1.97 +        <build-tool name="javac"/>
    1.98      </target>
    1.99  
   1.100      <target name="javadoc-javac" depends="build-javac,-def-javadoc-tool">
   1.101          <javadoc-tool name="javac" includes="${javac.includes}" options="${javadoc.jls3.option}"/>
   1.102      </target>
   1.103  
   1.104 -    <target name="jtreg-javac" depends="build-javac,-def-jtreg">
   1.105 +    <target name="jtreg-javac" depends="build-javac,build-javap,-def-jtreg">
   1.106          <jtreg-tool name="javac" tests="${javac.tests}"/>
   1.107      </target>
   1.108  
   1.109 @@ -217,19 +263,20 @@
   1.110      <!-- javadoc targets -->
   1.111  
   1.112      <target name="build-bootstrap-javadoc" depends="build-bootstrap-javac">
   1.113 -        <build-bootstrap-tool name="javadoc"
   1.114 -                              includes="${javadoc.includes}"
   1.115 -                              jarclasspath="javac.jar doclets.jar"/>
   1.116 +        <build-bootstrap-classes includes="${javadoc.includes}"/>
   1.117 +        <build-bootstrap-jar     name="javadoc" includes="${javadoc.includes}"
   1.118 +                                 jarclasspath="javac.jar doclets.jar"/>
   1.119 +        <build-bootstrap-tool    name="javadoc"/>
   1.120      </target>
   1.121  
   1.122      <target name="build-classes-javadoc" depends="build-classes-javac">
   1.123 -        <build-classes name="javadoc" includes="${javadoc.includes}"/>
   1.124 +        <build-classes includes="${javadoc.includes}"/>
   1.125      </target>
   1.126  
   1.127 -    <target name="build-javadoc" depends="build-javac">
   1.128 -        <build-tool name="javadoc"
   1.129 -                    includes="${javadoc.includes}"
   1.130 +    <target name="build-javadoc" depends="build-javac,build-classes-javadoc">
   1.131 +        <build-jar  name="javadoc" includes="${javadoc.includes}"
   1.132                      jarclasspath="javac.jar doclets.jar"/>
   1.133 +        <build-tool name="javadoc"/>
   1.134      </target>
   1.135  
   1.136      <target name="javadoc-javadoc" depends="build-javadoc,-def-javadoc-tool">
   1.137 @@ -249,21 +296,19 @@
   1.138      <!-- doclets targets -->
   1.139  
   1.140      <target name="build-bootstrap-doclets" depends="build-bootstrap-javadoc,-def-build-bootstrap-jar">
   1.141 -        <build-bootstrap-jar name="doclets"
   1.142 -                              includes="${doclets.includes}"
   1.143 -                              jarmainclass="com.sun.tools.javadoc.Main"
   1.144 -                              jarclasspath="javadoc.jar"/>
   1.145 +        <build-bootstrap-classes includes="${doclets.includes}"/>
   1.146 +        <build-bootstrap-jar     name="doclets" includes="${doclets.includes}"
   1.147 +                                 jarmainclass="com.sun.tools.javadoc.Main"
   1.148 +                                 jarclasspath="javadoc.jar"/>
   1.149      </target>
   1.150  
   1.151      <target name="build-classes-doclets" depends="build-classes-javadoc">
   1.152 -        <build-classes name="doclets" includes="${doclets.includes}"/>
   1.153 +        <build-classes includes="${doclets.includes}"/>
   1.154      </target>
   1.155  
   1.156 -    <target name="build-doclets" depends="build-javadoc">
   1.157 +    <target name="build-doclets" depends="build-javadoc,build-classes-doclets">
   1.158          <!-- just jar, no bin for doclets -->
   1.159 -        <build-jar name="doclets"
   1.160 -                    includes="${doclets.includes}"
   1.161 -                    jarclasspath="javadoc.jar"/>
   1.162 +        <build-jar name="doclets" includes="${doclets.includes}" jarclasspath="javadoc.jar"/>
   1.163      </target>
   1.164  
   1.165      <!-- (no javadoc for doclets) -->
   1.166 @@ -281,19 +326,19 @@
   1.167      <!-- javah targets -->
   1.168  
   1.169      <target name="build-bootstrap-javah" depends="build-bootstrap-javadoc">
   1.170 -        <build-bootstrap-tool name="javah"
   1.171 -                              includes="${javah.includes}"
   1.172 -                              jarclasspath="javadoc.jar doclets.jar javac.jar"/>
   1.173 +        <build-bootstrap-classes includes="${javah.includes}"/>
   1.174 +        <build-bootstrap-jar     name="javah" includes="${javah.includes}"
   1.175 +                                 jarclasspath="javadoc.jar doclets.jar javac.jar"/>
   1.176 +        <build-bootstrap-tool    name="javah"/>
   1.177      </target>
   1.178  
   1.179 -    <target name="build-javah" depends="build-javac">
   1.180 -        <build-tool name="javah"
   1.181 -                    includes="${javah.includes}"
   1.182 -                    jarclasspath="javac.jar"/>
   1.183 +    <target name="build-javah" depends="build-javac,build-classes-javah">
   1.184 +        <build-jar  name="javah" includes="${javah.includes}" jarclasspath="javac.jar"/>
   1.185 +        <build-tool name="javah"/>
   1.186      </target>
   1.187  
   1.188      <target name="build-classes-javah" depends="build-classes-javadoc">
   1.189 -        <build-classes name="javah" includes="${javah.includes}"/>
   1.190 +        <build-classes includes="${javah.includes}"/>
   1.191      </target>
   1.192  
   1.193      <!-- (no javadoc for javah) -->
   1.194 @@ -310,21 +355,23 @@
   1.195  
   1.196      <!-- javap targets -->
   1.197  
   1.198 -    <target name="build-bootstrap-javap" depends="-def-build-bootstrap-tool">
   1.199 -        <build-bootstrap-tool name="javap"
   1.200 -                              includes="${javap.includes}"
   1.201 -                              jarmainclass="sun.tools.javap.Main"/>
   1.202 +    <target name="build-bootstrap-javap"
   1.203 +            depends="-def-build-bootstrap-classes,-def-build-bootstrap-jar,-def-build-bootstrap-tool">
   1.204 +        <build-bootstrap-classes includes="${javap.includes}"/>
   1.205 +        <build-bootstrap-jar     name="javap" includes="${javap.includes}"
   1.206 +                                 jarmainclass="sun.tools.javap.Main"/>
   1.207 +        <build-bootstrap-tool    name="javap"/>
   1.208      </target>
   1.209  
   1.210      <target name="build-classes-javap" depends="build-classes-javac">
   1.211 -        <build-classes name="javap" includes="${javap.includes}"/>
   1.212 +        <build-classes includes="${javap.includes}"/>
   1.213      </target>
   1.214  
   1.215 -    <target name="build-javap" depends="build-javac">
   1.216 -        <build-tool name="javap"
   1.217 -                    includes="${javap.includes}"
   1.218 +    <target name="build-javap" depends="build-javac,build-classes-javap">
   1.219 +        <build-jar  name="javap" includes="${javap.includes}"
   1.220                      jarmainclass="com.sun.tools.javap.Main"
   1.221                      jarclasspath="javac.jar"/>
   1.222 +        <build-tool name="javap"/>
   1.223      </target>
   1.224  
   1.225      <!-- (no javadoc for javap) -->
   1.226 @@ -342,19 +389,19 @@
   1.227      <!-- apt targets -->
   1.228  
   1.229      <target name="build-bootstrap-apt" depends="build-bootstrap-javac">
   1.230 -        <build-bootstrap-tool name="apt"
   1.231 -                              includes="${apt.includes}"
   1.232 -                              jarclasspath="javac.jar"/>
   1.233 +        <build-bootstrap-classes includes="${apt.includes}"/>
   1.234 +        <build-bootstrap-jar     name="apt" includes="${apt.includes}"
   1.235 +                                 jarclasspath="javac.jar"/>
   1.236 +        <build-bootstrap-tool    name="apt"/>
   1.237      </target>
   1.238  
   1.239 -    <target name="build-apt" depends="build-javac">
   1.240 -        <build-tool name="apt"
   1.241 -                    includes="${apt.includes}"
   1.242 -                    jarclasspath="javac.jar"/>
   1.243 +    <target name="build-apt" depends="build-javac,build-classes-apt">
   1.244 +        <build-jar  name="apt" includes="${apt.includes}" jarclasspath="javac.jar"/>
   1.245 +        <build-tool name="apt"/>
   1.246      </target>
   1.247  
   1.248      <target name="build-classes-apt" depends="build-classes-javac">
   1.249 -        <build-classes name="apt" includes="${apt.includes}"/>
   1.250 +        <build-classes includes="${apt.includes}"/>
   1.251      </target>
   1.252  
   1.253      <target name="javadoc-apt" depends="build-apt,-def-javadoc-tool">
   1.254 @@ -372,6 +419,17 @@
   1.255  
   1.256      <target name="apt" depends="build-apt,jtreg-apt,findbugs-apt"/>
   1.257  
   1.258 +    <!-- Create import JDK stubs -->
   1.259 +
   1.260 +    <target name="-create-import-jdk-stubs" depends="-def-genstubs" if="import.jdk.src.dir">
   1.261 +        <mkdir dir="${build.genstubs.dir}"/>
   1.262 +        <genstubs
   1.263 +            srcdir="${import.jdk.src.dir}" destdir="${build.genstubs.dir}"
   1.264 +            includes="${import.jdk.stub.files}"
   1.265 +            fork="true" classpath="${build.toolclasses.dir}:${build.bootstrap.dir}/classes:${ant.home}/lib/ant.jar"
   1.266 +        />
   1.267 +    </target>
   1.268 +
   1.269      <!-- Check targets -->
   1.270  
   1.271      <target name="-check-boot.java.home" depends="-def-check">
   1.272 @@ -396,40 +454,12 @@
   1.273  
   1.274      <!-- Ant macro and preset defs -->
   1.275  
   1.276 -    <target name="-def-build-tool" depends="-def-build-jar">
   1.277 +    <target name="-def-build-tool">
   1.278          <macrodef name="build-tool">
   1.279              <attribute name="name"/>
   1.280 -            <attribute name="includes"/>
   1.281 -            <attribute name="excludes" default="**/package-info.java"/>
   1.282              <attribute name="bin.dir" default="${dist.bin.dir}"/>
   1.283 -            <attribute name="classes.dir" default="${build.classes.dir}"/>
   1.284 -            <attribute name="gensrc.dir" default="${build.gensrc.dir}"/>
   1.285 -            <attribute name="lib.dir" default="${dist.lib.dir}"/>
   1.286              <attribute name="java" default="${launcher.java}"/>
   1.287 -            <attribute name="javac.bootclasspath" default="${build.bootstrap.dir}/classes"/>
   1.288 -            <attribute name="javac.java.home" default="${boot.java.home}"/>
   1.289 -            <attribute name="javac.source" default="${javac.source}"/>
   1.290 -            <attribute name="javac.target" default="${javac.target}"/>
   1.291 -            <attribute name="jarmainclass" default="com.sun.tools.@{name}.Main"/>
   1.292 -            <attribute name="jarclasspath" default=""/>
   1.293 -            <attribute name="release" default="${release}"/>
   1.294 -            <attribute name="full.version" default="${full.version}"/>
   1.295              <sequential>
   1.296 -                <build-jar
   1.297 -                    name="@{name}"
   1.298 -                    gensrc.dir="@{gensrc.dir}"
   1.299 -                    classes.dir="@{classes.dir}"
   1.300 -                    lib.dir="@{lib.dir}"
   1.301 -                    includes="@{includes}"
   1.302 -                    excludes="@{excludes}"
   1.303 -                    jarmainclass="@{jarmainclass}"
   1.304 -                    jarclasspath="@{jarclasspath}"
   1.305 -                    release="@{release}"
   1.306 -                    full.version="@{full.version}"
   1.307 -                    javac.bootclasspath="@{javac.bootclasspath}"
   1.308 -                    javac.source="@{javac.source}"
   1.309 -                    javac.target="@{javac.target}"
   1.310 -                />
   1.311                  <mkdir dir="@{bin.dir}"/>
   1.312                  <copy file="${src.bin.dir}/launcher.sh-template" tofile="@{bin.dir}/@{name}">
   1.313                      <filterset begintoken="#" endtoken="#">
   1.314 @@ -442,35 +472,15 @@
   1.315          </macrodef>
   1.316      </target>
   1.317  
   1.318 -    <target name="-def-build-jar" depends="-def-build-classes">
   1.319 +    <target name="-def-build-jar">
   1.320          <macrodef name="build-jar">
   1.321              <attribute name="name"/>
   1.322              <attribute name="includes"/>
   1.323 -            <attribute name="excludes" default="**/package-info.java"/>
   1.324              <attribute name="classes.dir" default="${build.classes.dir}"/>
   1.325 -            <attribute name="gensrc.dir" default="${build.gensrc.dir}"/>
   1.326              <attribute name="lib.dir" default="${dist.lib.dir}"/>
   1.327 -            <attribute name="javac.bootclasspath" default="${build.bootstrap.dir}/classes"/>
   1.328 -            <attribute name="javac.java.home" default="${boot.java.home}"/>
   1.329 -            <attribute name="javac.source" default="${javac.source}"/>
   1.330 -            <attribute name="javac.target" default="${javac.target}"/>
   1.331              <attribute name="jarmainclass" default="com.sun.tools.@{name}.Main"/>
   1.332              <attribute name="jarclasspath" default=""/>
   1.333 -            <attribute name="release" default="${release}"/>
   1.334 -            <attribute name="full.version" default="${full.version}"/>
   1.335              <sequential>
   1.336 -                <build-classes
   1.337 -                    name="@{name}"
   1.338 -                    gensrc.dir="@{gensrc.dir}"
   1.339 -                    classes.dir="@{classes.dir}"
   1.340 -                    includes="@{includes}"
   1.341 -                    excludes="@{excludes}"
   1.342 -                    release="@{release}"
   1.343 -                    full.version="@{full.version}"
   1.344 -                    javac.bootclasspath="@{javac.bootclasspath}"
   1.345 -                    javac.source="@{javac.source}"
   1.346 -                    javac.target="@{javac.target}"
   1.347 -                />
   1.348                  <mkdir dir="@{lib.dir}"/>
   1.349                  <jar destfile="@{lib.dir}/@{name}.jar"
   1.350                       basedir="@{classes.dir}"
   1.351 @@ -486,18 +496,24 @@
   1.352  
   1.353      <target name="-def-build-classes" depends="-def-pcompile">
   1.354          <macrodef name="build-classes">
   1.355 -            <attribute name="name"/>
   1.356              <attribute name="includes"/>
   1.357 -            <attribute name="excludes" default="**/package-info.java"/>
   1.358 +            <attribute name="excludes" default="${exclude.files} **/package-info.java"/>
   1.359              <attribute name="classes.dir" default="${build.classes.dir}"/>
   1.360              <attribute name="gensrc.dir" default="${build.gensrc.dir}"/>
   1.361              <attribute name="javac.bootclasspath" default="${build.bootstrap.dir}/classes"/>
   1.362 -            <attribute name="javac.java.home" default="${boot.java.home}"/>
   1.363 -            <attribute name="javac.source" default="${javac.source}"/>
   1.364 -            <attribute name="javac.target" default="${javac.target}"/>
   1.365 +            <attribute name="bootclasspath.opt" default="${javac.bootclasspath.opt}"/>
   1.366 +            <attribute name="classpath" default="${javac.classpath}"/>
   1.367 +            <attribute name="sourcepath" default="${javac.sourcepath}"/>
   1.368 +            <attribute name="java.home" default="${boot.java.home}"/>
   1.369 +            <attribute name="source" default="${javac.source}"/>
   1.370 +            <attribute name="target" default="${javac.target}"/>
   1.371              <attribute name="release" default="${release}"/>
   1.372              <attribute name="full.version" default="${full.version}"/>
   1.373              <sequential>
   1.374 +                <echo level="verbose" message="build-classes: excludes=@{excludes}"/>
   1.375 +                <echo level="verbose" message="build-classes: bootclasspath.opt=@{bootclasspath.opt}"/>
   1.376 +                <echo level="verbose" message="build-classes: classpath=@{classpath}"/>
   1.377 +                <echo level="verbose" message="build-classes: sourcepath=@{sourcepath}"/>
   1.378                  <mkdir dir="@{gensrc.dir}"/>
   1.379                  <mkdir dir="@{classes.dir}"/>
   1.380                  <pcompile srcdir="${src.classes.dir}"
   1.381 @@ -516,39 +532,28 @@
   1.382                            destdir="@{gensrc.dir}"
   1.383                            includes="**/*.properties"/>
   1.384                  <javac fork="true"
   1.385 -                       executable="@{javac.java.home}/bin/javac"
   1.386 -                       srcdir="@{gensrc.dir}"
   1.387 -                       destdir="@{classes.dir}"
   1.388 -                       includes="@{includes}"
   1.389 -                       sourcepath=""
   1.390 -                       includeAntRuntime="no"
   1.391 -                       source="@{javac.source}"
   1.392 -                       target="@{javac.target}">
   1.393 -                    <compilerarg value="-J-Xbootclasspath/p:@{javac.bootclasspath}"/>
   1.394 -                    <compilerarg line="${javac.version.opt}"/>
   1.395 -                    <compilerarg line="-Xlint"/>
   1.396 -                </javac>
   1.397 -                <javac fork="true"
   1.398 -                       executable="@{javac.java.home}/bin/javac"
   1.399 -                       srcdir="${src.classes.dir}"
   1.400 +                       executable="@{java.home}/bin/javac"
   1.401 +                       srcdir="${src.classes.dir}:@{gensrc.dir}"
   1.402                         destdir="@{classes.dir}"
   1.403                         includes="@{includes}"
   1.404                         excludes="@{excludes}"
   1.405 -                       sourcepath=""
   1.406 +                       sourcepath="@{sourcepath}"
   1.407 +                       classpath="@{classpath}"
   1.408                         includeAntRuntime="no"
   1.409 -                       source="@{javac.source}"
   1.410 -                       target="@{javac.target}"
   1.411 +                       source="@{source}"
   1.412 +                       target="@{target}"
   1.413                         debug="${javac.debug}"
   1.414                         debuglevel="${javac.debuglevel}">
   1.415 +                    <compilerarg value="-implicit:none"/>
   1.416 +                    <compilerarg value="-Xprefer:source"/>
   1.417                      <compilerarg value="-J-Xbootclasspath/p:@{javac.bootclasspath}"/>
   1.418 -                    <compilerarg value="-Xbootclasspath/p:@{classes.dir}"/>
   1.419 +                    <compilerarg line="@{bootclasspath.opt}"/>
   1.420                      <compilerarg line="${javac.no.jdk.warnings}"/>
   1.421                      <compilerarg line="${javac.version.opt}"/>
   1.422                      <compilerarg line="${javac.lint.opts}"/>
   1.423                  </javac>
   1.424                  <copy todir="@{classes.dir}">
   1.425 -                    <fileset dir="${src.classes.dir}">
   1.426 -                        <include name="@{includes}"/>
   1.427 +                    <fileset dir="${src.classes.dir}" includes="@{includes}">
   1.428                          <exclude name="**/*.java"/>
   1.429                          <exclude name="**/*.properties"/>
   1.430                          <exclude name="**/*-template"/>
   1.431 @@ -562,30 +567,32 @@
   1.432      <target name="-def-build-bootstrap-tool" depends="-check-boot.java.home,-def-build-tool">
   1.433          <presetdef name="build-bootstrap-tool">
   1.434              <build-tool
   1.435 -                javac.source="${boot.javac.source}"
   1.436 -                javac.target="${boot.javac.target}"
   1.437 -                gensrc.dir="${build.bootstrap.dir}/gensrc"
   1.438 -                classes.dir="${build.bootstrap.dir}/classes"
   1.439                  bin.dir="${build.bootstrap.dir}/bin"
   1.440 -                lib.dir="${build.bootstrap.dir}/lib"
   1.441 -                java="${boot.java}"
   1.442 -                javac.bootclasspath=""
   1.443 -                release="${bootstrap.release}"
   1.444 -                full.version="${bootstrap.full.version}"/>
   1.445 +                java="${boot.java}"/>
   1.446          </presetdef>
   1.447      </target>
   1.448  
   1.449      <target name="-def-build-bootstrap-jar" depends="-def-build-jar">
   1.450          <presetdef name="build-bootstrap-jar">
   1.451              <build-jar
   1.452 -                javac.source="${boot.javac.source}"
   1.453 -                javac.target="${boot.javac.target}"
   1.454 +                classes.dir="${build.bootstrap.dir}/classes"
   1.455 +                lib.dir="${build.bootstrap.dir}/lib"/>
   1.456 +        </presetdef>
   1.457 +    </target>
   1.458 +
   1.459 +    <target name="-def-build-bootstrap-classes" depends="-def-build-classes">
   1.460 +        <presetdef name="build-bootstrap-classes">
   1.461 +            <build-classes
   1.462 +                source="${boot.javac.source}"
   1.463 +                target="${boot.javac.target}"
   1.464                  gensrc.dir="${build.bootstrap.dir}/gensrc"
   1.465                  classes.dir="${build.bootstrap.dir}/classes"
   1.466 -                lib.dir="${build.bootstrap.dir}/lib"
   1.467                  javac.bootclasspath=""
   1.468 +                bootclasspath.opt="-Xbootclasspath/p:${build.bootstrap.dir}/classes"
   1.469 +                sourcepath=""
   1.470                  release="${bootstrap.release}"
   1.471 -                full.version="${bootstrap.full.version}"/>
   1.472 +                full.version="${bootstrap.full.version}"
   1.473 +                excludes="${require.import.jdk.files} **/package-info.java"/>
   1.474          </presetdef>
   1.475      </target>
   1.476  
   1.477 @@ -603,6 +610,20 @@
   1.478                   classpath="${build.toolclasses.dir}/"/>
   1.479      </target>
   1.480  
   1.481 +    <target name="-def-genstubs" depends="build-bootstrap-javac">
   1.482 +        <mkdir dir="${build.toolclasses.dir}"/>
   1.483 +        <javac fork="true"
   1.484 +               source="${boot.javac.source}"
   1.485 +               target="${boot.javac.target}"
   1.486 +               executable="${boot.java.home}/bin/javac"
   1.487 +               srcdir="${make.tools.dir}/GenStubs"
   1.488 +               destdir="${build.toolclasses.dir}/"
   1.489 +               classpath="${build.bootstrap.dir}/classes:${ant.home}/lib/ant.jar"/>
   1.490 +        <taskdef name="genstubs"
   1.491 +                 classname="GenStubs$$Ant"
   1.492 +                 classpath="${build.toolclasses.dir}/"/>
   1.493 +    </target>
   1.494 +
   1.495      <target name="-def-javadoc-tool" depends="-check-target.java.home">
   1.496          <macrodef name="javadoc-tool">
   1.497              <attribute name="name"/>
   1.498 @@ -764,7 +785,7 @@
   1.499  
   1.500      <!-- standard JDK target -->
   1.501      <target name="sanity"
   1.502 -        description="display settings of congiguration values">
   1.503 +        description="display settings of configuration values">
   1.504          <echo level="info">ant.home = ${ant.home}</echo>
   1.505          <echo level="info">boot.java.home = ${boot.java.home}</echo>
   1.506          <echo level="info">target.java.home = ${target.java.home}</echo>

mercurial