/[cvs]/jsr166/build.xml
ViewVC logotype

Diff of /jsr166/build.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.239 by dl, Sun Mar 26 10:40:29 2017 UTC revision 1.293 by jsr166, Thu Dec 13 01:15:07 2018 UTC
# Line 1  Line 1 
1  <project name="jsr166" default="usage"  <project name="jsr166" default="usage"
2    xmlns:if="ant:if" xmlns:unless="ant:unless"    xmlns:if="ant:if"
3      xmlns:unless="ant:unless"
4    xmlns:ivy="antlib:org.apache.ivy.ant">    xmlns:ivy="antlib:org.apache.ivy.ant">
5    
6    <description>    <description>
# Line 18  Line 19 
19    itself.  Because the JDK version matters and because different    itself.  Because the JDK version matters and because different
20    targets require different JDKs, we assume that users have created a    targets require different JDKs, we assume that users have created a
21    hierarchy containing:    hierarchy containing:
   $HOME/jdk/jdk7  
22    $HOME/jdk/jdk8    $HOME/jdk/jdk8
23    $HOME/jdk/jdk9    $HOME/jdk/jdk9
24    $HOME/jdk/jdk10    $HOME/jdk/jdk10
25      $HOME/jdk/jdk11
26      $HOME/jdk/jdk12
27      $HOME/jdk/jdk13
28    where each of the above is a JDK or a symlink to same, and    where each of the above is a JDK or a symlink to same, and
   $HOME/jdk/src/jdk7  
29    $HOME/jdk/src/jdk8    $HOME/jdk/src/jdk8
30    $HOME/jdk/src/jdk9    $HOME/jdk/src/jdk9
31    $HOME/jdk/src/jdk10    $HOME/jdk/src/jdk10
32      $HOME/jdk/src/jdk11
33      $HOME/jdk/src/jdk12
34      $HOME/jdk/src/jdk13
35    where each of the above is a complete JDK source tree    where each of the above is a complete JDK source tree
36    (e.g. mercurial forest) or a symlink to same.    (e.g. mercurial forest) or a symlink to same.
37    
38    Alternatively, define ant variables thus:    Alternatively, define ant variables thus:
39    ant -Djdk$N.home=... -Djdk$N.src.home=...    ant -Djdk$N.home=... -Djdk$N.src.home=...
40    for $N in 7 8 9 10 ...    for $N in 8 .. 13 ...
41    
42    As of 2016-03, the sources in src/main are for jdk9+ only.    As of 2016-03, the sources in src/main are for jdk9+ only.
43  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
# Line 52  Line 57 
57    
58    
59    <!-- Compilation options -->    <!-- Compilation options -->
   <property name="build.sourcelevel"    value="6"/>  
