make/build.xml

Print this page




  95 
  96 
  97     <!-- Standard target to build deliverables for JDK build. -->
  98 
  99     <target name="build" depends="build-bootstrap-tools,build-all-classes">
 100         <copy todir="${dist.dir}/bootstrap">
 101             <fileset dir="${build.bootstrap.dir}" includes="bin/,lib/"/>
 102         </copy>
 103         <chmod dir="${dist.dir}/bootstrap/bin" perm="ugo+rx">
 104             <include name="*"/>
 105         </chmod>
 106         <mkdir dir="${dist.lib.dir}"/>
 107         <jar file="${dist.lib.dir}/classes.jar" basedir="${build.classes.dir}"/>
 108         <zip file="${dist.lib.dir}/src.zip" basedir="${src.classes.dir}"/>
 109     </target>
 110 
 111     <target name="build-bootstrap-tools" depends="build-bootstrap-javac,build-bootstrap-javadoc,build-bootstrap-doclets,build-bootstrap-javah"/>
 112 
 113     <target name="build-all-tools" depends="build-javac,build-javadoc,build-doclets,build-javah,build-javap,build-apt"/>
 114 
 115     <target name="build-all-classes" depends="build-classes-javac,build-classes-javadoc,build-classes-doclets,build-classes-javah,build-classes-javap,build-classes-apt"/>


 116 
 117     <!-- clean -->
 118 
 119     <target name="clean" description="Delete all generated files">
 120         <delete dir="${build.dir}"/>
 121         <delete dir="${dist.dir}"/>
 122     </target>
 123 
 124     <!-- Additional targets for running tools on the build -->
 125 
 126     <target name="jtreg" depends="build-all-tools,-def-jtreg">
 127         <jtreg-tool name="all" tests="${jtreg.tests}"/>
 128     </target>
 129 
 130     <target name="findbugs" depends="-def-findbugs,build-all-tools">
 131         <property name="findbugs.reportLevel" value="medium"/>
 132         <mkdir dir="${dist.findbugs.dir}"/>
 133         <findbugs
 134             home="${findbugs.home}"
 135             projectName="JDK langtools ${full.version}"


 171             <fileset dir="${build.classes.dir}"
 172                includes="**/*.class" excludes="**/resources/*.class"/>
 173         </cobertura-instrument>
 174     </target>
 175 
 176     <target name="coverage-report" depends="-def-cobertura">
 177         <mkdir dir="${dist.coverage.dir}"/>
 178         <cobertura-report
 179             srcdir="${src.classes.dir}"
 180             destdir="${dist.coverage.dir}"
 181             datafile="${build.coverage.dir}/cobertura.ser"/>
 182         <cobertura-report
 183             format="xml"
 184             srcdir="${src.classes.dir}"
 185             destdir="${dist.coverage.dir}"
 186             datafile="${build.coverage.dir}/cobertura.ser"/>
 187     </target>
 188 
 189     <!-- javac targets -->
 190 
 191     <target name="build-bootstrap-javac" depends="-def-build-bootstrap-tool">
 192         <build-bootstrap-tool name="javac" includes="${javac.includes}"/>



 193     </target>
 194 
 195     <target name="build-classes-javac" depends="build-bootstrap-javac">
 196         <build-classes name="javac" includes="${javac.includes}"/>
 197     </target>
 198 
 199     <target name="build-javac" depends="build-bootstrap-javac">
 200         <build-tool name="javac" includes="${javac.includes}"/>

 201     </target>
 202 
 203     <target name="javadoc-javac" depends="build-javac,-def-javadoc-tool">
 204         <javadoc-tool name="javac" includes="${javac.includes}" options="${javadoc.jls3.option}"/>
 205     </target>
 206 
 207     <target name="jtreg-javac" depends="build-javac,-def-jtreg">
 208         <jtreg-tool name="javac" tests="${javac.tests}"/>
 209     </target>
 210 
 211     <target name="findbugs-javac" depends="build-javac,-def-findbugs">
 212         <findbugs-tool name="javac"/>
 213     </target>
 214 
 215     <target name="javac" depends="build-javac,jtreg-javac,findbugs-javac"/>
 216 
 217     <!-- javadoc targets -->
 218 
 219     <target name="build-bootstrap-javadoc" depends="build-bootstrap-javac">
 220         <build-bootstrap-tool name="javadoc"
 221                               includes="${javadoc.includes}"
 222                               jarclasspath="javac.jar doclets.jar"/>

 223     </target>
 224 
 225     <target name="build-classes-javadoc" depends="build-classes-javac">
 226         <build-classes name="javadoc" includes="${javadoc.includes}"/>
 227     </target>
 228 
 229     <target name="build-javadoc" depends="build-javac">
 230         <build-tool name="javadoc"
 231                     includes="${javadoc.includes}"
 232                     jarclasspath="javac.jar doclets.jar"/>

 233     </target>
 234 
 235     <target name="javadoc-javadoc" depends="build-javadoc,-def-javadoc-tool">
 236         <javadoc-tool name="javadoc" includes="${javadoc.includes}"/>
 237     </target>
 238 
 239     <target name="jtreg-javadoc" depends="build-javadoc,-def-jtreg">
 240         <jtreg-tool name="javadoc" tests="${javadoc.tests}"/>
 241     </target>
 242 
 243     <target name="findbugs-javadoc" depends="build-javadoc,-def-findbugs">
 244         <findbugs-tool name="javadoc"/>
 245     </target>
 246 
 247     <target name="javadoc" depends="build-javadoc,jtreg-javadoc,findbugs-javadoc"/>
 248 
 249     <!-- doclets targets -->
 250 
 251     <target name="build-bootstrap-doclets" depends="build-bootstrap-javadoc,-def-build-bootstrap-jar">
 252         <build-bootstrap-jar name="doclets"
 253                               includes="${doclets.includes}"
 254                               jarmainclass="com.sun.tools.javadoc.Main"
 255                               jarclasspath="javadoc.jar"/>
 256     </target>
 257 
 258     <target name="build-classes-doclets" depends="build-classes-javadoc">
 259         <build-classes name="doclets" includes="${doclets.includes}"/>
 260     </target>
 261 
 262     <target name="build-doclets" depends="build-javadoc">
 263         <!-- just jar, no bin for doclets -->
 264         <build-jar name="doclets"
 265                     includes="${doclets.includes}"
 266                     jarclasspath="javadoc.jar"/>
 267     </target>
 268 
 269     <!-- (no javadoc for doclets) -->
 270 
 271     <target name="jtreg-doclets" depends="build-doclets,-def-jtreg">
 272         <jtreg-tool name="doclets" tests="${doclets.tests}"/>
 273     </target>
 274 
 275     <target name="findbugs-doclets" depends="build-doclets,-def-findbugs">
 276         <findbugs-tool name="doclets"/>
 277     </target>
 278 
 279     <target name="doclets" depends="build-doclets,jtreg-doclets,findbugs-doclets"/>
 280 
 281     <!-- javah targets -->
 282 
 283     <target name="build-bootstrap-javah" depends="build-bootstrap-javadoc">
 284         <build-bootstrap-tool name="javah"
 285                               includes="${javah.includes}"
 286                               jarclasspath="javadoc.jar doclets.jar javac.jar"/>

 287     </target>
 288 
 289     <target name="build-javah" depends="build-javac">
 290         <build-tool name="javah"
 291                     includes="${javah.includes}"
 292                     jarclasspath="javac.jar"/>
 293     </target>
 294 
 295     <target name="build-classes-javah" depends="build-classes-javadoc">
 296         <build-classes name="javah" includes="${javah.includes}"/>
 297     </target>
 298 
 299     <!-- (no javadoc for javah) -->
 300 
 301     <target name="jtreg-javah" depends="build-javah,-def-jtreg">
 302         <jtreg-tool name="javah" tests="${javah.tests}"/>
 303     </target>
 304 
 305     <target name="findbugs-javah" depends="build-javah,-def-findbugs">
 306         <findbugs-tool name="javah"/>
 307     </target>
 308 
 309     <target name="javah" depends="build-javah,jtreg-javah,findbugs-javah"/>
 310 
 311     <!-- javap targets -->
 312 
 313     <target name="build-bootstrap-javap" depends="-def-build-bootstrap-tool">
 314         <build-bootstrap-tool name="javap"
 315                               includes="${javap.includes}"

 316                               jarmainclass="sun.tools.javap.Main"/>

 317     </target>
 318 
 319     <target name="build-classes-javap" depends="build-classes-javac">
 320         <build-classes name="javap" includes="${javap.includes}"/>
 321     </target>
 322 
 323     <target name="build-javap" depends="build-javac">
 324         <build-tool name="javap"
 325                     includes="${javap.includes}"
 326                     jarmainclass="com.sun.tools.javap.Main"
 327                     jarclasspath="javac.jar"/>

 328     </target>
 329 
 330     <!-- (no javadoc for javap) -->
 331 
 332     <target name="jtreg-javap" depends="build-javap,-def-jtreg">
 333         <jtreg-tool name="javap" tests="${javap.tests}"/>
 334     </target>
 335 
 336     <target name="findbugs-javap" depends="build-javap,-def-findbugs">
 337         <findbugs-tool name="javap"/>
 338     </target>
 339 
 340     <target name="javap" depends="build-javap,jtreg-javap,findbugs-javap"/>
 341 
 342     <!-- apt targets -->
 343 
 344     <target name="build-bootstrap-apt" depends="build-bootstrap-javac">
 345         <build-bootstrap-tool name="apt"
 346                               includes="${apt.includes}"
 347                               jarclasspath="javac.jar"/>

 348     </target>
 349 
 350     <target name="build-apt" depends="build-javac">
 351         <build-tool name="apt"
 352                     includes="${apt.includes}"
 353                     jarclasspath="javac.jar"/>
 354     </target>
 355 
 356     <target name="build-classes-apt" depends="build-classes-javac">
 357         <build-classes name="apt" includes="${apt.includes}"/>
 358     </target>
 359 
 360     <target name="javadoc-apt" depends="build-apt,-def-javadoc-tool">
 361         <javadoc-tool name="apt" includes="${apt.includes}"/>
 362     </target>
 363 
 364 
 365     <target name="jtreg-apt" depends="build-apt,-def-jtreg">
 366         <jtreg-tool name="apt" tests="${apt.tests}"/>
 367     </target>
 368 
 369     <target name="findbugs-apt" depends="build-apt,-def-findbugs">
 370         <findbugs-tool name="apt"/>
 371     </target>
 372 
 373     <target name="apt" depends="build-apt,jtreg-apt,findbugs-apt"/>
 374 
 375     <!-- Check targets -->
 376 
 377     <target name="-check-boot.java.home" depends="-def-check">


 379     </target>
 380 
 381     <target name="-check-target.java.home" depends="-def-check">
 382         <check name="target java" property="target.java.home" marker="${java.marker}"/>
 383     </target>
 384 
 385     <target name="-check-cobertura.home" depends="-def-check">
 386         <check name="cobertura" property="cobertura.home" marker="cobertura.jar"/>
 387     </target>
 388 
 389     <target name="-check-findbugs.home" depends="-def-check">
 390         <check name="findbugs" property="findbugs.home" marker="lib/findbugs.jar"/>
 391     </target>
 392 
 393     <target name="-check-jtreg.home" depends="-def-check">
 394         <check name="jtreg" property="jtreg.home" marker="lib/jtreg.jar"/>
 395     </target>
 396 
 397     <!-- Ant macro and preset defs -->
 398 
 399     <target name="-def-build-tool" depends="-def-build-jar">
 400         <macrodef name="build-tool">
 401             <attribute name="name"/>
 402             <attribute name="includes"/>
 403             <attribute name="excludes" default="**/package-info.java"/>
 404             <attribute name="bin.dir" default="${dist.bin.dir}"/>
 405             <attribute name="classes.dir" default="${build.classes.dir}"/>
 406             <attribute name="gensrc.dir" default="${build.gensrc.dir}"/>
 407             <attribute name="lib.dir" default="${dist.lib.dir}"/>
 408             <attribute name="java" default="${launcher.java}"/>
 409             <attribute name="javac.bootclasspath" default="${build.bootstrap.dir}/classes"/>
 410             <attribute name="javac.java.home" default="${boot.java.home}"/>
 411             <attribute name="javac.source" default="${javac.source}"/>
 412             <attribute name="javac.target" default="${javac.target}"/>
 413             <attribute name="jarmainclass" default="com.sun.tools.@{name}.Main"/>
 414             <attribute name="jarclasspath" default=""/>
 415             <attribute name="release" default="${release}"/>
 416             <attribute name="full.version" default="${full.version}"/>
 417             <sequential>
 418                 <build-jar
 419                     name="@{name}"
 420                     gensrc.dir="@{gensrc.dir}"
 421                     classes.dir="@{classes.dir}"
 422                     lib.dir="@{lib.dir}"
 423                     includes="@{includes}"
 424                     excludes="@{excludes}"
 425                     jarmainclass="@{jarmainclass}"
 426                     jarclasspath="@{jarclasspath}"
 427                     release="@{release}"
 428                     full.version="@{full.version}"
 429                     javac.bootclasspath="@{javac.bootclasspath}"
 430                     javac.source="@{javac.source}"
 431                     javac.target="@{javac.target}"
 432                 />
 433                 <mkdir dir="@{bin.dir}"/>
 434                 <copy file="${src.bin.dir}/launcher.sh-template" tofile="@{bin.dir}/@{name}">
 435                     <filterset begintoken="#" endtoken="#">
 436                         <filter token="PROGRAM" value="@{name}"/>
 437                         <filter token="TARGET_JAVA" value="@{java}"/>
 438                     </filterset>
 439                 </copy>
 440                 <chmod file="@{bin.dir}/@{name}" perm="ugo+rx"/>
 441             </sequential>
 442         </macrodef>
 443     </target>
 444 
 445     <target name="-def-build-jar" depends="-def-build-classes">
 446         <macrodef name="build-jar">
 447             <attribute name="name"/>
 448             <attribute name="includes"/>
 449             <attribute name="excludes" default="**/package-info.java"/>
 450             <attribute name="classes.dir" default="${build.classes.dir}"/>
 451             <attribute name="gensrc.dir" default="${build.gensrc.dir}"/>
 452             <attribute name="lib.dir" default="${dist.lib.dir}"/>
 453             <attribute name="javac.bootclasspath" default="${build.bootstrap.dir}/classes"/>
 454             <attribute name="javac.java.home" default="${boot.java.home}"/>
 455             <attribute name="javac.source" default="${javac.source}"/>
 456             <attribute name="javac.target" default="${javac.target}"/>
 457             <attribute name="jarmainclass" default="com.sun.tools.@{name}.Main"/>
 458             <attribute name="jarclasspath" default=""/>
 459             <attribute name="release" default="${release}"/>
 460             <attribute name="full.version" default="${full.version}"/>
 461             <sequential>
 462                 <build-classes
 463                     name="@{name}"
 464                     gensrc.dir="@{gensrc.dir}"
 465                     classes.dir="@{classes.dir}"
 466                     includes="@{includes}"
 467                     excludes="@{excludes}"
 468                     release="@{release}"
 469                     full.version="@{full.version}"
 470                     javac.bootclasspath="@{javac.bootclasspath}"
 471                     javac.source="@{javac.source}"
 472                     javac.target="@{javac.target}"
 473                 />
 474                 <mkdir dir="@{lib.dir}"/>
 475                 <jar destfile="@{lib.dir}/@{name}.jar"
 476                      basedir="@{classes.dir}"
 477                      includes="@{includes}">
 478                     <manifest>
 479                         <attribute name="Main-Class" value="@{jarmainclass}"/>
 480                         <attribute name="Class-Path" value="@{jarclasspath}"/>
 481                     </manifest>
 482                 </jar>
 483             </sequential>
 484         </macrodef>
 485     </target>
 486 
 487     <target name="-def-build-classes" depends="-def-pcompile">
 488         <macrodef name="build-classes">
 489             <attribute name="name"/>
 490             <attribute name="includes"/>
 491             <attribute name="excludes" default="**/package-info.java"/>
 492             <attribute name="classes.dir" default="${build.classes.dir}"/>
 493             <attribute name="gensrc.dir" default="${build.gensrc.dir}"/>
 494             <attribute name="javac.bootclasspath" default="${build.bootstrap.dir}/classes"/>
 495             <attribute name="javac.java.home" default="${boot.java.home}"/>
 496             <attribute name="javac.source" default="${javac.source}"/>
 497             <attribute name="javac.target" default="${javac.target}"/>
 498             <attribute name="release" default="${release}"/>
 499             <attribute name="full.version" default="${full.version}"/>
 500             <sequential>
 501                 <mkdir dir="@{gensrc.dir}"/>
 502                 <mkdir dir="@{classes.dir}"/>
 503                 <pcompile srcdir="${src.classes.dir}"
 504                           destdir="@{gensrc.dir}"
 505                           includes="@{includes}"/>
 506                 <copy todir="@{gensrc.dir}">
 507                     <fileset dir="${src.classes.dir}" includes="@{includes}"/>
 508                     <globmapper from="*.properties-template" to="*.properties"/>
 509                     <filterset begintoken="$(" endtoken=")">
 510                         <filter token="JDK_VERSION" value="${jdk.version}"/>
 511                         <filter token="RELEASE" value="@{release}"/>
 512                         <filter token="FULL_VERSION" value="@{full.version}"/>
 513                     </filterset>
 514                 </copy>
 515                 <pcompile srcdir="@{gensrc.dir}"
 516                           destdir="@{gensrc.dir}"
 517                           includes="**/*.properties"/>
 518                 <javac fork="true"
 519                        executable="@{javac.java.home}/bin/javac"
 520                        srcdir="@{gensrc.dir}"
 521                        destdir="@{classes.dir}"
 522                        includes="@{includes}"
 523                        sourcepath=""
 524                        includeAntRuntime="no"
 525                        source="@{javac.source}"
 526                        target="@{javac.target}">
 527                     <compilerarg value="-J-Xbootclasspath/p:@{javac.bootclasspath}"/>
 528                     <compilerarg line="${javac.version.opt}"/>
 529                     <compilerarg line="-Xlint"/>
 530                 </javac>
 531                 <javac fork="true"
 532                        executable="@{javac.java.home}/bin/javac"
 533                        srcdir="${src.classes.dir}"
 534                        destdir="@{classes.dir}"
 535                        includes="@{includes}"
 536                        excludes="@{excludes}"
 537                        sourcepath=""
 538                        includeAntRuntime="no"
 539                        source="@{javac.source}"
 540                        target="@{javac.target}"
 541                        debug="${javac.debug}"
 542                        debuglevel="${javac.debuglevel}">
 543                     <compilerarg value="-J-Xbootclasspath/p:@{javac.bootclasspath}"/>
 544                     <compilerarg value="-Xbootclasspath/p:@{classes.dir}"/>
 545                     <compilerarg line="${javac.no.jdk.warnings}"/>
 546                     <compilerarg line="${javac.version.opt}"/>
 547                     <compilerarg line="${javac.lint.opts}"/>
 548                 </javac>
 549                 <copy todir="@{classes.dir}">
 550                     <fileset dir="${src.classes.dir}">
 551                         <include name="@{includes}"/>
 552                         <exclude name="**/*.java"/>
 553                         <exclude name="**/*.properties"/>
 554                         <exclude name="**/*-template"/>
 555                         <exclude name="**/package.html"/>
 556                     </fileset>
 557                 </copy>
 558             </sequential>
 559         </macrodef>
 560     </target>
 561 
 562     <target name="-def-build-bootstrap-tool" depends="-check-boot.java.home,-def-build-tool">
 563         <presetdef name="build-bootstrap-tool">
 564             <build-tool
 565                 javac.source="${boot.javac.source}"
 566                 javac.target="${boot.javac.target}"
 567                 gensrc.dir="${build.bootstrap.dir}/gensrc"
 568                 classes.dir="${build.bootstrap.dir}/classes"
 569                 bin.dir="${build.bootstrap.dir}/bin"
 570                 lib.dir="${build.bootstrap.dir}/lib"
 571                 java="${boot.java}"
 572                 javac.bootclasspath=""
 573                 release="${bootstrap.release}"
 574                 full.version="${bootstrap.full.version}"/>
 575         </presetdef>
 576     </target>
 577 
 578     <target name="-def-build-bootstrap-jar" depends="-def-build-jar">
 579         <presetdef name="build-bootstrap-jar">
 580             <build-jar








 581                 javac.source="${boot.javac.source}"
 582                 javac.target="${boot.javac.target}"
 583                 gensrc.dir="${build.bootstrap.dir}/gensrc"
 584                 classes.dir="${build.bootstrap.dir}/classes"
 585                 lib.dir="${build.bootstrap.dir}/lib"
 586                 javac.bootclasspath=""
 587                 release="${bootstrap.release}"
 588                 full.version="${bootstrap.full.version}"/>
 589         </presetdef>
 590     </target>
 591 
 592     <target name="-def-pcompile">
 593         <mkdir dir="${build.toolclasses.dir}"/>
 594         <javac fork="true"
 595                source="${boot.javac.source}"
 596                target="${boot.javac.target}"
 597                executable="${boot.java.home}/bin/javac"
 598                srcdir="${make.tools.dir}/CompileProperties"
 599                destdir="${build.toolclasses.dir}/"
 600                classpath="${ant.home}/lib/ant.jar"/>
 601         <taskdef name="pcompile"
 602                  classname="CompilePropertiesTask"
 603                  classpath="${build.toolclasses.dir}/"/>
 604     </target>
 605 




  95 
  96 
  97     <!-- Standard target to build deliverables for JDK build. -->
  98 
  99     <target name="build" depends="build-bootstrap-tools,build-all-classes">
 100         <copy todir="${dist.dir}/bootstrap">
 101             <fileset dir="${build.bootstrap.dir}" includes="bin/,lib/"/>
 102         </copy>
 103         <chmod dir="${dist.dir}/bootstrap/bin" perm="ugo+rx">
 104             <include name="*"/>
 105         </chmod>
 106         <mkdir dir="${dist.lib.dir}"/>
 107         <jar file="${dist.lib.dir}/classes.jar" basedir="${build.classes.dir}"/>
 108         <zip file="${dist.lib.dir}/src.zip" basedir="${src.classes.dir}"/>
 109     </target>
 110 
 111     <target name="build-bootstrap-tools" depends="build-bootstrap-javac,build-bootstrap-javadoc,build-bootstrap-doclets,build-bootstrap-javah"/>
 112 
 113     <target name="build-all-tools" depends="build-javac,build-javadoc,build-doclets,build-javah,build-javap,build-apt"/>
 114 
 115     <target name="build-all-classes" depends="build-bootstrap-javac">
 116         <build-classes includes="${javac.includes} ${javadoc.includes} ${doclets.includes} ${javah.includes} ${javap.includes} ${apt.includes}"/>
 117     </target>
 118 
 119     <!-- clean -->
 120 
 121     <target name="clean" description="Delete all generated files">
 122         <delete dir="${build.dir}"/>
 123         <delete dir="${dist.dir}"/>
 124     </target>
 125 
 126     <!-- Additional targets for running tools on the build -->
 127 
 128     <target name="jtreg" depends="build-all-tools,-def-jtreg">
 129         <jtreg-tool name="all" tests="${jtreg.tests}"/>
 130     </target>
 131 
 132     <target name="findbugs" depends="-def-findbugs,build-all-tools">
 133         <property name="findbugs.reportLevel" value="medium"/>
 134         <mkdir dir="${dist.findbugs.dir}"/>
 135         <findbugs
 136             home="${findbugs.home}"
 137             projectName="JDK langtools ${full.version}"


 173             <fileset dir="${build.classes.dir}"
 174                includes="**/*.class" excludes="**/resources/*.class"/>
 175         </cobertura-instrument>
 176     </target>
 177 
 178     <target name="coverage-report" depends="-def-cobertura">
 179         <mkdir dir="${dist.coverage.dir}"/>
 180         <cobertura-report
 181             srcdir="${src.classes.dir}"
 182             destdir="${dist.coverage.dir}"
 183             datafile="${build.coverage.dir}/cobertura.ser"/>
 184         <cobertura-report
 185             format="xml"
 186             srcdir="${src.classes.dir}"
 187             destdir="${dist.coverage.dir}"
 188             datafile="${build.coverage.dir}/cobertura.ser"/>
 189     </target>
 190 
 191     <!-- javac targets -->
 192 
 193     <target name="build-bootstrap-javac" 
 194             depends="-def-build-bootstrap-classes,-def-build-bootstrap-jar,-def-build-bootstrap-tool">
 195         <build-bootstrap-classes includes="${javac.includes}"/>
 196         <build-bootstrap-jar     name="javac" includes="${javac.includes}"/>
 197         <build-bootstrap-tool    name="javac"/>
 198     </target>
 199 
 200     <target name="build-classes-javac" depends="build-bootstrap-javac">
 201         <build-classes includes="${javac.includes}"/>
 202     </target>
 203 
 204     <target name="build-javac" depends="build-classes-javac">
 205         <build-jar  name="javac" includes="${javac.includes}"/>
 206         <build-tool name="javac"/>
 207     </target>
 208 
 209     <target name="javadoc-javac" depends="build-javac,-def-javadoc-tool">
 210         <javadoc-tool name="javac" includes="${javac.includes}" options="${javadoc.jls3.option}"/>
 211     </target>
 212 
 213     <target name="jtreg-javac" depends="build-javac,-def-jtreg">
 214         <jtreg-tool name="javac" tests="${javac.tests}"/>
 215     </target>
 216 
 217     <target name="findbugs-javac" depends="build-javac,-def-findbugs">
 218         <findbugs-tool name="javac"/>
 219     </target>
 220 
 221     <target name="javac" depends="build-javac,jtreg-javac,findbugs-javac"/>
 222 
 223     <!-- javadoc targets -->
 224 
 225     <target name="build-bootstrap-javadoc" depends="build-bootstrap-javac">
 226         <build-bootstrap-classes includes="${javadoc.includes}"/>
 227         <build-bootstrap-jar     name="javadoc" includes="${javadoc.includes}"
 228                                  jarclasspath="javac.jar doclets.jar"/>
 229         <build-bootstrap-tool    name="javadoc"/>
 230     </target>
 231 
 232     <target name="build-classes-javadoc" depends="build-classes-javac">
 233         <build-classes includes="${javadoc.includes}"/>
 234     </target>
 235 
 236     <target name="build-javadoc" depends="build-javac,build-classes-javadoc">
 237         <build-jar  name="javadoc" includes="${javadoc.includes}"

 238                     jarclasspath="javac.jar doclets.jar"/>
 239         <build-tool name="javadoc"/>
 240     </target>
 241 
 242     <target name="javadoc-javadoc" depends="build-javadoc,-def-javadoc-tool">
 243         <javadoc-tool name="javadoc" includes="${javadoc.includes}"/>
 244     </target>
 245 
 246     <target name="jtreg-javadoc" depends="build-javadoc,-def-jtreg">
 247         <jtreg-tool name="javadoc" tests="${javadoc.tests}"/>
 248     </target>
 249 
 250     <target name="findbugs-javadoc" depends="build-javadoc,-def-findbugs">
 251         <findbugs-tool name="javadoc"/>
 252     </target>
 253 
 254     <target name="javadoc" depends="build-javadoc,jtreg-javadoc,findbugs-javadoc"/>
 255 
 256     <!-- doclets targets -->
 257 
 258     <target name="build-bootstrap-doclets" depends="build-bootstrap-javadoc,-def-build-bootstrap-jar">
 259         <build-bootstrap-classes includes="${doclets.includes}"/>
 260         <build-bootstrap-jar     name="doclets" includes="${doclets.includes}"
 261                                  jarmainclass="com.sun.tools.javadoc.Main"
 262                                  jarclasspath="javadoc.jar"/>
 263     </target>
 264 
 265     <target name="build-classes-doclets" depends="build-classes-javadoc">
 266         <build-classes includes="${doclets.includes}"/>
 267     </target>
 268 
 269     <target name="build-doclets" depends="build-javadoc,build-classes-doclets">
 270         <!-- just jar, no bin for doclets -->
 271         <build-jar name="doclets" includes="${doclets.includes}" jarclasspath="javadoc.jar"/>


 272     </target>
 273 
 274     <!-- (no javadoc for doclets) -->
 275 
 276     <target name="jtreg-doclets" depends="build-doclets,-def-jtreg">
 277         <jtreg-tool name="doclets" tests="${doclets.tests}"/>
 278     </target>
 279 
 280     <target name="findbugs-doclets" depends="build-doclets,-def-findbugs">
 281         <findbugs-tool name="doclets"/>
 282     </target>
 283 
 284     <target name="doclets" depends="build-doclets,jtreg-doclets,findbugs-doclets"/>
 285 
 286     <!-- javah targets -->
 287 
 288     <target name="build-bootstrap-javah" depends="build-bootstrap-javadoc">
 289         <build-bootstrap-classes includes="${javah.includes}"/>
 290         <build-bootstrap-jar     name="javah" includes="${javah.includes}"
 291                                  jarclasspath="javadoc.jar doclets.jar javac.jar"/>
 292         <build-bootstrap-tool    name="javah"/>
 293     </target>
 294 
 295     <target name="build-javah" depends="build-javac,build-classes-javah">
 296         <build-jar  name="javah" includes="${javah.includes}" jarclasspath="javac.jar"/>
 297         <build-tool name="javah"/>

 298     </target>
 299 
 300     <target name="build-classes-javah" depends="build-classes-javadoc">
 301         <build-classes includes="${javah.includes}"/>
 302     </target>
 303 
 304     <!-- (no javadoc for javah) -->
 305 
 306     <target name="jtreg-javah" depends="build-javah,-def-jtreg">
 307         <jtreg-tool name="javah" tests="${javah.tests}"/>
 308     </target>
 309 
 310     <target name="findbugs-javah" depends="build-javah,-def-findbugs">
 311         <findbugs-tool name="javah"/>
 312     </target>
 313 
 314     <target name="javah" depends="build-javah,jtreg-javah,findbugs-javah"/>
 315 
 316     <!-- javap targets -->
 317 
 318     <target name="build-bootstrap-javap" 
 319             depends="-def-build-bootstrap-classes,-def-build-bootstrap-jar,-def-build-bootstrap-tool">
 320         <build-bootstrap-classes includes="${javap.includes}"/>
 321         <build-bootstrap-jar     name="javap" includes="${javap.includes}"
 322                                  jarmainclass="sun.tools.javap.Main"/>
 323         <build-bootstrap-tool    name="javap"/>
 324     </target>
 325 
 326     <target name="build-classes-javap" depends="build-classes-javac">
 327         <build-classes includes="${javap.includes}"/>
 328     </target>
 329 
 330     <target name="build-javap" depends="build-javac,build-classes-javap">
 331         <build-jar  includes="${javap.includes}"

 332                     jarmainclass="com.sun.tools.javap.Main"
 333                     jarclasspath="javac.jar"/>
 334         <build-tool name="javap"/>
 335     </target>
 336 
 337     <!-- (no javadoc for javap) -->
 338 
 339     <target name="jtreg-javap" depends="build-javap,-def-jtreg">
 340         <jtreg-tool name="javap" tests="${javap.tests}"/>
 341     </target>
 342 
 343     <target name="findbugs-javap" depends="build-javap,-def-findbugs">
 344         <findbugs-tool name="javap"/>
 345     </target>
 346 
 347     <target name="javap" depends="build-javap,jtreg-javap,findbugs-javap"/>
 348 
 349     <!-- apt targets -->
 350 
 351     <target name="build-bootstrap-apt" depends="build-bootstrap-javac">
 352         <build-bootstrap-classes includes="${apt.includes}"/>
 353         <build-bootstrap-jar     name="apt" includes="${apt.includes}"
 354                                  jarclasspath="javac.jar"/>
 355         <build-bootstrap-tool    name="apt"/>
 356     </target>
 357 
 358     <target name="build-apt" depends="build-javac,build-classes-apt">
 359         <build-jar  name="apt" includes="${apt.includes}" jarclasspath="javac.jar"/>
 360         <build-tool name="apt"/>

 361     </target>
 362 
 363     <target name="build-classes-apt" depends="build-classes-javac">
 364         <build-classes includes="${apt.includes}"/>
 365     </target>
 366 
 367     <target name="javadoc-apt" depends="build-apt,-def-javadoc-tool">
 368         <javadoc-tool name="apt" includes="${apt.includes}"/>
 369     </target>
 370 
 371 
 372     <target name="jtreg-apt" depends="build-apt,-def-jtreg">
 373         <jtreg-tool name="apt" tests="${apt.tests}"/>
 374     </target>
 375 
 376     <target name="findbugs-apt" depends="build-apt,-def-findbugs">
 377         <findbugs-tool name="apt"/>
 378     </target>
 379 
 380     <target name="apt" depends="build-apt,jtreg-apt,findbugs-apt"/>
 381 
 382     <!-- Check targets -->
 383 
 384     <target name="-check-boot.java.home" depends="-def-check">


 386     </target>
 387 
 388     <target name="-check-target.java.home" depends="-def-check">
 389         <check name="target java" property="target.java.home" marker="${java.marker}"/>
 390     </target>
 391 
 392     <target name="-check-cobertura.home" depends="-def-check">
 393         <check name="cobertura" property="cobertura.home" marker="cobertura.jar"/>
 394     </target>
 395 
 396     <target name="-check-findbugs.home" depends="-def-check">
 397         <check name="findbugs" property="findbugs.home" marker="lib/findbugs.jar"/>
 398     </target>
 399 
 400     <target name="-check-jtreg.home" depends="-def-check">
 401         <check name="jtreg" property="jtreg.home" marker="lib/jtreg.jar"/>
 402     </target>
 403 
 404     <!-- Ant macro and preset defs -->
 405 
 406     <target name="-def-build-tool">
 407         <macrodef name="build-tool">
 408             <attribute name="name"/>


 409             <attribute name="bin.dir" default="${dist.bin.dir}"/>



 410             <attribute name="java" default="${launcher.java}"/>








 411             <sequential>















 412                 <mkdir dir="@{bin.dir}"/>
 413                 <copy file="${src.bin.dir}/launcher.sh-template" tofile="@{bin.dir}/@{name}">
 414                     <filterset begintoken="#" endtoken="#">
 415                         <filter token="PROGRAM" value="@{name}"/>
 416                         <filter token="TARGET_JAVA" value="@{java}"/>
 417                     </filterset>
 418                 </copy>
 419                 <chmod file="@{bin.dir}/@{name}" perm="ugo+rx"/>
 420             </sequential>
 421         </macrodef>
 422     </target>
 423 
 424     <target name="-def-build-jar">
 425         <macrodef name="build-jar">
 426             <attribute name="name"/>
 427             <attribute name="includes"/>

 428             <attribute name="classes.dir" default="${build.classes.dir}"/>

 429             <attribute name="lib.dir" default="${dist.lib.dir}"/>




 430             <attribute name="jarmainclass" default="com.sun.tools.@{name}.Main"/>
 431             <attribute name="jarclasspath" default=""/>


 432             <sequential>












 433                 <mkdir dir="@{lib.dir}"/>
 434                 <jar destfile="@{lib.dir}/@{name}.jar"
 435                      basedir="@{classes.dir}"
 436                      includes="@{includes}">
 437                     <manifest>
 438                         <attribute name="Main-Class" value="@{jarmainclass}"/>
 439                         <attribute name="Class-Path" value="@{jarclasspath}"/>
 440                     </manifest>
 441                 </jar>
 442             </sequential>
 443         </macrodef>
 444     </target>
 445 
 446     <target name="-def-build-classes" depends="-def-pcompile">
 447         <macrodef name="build-classes">

 448             <attribute name="includes"/>
 449             <attribute name="excludes" default="**/package-info.java"/>
 450             <attribute name="classes.dir" default="${build.classes.dir}"/>
 451             <attribute name="gensrc.dir" default="${build.gensrc.dir}"/>
 452             <attribute name="javac.bootclasspath" default="${build.bootstrap.dir}/classes"/>
 453             <attribute name="javac.java.home" default="${boot.java.home}"/>
 454             <attribute name="javac.source" default="${javac.source}"/>
 455             <attribute name="javac.target" default="${javac.target}"/>
 456             <attribute name="release" default="${release}"/>
 457             <attribute name="full.version" default="${full.version}"/>
 458             <sequential>
 459                 <mkdir dir="@{gensrc.dir}"/>
 460                 <mkdir dir="@{classes.dir}"/>
 461                 <pcompile srcdir="${src.classes.dir}"
 462                           destdir="@{gensrc.dir}"
 463                           includes="@{includes}"/>
 464                 <copy todir="@{gensrc.dir}">
 465                     <fileset dir="${src.classes.dir}" includes="@{includes}"/>
 466                     <globmapper from="*.properties-template" to="*.properties"/>
 467                     <filterset begintoken="$(" endtoken=")">
 468                         <filter token="JDK_VERSION" value="${jdk.version}"/>
 469                         <filter token="RELEASE" value="@{release}"/>
 470                         <filter token="FULL_VERSION" value="@{full.version}"/>
 471                     </filterset>
 472                 </copy>
 473                 <pcompile srcdir="@{gensrc.dir}"
 474                           destdir="@{gensrc.dir}"
 475                           includes="**/*.properties"/>
 476                 <javac fork="true"
 477                        executable="@{javac.java.home}/bin/javac"
 478                        srcdir="${src.classes.dir}:@{gensrc.dir}"













 479                        destdir="@{classes.dir}"
 480                        includes="@{includes}"
 481                        excludes="@{excludes}"
 482                        sourcepath=""
 483                        includeAntRuntime="no"
 484                        source="@{javac.source}"
 485                        target="@{javac.target}"
 486                        debug="${javac.debug}"
 487                        debuglevel="${javac.debuglevel}">
 488                     <compilerarg value="-J-Xbootclasspath/p:@{javac.bootclasspath}"/>
 489                     <compilerarg value="-Xbootclasspath/p:@{classes.dir}"/>
 490                     <compilerarg line="${javac.no.jdk.warnings}"/>
 491                     <compilerarg line="${javac.version.opt}"/>
 492                     <compilerarg line="${javac.lint.opts}"/>
 493                 </javac>
 494                 <copy todir="@{classes.dir}">
 495                     <fileset dir="${src.classes.dir}">
 496                         <include name="@{includes}"/>
 497                         <exclude name="**/*.java"/>
 498                         <exclude name="**/*.properties"/>
 499                         <exclude name="**/*-template"/>
 500                         <exclude name="**/package.html"/>
 501                     </fileset>
 502                 </copy>
 503             </sequential>
 504         </macrodef>
 505     </target>
 506 
 507     <target name="-def-build-bootstrap-tool" depends="-check-boot.java.home,-def-build-tool">
 508         <presetdef name="build-bootstrap-tool">
 509             <build-tool




 510                 bin.dir="${build.bootstrap.dir}/bin"
 511                 java="${boot.java}"/>




 512         </presetdef>
 513     </target>
 514 
 515     <target name="-def-build-bootstrap-jar" depends="-def-build-jar">
 516         <presetdef name="build-bootstrap-jar">
 517             <build-jar
 518                 classes.dir="${build.bootstrap.dir}/classes"
 519                 lib.dir="${build.bootstrap.dir}/lib"/>
 520         </presetdef>
 521     </target>
 522 
 523     <target name="-def-build-bootstrap-classes" depends="-def-build-classes">
 524         <presetdef name="build-bootstrap-classes">
 525             <build-classes
 526                 javac.source="${boot.javac.source}"
 527                 javac.target="${boot.javac.target}"
 528                 gensrc.dir="${build.bootstrap.dir}/gensrc"
 529                 classes.dir="${build.bootstrap.dir}/classes"

 530                 javac.bootclasspath=""
 531                 release="${bootstrap.release}"
 532                 full.version="${bootstrap.full.version}"/>
 533         </presetdef>
 534     </target>
 535 
 536     <target name="-def-pcompile">
 537         <mkdir dir="${build.toolclasses.dir}"/>
 538         <javac fork="true"
 539                source="${boot.javac.source}"
 540                target="${boot.javac.target}"
 541                executable="${boot.java.home}/bin/javac"
 542                srcdir="${make.tools.dir}/CompileProperties"
 543                destdir="${build.toolclasses.dir}/"
 544                classpath="${ant.home}/lib/ant.jar"/>
 545         <taskdef name="pcompile"
 546                  classname="CompilePropertiesTask"
 547                  classpath="${build.toolclasses.dir}/"/>
 548     </target>
 549