langtools/make/build.xml
changeset 3655 f9ee66e780f4
parent 3654 bb3c0eeec3cb
child 3658 8ee720a52b7d
equal deleted inserted replaced
3654:bb3c0eeec3cb 3655:f9ee66e780f4
    29  It is used both when working on the tools in NetBeans, and when building
    29  It is used both when working on the tools in NetBeans, and when building
    30  JDK itself, in which case it is invoked from the wrapper Makefile.
    30  JDK itself, in which case it is invoked from the wrapper Makefile.
    31  -->
    31  -->
    32 
    32 
    33 <project name="langtools" default="build" basedir="..">
    33 <project name="langtools" default="build" basedir="..">
    34     
    34 
    35     <!-- Force full debuginfo for javac if the debug.classfiles
    35     <!-- Force full debuginfo for javac if the debug.classfiles
    36     property is set.  This must be BEFORE the include of
    36     property is set.  This must be BEFORE the include of
    37     build.properties because it sets javac.debuglevel.  -->
    37     build.properties because it sets javac.debuglevel.  -->
    38     <condition property="javac.debuglevel" value="source,lines,vars">
    38     <condition property="javac.debuglevel" value="source,lines,vars">
    39         <equals arg1="${debug.classfiles}" arg2="true"/>
    39         <equals arg1="${debug.classfiles}" arg2="true"/>
    47     <!-- Use this location for customizations common to all OpenJDK langtools workspaces -->
    47     <!-- Use this location for customizations common to all OpenJDK langtools workspaces -->
    48     <property file="${user.home}/.openjdk/${ant.project.name}-build.properties"/>
    48     <property file="${user.home}/.openjdk/${ant.project.name}-build.properties"/>
    49 
    49 
    50     <!-- Use this location for customizations common to all OpenJDK workspaces -->
    50     <!-- Use this location for customizations common to all OpenJDK workspaces -->
    51     <property file="${user.home}/.openjdk/build.properties"/>
    51     <property file="${user.home}/.openjdk/build.properties"/>
    52     
    52 
    53     <!-- Convenient shorthands for standard locations within the workspace. -->    
    53     <!-- Convenient shorthands for standard locations within the workspace. -->
    54     <property name="build.dir" location="build"/>
    54     <property name="build.dir" location="build"/>
    55     <property name="build.bootstrap.dir" location="${build.dir}/bootstrap"/>
    55     <property name="build.bootstrap.dir" location="${build.dir}/bootstrap"/>
    56     <property name="build.coverage.dir" location="${build.dir}/coverage"/>
    56     <property name="build.coverage.dir" location="${build.dir}/coverage"/>
    57     <property name="build.classes.dir" location="${build.dir}/classes"/>
    57     <property name="build.classes.dir" location="${build.dir}/classes"/>
    58     <property name="build.gensrc.dir" location="${build.dir}/gensrc"/>
    58     <property name="build.gensrc.dir" location="${build.dir}/gensrc"/>
    73 
    73 
    74     <!-- java.marker is set to a marker file to check for within a Java install dir.
    74     <!-- java.marker is set to a marker file to check for within a Java install dir.
    75          The best file to check for across Solaris/Linux/Windows/MacOS is one of the
    75          The best file to check for across Solaris/Linux/Windows/MacOS is one of the
    76          executables; regrettably, that is OS-specific. -->
    76          executables; regrettably, that is OS-specific. -->
    77     <condition property="java.marker" value="bin/java">
    77     <condition property="java.marker" value="bin/java">
    78 	<os family="unix"/>
    78         <os family="unix"/>
    79     </condition>
    79     </condition>
    80     <condition property="java.marker" value="bin/java.exe">
    80     <condition property="java.marker" value="bin/java.exe">
    81 	<os family="windows"/>
    81         <os family="windows"/>
    82     </condition>
    82     </condition>
    83     
    83 
    84     <!-- Standard property values, if not overriden by earlier settings. -->
    84     <!-- Standard property values, if not overriden by earlier settings. -->
    85     <property file="${make.dir}/build.properties"/> 
    85     <property file="${make.dir}/build.properties"/>
    86 
    86 
    87     <!-- launcher.java is used in the launcher scripts provided to run
    87     <!-- launcher.java is used in the launcher scripts provided to run
    88 	the tools' jar files.  If it has not already been set, then
    88         the tools' jar files.  If it has not already been set, then
    89 	default it to use ${target.java.home}, if available, otherwise
    89         default it to use ${target.java.home}, if available, otherwise
    90 	quietly default to simply use "java". -->
    90         quietly default to simply use "java". -->
    91     <condition property="launcher.java" 
    91     <condition property="launcher.java"
    92 	value="${target.java.home}/bin/java" else="java">
    92         value="${target.java.home}/bin/java" else="java">
    93 	<isset property="target.java.home"/>
    93         <isset property="target.java.home"/>
    94     </condition>
    94     </condition>
    95 
    95 
    96     
    96 
    97     <!-- Standard target to build deliverables for JDK build. -->
    97     <!-- Standard target to build deliverables for JDK build. -->
    98 
    98 
    99     <target name="build" depends="build-bootstrap-tools,build-all-classes">
    99     <target name="build" depends="build-bootstrap-tools,build-all-classes">
   100         <copy todir="${dist.dir}/bootstrap">
   100         <copy todir="${dist.dir}/bootstrap">
   101             <fileset dir="${build.bootstrap.dir}" includes="bin/,lib/"/>
   101             <fileset dir="${build.bootstrap.dir}" includes="bin/,lib/"/>
   105         </chmod>
   105         </chmod>
   106         <mkdir dir="${dist.lib.dir}"/>
   106         <mkdir dir="${dist.lib.dir}"/>
   107         <jar file="${dist.lib.dir}/classes.jar" basedir="${build.classes.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}"/>
   108         <zip file="${dist.lib.dir}/src.zip" basedir="${src.classes.dir}"/>
   109     </target>
   109     </target>
   110     
   110 
   111     <target name="build-bootstrap-tools" depends="build-bootstrap-javac,build-bootstrap-javadoc,build-bootstrap-doclets,build-bootstrap-javah"/>
   111     <target name="build-bootstrap-tools" depends="build-bootstrap-javac,build-bootstrap-javadoc,build-bootstrap-doclets,build-bootstrap-javah"/>
   112     
   112 
   113     <target name="build-all-tools" depends="build-javac,build-javadoc,build-doclets,build-javah,build-javap,build-apt"/>
   113     <target name="build-all-tools" depends="build-javac,build-javadoc,build-doclets,build-javah,build-javap,build-apt"/>
   114     
   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"/>
   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   
   116 
   117     <!-- clean -->
   117     <!-- clean -->
   118 
   118 
   119     <target name="clean" description="Delete all generated files">
   119     <target name="clean" description="Delete all generated files">
   120         <delete dir="${build.dir}"/>
   120         <delete dir="${build.dir}"/>
   121         <delete dir="${dist.dir}"/>
   121         <delete dir="${dist.dir}"/>
   122     </target>
   122     </target>
   123 
   123 
   124     <!-- Additional targets for running tools on the build -->
   124     <!-- Additional targets for running tools on the build -->
   125     
   125 
   126     <!-- An alternative for the following would be to do a single jtreg run for all tests.
   126     <target name="jtreg" depends="build-all-tools,-def-jtreg">
   127          However, that would currently be slower, since we would have to run all the tests
   127         <jtreg-tool name="all" tests="${jtreg.tests}"/>
   128          with samevm="false", since not all test directories currently support samevm="true". -->
   128     </target>
   129 
   129 
   130     <target name="jtreg" depends="jtreg-javac,jtreg-javadoc,jtreg-doclets,jtreg-javah,jtreg-javap,jtreg-apt"/>
       
   131     
       
   132     <target name="findbugs" depends="-def-findbugs,build-all-tools">
   130     <target name="findbugs" depends="-def-findbugs,build-all-tools">
   133         <property name="findbugs.reportLevel" value="medium"/>
   131         <property name="findbugs.reportLevel" value="medium"/>
   134         <mkdir dir="${dist.findbugs.dir}"/>
   132         <mkdir dir="${dist.findbugs.dir}"/>
   135         <findbugs
   133         <findbugs
   136             home="${findbugs.home}"
   134             home="${findbugs.home}"
   168         <property name="coverage.classpath" refid="coverage.classpath"/>
   166         <property name="coverage.classpath" refid="coverage.classpath"/>
   169         <mkdir dir="${build.coverage.dir}/classes"/>
   167         <mkdir dir="${build.coverage.dir}/classes"/>
   170         <delete file="${build.coverage.dir}/cobertura.ser"/>
   168         <delete file="${build.coverage.dir}/cobertura.ser"/>
   171         <cobertura-instrument todir="${build.coverage.dir}/classes"
   169         <cobertura-instrument todir="${build.coverage.dir}/classes"
   172             datafile="${build.coverage.dir}/cobertura.ser">
   170             datafile="${build.coverage.dir}/cobertura.ser">
   173             <fileset dir="${build.classes.dir}" 
   171             <fileset dir="${build.classes.dir}"
   174                includes="**/*.class" excludes="**/resources/*.class"/>
   172                includes="**/*.class" excludes="**/resources/*.class"/>
   175         </cobertura-instrument>
   173         </cobertura-instrument>
   176     </target>  
   174     </target>
   177 
   175 
   178     <target name="coverage-report" depends="-def-cobertura">
   176     <target name="coverage-report" depends="-def-cobertura">
   179         <mkdir dir="${dist.coverage.dir}"/>
   177         <mkdir dir="${dist.coverage.dir}"/>
   180         <cobertura-report 
   178         <cobertura-report
   181             srcdir="${src.classes.dir}"
   179             srcdir="${src.classes.dir}"
   182             destdir="${dist.coverage.dir}"
   180             destdir="${dist.coverage.dir}"
   183             datafile="${build.coverage.dir}/cobertura.ser"/>
   181             datafile="${build.coverage.dir}/cobertura.ser"/>
   184         <cobertura-report 
   182         <cobertura-report
   185             format="xml" 
   183             format="xml"
   186             srcdir="${src.classes.dir}" 
   184             srcdir="${src.classes.dir}"
   187             destdir="${dist.coverage.dir}"
   185             destdir="${dist.coverage.dir}"
   188             datafile="${build.coverage.dir}/cobertura.ser"/>
   186             datafile="${build.coverage.dir}/cobertura.ser"/>
   189     </target>
   187     </target>
   190     
   188 
   191     <!-- javac targets -->
   189     <!-- javac targets -->
   192 
   190 
   193     <target name="build-bootstrap-javac" depends="-def-build-bootstrap-tool">
   191     <target name="build-bootstrap-javac" depends="-def-build-bootstrap-tool">
   194         <build-bootstrap-tool name="javac" includes="${javac.includes}"/>
   192         <build-bootstrap-tool name="javac" includes="${javac.includes}"/>
   195     </target>
   193     </target>
   196     
   194 
   197     <target name="build-classes-javac" depends="build-bootstrap-javac">
   195     <target name="build-classes-javac" depends="build-bootstrap-javac">
   198         <build-classes name="javac" includes="${javac.includes}"/>
   196         <build-classes name="javac" includes="${javac.includes}"/>
   199     </target>
   197     </target>
   200     
   198 
   201     <target name="build-javac" depends="build-bootstrap-javac">
   199     <target name="build-javac" depends="build-bootstrap-javac">
   202         <build-tool name="javac" includes="${javac.includes}"/>
   200         <build-tool name="javac" includes="${javac.includes}"/>
   203     </target>
   201     </target>
   204     
   202 
   205     <target name="javadoc-javac" depends="build-javac,-def-javadoc-tool">
   203     <target name="javadoc-javac" depends="build-javac,-def-javadoc-tool">
   206         <javadoc-tool name="javac" includes="${javac.includes}" options="${javadoc.jls3.option}"/>
   204         <javadoc-tool name="javac" includes="${javac.includes}" options="${javadoc.jls3.option}"/>
   207     </target>
   205     </target>
   208     
   206 
   209     <target name="jtreg-javac" depends="build-javac,-def-jtreg">
   207     <target name="jtreg-javac" depends="build-javac,-def-jtreg">
   210         <jtreg-tool name="javac" samevm="true" tests="${javac.tests}"/>
   208         <jtreg-tool name="javac" tests="${javac.tests}"/>
   211     </target>
   209     </target>
   212     
   210 
   213     <target name="findbugs-javac" depends="build-javac,-def-findbugs">
   211     <target name="findbugs-javac" depends="build-javac,-def-findbugs">
   214         <findbugs-tool name="javac"/>
   212         <findbugs-tool name="javac"/>
   215     </target>
   213     </target>
   216     
   214 
   217     <target name="javac" depends="build-javac,jtreg-javac,findbugs-javac"/>
   215     <target name="javac" depends="build-javac,jtreg-javac,findbugs-javac"/>
   218     
   216 
   219     <!-- javadoc targets -->
   217     <!-- javadoc targets -->
   220 
   218 
   221     <target name="build-bootstrap-javadoc" depends="build-bootstrap-javac">
   219     <target name="build-bootstrap-javadoc" depends="build-bootstrap-javac">
   222         <build-bootstrap-tool name="javadoc"
   220         <build-bootstrap-tool name="javadoc"
   223                               includes="${javadoc.includes}"
   221                               includes="${javadoc.includes}"
   224                               jarclasspath="javac.jar doclets.jar"/>
   222                               jarclasspath="javac.jar doclets.jar"/>
   225     </target>
   223     </target>
   226     
   224 
   227     <target name="build-classes-javadoc" depends="build-classes-javac">
   225     <target name="build-classes-javadoc" depends="build-classes-javac">
   228         <build-classes name="javadoc" includes="${javadoc.includes}"/>
   226         <build-classes name="javadoc" includes="${javadoc.includes}"/>
   229     </target>
   227     </target>
   230     
   228 
   231     <target name="build-javadoc" depends="build-javac">
   229     <target name="build-javadoc" depends="build-javac">
   232         <build-tool name="javadoc"
   230         <build-tool name="javadoc"
   233                     includes="${javadoc.includes}"
   231                     includes="${javadoc.includes}"
   234                     jarclasspath="javac.jar doclets.jar"/>
   232                     jarclasspath="javac.jar doclets.jar"/>
   235     </target>
   233     </target>
   236     
   234 
   237     <target name="javadoc-javadoc" depends="build-javadoc,-def-javadoc-tool">
   235     <target name="javadoc-javadoc" depends="build-javadoc,-def-javadoc-tool">
   238         <javadoc-tool name="javadoc" includes="${javadoc.includes}"/>
   236         <javadoc-tool name="javadoc" includes="${javadoc.includes}"/>
   239     </target>
   237     </target>
   240     
   238 
   241     <target name="jtreg-javadoc" depends="build-javadoc,-def-jtreg">
   239     <target name="jtreg-javadoc" depends="build-javadoc,-def-jtreg">
   242         <jtreg-tool name="javadoc" samevm="false" tests="${javadoc.tests}"/>
   240         <jtreg-tool name="javadoc" tests="${javadoc.tests}"/>
   243     </target>
   241     </target>
   244     
   242 
   245     <target name="findbugs-javadoc" depends="build-javadoc,-def-findbugs">
   243     <target name="findbugs-javadoc" depends="build-javadoc,-def-findbugs">
   246         <findbugs-tool name="javadoc"/>
   244         <findbugs-tool name="javadoc"/>
   247     </target>
   245     </target>
   248     
   246 
   249     <target name="javadoc" depends="build-javadoc,jtreg-javadoc,findbugs-javadoc"/>
   247     <target name="javadoc" depends="build-javadoc,jtreg-javadoc,findbugs-javadoc"/>
   250     
   248 
   251     <!-- doclets targets -->
   249     <!-- doclets targets -->
   252 
   250 
   253     <target name="build-bootstrap-doclets" depends="build-bootstrap-javadoc,-def-build-bootstrap-jar">
   251     <target name="build-bootstrap-doclets" depends="build-bootstrap-javadoc,-def-build-bootstrap-jar">
   254         <build-bootstrap-jar name="doclets"
   252         <build-bootstrap-jar name="doclets"
   255                               includes="${doclets.includes}"
   253                               includes="${doclets.includes}"
   256                               jarmainclass="com.sun.tools.javadoc.Main"
   254                               jarmainclass="com.sun.tools.javadoc.Main"
   257                               jarclasspath="javadoc.jar"/>
   255                               jarclasspath="javadoc.jar"/>
   258     </target>
   256     </target>
   259     
   257 
   260     <target name="build-classes-doclets" depends="build-classes-javadoc">
   258     <target name="build-classes-doclets" depends="build-classes-javadoc">
   261         <build-classes name="doclets" includes="${doclets.includes}"/>
   259         <build-classes name="doclets" includes="${doclets.includes}"/>
   262     </target>
   260     </target>
   263     
   261 
   264     <target name="build-doclets" depends="build-javadoc">
   262     <target name="build-doclets" depends="build-javadoc">
   265         <!-- just jar, no bin for doclets -->
   263         <!-- just jar, no bin for doclets -->
   266         <build-jar name="doclets"
   264         <build-jar name="doclets"
   267                     includes="${doclets.includes}"
   265                     includes="${doclets.includes}"
   268                     jarclasspath="javadoc.jar"/>
   266                     jarclasspath="javadoc.jar"/>
   269     </target>
   267     </target>
   270 
   268 
   271     <!-- (no javadoc for doclets) -->
   269     <!-- (no javadoc for doclets) -->
   272     
   270 
   273     <target name="jtreg-doclets" depends="build-doclets,-def-jtreg">
   271     <target name="jtreg-doclets" depends="build-doclets,-def-jtreg">
   274         <jtreg-tool name="doclets" samevm="false" tests="${doclets.tests}"/>
   272         <jtreg-tool name="doclets" tests="${doclets.tests}"/>
   275     </target>
   273     </target>
   276     
   274 
   277     <target name="findbugs-doclets" depends="build-doclets,-def-findbugs">
   275     <target name="findbugs-doclets" depends="build-doclets,-def-findbugs">
   278         <findbugs-tool name="doclets"/>
   276         <findbugs-tool name="doclets"/>
   279     </target>
   277     </target>
   280     
   278 
   281     <target name="doclets" depends="build-doclets,jtreg-doclets,findbugs-doclets"/>
   279     <target name="doclets" depends="build-doclets,jtreg-doclets,findbugs-doclets"/>
   282     
   280 
   283     <!-- javah targets -->
   281     <!-- javah targets -->
   284 
   282 
   285     <target name="build-bootstrap-javah" depends="build-bootstrap-javadoc">
   283     <target name="build-bootstrap-javah" depends="build-bootstrap-javadoc">
   286         <build-bootstrap-tool name="javah"
   284         <build-bootstrap-tool name="javah"
   287                               includes="${javah.includes}"
   285                               includes="${javah.includes}"
   288                               jarclasspath="javadoc.jar doclets.jar javac.jar"/>
   286                               jarclasspath="javadoc.jar doclets.jar javac.jar"/>
   289     </target>
   287     </target>
   290     
   288 
   291     <target name="build-javah" depends="build-javadoc">
   289     <target name="build-javah" depends="build-javadoc">
   292         <build-tool name="javah"
   290         <build-tool name="javah"
   293                     includes="${javah.includes}"
   291                     includes="${javah.includes}"
   294                     jarclasspath="javadoc.jar doclets.jar javac.jar"/>
   292                     jarclasspath="javadoc.jar doclets.jar javac.jar"/>
   295     </target>
   293     </target>
   296     
   294 
   297     <target name="build-classes-javah" depends="build-classes-javadoc">
   295     <target name="build-classes-javah" depends="build-classes-javadoc">
   298         <build-classes name="javah" includes="${javah.includes}"/>
   296         <build-classes name="javah" includes="${javah.includes}"/>
   299     </target>
   297     </target>
   300     
   298 
   301     <!-- (no javadoc for javah) -->
   299     <!-- (no javadoc for javah) -->
   302 
   300 
   303     <target name="jtreg-javah" depends="build-javah,-def-jtreg">
   301     <target name="jtreg-javah" depends="build-javah,-def-jtreg">
   304         <jtreg-tool name="javah" samevm="true" tests="${javah.tests}"/>
   302         <jtreg-tool name="javah" tests="${javah.tests}"/>
   305     </target>
   303     </target>
   306     
   304 
   307     <target name="findbugs-javah" depends="build-javah,-def-findbugs">
   305     <target name="findbugs-javah" depends="build-javah,-def-findbugs">
   308         <findbugs-tool name="javah"/>
   306         <findbugs-tool name="javah"/>
   309     </target>
   307     </target>
   310     
   308 
   311     <target name="javah" depends="build-javah,jtreg-javah,findbugs-javah"/>
   309     <target name="javah" depends="build-javah,jtreg-javah,findbugs-javah"/>
   312     
   310 
   313     <!-- javap targets -->
   311     <!-- javap targets -->
   314 
   312 
   315     <target name="build-bootstrap-javap" depends="-def-build-bootstrap-tool">
   313     <target name="build-bootstrap-javap" depends="-def-build-bootstrap-tool">
   316         <build-bootstrap-tool name="javap"
   314         <build-bootstrap-tool name="javap"
   317                               includes="${javap.includes}"
   315                               includes="${javap.includes}"
   318                               jarmainclass="sun.tools.javap.Main"/>
   316                               jarmainclass="sun.tools.javap.Main"/>
   319     </target>
   317     </target>
   320     
   318 
   321     <target name="build-classes-javap" depends="build-classes-javac">
   319     <target name="build-classes-javap" depends="build-classes-javac">
   322         <build-classes name="javap" includes="${javap.includes}"/>
   320         <build-classes name="javap" includes="${javap.includes}"/>
   323     </target>
   321     </target>
   324     
   322 
   325     <target name="build-javap" depends="build-javac">
   323     <target name="build-javap" depends="build-javac">
   326         <build-tool name="javap"
   324         <build-tool name="javap"
   327                     includes="${javap.includes}"
   325                     includes="${javap.includes}"
   328                     jarmainclass="com.sun.tools.javap.Main"
   326                     jarmainclass="com.sun.tools.javap.Main"
   329                     jarclasspath="javac.jar"/>
   327                     jarclasspath="javac.jar"/>
   330     </target>
   328     </target>
   331     
   329 
   332     <!-- (no javadoc for javap) -->
   330     <!-- (no javadoc for javap) -->
   333 
   331 
   334     <target name="jtreg-javap" depends="build-javap,-def-jtreg">
   332     <target name="jtreg-javap" depends="build-javap,-def-jtreg">
   335         <jtreg-tool name="javap" samevm="true" tests="${javap.tests}"/>
   333         <jtreg-tool name="javap" tests="${javap.tests}"/>
   336     </target>
   334     </target>
   337     
   335 
   338     <target name="findbugs-javap" depends="build-javap,-def-findbugs">
   336     <target name="findbugs-javap" depends="build-javap,-def-findbugs">
   339         <findbugs-tool name="javap"/>
   337         <findbugs-tool name="javap"/>
   340     </target>
   338     </target>
   341     
   339 
   342     <target name="javap" depends="build-javap,jtreg-javap,findbugs-javap"/>
   340     <target name="javap" depends="build-javap,jtreg-javap,findbugs-javap"/>
   343     
   341 
   344     <!-- apt targets -->
   342     <!-- apt targets -->
   345     
   343 
   346     <target name="build-bootstrap-apt" depends="build-bootstrap-javac">
   344     <target name="build-bootstrap-apt" depends="build-bootstrap-javac">
   347         <build-bootstrap-tool name="apt"
   345         <build-bootstrap-tool name="apt"
   348                               includes="${apt.includes}"
   346                               includes="${apt.includes}"
   349                               jarclasspath="javac.jar"/>
   347                               jarclasspath="javac.jar"/>
   350     </target>
   348     </target>
   351     
   349 
   352     <target name="build-apt" depends="build-javac">
   350     <target name="build-apt" depends="build-javac">
   353         <build-tool name="apt"
   351         <build-tool name="apt"
   354                     includes="${apt.includes}"
   352                     includes="${apt.includes}"
   355                     jarclasspath="javac.jar"/>
   353                     jarclasspath="javac.jar"/>
   356     </target>
   354     </target>
   357     
   355 
   358     <target name="build-classes-apt" depends="build-classes-javac">
   356     <target name="build-classes-apt" depends="build-classes-javac">
   359         <build-classes name="apt" includes="${apt.includes}"/>
   357         <build-classes name="apt" includes="${apt.includes}"/>
   360     </target>
   358     </target>
   361     
   359 
   362     <target name="javadoc-apt" depends="build-apt,-def-javadoc-tool">
   360     <target name="javadoc-apt" depends="build-apt,-def-javadoc-tool">
   363         <javadoc-tool name="apt" includes="${apt.includes}"/>
   361         <javadoc-tool name="apt" includes="${apt.includes}"/>
   364     </target>
   362     </target>
   365     
   363 
   366     
   364 
   367     <target name="jtreg-apt" depends="build-apt,-def-jtreg">
   365     <target name="jtreg-apt" depends="build-apt,-def-jtreg">
   368         <jtreg-tool name="apt" samevm="true" tests="${apt.tests}"/>
   366         <jtreg-tool name="apt" tests="${apt.tests}"/>
   369     </target>
   367     </target>
   370     
   368 
   371     <target name="findbugs-apt" depends="build-apt,-def-findbugs">
   369     <target name="findbugs-apt" depends="build-apt,-def-findbugs">
   372         <findbugs-tool name="apt"/>
   370         <findbugs-tool name="apt"/>
   373     </target>
   371     </target>
   374     
   372 
   375     <target name="apt" depends="build-apt,jtreg-apt,findbugs-apt"/>
   373     <target name="apt" depends="build-apt,jtreg-apt,findbugs-apt"/>
   376 
   374 
   377     <!-- Check targets -->
   375     <!-- Check targets -->
   378     
   376 
   379     <target name="-check-boot.java.home" depends="-def-check">
   377     <target name="-check-boot.java.home" depends="-def-check">
   380         <check name="bootstrap java" property="boot.java.home" marker="${java.marker}"/>
   378         <check name="bootstrap java" property="boot.java.home" marker="${java.marker}"/>
   381     </target>
   379     </target>
   382     
   380 
   383     <target name="-check-target.java.home" depends="-def-check">
   381     <target name="-check-target.java.home" depends="-def-check">
   384         <check name="target java" property="target.java.home" marker="${java.marker}"/>
   382         <check name="target java" property="target.java.home" marker="${java.marker}"/>
   385     </target>
   383     </target>
   386     
   384 
   387     <target name="-check-cobertura.home" depends="-def-check">
   385     <target name="-check-cobertura.home" depends="-def-check">
   388         <check name="cobertura" property="cobertura.home" marker="cobertura.jar"/>
   386         <check name="cobertura" property="cobertura.home" marker="cobertura.jar"/>
   389     </target>
   387     </target>
   390     
   388 
   391     <target name="-check-findbugs.home" depends="-def-check">
   389     <target name="-check-findbugs.home" depends="-def-check">
   392         <check name="findbugs" property="findbugs.home" marker="lib/findbugs.jar"/>
   390         <check name="findbugs" property="findbugs.home" marker="lib/findbugs.jar"/>
   393     </target>
   391     </target>
   394     
   392 
   395     <target name="-check-jtreg.home" depends="-def-check">
   393     <target name="-check-jtreg.home" depends="-def-check">
   396         <check name="jtreg" property="jtreg.home" marker="lib/jtreg.jar"/>
   394         <check name="jtreg" property="jtreg.home" marker="lib/jtreg.jar"/>
   397     </target>
   395     </target>
   398     
   396 
   399     <!-- Ant macro and preset defs -->
   397     <!-- Ant macro and preset defs -->
   400 
   398 
   401     <target name="-def-build-tool" depends="-def-build-jar">
   399     <target name="-def-build-tool" depends="-def-build-jar">
   402         <macrodef name="build-tool">
   400         <macrodef name="build-tool">
   403             <attribute name="name"/>
   401             <attribute name="name"/>
   433                     javac.target="@{javac.target}"
   431                     javac.target="@{javac.target}"
   434                 />
   432                 />
   435                 <mkdir dir="@{bin.dir}"/>
   433                 <mkdir dir="@{bin.dir}"/>
   436                 <copy file="${src.bin.dir}/launcher.sh-template" tofile="@{bin.dir}/@{name}">
   434                 <copy file="${src.bin.dir}/launcher.sh-template" tofile="@{bin.dir}/@{name}">
   437                     <filterset begintoken="#" endtoken="#">
   435                     <filterset begintoken="#" endtoken="#">
   438                         <filter token="PROGRAM" value="@{name}"/> 
   436                         <filter token="PROGRAM" value="@{name}"/>
   439                         <filter token="TARGET_JAVA" value="@{java}"/> 
   437                         <filter token="TARGET_JAVA" value="@{java}"/>
   440                     </filterset>
   438                     </filterset>
   441                 </copy>
   439                 </copy>
   442                 <chmod file="@{bin.dir}/@{name}" perm="ugo+rx"/>
   440                 <chmod file="@{bin.dir}/@{name}" perm="ugo+rx"/>
   443             </sequential>
   441             </sequential>
   444         </macrodef>
   442         </macrodef>
   475                 />
   473                 />
   476                 <mkdir dir="@{lib.dir}"/>
   474                 <mkdir dir="@{lib.dir}"/>
   477                 <jar destfile="@{lib.dir}/@{name}.jar"
   475                 <jar destfile="@{lib.dir}/@{name}.jar"
   478                      basedir="@{classes.dir}"
   476                      basedir="@{classes.dir}"
   479                      includes="@{includes}">
   477                      includes="@{includes}">
   480                     <manifest>    
   478                     <manifest>
   481                         <attribute name="Main-Class" value="@{jarmainclass}"/>
   479                         <attribute name="Main-Class" value="@{jarmainclass}"/>
   482                         <attribute name="Class-Path" value="@{jarclasspath}"/>
   480                         <attribute name="Class-Path" value="@{jarclasspath}"/>
   483                     </manifest>
   481                     </manifest>
   484                 </jar>
   482                 </jar>
   485             </sequential>
   483             </sequential>
   538                        excludes="@{excludes}"
   536                        excludes="@{excludes}"
   539                        sourcepath=""
   537                        sourcepath=""
   540                        includeAntRuntime="no"
   538                        includeAntRuntime="no"
   541                        source="@{javac.source}"
   539                        source="@{javac.source}"
   542                        target="@{javac.target}"
   540                        target="@{javac.target}"
   543                        debug="${javac.debug}" 
   541                        debug="${javac.debug}"
   544                        debuglevel="${javac.debuglevel}">
   542                        debuglevel="${javac.debuglevel}">
   545                     <compilerarg value="-J-Xbootclasspath/p:@{javac.bootclasspath}"/>
   543                     <compilerarg value="-J-Xbootclasspath/p:@{javac.bootclasspath}"/>
   546                     <compilerarg value="-Xbootclasspath/p:@{classes.dir}"/>
   544                     <compilerarg value="-Xbootclasspath/p:@{classes.dir}"/>
   547                     <compilerarg line="${javac.no.jdk.warnings}"/>
   545                     <compilerarg line="${javac.no.jdk.warnings}"/>
   548                     <compilerarg line="${javac.version.opt}"/>
   546                     <compilerarg line="${javac.version.opt}"/>
   549                     <compilerarg line="${javac.lint.opts}"/>
   547                     <compilerarg line="${javac.lint.opts}"/>
   550                 </javac>
   548                 </javac>
   551                 <copy todir="@{classes.dir}">
   549                 <copy todir="@{classes.dir}">
   552                     <fileset dir="${src.classes.dir}"> 
   550                     <fileset dir="${src.classes.dir}">
   553                         <include name="@{includes}"/>
   551                         <include name="@{includes}"/>
   554                         <exclude name="**/*.java"/>
   552                         <exclude name="**/*.java"/>
   555                         <exclude name="**/*.properties"/>
   553                         <exclude name="**/*.properties"/>
   556                         <exclude name="**/*-template"/>
   554                         <exclude name="**/*-template"/>
   557                         <exclude name="**/package.html"/>
   555                         <exclude name="**/package.html"/>
   558                     </fileset>
   556                     </fileset>
   559                 </copy>
   557                 </copy>
   560             </sequential>
   558             </sequential>
   561         </macrodef>
   559         </macrodef>
   562     </target>
   560     </target>
   563     
   561 
   564     <target name="-def-build-bootstrap-tool" depends="-check-boot.java.home,-def-build-tool">
   562     <target name="-def-build-bootstrap-tool" depends="-check-boot.java.home,-def-build-tool">
   565         <presetdef name="build-bootstrap-tool">
   563         <presetdef name="build-bootstrap-tool">
   566             <build-tool
   564             <build-tool
   567                 javac.source="${boot.javac.source}"
   565                 javac.source="${boot.javac.source}"
   568                 javac.target="${boot.javac.target}"
   566                 javac.target="${boot.javac.target}"
   574                 javac.bootclasspath=""
   572                 javac.bootclasspath=""
   575                 release="${bootstrap.release}"
   573                 release="${bootstrap.release}"
   576                 full.version="${bootstrap.full.version}"/>
   574                 full.version="${bootstrap.full.version}"/>
   577         </presetdef>
   575         </presetdef>
   578     </target>
   576     </target>
   579     
   577 
   580     <target name="-def-build-bootstrap-jar" depends="-def-build-jar">
   578     <target name="-def-build-bootstrap-jar" depends="-def-build-jar">
   581         <presetdef name="build-bootstrap-jar">
   579         <presetdef name="build-bootstrap-jar">
   582             <build-jar
   580             <build-jar
   583                 javac.source="${boot.javac.source}"
   581                 javac.source="${boot.javac.source}"
   584                 javac.target="${boot.javac.target}"
   582                 javac.target="${boot.javac.target}"
   588                 javac.bootclasspath=""
   586                 javac.bootclasspath=""
   589                 release="${bootstrap.release}"
   587                 release="${bootstrap.release}"
   590                 full.version="${bootstrap.full.version}"/>
   588                 full.version="${bootstrap.full.version}"/>
   591         </presetdef>
   589         </presetdef>
   592     </target>
   590     </target>
   593     
   591 
   594     <target name="-def-pcompile">
   592     <target name="-def-pcompile">
   595         <mkdir dir="${build.toolclasses.dir}"/>
   593         <mkdir dir="${build.toolclasses.dir}"/>
   596         <javac fork="true"
   594         <javac fork="true"
   597                executable="${boot.java.home}/bin/javac"
   595                executable="${boot.java.home}/bin/javac"
   598                srcdir="${make.tools.dir}/CompileProperties"
   596                srcdir="${make.tools.dir}/CompileProperties"
   599                destdir="${build.toolclasses.dir}/"
   597                destdir="${build.toolclasses.dir}/"
   600                classpath="${ant.home}/lib/ant.jar"/>
   598                classpath="${ant.home}/lib/ant.jar"/>
   601         <taskdef name="pcompile"
   599         <taskdef name="pcompile"
   602                  classname="CompilePropertiesTask" 
   600                  classname="CompilePropertiesTask"
   603                  classpath="${build.toolclasses.dir}/"/>
   601                  classpath="${build.toolclasses.dir}/"/>
   604     </target>
   602     </target>
   605     
   603 
   606     <target name="-def-javadoc-tool" depends="-check-target.java.home">
   604     <target name="-def-javadoc-tool" depends="-check-target.java.home">
   607         <macrodef name="javadoc-tool">
   605         <macrodef name="javadoc-tool">
   608             <attribute name="name"/>
   606             <attribute name="name"/>
   609             <attribute name="includes"/>
   607             <attribute name="includes"/>
   610             <attribute name="options" default=""/>
   608             <attribute name="options" default=""/>
   612             <sequential>
   610             <sequential>
   613                 <property name="javadoc.options" value=""/> <!-- default, can be overridden per user or per project -->
   611                 <property name="javadoc.options" value=""/> <!-- default, can be overridden per user or per project -->
   614                 <!-- Note: even with this default value, includes
   612                 <!-- Note: even with this default value, includes
   615          from src.classes.dir get javadoc'd; see packageset below -->
   613          from src.classes.dir get javadoc'd; see packageset below -->
   616                 <property name="javadoc.packagenames" value="none"/> <!-- default, can be overridden per user or per project -->
   614                 <property name="javadoc.packagenames" value="none"/> <!-- default, can be overridden per user or per project -->
   617                 <javadoc 
   615                 <javadoc
   618                     executable="${target.java.home}/bin/javadoc"
   616                     executable="${target.java.home}/bin/javadoc"
   619                     destdir="${build.javadoc.dir}/@{name}" 
   617                     destdir="${build.javadoc.dir}/@{name}"
   620                     source="@{source}"
   618                     source="@{source}"
   621                     windowtitle="UNOFFICIAL" 
   619                     windowtitle="UNOFFICIAL"
   622                     failonerror="true" 
   620                     failonerror="true"
   623                     use="true"
   621                     use="true"
   624                     author="false" 
   622                     author="false"
   625                     version="false"
   623                     version="false"
   626                     packagenames="${javadoc.packagenames}" >
   624                     packagenames="${javadoc.packagenames}" >
   627                     <header><![CDATA[<strong>Unofficial Javadoc</strong> generated from developer sources for preview purposes only]]></header>
   625                     <header><![CDATA[<strong>Unofficial Javadoc</strong> generated from developer sources for preview purposes only]]></header>
   628                     <arg line="@{options}"/>
   626                     <arg line="@{options}"/>
   629                     <bootclasspath>
   627                     <bootclasspath>
   648                     </packageset>
   646                     </packageset>
   649                 </javadoc>
   647                 </javadoc>
   650             </sequential>
   648             </sequential>
   651         </macrodef>
   649         </macrodef>
   652     </target>
   650     </target>
   653     
   651 
   654     <target name="-def-jtreg" unless="jtreg.defined" depends="-check-jtreg.home">
   652     <target name="-def-jtreg" unless="jtreg.defined" depends="-check-jtreg.home,-check-target.java.home">
   655         <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant">
   653         <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant">
   656             <classpath>
   654             <classpath>
   657                 <pathelement location="${jtreg.home}/lib/jtreg.jar"/>
   655                 <pathelement location="${jtreg.home}/lib/jtreg.jar"/>
   658                 <pathelement location="${jtreg.home}/lib/javatest.jar"/>
   656                 <pathelement location="${jtreg.home}/lib/javatest.jar"/>
   659             </classpath>
   657             </classpath>
   660         </taskdef>
   658         </taskdef>
   661         <macrodef name="jtreg-tool">
   659         <macrodef name="jtreg-tool">
   662             <attribute name="name"/>
   660             <attribute name="name"/>
   663             <attribute name="tests"/>
   661             <attribute name="tests"/>
   664             <attribute name="jdk" default="${target.java.home}"/>
   662             <attribute name="jdk" default="${target.java.home}"/>
   665             <attribute name="samevm" default="false"/>
   663             <attribute name="samevm" default="true"/>
   666             <attribute name="verbose" default="summary"/>
   664             <attribute name="verbose" default="summary"/>
   667             <attribute name="options" default=""/>
   665             <attribute name="options" default=""/>
   668             <attribute name="keywords" default="-keywords:!ignore"/>
   666             <attribute name="keywords" default="-keywords:!ignore"/>
   669             <attribute name="jpda.jvmargs" default=""/>
   667             <attribute name="jpda.jvmargs" default=""/>
   670             <sequential>
   668             <sequential>
   671                 <property name="coverage.options" value=""/>    <!-- default -->
   669                 <property name="coverage.options" value=""/>    <!-- default -->
   672                 <property name="coverage.classpath" value=""/>    <!-- default -->
   670                 <property name="coverage.classpath" value=""/>    <!-- default -->
   673                 <jtreg 
   671                 <jtreg
   674                     dir="${test.dir}"
   672                     dir="${test.dir}"
   675                     workDir="${build.jtreg.dir}/@{name}/work" 
   673                     workDir="${build.jtreg.dir}/@{name}/work"
   676                     reportDir="${build.jtreg.dir}/@{name}/report"
   674                     reportDir="${build.jtreg.dir}/@{name}/report"
   677                     jdk="@{jdk}"
   675                     jdk="@{jdk}"
   678                     samevm="@{samevm}" verbose="@{verbose}"
   676                     samevm="@{samevm}" verbose="@{verbose}"
   679                     failonerror="false" resultproperty="jtreg.@{name}.result"
   677                     failonerror="false" resultproperty="jtreg.@{name}.result"
   680                     javacoptions="-g"
   678                     javacoptions="-g"
   681                     vmoptions="${coverage.options} -Xbootclasspath/p:${coverage.classpath}:${build.classes.dir} @{jpda.jvmargs}">
   679                     vmoptions="${coverage.options} -Xbootclasspath/p:${coverage.classpath}:${build.classes.dir} @{jpda.jvmargs}">
   682                     <arg line="@{keywords}"/>
   680                     <arg line="@{keywords}"/>
   683                     <arg line="@{options}"/>
   681                     <arg line="@{options}"/>
   684                     <arg line="@{tests}"/>
   682                     <arg line="@{tests}"/>
   685                 </jtreg>
   683                 </jtreg>
   686                 <!-- the next two properties are for convenience, when only 
   684                 <!-- the next two properties are for convenience, when only
   687                      a single instance of jtreg will be invoked. -->
   685                      a single instance of jtreg will be invoked. -->
   688                 <condition property="jtreg.passed">
   686                 <condition property="jtreg.passed">
   689                     <equals arg1="${jtreg.@{name}.result}" arg2="0"/>
   687                     <equals arg1="${jtreg.@{name}.result}" arg2="0"/>
   690                 </condition>
   688                 </condition>
   691                 <property name="jtreg.report" value="${build.jtreg.dir}/@{name}/report"/>
   689                 <property name="jtreg.report" value="${build.jtreg.dir}/@{name}/report"/>
   699             <fileset dir="${cobertura.home}">
   697             <fileset dir="${cobertura.home}">
   700                 <include name="cobertura.jar"/>
   698                 <include name="cobertura.jar"/>
   701                 <include name="lib/**/*.jar"/>
   699                 <include name="lib/**/*.jar"/>
   702             </fileset>
   700             </fileset>
   703         </path>
   701         </path>
   704 	<taskdef classpathref="cobertura.classpath" resource="tasks.properties"/>
   702         <taskdef classpathref="cobertura.classpath" resource="tasks.properties"/>
   705     </target>
   703     </target>
   706     
   704 
   707     <target name="-def-findbugs" unless="findbugs.defined" depends="-check-findbugs.home">
   705     <target name="-def-findbugs" unless="findbugs.defined" depends="-check-findbugs.home">
   708         <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask">
   706         <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask">
   709             <classpath>
   707             <classpath>
   710                 <pathelement location="${findbugs.home}/lib/findbugs.jar"/>
   708                 <pathelement location="${findbugs.home}/lib/findbugs.jar"/>
   711             </classpath>
   709             </classpath>
   714             <attribute name="name"/>
   712             <attribute name="name"/>
   715             <attribute name="output" default="emacs"/>
   713             <attribute name="output" default="emacs"/>
   716             <attribute name="outputFile" default=""/>
   714             <attribute name="outputFile" default=""/>
   717             <attribute name="reportLevel" default="high"/>
   715             <attribute name="reportLevel" default="high"/>
   718             <sequential>
   716             <sequential>
   719                 <findbugs 
   717                 <findbugs
   720                     home="${findbugs.home}"
   718                     home="${findbugs.home}"
   721                     output="@{output}"
   719                     output="@{output}"
   722                     outputFile="@{outputFile}"
   720                     outputFile="@{outputFile}"
   723                     reportLevel="@{reportLevel}"
   721                     reportLevel="@{reportLevel}"
   724                     failOnError="false"
   722                     failOnError="false"
   735                 </findbugs>
   733                 </findbugs>
   736             </sequential>
   734             </sequential>
   737         </macrodef>
   735         </macrodef>
   738         <property name="findbugs.defined" value="true"/>
   736         <property name="findbugs.defined" value="true"/>
   739     </target>
   737     </target>
   740     
   738 
   741     <target name="-def-check">
   739     <target name="-def-check">
   742         <macrodef name="check">
   740         <macrodef name="check">
   743             <attribute name="name"/>
   741             <attribute name="name"/>
   744             <attribute name="property"/>
   742             <attribute name="property"/>
   745             <attribute name="marker"/>
   743             <attribute name="marker"/>
   761             </sequential>
   759             </sequential>
   762         </macrodef>
   760         </macrodef>
   763     </target>
   761     </target>
   764 
   762 
   765     <!-- standard JDK target -->
   763     <!-- standard JDK target -->
   766     <target name="sanity" 
   764     <target name="sanity"
   767         description="display settings of congiguration values">
   765         description="display settings of congiguration values">
   768         <echo level="info">ant.home = ${ant.home}</echo>
   766         <echo level="info">ant.home = ${ant.home}</echo>
   769         <echo level="info">boot.java.home = ${boot.java.home}</echo>
   767         <echo level="info">boot.java.home = ${boot.java.home}</echo>
   770         <echo level="info">target.java.home = ${target.java.home}</echo>
   768         <echo level="info">target.java.home = ${target.java.home}</echo>
   771         <echo level="info">jtreg.home = ${jtreg.home}</echo>
   769         <echo level="info">jtreg.home = ${jtreg.home}</echo>
   777         <diagnostics/>
   775         <diagnostics/>
   778     </target>
   776     </target>
   779 
   777 
   780     <target name="post-sanity" depends="-def-jtreg,sanity,build"
   778     <target name="post-sanity" depends="-def-jtreg,sanity,build"
   781         description="perform basic validation after a standard build">
   779         description="perform basic validation after a standard build">
   782         <jtreg 
   780         <jtreg
   783             dir="make/test"
   781             dir="make/test"
   784             workDir="${build.jtreg.dir}/post-sanity/work" 
   782             workDir="${build.jtreg.dir}/post-sanity/work"
   785             reportDir="${build.jtreg.dir}/post-sanity/report"
   783             reportDir="${build.jtreg.dir}/post-sanity/report"
   786             jdk="${target.java.home}"
   784             jdk="${target.java.home}"
   787             verbose="summary"
   785             verbose="summary"
   788             failonerror="false" resultproperty="jtreg.post-sanity.result">
   786             failonerror="false" resultproperty="jtreg.post-sanity.result">
   789         </jtreg>
   787         </jtreg>
   790         
   788 
   791     </target>
   789     </target>
   792 </project>
   790 </project>
   793 
   791