60    <property name="build.debug"          value="true"/>    <property name="build.debug"          value="true"/>
61    <property name="build.debuglevel"     value="source,lines,vars"/>    <property name="build.debuglevel"     value="source,lines,vars"/>
62    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
# Line 103  Line 107 
107      <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/share/classes"      <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/share/classes"
108        unless:set="have.java.base"/>        unless:set="have.java.base"/>
109      <local name="modules"/>      <local name="modules"/>
110      <available property="modules" file="${jdk@{v}.home}/jmods" type="dir"/>      <available property="modules" file="${jdk@{v}.home}/lib/modules" type="file"/>
111      <local name="boot.jar.dir"/>      <local name="boot.jar.dir"/>
112      <property name="boot.jar.dir"   location="${jdk@{v}.home}/jre/lib" unless:set="modules"/>      <property name="boot.jar.dir"   location="${jdk@{v}.home}/jre/lib" unless:set="modules"/>
113      <path id="bootclasspath@{v}" unless:set="modules">      <path id="bootclasspath@{v}" unless:set="modules">
# Line 134  Line 138 
138    <defjdklocations v="8"/>    <defjdklocations v="8"/>
139    <defjdklocations v="9"/>    <defjdklocations v="9"/>
140    <defjdklocations v="10"/>    <defjdklocations v="10"/>
141      <defjdklocations v="11"/>
142      <defjdklocations v="12"/>
143    
144    <!-- Source locations -->    <!-- Source locations -->
145    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
# Line 144  Line 150 
150    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>
151    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>
152    <property name="jtreg10.src.dir"      location="${test.src.dir}/jtreg"/>    <property name="jtreg10.src.dir"      location="${test.src.dir}/jtreg"/>
153      <property name="jtreg11.src.dir"      location="${test.src.dir}/jtreg"/>
154      <property name="jtreg12.src.dir"      location="${test.src.dir}/jtreg"/>
155    <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>    <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>
156    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
157    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
# Line 183  Line 191 
191    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
192    
193    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
194    <property name="java5.docroot.url"      value="http://docs.oracle.com/javase/1.5.0/docs"/>    <!-- Switched to https: in 2017-10 - JDK-8190312 -->
195    <property name="java6.docroot.url"      value="http://docs.oracle.com/javase/6/docs"/>    <property name="java5.docroot.url"  value="https://docs.oracle.com/javase/1.5.0/docs"/>
196    <property name="java7.docroot.url"      value="http://docs.oracle.com/javase/7/docs"/>    <property name="java6.docroot.url"  value="https://docs.oracle.com/javase/6/docs"/>
197    <property name="java8.docroot.url"      value="http://docs.oracle.com/javase/8/docs"/>    <property name="java7.docroot.url"  value="https://docs.oracle.com/javase/7/docs"/>
198    <!-- The expected canonical location does not yet exist as of 2016-04 -->    <property name="java8.docroot.url"  value="https://docs.oracle.com/javase/8/docs"/>
199    <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->    <property name="java9.docroot.url"  value="https://docs.oracle.com/javase/9/docs"/>
200    <property name="java9.docroot.url"      value="http://download.java.net/java/jdk9/docs"/>    <property name="java10.docroot.url" value="https://docs.oracle.com/javase/10/docs"/>
201    <!-- Default jdk doc location (latest stable release seems best) -->    <property name="java11.docroot.url" value="https://docs.oracle.com/en/java/javase/11/docs"/>
202    <property name="java.docroot.url"       value="${java8.docroot.url}"/>    <!-- The location of jdk early access docs (RIP) -->
203      <!-- <property name="java9.docroot.url" value="http://download.java.net/java/jdk9/docs"/> -->
204      <!-- <property name="java10.docroot.url" value="http://download.java.net/java/jdk10/docs"/> -->
205      <!-- <property name="java11.docroot.url" value="http://download.java.net/java/jdk11/docs"/> -->
206      <property name="java12.docroot.url" value="https://download.java.net/java/jdk12/docs"/>
207      <!-- Default jdk doc location (latest stable LTS release seems best) -->
208      <property name="java.docroot.url"   value="${java11.docroot.url}"/>
209    
210    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
211    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>
# Line 199  Line 213 
213    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>
214    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
215    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>
216      <property name="java10.api.url"     value="${java10.docroot.url}/api/"/>
217      <property name="java11.api.url"     value="${java11.docroot.url}/api/"/>
218      <property name="java12.api.url"     value="${java12.docroot.url}/api/"/>
219    <property name="java.api.url"       value="${java.docroot.url}/api/"/>    <property name="java.api.url"       value="${java.docroot.url}/api/"/>
220    
221    <!-- Define the "jtreg" task -->    <!-- Define the "jtreg" task -->
# Line 231  Line 248 
248    
249      <local name="modules"/>      <local name="modules"/>
250      <condition property="modules">      <condition property="modules">
251        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>        <available file="${jdk@{compile-target}.home}/lib/modules" type="file"/>
252      </condition>      </condition>
253    
254      <local name="use-doclint"/>      <local name="use-doclint"/>
# Line 298  Line 315 
315    </macrodef>    </macrodef>
316    
317    <!-- Define jtreg test sets for different jdk versions -->    <!-- Define jtreg test sets for different jdk versions -->
318    <fileset dir="${jtreg9.src.dir}">    <!-- ant -Djtreg.test.pattern="**/ConcurrentHashMap/" -->
319      <patternset id="jdk9.jtreg.tests">    <!-- ant -Djtreg.test.pattern="**/ToArray.java" -->
320        <include name="**/*.java"/>    <property name="jtreg.test.pattern" value="**/*.java"/>
321      </patternset>    <macrodef name="defjtregtests">
322    </fileset>      <attribute name="v"/>
323        <sequential>
324    <fileset dir="${jtreg8.src.dir}">        <fileset dir="${jtreg@{v}.src.dir}">
325      <patternset id="jdk8.jtreg.tests">          <patternset id="jdk@{v}.jtreg.tests">
326        <include name="**/*.java"/>            <include name="${jtreg.test.pattern}"/>
327      </patternset>          </patternset>
328    </fileset>        </fileset>
329        </sequential>
330      </macrodef>
331    
332    <fileset dir="${jtreg7.src.dir}">    <defjtregtests v="12"/>
333      <patternset id="jdk7.jtreg.tests">    <defjtregtests v="11"/>
334        <include name="**/*.java"/>    <defjtregtests v="10"/>
335      </patternset>    <defjtregtests v="9"/>
336    </fileset>    <defjtregtests v="8"/>
337      <defjtregtests v="7"/>
338    
339    <!-- ant -Djtreg.flags=-timeoutFactor:4 -->    <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
340    <property name="jtreg.flags" value=""/>    <property name="jtreg.flags" value=""/>
341    
342    <macrodef name="run-jtreg-tests">    <macrodef name="run-jtreg-tests">
343      <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->      <!-- ant -Djtreg11.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
     <attribute name="source" default="7"/>  
344      <attribute name="target"/>      <attribute name="target"/>
345      <attribute name="workdir"/>      <attribute name="workdir"/>
346      <attribute name="classes"/>      <attribute name="classes"/>
347        <attribute name="verbose" default="${jtreg.verbose}"/>
348      <attribute name="jtregflags" default=""/>      <attribute name="jtregflags" default=""/>
349        <element name="jtreg-elements" optional="true"/>
350    
351      <sequential>      <sequential>
352    
# Line 334  Line 355 
355    
356      <local name="modules"/>      <local name="modules"/>
357      <condition property="modules">      <condition property="modules">
358        <available file="${jdk@{target}.home}/jmods" type="dir"/>        <available file="${jdk@{target}.home}/lib/modules" type="file"/>
359      </condition>      </condition>
360    
361      <delete dir="@{workdir}/JTwork"   quiet="true"/>      <delete dir="@{workdir}/JTwork"   quiet="true"/>
# Line 343  Line 364 
364             workDir="@{workdir}/JTwork">             workDir="@{workdir}/JTwork">
365        <patternset refid="jdk@{target}.jtreg.tests"/>        <patternset refid="jdk@{target}.jtreg.tests"/>
366        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
367        <arg value="-javacoptions:--patch-module java.base=@{classes}" if:set="modules"/>        <arg value="-javacoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
368        <arg value="-vmoptions:--patch-module java.base=@{classes}" if:set="modules"/>        <arg value="-vmoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
369        <arg value="-agentvm"/>        <arg value="-agentvm"/>
370        <arg value="-noreport"/>        <arg value="-noreport"/>
371        <arg value="-verbose:${jtreg.verbose}"/>        <arg value="-verbose:@{verbose}"/>
372        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
373        <arg value="-automatic"/>        <arg value="-automatic"/>
374        <arg value="-k:!ignore"/>        <arg value="-k:!ignore"/>
375        <arg line="@{jtregflags}"/>        <arg line="@{jtregflags}"/>
376        <arg line="${jtreg.flags}"/>        <arg line="${jtreg.flags}"/>
377          <jtreg-elements/>
378      </jtreg>      </jtreg>
379      </sequential>      </sequential>
380    </macrodef>    </macrodef>
# Line 368  Line 390 
390    
391    <!-- Main targets -->    <!-- Main targets -->
392    
393    <property name="build.main.java.version" value="9"/>    <!-- Default values: may seem strange ... -->
394      <!-- At runtime, target latest LTS, i.e. jdk11 -->
395      <!-- But at build time, target jdk9, for maximal binary portability -->
396      <!-- Use javadoc12 (but -link to jdk11 api docs!), to get:
397        o override-methods=summary
398        o {@systemProperty ...}
399        o 8211194: issues linking to external documentation (was: missing package-list for JDK10 / JDK11 documentation)
400        o 8202628: javadoc generates bad links in TestModules.java
401        -->
402      <property name="java.runtime.target" value="11"/>
403      <property name="build.main.java" value="${java11}"/>
404    <property name="build.main.javac" value="${javac9}"/>    <property name="build.main.javac" value="${javac9}"/>
405      <property name="build.main.javadoc" value="${javadoc12}"/>
406      <property name="build.main.javadoc.source" value="${java.runtime.target}"/>
407    
408    <target name="dists"    <target name="dists"
           <!--  
               depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"  
           -->  
409            depends="dist, 4jdk8dist"            depends="dist, 4jdk8dist"
410            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
411              <!-- no longer supported: 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist -->
412    
413    <target name="compile"    <target name="compile"
414            depends="configure-compiler"            depends="configure-compiler"
415            description="Compiles src/main sources to build dir">            description="Compiles src/main sources to build dir">
416    
     <local name="modules"/>  
     <condition property="modules">  
       <and>  
         <available file="${jdk9.home}/jmods" type="dir"/>  
         <equals arg1="9" arg2="${build.main.java.version}"/>  
       </and>  
     </condition>  
   
417      <local name="destdir"/>      <local name="destdir"/>
418      <property name="destdir" value="${build.classes.dir}/java.base" if:set="modules"/>      <property name="destdir" value="${build.classes.dir}/java.base"/>
     <property name="destdir" value="${build.classes.dir}" unless:set="modules"/>  
419    
420      <mkdir dir="${destdir}"/>      <mkdir dir="${destdir}"/>
421    
# Line 409  Line 432 
432             fork="true">             fork="true">
433    
434        <include name="**/*.java"/>        <include name="**/*.java"/>
435        <compilerarg value="--patch-module=java.base=${src.dir}" if:set="modules"/>        <compilerarg value="--patch-module=java.base=${src.dir}"/>
436        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
437        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
438        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all,-removal"/>
439        <compilerarg value="-Werror"/>        <compilerarg line="--doclint-format html5"/>
440        <compilerarg value="-Xdoclint:all/protected,reference/private"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
441          <compilerarg value="-Werror"/>
442        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
443        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
444    
# Line 453  Line 477 
477  <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->  <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
478      <javadoc destdir="${docs.dir}"      <javadoc destdir="${docs.dir}"
479               packagenames="none"               packagenames="none"
480               link="${java9.api.url}"               link="${java.api.url}"
481               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
482               access="${build.javadoc.access}"               access="${build.javadoc.access}"
483               sourcepath="${src.dir}"               sourcepath="${src.dir}"
484               classpath=""               classpath=""
485               executable="${javadoc9}">               source="${build.main.javadoc.source}"
486                 executable="${build.main.javadoc}">
487    <!-- TODO: JDK-8214571 failonerror = "true" -->
488        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
489          <include name="**/*.java"/>          <include name="**/*.java"/>
490        </fileset>        </fileset>
491        <arg line="-Xdocrootparent ${java9.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
492        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
493        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
494          <arg value="-html5"/>
495        <arg value="--patch-module=java.base=${src.dir}"/>        <arg value="--patch-module=java.base=${src.dir}"/>
496        <arg value="-tag"/>  <!-- old school frames via docs/index.html?overview-summary.html -->
497        <arg value="${javadoc.jls.option}"/>        <arg value="--frames"/>
498  <!-- @apiNote currently unused -->        <arg value="--override-methods=summary"/>
499  <!--       <arg value="-tag"/> -->        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
500  <!--       <arg value="apiNote:a:API Note:"/> -->        <arg value="-tag"/> <arg value="implSpec:a:Implementation Requirements:"/>
501        <arg value="-tag"/>        <arg value="-tag"/> <arg value="implNote:a:Implementation Note:"/>
502        <arg value="implSpec:a:Implementation Requirements:"/>        <arg value="-tag"/> <arg value="apiNote:a:API Note:"/>
       <arg value="-tag"/>  
       <arg value="implNote:a:Implementation Note:"/>  
503  <!-- tags added in jdk9: currently unused -->  <!-- tags added in jdk9: currently unused -->
504  <!--       <arg value="-tag"/> -->  <!--  <arg value="-tag"/> <arg value="revised:X"/> -->
505  <!--       <arg value="revised:X"/> -->  <!--  <arg value="-tag"/> <arg value="spec:X"/> -->
 <!--       <arg value="-tag"/> -->  
 <!--       <arg value="spec:X"/> -->  
506      </javadoc>      </javadoc>
507    </target>    </target>
508    
# Line 489  Line 512 
512            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
513    
514    
   <target name="release"  
           depends="dist"  
           description="Puts entire CVS tree, plus distribution productions, in a jar">  
   
     <property name="release.jar" value="dist/jsr166-${version}-dist.jar"/>  
   
     <jar basedir="${basedir}" destfile="${release.jar}">  
       <!-- <exclude name="build/**"/> -->  
       <exclude name="${release.jar}"/>  
       <exclude name="user.properties"/>  
       <exclude name="etc/notes/**"/>  
       <exclude name="src/emulation/**"/>  
       <exclude name="**/SyntaxTest.java"/>  
       <exclude name="**/SuperfluousAbstract.java"/>  
       <manifest>  
         <attribute name="Built-By" value="${user.name}"/>  
         <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>  
       </manifest>  
     </jar>  
   </target>  
   
   
515    <target name="clean"    <target name="clean"
516            description="Removes all build products">            description="Removes all build products">
   
517      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
   
518    </target>    </target>
519    
520    
521    <target name="dist-clean"    <target name="dist-clean"
522            description="Removes all build and distribution products">            description="Removes all build and distribution products">
   
523      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
524      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
525    </target>    </target>
526    
527    
# Line 543  Line 540 
540            description="Runs tck tests for src/main directly">            description="Runs tck tests for src/main directly">
541    
542      <run-tck-tests      <run-tck-tests
543        target="${build.main.java.version}"        target="${java.runtime.target}"
544        workdir="${build.dir}"        workdir="${build.dir}"
545        classes="${product.jar}">        classes="${product.jar}">
546        <javac-elements>        <javac-elements>
# Line 577  Line 574 
574            depends="jar"            depends="jar"
575            description="Runs jtreg tests for src/main using the jtreg ant task">            description="Runs jtreg tests for src/main using the jtreg ant task">
576      <run-jtreg-tests      <run-jtreg-tests
577         target="${build.main.java.version}"         target="${java.runtime.target}"
578         workdir="${build.dir}"         workdir="${build.dir}"
579         classes="${product.jar}"/>         classes="${product.jar}"/>
580    </target>    </target>
581    
582    <target name="test"    <target name="test"
583            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
584            description="Runs tck and jtreg tests for src/main">            description="Runs tck and jtreg tests for src/main"/>
   </target>  
585    
586  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->    <target name="test-version-permutations"
587              depends="test9, test10, test11, test12, test9-11, test9-12, clean, test, docs">
588  <!--     <antcall target="jtreg"> -->    </target>
 <!--       <param name="build.main.java.version" value="8"/> -->  
 <!--       <param name="build.main.javac" value="${javac8}"/> -->  
 <!--     </antcall> -->  
589    
590  <!--   </target> -->    <target name="test9">
591        <antcall target="clean"/>
592        <antcall>
593          <param name="java.runtime.target" value="9"/>
594          <param name="build.main.javac" value="${javac9}"/>
595          <param name="build.main.javadoc" value="${javadoc12}"/>
596          <param name="build.main.javadoc.source" value="9"/>
597          <target name="test"/>
598          <target name="docs"/>
599        </antcall>
600      </target>
601    
602  <!--   <target name="test89" -->    <target name="test10">
603  <!--           description="Runs tck and jtreg tests for src/main for multiple java versions"> -->      <antcall target="clean"/>
604        <antcall>
605          <param name="java.runtime.target" value="10"/>
606          <param name="build.main.javac" value="${javac10}"/>
607          <param name="build.main.javadoc" value="${javadoc12}"/>
608          <param name="build.main.javadoc.source" value="10"/>
609          <target name="test"/>
610          <target name="docs"/>
611        </antcall>
612      </target>
613    
614  <!--     <antcall target="clean"/> -->    <target name="test11">
615  <!--     <antcall target="test"> -->      <antcall target="clean"/>
616  <!--       <param name="build.main.java.version" value="8"/> -->      <antcall>
617  <!--       <param name="build.main.javac" value="${javac8}"/> -->        <param name="java.runtime.target" value="11"/>
618  <!--     </antcall> -->        <param name="build.main.javac" value="${javac11}"/>
619          <param name="build.main.javadoc" value="${javadoc12}"/>
620          <param name="build.main.javadoc.source" value="11"/>
621          <target name="test"/>
622          <target name="docs"/>
623        </antcall>
624      </target>
625    
626  <!--     <antcall target="clean"/> -->    <target name="test12">
627  <!--     <antcall target="test"> -->      <antcall target="clean"/>
628  <!--       <param name="build.main.java.version" value="9"/> -->      <antcall>
629  <!--       <param name="build.main.javac" value="${javac9}"/> -->        <param name="java.runtime.target" value="12"/>
630  <!--     </antcall> -->        <param name="build.main.javac" value="${javac12}"/>
631          <param name="build.main.javadoc" value="${javadoc12}"/>
632          <param name="build.main.javadoc.source" value="12"/>
633          <target name="test"/>
634          <target name="docs"/>
635        </antcall>
636      </target>
637    
638  <!--   </target> -->    <target name="test9-11">
639        <antcall target="clean"/>
640        <antcall>
641          <param name="java.runtime.target" value="11"/>
642          <param name="build.main.javac" value="${javac9}"/>
643          <param name="build.main.javadoc" value="${javadoc12}"/>
644          <param name="build.main.javadoc.source" value="9"/>
645          <target name="test"/>
646          <target name="docs"/>
647        </antcall>
648      </target>
649    
650      <target name="test9-12">
651        <antcall target="clean"/>
652        <antcall>
653          <param name="java.runtime.target" value="12"/>
654          <param name="build.main.javac" value="${javac9}"/>
655          <param name="build.main.javadoc" value="${javadoc12}"/>
656          <param name="build.main.javadoc.source" value="9"/>
657          <target name="test"/>
658          <target name="docs"/>
659        </antcall>
660      </target>
661    
662    
663    <target name="configure-compiler">    <target name="configure-compiler">
# Line 635  Line 680 
680    </target>    </target>
681    
682    
   
   <!-- Various demos and test programs -->  
   
   
   <!-- description="Benchmark from Doug Lea's AQS paper" -->  
   <target name="loops" depends="configure-compiler">  
   
     <mkdir dir="${build.loops.dir}"/>  
   
     <javac srcdir="${loops.src.dir}"  
           destdir="${build.loops.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
            target="${build.sourcelevel}"  
          encoding="ASCII"  
              fork="true">  
   
       <compilerarg line="${build.args}"/>  
       <classpath refid="loops.classpath"/>  
       <compilerarg value="-XDignore.symbol.file=true"/>  
   
     </javac>  
   
     <java classname="ALoops" fork="true">  
       <classpath refid="loops.classpath"/>  
     </java>  
   
   </target>  
   
   
683    <target name="compile-test-loops" depends="jar"    <target name="compile-test-loops" depends="jar"
684            description="compile all the perf tests in src/test/loops">            description="Compiles all the perf tests in src/test/loops">
685    
686      <mkdir dir="${build.dir}/test/loops"/>      <mkdir dir="${build.dir}/test/loops"/>
687    
# Line 680  Line 693 
693             includeAntRuntime="false"             includeAntRuntime="false"
694             includeJavaRuntime="false"             includeJavaRuntime="false"
695             encoding="ASCII"             encoding="ASCII"
696             executable="${javac9}"             executable="${build.main.javac}"
697             fork="true">             fork="true">
698    
699        <include name="*.java"/>        <include name="*.java"/>
# Line 688  Line 701 
701        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
702        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
703        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
704      </javac>      </javac>
   
705    </target>    </target>
706    
707    
# Line 716  Line 727 
727             encoding="ASCII"             encoding="ASCII"
728             executable="${javac8}"             executable="${javac8}"
729             fork="true">             fork="true">
   
730        <include name="**/*.java"/>        <include name="**/*.java"/>
731        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
732        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
733        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
734        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
735        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
736      </javac>      </javac>
737    </target>    </target>
738    
# Line 747  Line 756 
756             encoding="ASCII"             encoding="ASCII"
757             executable="${javac8}"             executable="${javac8}"
758             fork="true">             fork="true">
   
759        <include name="**/*.java"/>        <include name="**/*.java"/>
760        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
761        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
762        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
763        <compilerarg value="-Xdoclint:all/protected,reference/private"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
764        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
765      </javac>      </javac>
766    </target>    </target>
767    
# Line 770  Line 777 
777          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
778        </manifest>        </manifest>
779      </jar>      </jar>
   
780    </target>    </target>
781    
782    
# Line 804  Line 810 
810    
811    <target name="4jdk8-test"    <target name="4jdk8-test"
812            depends="4jdk8-tck, 4jdk8-jtreg"            depends="4jdk8-tck, 4jdk8-jtreg"
813            description="Runs tck and jtreg tests for jsr166-4jdk8">            description="Runs tck and jtreg tests for jsr166-4jdk8"/>
   </target>  
814    
815    
816    <target name="4jdk8docs"    <target name="4jdk8docs"
# Line 821  Line 826 
826               access="${build.javadoc.access}"               access="${build.javadoc.access}"
827               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
828               classpath=""               classpath=""
829                 source="8"
830               executable="${javadoc8}"               executable="${javadoc8}"
831               failonerror = "true">               failonerror = "true">
832        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
# Line 828  Line 834 
834        </fileset>        </fileset>
835        <arg line="-Xdocrootparent ${java8.docroot.url}"/>        <arg line="-Xdocrootparent ${java8.docroot.url}"/>
836        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
837        <arg value="-tag"/>        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
838        <arg value="${javadoc.jls.option}"/>        <arg value="-tag"/> <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
839  <!-- @apiNote currently unused -->        <arg value="-tag"/> <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
840  <!--       <arg value="-tag"/> -->  <!-- @apiNote tag currently unused -->
841  <!--       <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->  <!--  <arg value="-tag"/> <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
       <arg value="-tag"/>  
       <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>  
       <arg value="-tag"/>  
       <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>  
842      </javadoc>      </javadoc>
843    </target>    </target>
844    
# Line 848  Line 850 
850    
851    <target name="4jdk8clean"    <target name="4jdk8clean"
852            description="Removes all 4jdk8 build products">            description="Removes all 4jdk8 build products">
   
853      <delete dir="${build.4jdk8.dir}"/>      <delete dir="${build.4jdk8.dir}"/>
   
854    </target>    </target>
855    
856    
# Line 866  Line 866 
866    </target>    </target>
867    
868    
869      <!-- jsr166 4jdk7 (no longer maintained) -->
870    
871    <!-- jsr166 4jdk7 -->    <target name="4jdk7compile" depends="configure-compiler">
   
   <target name="4jdk7compile"  
           depends="configure-compiler"  
           description="Compiles src/jdk7 sources, targeting jdk7">  
   
872      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
873    
874      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 896  Line 892 
892        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
893        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
894        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
895      </javac>      </javac>
896    </target>    </target>
897    
898    <target name="4jdk7doclint"    <target name="4jdk7doclint" depends="configure-compiler">
           depends="configure-compiler"  
           description="Finds doclint warnings">  
   
899      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
900    
901      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 927  Line 919 
919        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
920        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
921        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
922      </javac>      </javac>
923    </target>    </target>
924    
925      <target name="4jdk7jar" depends="4jdk7compile">
   <target name="4jdk7jar"  
           depends="4jdk7compile"  
           description="Builds library jar from compiled sources">  
   
926      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
927        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
928        <manifest>        <manifest>
# Line 943  Line 930 
930          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
931        </manifest>        </manifest>
932      </jar>      </jar>
   
933    </target>    </target>
934    
935      <target name="4jdk7-tck" depends="4jdk7jar">
   <target name="4jdk7-tck"  
           depends="4jdk7jar"  
           description="Runs tck tests for jsr166-4jdk7 directly">  
   
936      <run-tck-tests      <run-tck-tests
937        target="7"        target="7"
938        workdir="${build.4jdk7.dir}"        workdir="${build.4jdk7.dir}"
# Line 973  Line 955 
955      </run-tck-tests>      </run-tck-tests>
956    </target>    </target>
957    
   
958    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
959    <target name="4jdk7-tck-junit"    <target name="4jdk7-tck-junit" depends="4jdk7compile">
           depends="4jdk7compile">  
960    
961      <junit printsummary="true"      <junit printsummary="true"
962             showoutput="true"             showoutput="true"
# Line 998  Line 978 
978    
979        <test name="${jsr166.tckTestClass}" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
980        </test>        </test>
   
981      </junit>      </junit>
982    </target>    </target>
983    
984    <target name="4jdk7-jtreg"    <target name="4jdk7-jtreg" depends="4jdk7jar">
           depends="4jdk7jar"  
           description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">  
985      <run-jtreg-tests      <run-jtreg-tests
986         target="7"         target="7"
987         workdir="${build.4jdk7.dir}"         workdir="${build.4jdk7.dir}"
988         classes="${4jdk7product.jar}"/>         classes="${4jdk7product.jar}"/>
989    </target>    </target>
990    
991      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
992    
993    <target name="4jdk7-test"    <target name="4jdk7docs">
           depends="4jdk7-tck, 4jdk7-jtreg"  
           description="Runs tck and jtreg tests for jsr166-4jdk7">  
   </target>  
   
   
   <target name="4jdk7docs"  
           description="Builds javadocs for src/jdk7 to dist dir">  
   
994      <delete dir="${4jdk7docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
995      <mkdir dir="${4jdk7docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
996    
# Line 1041  Line 1011 
1011      </javadoc>      </javadoc>
1012    </target>    </target>
1013    
1014      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
1015    
1016    <target name="4jdk7dist"    <target name="4jdk7clean">
           depends="4jdk7dist-jar, 4jdk7dist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   <target name="4jdk7clean"  
           description="Removes all 4jdk7 build products">  
   
1017      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
   
1018    </target>    </target>
1019    
1020      <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
   <target name="4jdk7dist-jar"  
           depends="4jdk7clean, 4jdk7jar">  
1021      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1022    </target>    </target>
1023    
1024      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
   <target name="4jdk7dist-docs"  
           depends="4jdk7clean, 4jdk7docs">  
1025      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1026    </target>    </target>
1027    
1028    
1029    <!-- jsr166x -->    <!-- jsr166x (no longer maintained) -->
   
   <target name="jsr166xcompile"  
           depends="configure-compiler"  
           description="Compiles jsr166x sources to build dir">  
1030    
1031      <target name="jsr166xcompile" depends="configure-compiler">
1032      <mkdir dir="${build.jsr166x.classes.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1033    
1034      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1089  Line 1045 
1045             encoding="ASCII"             encoding="ASCII"
1046             executable="${javac7}"             executable="${javac7}"
1047             fork="true">             fork="true">
   
1048        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1049        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1050        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1051        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1052        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1053      </javac>      </javac>
1054    </target>    </target>
1055    
1056      <target name="jsr166xjar" depends="jsr166xcompile">
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
   
1057      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1058        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1059        <manifest>        <manifest>
# Line 1111  Line 1061 
1061          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1062        </manifest>        </manifest>
1063      </jar>      </jar>
   
1064    </target>    </target>
1065    
1066      <target name="jsr166xdocs">
   <target name="jsr166xdocs"  
           description="Builds javadocs to dist dir">  
   
1067      <delete dir="${jsr166xdocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1068      <mkdir dir="${jsr166xdocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1069    
# Line 1132  Line 1078 
1078               failonerror = "true">               failonerror = "true">
1079        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1080        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1081      </javadoc>      </javadoc>
1082    </target>    </target>
1083    
1084      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1085    
1086    <target name="jsr166xdist"    <target name="jsr166xclean">
           depends="jsr166xdist-jar, jsr166xdist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   <target name="jsr166xclean"  
           description="Removes all jsr166x build products">  
   
1087      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
   
1088    </target>    </target>
1089    
1090      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1091      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1092    </target>    </target>
1093    
1094    <target name="jsr166xdist-docs"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
           depends="jsr166xclean, jsr166xdocs">  
1095      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1096    </target>    </target>
1097    
   <!-- jsr166y -->  
1098    
1099      <!-- jsr166y (no longer maintained) -->
1100    
1101    <target name="jsr166ycompile"    <target name="jsr166ycompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
   
1102      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1103    
1104      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1189  Line 1121 
1121        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1122        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1123        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1124      </javac>      </javac>
1125    </target>    </target>
1126    
1127      <target name="jsr166yjar" depends="jsr166ycompile">
   <target name="jsr166yjar"  
           depends="jsr166ycompile"  
           description="Builds library jar from compiled sources">  
   
1128      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1129        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1130        <manifest>        <manifest>
# Line 1205  Line 1132 
1132          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1133        </manifest>        </manifest>
1134      </jar>      </jar>
   
1135    </target>    </target>
1136    
1137      <target name="jsr166ydocs">
   <target name="jsr166ydocs"  
           description="Builds javadocs to dist dir">  
   
1138      <delete dir="${jsr166ydocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1139      <mkdir dir="${jsr166ydocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1140    
# Line 1226  Line 1149 
1149               failonerror = "true">               failonerror = "true">
1150        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1151        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1152      </javadoc>      </javadoc>
1153    </target>    </target>
1154    
1155      <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1156    
1157    <target name="jsr166ydist"    <target name="jsr166yclean">
           depends="jsr166ydist-jar, jsr166ydist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   <target name="jsr166yclean"  
           description="Removes all jsr166y build products">  
   
1158      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
   
1159    </target>    </target>
1160    
1161      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1162      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1163    </target>    </target>
1164    
1165    <target name="jsr166ydist-docs"    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
           depends="jsr166yclean, jsr166ydocs">  
1166      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1167    </target>    </target>
1168    
1169    
1170    <!-- extra166y -->    <!-- extra166y (no longer maintained) -->
   
   
   <target name="extra166ycompile"  
           depends="configure-compiler, jsr166yjar"  
           description="Compiles extra166y sources">  
1171    
1172      <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1173      <mkdir dir="${build.extra166y.classes.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1174    
1175      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1284  Line 1192 
1192        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1193        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1194        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1195      </javac>      </javac>
1196    </target>    </target>
1197    
1198      <target name="extra166yjar" depends="extra166ycompile">
   <target name="extra166yjar"  
           depends="extra166ycompile"  
           description="Builds library jar from compiled sources">  
   
1199      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1200        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1201        <manifest>        <manifest>
# Line 1300  Line 1203 
1203          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1204        </manifest>        </manifest>
1205      </jar>      </jar>
   
1206    </target>    </target>
1207    
1208      <target name="extra166ydocs">
   <target name="extra166ydocs"  
           description="Builds javadocs to build dir">  
   
1209      <delete dir="${extra166ydocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1210      <mkdir dir="${extra166ydocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1211    
# Line 1320  Line 1219 
1219               executable="${javadoc7}">               executable="${javadoc7}">
1220        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1221        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1222      </javadoc>      </javadoc>
1223    </target>    </target>
1224    
1225      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1226    
1227    <target name="extra166ydist"    <target name="extra166yclean">
           depends="extra166ydist-jar, extra166ydist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
   
   <target name="extra166yclean"  
           description="Removes all extra166y build products">  
   
1228      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
   
1229    </target>    </target>
1230    
1231      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
1232      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1233    </target>    </target>
1234    
1235    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
           depends="extra166yclean, extra166ydocs">  
1236      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1237    </target>    </target>
1238    
1239    <!-- jsr166e -->  
1240      <!-- jsr166e (no longer maintained) -->
1241    
1242    <property name="build.jsr166e.java.version" value="6"/>    <property name="build.jsr166e.java.version" value="6"/>
1243    <property name="build.jsr166e.javac" value="${javac6}"/>    <property name="build.jsr166e.javac" value="${javac6}"/>
1244    
1245    <target name="jsr166ecompile"    <target name="jsr166ecompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166e sources">  
   
1246      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1247    
1248      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1377  Line 1263 
1263        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1264        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1265        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1266      </javac>      </javac>
1267    </target>    </target>
1268    
   <!-- jsr166e: find doclint errors -->  
1269    <target name="jsr166edoclint">    <target name="jsr166edoclint">
   
1270      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1271    
1272      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1405  Line 1288 
1288        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1289        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1290        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
   
1291      </javac>      </javac>
1292    </target>    </target>
1293    
1294      <target name="jsr166ejar" depends="jsr166ecompile">
   <target name="jsr166ejar"  
           depends="jsr166ecompile"  
           description="Builds library jar from compiled sources">  
   
1295      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1296        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1297        <manifest>        <manifest>
# Line 1421  Line 1299 
1299          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1300        </manifest>        </manifest>
1301      </jar>      </jar>
   
1302    </target>    </target>
1303    
1304      <target name="jsr166edocs">
   <target name="jsr166edocs"  
           description="Builds javadocs to build dir">  
   
1305      <delete dir="${jsr166edocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1306      <mkdir dir="${jsr166edocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1307    
# Line 1441  Line 1315 
1315               failonerror = "true">               failonerror = "true">
1316        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1317        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1318      </javadoc>      </javadoc>
1319    </target>    </target>
1320    
1321      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
   <target name="jsr166e-tck-one-java-version"  
           depends="jsr166ejar">  
   
1322      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
   
1323      <run-tck-tests      <run-tck-tests
1324        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1325        target="${build.jsr166e.java.version}"        target="${build.jsr166e.java.version}"
# Line 1458  Line 1327 
1327        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1328    </target>    </target>
1329    
1330    <target name="jsr166e-tck"    <target name="jsr166e-tck">
           description="Runs tck tests for jsr166e for multiple java versions">  
1331    
1332  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
1333  <!--     <antcall target="jsr166e-tck-one-java-version"> -->  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
# Line 1480  Line 1348 
1348      </antcall>      </antcall>
1349    </target>    </target>
1350    
1351      <target name="jsr166e-test" depends="jsr166e-tck"/>
1352    
1353    <target name="jsr166e-test"    <target name="jsr166edist" depends="jsr166edist-jar, jsr166edist-docs"/>
           depends="jsr166e-tck"  
           description="Runs all tests for jsr166e">  
   </target>  
   
   <target name="jsr166edist"  
           depends="jsr166edist-jar, jsr166edist-docs"  
           description="Puts all distributable products in single hierarchy"/>  
   
1354    
1355    <target name="jsr166eclean"    <target name="jsr166eclean">
           description="Removes all jsr166e build products">  
1356      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1357    </target>    </target>
1358    
   
1359    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1360            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1361      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1362    </target>    </target>
1363    
1364    <target name="jsr166edist-docs"    <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
           depends="jsr166eclean, jsr166edocs">  
1365      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1366    </target>    </target>
1367    
1368    
1369  <!-- Find buglets that can be detected by static build tools -->  <!-- Find buglets that can be detected by static build tools -->
1370    
1371    <target name="lint">  <!--   <target name="lint"> -->
1372      <antcall target="dists">  <!--     <antcall target="dists"> -->
1373        <param name="build.javadoc.access" value="public"/>  <!--       <param name="build.javadoc.access" value="protected"/> -->
1374      </antcall>  <!--     </antcall> -->
1375    </target>  <!--   </target> -->
1376    
1377  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1378    <target name="lint-private">    <target name="doclint-private">
1379      <antcall target="dist">      <antcall target="dist">
1380        <param name="build.javadoc.access" value="private"/>        <param name="build.javadoc.access" value="private"/>
1381      </antcall>      </antcall>
# Line 1525  Line 1383 
1383    
1384    
1385  <!-- ==============================================================  <!-- ==============================================================
1386    Experimental errorprone support - http://errorprone.info    Experimental errorprone support
1387    You may need to bring your own errorprone jar.    https://errorprone.info
1388      https://errorprone.info/docs/installation
1389      https://github.com/google/error-prone/issues/1143
1390  =================================================================== -->  =================================================================== -->
1391      <path id="errorprone.processorpath.path">
1392        <pathelement location="${lib.dir}/error_prone_core-2.3.2-with-dependencies.jar"/>
1393        <pathelement location="${lib.dir}/dataflow-2.5.7.jar"/>
1394        <pathelement location="${lib.dir}/javacutil-2.5.7.jar"/>
1395        <pathelement location="${lib.dir}/jFormatString-3.0.0.jar"/>
1396      </path>
1397      <property name="errorprone.processorpath" refid="errorprone.processorpath.path" />
1398      <property name="errorprone.jsr166.user.flags" value=""/>
1399      <property name="errorprone.jsr166.flags"
1400                value="-Xep:HashtableContains:OFF
1401                       -Xep:JdkObsolete:OFF
1402                       -Xep:MissingOverride:OFF
1403                       -Xep:MissingFail:OFF
1404                       -Xep:ThreadPriorityCheck:OFF
1405                       -Xep:MixedArrayDimensions:ERROR
1406                       -Xep:RemoveUnusedImports:ERROR
1407                       -Xep:EmptyIf:ERROR
1408                       -Xep:MultipleTopLevelClasses:ERROR
1409                       -Xep:ClassName:ERROR
1410                       -Xep:LongLiteralLowerCaseSuffix:ERROR
1411                       -Xep:RedundantThrows:ERROR
1412                       -Xep:IdentityBinaryExpression:WARN
1413                       -Xep:ConstructorInvokesOverridable:WARN
1414                       -Xep:MethodCanBeStatic:WARN
1415                       ${errorprone.jsr166.user.flags}"/>
1416      <!-- -Xep:WildcardImport:ERROR -->
1417      <property name="errorprone.jsr166.test.flags"
1418                value="-Xep:StringSplitter:OFF
1419                       -Xep:BoxedPrimitiveConstructor:OFF
1420                       -Xep:ModifyingCollectionWithItself:OFF"/>
1421      <!-- ant -emacs errorprone |& grep -EA1 '(warning|error):|warnings' -->
1422    <target name="errorprone"    <target name="errorprone"
1423            depends="clean, configure-compiler"            depends="clean, configure-compiler"
1424            description="Run errorprone over jsr166 source code">            description="Run errorprone over jsr166 source code (experimental)">
1425    
1426      <local name="destdir"/>      <local name="destdir"/>
1427      <property name="destdir" value="${build.classes.dir}/java.base"/>      <property name="destdir" value="${build.classes.dir}/java.base"/>
# Line 1549  Line 1440 
1440             fork="true">             fork="true">
1441    
1442        <include name="**/*.java"/>        <include name="**/*.java"/>
1443        <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED"/>        <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1444        <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"/>        <compilerarg value="-J--illegal-access=permit"/>
1445        <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"/>        <compilerarg value="-XDcompilePolicy=simple"/>
1446        <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED"/>        <compilerarg value="-processorpath"/>
1447        <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"/>        <compilerarg pathref="errorprone.processorpath.path"/>
       <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"/>  
       <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED"/>  
       <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>  
       <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>  
       <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.20-SNAPSHOT.jar"/>  
1448        <compilerarg value="-Xplugin:ErrorProne        <compilerarg value="-Xplugin:ErrorProne
1449                            -Xep:IdentityBinaryExpression:WARN                            ${errorprone.jsr166.flags}"/>
                           -Xep:MissingOverride:OFF  
                           -Xep:MixedArrayDimensions:WARN  
                           -Xep:RemoveUnusedImports:ERROR  
                           -Xep:MethodCanBeStatic:WARN"/>  
1450        <compilerarg value="--patch-module=java.base=${src.dir}"/>        <compilerarg value="--patch-module=java.base=${src.dir}"/>
1451        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
1452        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
# Line 1579  Line 1461 
1461      </jar>      </jar>
1462    
1463      <run-tck-tests      <run-tck-tests
1464        target="${build.main.java.version}"        target="${java.runtime.target}"
1465        workdir="${build.dir}"        workdir="${build.dir}"
1466        classes="${product.jar}">        classes="${product.jar}">
1467        <javac-elements>        <javac-elements>
1468          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED"/>          <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1469          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"/>          <compilerarg value="-J--illegal-access=permit"/>
1470          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"/>          <compilerarg value="-XDcompilePolicy=simple"/>
1471          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED"/>          <compilerarg line="-processorpath ${errorprone.processorpath}"/>
1472          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"/>          <compilerarg value="-Xplugin:ErrorProne
1473          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"/>                              ${errorprone.jsr166.flags}
1474          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED"/>                              ${errorprone.jsr166.test.flags}"/>
         <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>  
         <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>  
         <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.20-SNAPSHOT.jar"/>  
         <compilerarg value="-Xplugin:ErrorProne  
                             -Xep:IdentityBinaryExpression:WARN  
                             -Xep:BoxedPrimitiveConstructor:OFF  
                             -Xep:HashtableContains:OFF  
                             -Xep:ModifyingCollectionWithItself:OFF  
                             -Xep:MissingOverride:OFF  
                             -Xep:MixedArrayDimensions:WARN  
                             -Xep:RemoveUnusedImports:ERROR  
                             -Xep:MethodCanBeStatic:WARN"/>  
1475          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1476        </javac-elements>        </javac-elements>
1477      </run-tck-tests>      </run-tck-tests>
1478    </target>    </target>
1479    
1480      <!-- ant -emacs errorprone-jtreg |& grep -EA1 '(warning|error):' -->
1481      <!-- -XDcompilePolicy=simple or byfile avoids confusing UnusedImports -->
1482      <target name="errorprone-jtreg"
1483              depends="jar"
1484              description="Run errorprone over jtreg tests (experimental)">
1485    
1486        <run-jtreg-tests
1487           target="${java.runtime.target}"
1488           workdir="${build.dir}"
1489           classes="${product.jar}"
1490           verbose="all">
1491          <jtreg-elements>
1492            <arg value="-javacoption:-XDcompilePolicy=simple"/>
1493            <arg value="-javacoption:-processorpath"/>
1494            <arg value="-javacoption:${errorprone.processorpath}"/>
1495            <arg value="-javacoption:-Xplugin:ErrorProne
1496                                ${errorprone.jsr166.flags}
1497                                ${errorprone.jsr166.test.flags}
1498                                -Xep:MultipleTopLevelClasses:WARN
1499                                -Xep:NonAtomicVolatileUpdate:OFF"/>
1500          </jtreg-elements>
1501        </run-jtreg-tests>
1502      </target>
1503    
1504    
1505  <!-- ==============================================================  <!-- ==============================================================
1506    Running guava tests against jsr166 code    Running guava tests against jsr166 code
# Line 1660  Line 1554 
1554      <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"      <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1555           dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>           dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1556      <junit printsummary="true" showoutput="true" haltonfailure="true"      <junit printsummary="true" showoutput="true" haltonfailure="true"
1557             jvm="${java9}" fork="true">             jvm="${build.main.java}" fork="true">
1558        <jvmarg line="-ea -esa --patch-module java.base=${product.jar}"/>        <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
1559        <formatter type="brief"/>        <formatter type="brief"/>
1560        <classpath>        <classpath>
1561          <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>          <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>

Legend:
Removed from v.1.239  
changed lines
  Added in v.1.293

dl@cs.oswego.edu
ViewVC Help
Powered by ViewVC 1.1.27