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

Diff of /jsr166/build.xml

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

revision 1.234 by jsr166, Sat Feb 18 18:33:42 2017 UTC revision 1.303 by jsr166, Tue Sep 17 16:20:44 2019 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/jdk11
24    $HOME/jdk/jdk10    $HOME/jdk/jdk12
25      $HOME/jdk/jdk13
26      $HOME/jdk/jdk14
27    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  
28    $HOME/jdk/src/jdk8    $HOME/jdk/src/jdk8
29    $HOME/jdk/src/jdk9    $HOME/jdk/src/jdk11
30    $HOME/jdk/src/jdk10    $HOME/jdk/src/jdk12
31      $HOME/jdk/src/jdk13
32      $HOME/jdk/src/jdk14
33    where each of the above is a complete JDK source tree    where each of the above is a complete JDK source tree
34    (e.g. mercurial forest) or a symlink to same.    (e.g. mercurial forest) or a symlink to same.
35    
36    Alternatively, define ant variables thus:    Alternatively, define ant variables thus:
37    ant -Djdk$N.home=... -Djdk$N.src.home=...    ant -Djdk$N.home=... -Djdk$N.src.home=...
38    for $N in 7 8 9 10 ...    for $N in 8 .. 14 ...
39    
40    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.
41      As of 2019-08, the sources in src/main are for jdk11+ only.
42  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
43    </description>    </description>
44    
# Line 52  Line 56 
56    
57    
58    <!-- Compilation options -->    <!-- Compilation options -->
   <property name="build.sourcelevel"    value="6"/>  
59    <property name="build.debug"          value="true"/>    <property name="build.debug"          value="true"/>
60    <property name="build.debuglevel"     value="source,lines,vars"/>    <property name="build.debuglevel"     value="source,lines,vars"/>
61    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
# Line 103  Line 106 
106      <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"
107        unless:set="have.java.base"/>        unless:set="have.java.base"/>
108      <local name="modules"/>      <local name="modules"/>
109      <available property="modules" file="${jdk@{v}.home}/jmods" type="dir"/>      <available property="modules" file="${jdk@{v}.home}/lib/modules" type="file"/>
110      <local name="boot.jar.dir"/>      <local name="boot.jar.dir"/>
111      <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"/>
112      <path id="bootclasspath@{v}" unless:set="modules">      <path id="bootclasspath@{v}" unless:set="modules">
# Line 129  Line 132 
132      </sequential>      </sequential>
133    </macrodef>    </macrodef>
134    
   <defjdklocations v="6"/>  
   <defjdklocations v="7"/>  
135    <defjdklocations v="8"/>    <defjdklocations v="8"/>
136    <defjdklocations v="9"/>    <defjdklocations v="11"/>
137    <defjdklocations v="10"/>    <defjdklocations v="12"/>
138      <defjdklocations v="13"/>
139      <defjdklocations v="14"/>
140    
141    <!-- Source locations -->    <!-- Source locations -->
142    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
143    <property name="test.src.dir"         location="${basedir}/src/test"/>    <property name="test.src.dir"         location="${basedir}/src/test"/>
144    <property name="loops.src.dir"        location="${basedir}/src/loops"/>    <property name="loops.src.dir"        location="${basedir}/src/loops"/>
145    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>
   <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>  
146    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>
147    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>    <property name="jtreg11.src.dir"      location="${test.src.dir}/jtreg"/>
148    <property name="jtreg10.src.dir"      location="${test.src.dir}/jtreg"/>    <property name="jtreg12.src.dir"      location="${test.src.dir}/jtreg"/>
149    <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>    <property name="jtreg13.src.dir"      location="${test.src.dir}/jtreg"/>
150      <property name="jtreg14.src.dir"      location="${test.src.dir}/jtreg"/>
151      <property name="jtreg.src.dir"        location="${jtreg11.src.dir}"/>
152    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
153    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
154    <property name="topsrc.dir"           location="${basedir}/src"/>    <property name="topsrc.dir"           location="${basedir}/src"/>
# Line 183  Line 187 
187    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
188    
189    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
190    <property name="java5.docroot.url"      value="http://docs.oracle.com/javase/1.5.0/docs"/>    <!-- Switched to https: in 2017-10 - JDK-8190312 -->
191    <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"/>
192    <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"/>
193    <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"/>
194    <!-- 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"/>
195    <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->    <property name="java11.docroot.url" value="https://docs.oracle.com/en/java/javase/11/docs"/>
196    <property name="java9.docroot.url"      value="http://download.java.net/java/jdk9/docs"/>    <property name="java12.docroot.url" value="https://docs.oracle.com/en/java/javase/12/docs"/>
197    <!-- Default jdk doc location (latest stable release seems best) -->    <property name="java13.docroot.url" value="https://docs.oracle.com/en/java/javase/13/docs"/>
198    <property name="java.docroot.url"       value="${java8.docroot.url}"/>    <!-- The location of jdk early access docs (RIP) -->
199      <!-- <property name="java11.docroot.url" value="http://download.java.net/java/jdk11/docs"/> -->
200      <!-- <property name="java12.docroot.url" value="https://download.java.net/java/jdk12/docs"/> -->
201      <!-- <property name="java13.docroot.url" value="https://download.java.net/java/early_access/jdk13/docs"/> -->
202      <property name="java14.docroot.url" value="https://download.java.net/java/early_access/jdk14/docs"/>
203      <!-- Default jdk doc location (latest stable LTS release seems best) -->
204      <property name="java.docroot.url"   value="${java11.docroot.url}"/>
205    
206    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
   <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>  
   <property name="java6.api.url"      value="${java6.docroot.url}/api/"/>  
   <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>  
207    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>    <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
208    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>    <property name="java11.api.url"     value="${java11.docroot.url}/api/"/>
209      <property name="java12.api.url"     value="${java12.docroot.url}/api/"/>
210      <property name="java13.api.url"     value="${java13.docroot.url}/api/"/>
211      <property name="java14.api.url"     value="${java14.docroot.url}/api/"/>
212    <property name="java.api.url"       value="${java.docroot.url}/api/"/>    <property name="java.api.url"       value="${java.docroot.url}/api/"/>
213    
214    <!-- Define the "jtreg" task -->    <!-- Define the "jtreg" task -->
# Line 231  Line 241 
241    
242      <local name="modules"/>      <local name="modules"/>
243      <condition property="modules">      <condition property="modules">
244        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>        <available file="${jdk@{compile-target}.home}/lib/modules" type="file"/>
245        </condition>
246    
247        <local name="use-doclint"/>
248        <condition property="use-doclint">
249          <not> <equals arg1="@{target}" arg2="7"/> </not>
250      </condition>      </condition>
251    
252      <mkdir dir="@{workdir}/tck-classes"/>      <mkdir dir="@{workdir}/tck-classes"/>
# Line 253  Line 268 
268        <include name="*.java"/>        <include name="*.java"/>
269        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
270        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
271          <compilerarg value="-Xdoclint:reference/private" if:set="use-doclint"/>
272        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
273        <compilerarg value="--patch-module=java.base=@{classes}" if:set="modules"/>        <compilerarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
274        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
# Line 292  Line 308 
308    </macrodef>    </macrodef>
309    
310    <!-- Define jtreg test sets for different jdk versions -->    <!-- Define jtreg test sets for different jdk versions -->
311    <fileset dir="${jtreg9.src.dir}">    <!-- ant -Djtreg.test.pattern="**/ConcurrentHashMap/" -->
312      <patternset id="jdk9.jtreg.tests">    <!-- ant -Djtreg.test.pattern="**/ToArray.java" -->
313        <include name="**/*.java"/>    <property name="jtreg.test.pattern" value="**/*.java"/>
314      </patternset>    <macrodef name="defjtregtests">
315    </fileset>      <attribute name="v"/>
316        <sequential>
317    <fileset dir="${jtreg8.src.dir}">        <fileset dir="${jtreg@{v}.src.dir}">
318      <patternset id="jdk8.jtreg.tests">          <patternset id="jdk@{v}.jtreg.tests">
319        <include name="**/*.java"/>            <include name="${jtreg.test.pattern}"/>
320      </patternset>          </patternset>
321    </fileset>        </fileset>
322        </sequential>
323      </macrodef>
324    
325    <fileset dir="${jtreg7.src.dir}">    <defjtregtests v="14"/>
326      <patternset id="jdk7.jtreg.tests">    <defjtregtests v="13"/>
327        <include name="**/*.java"/>    <defjtregtests v="12"/>
328      </patternset>    <defjtregtests v="11"/>
329    </fileset>    <defjtregtests v="8"/>
330    
331    <!-- ant -Djtreg.flags=-timeoutFactor:4 -->    <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
332    <property name="jtreg.flags" value=""/>    <property name="jtreg.flags" value=""/>
333    
334    <macrodef name="run-jtreg-tests">    <macrodef name="run-jtreg-tests">
335      <!-- 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"/>  
336      <attribute name="target"/>      <attribute name="target"/>
337      <attribute name="workdir"/>      <attribute name="workdir"/>
338      <attribute name="classes"/>      <attribute name="classes"/>
339        <attribute name="verbose" default="${jtreg.verbose}"/>
340      <attribute name="jtregflags" default=""/>      <attribute name="jtregflags" default=""/>
341        <element name="jtreg-elements" optional="true"/>
342    
343      <sequential>      <sequential>
344    
# Line 328  Line 347 
347    
348      <local name="modules"/>      <local name="modules"/>
349      <condition property="modules">      <condition property="modules">
350        <available file="${jdk@{target}.home}/jmods" type="dir"/>        <available file="${jdk@{target}.home}/lib/modules" type="file"/>
351      </condition>      </condition>
352    
353      <delete dir="@{workdir}/JTwork"   quiet="true"/>      <delete dir="@{workdir}/JTwork"   quiet="true"/>
# Line 337  Line 356 
356             workDir="@{workdir}/JTwork">             workDir="@{workdir}/JTwork">
357        <patternset refid="jdk@{target}.jtreg.tests"/>        <patternset refid="jdk@{target}.jtreg.tests"/>
358        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
359        <arg value="-javacoptions:--patch-module java.base=@{classes}" if:set="modules"/>        <arg value="-javacoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
360        <arg value="-vmoptions:--patch-module java.base=@{classes}" if:set="modules"/>        <arg value="-vmoptions:--patch-module=java.base=@{classes}" if:set="modules"/>
361        <arg value="-agentvm"/>        <arg value="-agentvm"/>
362        <arg value="-noreport"/>        <arg value="-noreport"/>
363        <arg value="-verbose:${jtreg.verbose}"/>        <arg value="-verbose:@{verbose}"/>
364        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
365        <arg value="-automatic"/>        <arg value="-automatic"/>
366        <arg value="-k:!ignore"/>        <arg value="-k:!ignore"/>
367        <arg line="@{jtregflags}"/>        <arg line="@{jtregflags}"/>
368        <arg line="${jtreg.flags}"/>        <arg line="${jtreg.flags}"/>
369          <jtreg-elements/>
370      </jtreg>      </jtreg>
371      </sequential>      </sequential>
372    </macrodef>    </macrodef>
# Line 357  Line 377 
377    </path>    </path>
378    
379    <!-- Support @jls tag, used in jdk8+ javadoc -->    <!-- Support @jls tag, used in jdk8+ javadoc -->
380      <!-- TODO: switch to @jls taglet, as supported by jdk14+ javadoc -->
381    <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>    <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
382    <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>    <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
383    
384    <!-- Main targets -->    <!-- Main targets -->
385    
386    <property name="build.main.java.version" value="9"/>    <!-- Default values: may seem strange ... -->
387    <property name="build.main.javac" value="${javac9}"/>    <!-- At runtime, target latest LTS, i.e. jdk11 -->
388      <!-- But at build time, target jdk9, for maximal binary portability -->
389      <!-- ButButBut as of 2019-08, target jdk11 at build time -->
390      <!-- Use javadoc12 (but -link to jdk11 api docs!), to get:
391        o override-methods=summary
392        o {@systemProperty ...}
393        o 8211194: issues linking to external documentation (was: missing package-list for JDK10 / JDK11 documentation)
394        o 8202628: javadoc generates bad links in TestModules.java
395        -->
396      <property name="java.runtime.target" value="11"/>
397      <property name="build.main.java" value="${java11}"/>
398      <property name="build.main.javac" value="${javac11}"/>
399      <property name="build.main.javadoc" value="${javadoc12}"/>
400      <property name="build.main.javadoc.source" value="${java.runtime.target}"/>
401    
402    <target name="dists"    <target name="dists"
403            depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"            depends="dist, 4jdk8dist"
404            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
405              <!-- no longer supported: 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist -->
406    
407    <target name="compile"    <target name="compile"
408            depends="configure-compiler"            depends="configure-compiler"
409            description="Compiles src/main sources to build dir">            description="Compiles src/main sources to build dir">
410    
     <local name="modules"/>  
     <condition property="modules">  
       <and>  
         <available file="${jdk9.home}/jmods" type="dir"/>  
         <equals arg1="9" arg2="${build.main.java.version}"/>  
       </and>  
     </condition>  
   
411      <local name="destdir"/>      <local name="destdir"/>
412      <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"/>  
413    
414      <mkdir dir="${destdir}"/>      <mkdir dir="${destdir}"/>
415    
# Line 400  Line 426 
426             fork="true">             fork="true">
427    
428        <include name="**/*.java"/>        <include name="**/*.java"/>
429        <compilerarg value="--patch-module=java.base=${src.dir}" if:set="modules"/>        <compilerarg value="--patch-module=java.base=${src.dir}"/>
430        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
431        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
432        <compilerarg value="-Xlint:all"/>  <!--   Xlint:-removal for jdk12 Unsafe Object -> Reference renaming -->
433          <compilerarg value="-Xlint:all,-removal"/>
434          <compilerarg line="--doclint-format html5"/>
435          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
436          <compilerarg value="-Xdoclint/package:java.util.*"/>
437        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
       <compilerarg value="-Xdoclint:all/protected"/>  
438        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
439        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
440    
# Line 444  Line 473 
473  <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->  <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
474      <javadoc destdir="${docs.dir}"      <javadoc destdir="${docs.dir}"
475               packagenames="none"               packagenames="none"
476               link="${java9.api.url}"               link="${java.api.url}"
477               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
478               access="${build.javadoc.access}"               access="${build.javadoc.access}"
479               sourcepath="${src.dir}"               sourcepath="${src.dir}"
480               classpath=""               classpath=""
481               executable="${javadoc9}">               source="${build.main.javadoc.source}"
482                 executable="${build.main.javadoc}">
483    <!-- TODO: JDK-8214571 failonerror = "true" -->
484        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
485          <include name="**/*.java"/>          <include name="**/*.java"/>
486        </fileset>        </fileset>
487        <arg line="-Xdocrootparent ${java9.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
488        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
489        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
490          <arg value="-html5"/>
491        <arg value="--patch-module=java.base=${src.dir}"/>        <arg value="--patch-module=java.base=${src.dir}"/>
492        <arg value="-tag"/>  <!-- old school frames via docs/index.html?overview-summary.html -->
493        <arg value="${javadoc.jls.option}"/>  <!-- TODO: - -frames no longer a supported option in jdk13+ -->
494  <!-- @apiNote currently unused -->        <arg value="--frames"/>
495  <!--       <arg value="-tag"/> -->        <arg value="--override-methods=summary"/>
496  <!--       <arg value="apiNote:a:API Note:"/> -->        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
497        <arg value="-tag"/>        <arg value="-tag"/> <arg value="implSpec:a:Implementation Requirements:"/>
498        <arg value="implSpec:a:Implementation Requirements:"/>        <arg value="-tag"/> <arg value="implNote:a:Implementation Note:"/>
499        <arg value="-tag"/>        <arg value="-tag"/> <arg value="apiNote:a:API Note:"/>
       <arg value="implNote:a:Implementation Note:"/>  
500  <!-- tags added in jdk9: currently unused -->  <!-- tags added in jdk9: currently unused -->
501  <!--       <arg value="-tag"/> -->  <!--  <arg value="-tag"/> <arg value="revised:X"/> -->
502  <!--       <arg value="revised:X"/> -->  <!--  <arg value="-tag"/> <arg value="spec:X"/> -->
 <!--       <arg value="-tag"/> -->  
 <!--       <arg value="spec:X"/> -->  
503      </javadoc>      </javadoc>
504    </target>    </target>
505    
# Line 480  Line 509 
509            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
510    
511    
   <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>  
   
   
512    <target name="clean"    <target name="clean"
513            description="Removes all build products">            description="Removes all build products">
   
514      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
   
515    </target>    </target>
516    
517    
518    <target name="dist-clean"    <target name="dist-clean"
519            description="Removes all build and distribution products">            description="Removes all build and distribution products">
   
520      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
521      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
522    </target>    </target>
523    
524    
# Line 534  Line 537 
537            description="Runs tck tests for src/main directly">            description="Runs tck tests for src/main directly">
538    
539      <run-tck-tests      <run-tck-tests
540        target="${build.main.java.version}"        target="${java.runtime.target}"
541        workdir="${build.dir}"        workdir="${build.dir}"
542        classes="${product.jar}"/>        classes="${product.jar}">
543          <javac-elements>
544            <compilerarg value="-Werror"/>
545          </javac-elements>
546        </run-tck-tests>
547    </target>    </target>
548    
549    <target name="tck-parallelism-1"    <target name="tck-parallelism-1"
# Line 564  Line 571 
571            depends="jar"            depends="jar"
572            description="Runs jtreg tests for src/main using the jtreg ant task">            description="Runs jtreg tests for src/main using the jtreg ant task">
573      <run-jtreg-tests      <run-jtreg-tests
574         target="${build.main.java.version}"         target="${java.runtime.target}"
575         workdir="${build.dir}"         workdir="${build.dir}"
576         classes="${product.jar}"/>         classes="${product.jar}"/>
577    </target>    </target>
578    
579    <target name="test"    <target name="test"
580            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
581            description="Runs tck and jtreg tests for src/main">            description="Runs tck and jtreg tests for src/main"/>
   </target>  
582    
583  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->    <target name="test-version-permutations"
584              depends="test11, test12, test13, test14, test11-12, test11-13, test11-14, clean, test, docs">
585      </target>
586    
587  <!--     <antcall target="jtreg"> -->    <!-- jdk9 is unsupported as of 2019-08 -->
588  <!--       <param name="build.main.java.version" value="8"/> -->  <!--   <target name="test9"> -->
589  <!--       <param name="build.main.javac" value="${javac8}"/> -->  <!--     <antcall target="clean"/> -->
590    <!--     <antcall> -->
591    <!--       <param name="java.runtime.target" value="9"/> -->
592    <!--       <param name="build.main.javac" value="${javac9}"/> -->
593    <!--       <param name="build.main.javadoc" value="${javadoc12}"/> -->
594    <!--       <param name="build.main.javadoc.source" value="9"/> -->
595    <!--       <target name="test"/> -->
596    <!--       <target name="docs"/> -->
597  <!--     </antcall> -->  <!--     </antcall> -->
   
598  <!--   </target> -->  <!--   </target> -->
599    
600  <!--   <target name="test89" -->    <!-- jdk10 is unsupported as of 2019-08 -->
601  <!--           description="Runs tck and jtreg tests for src/main for multiple java versions"> -->  <!--   <target name="test10"> -->
   
602  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
603  <!--     <antcall target="test"> -->  <!--     <antcall> -->
604  <!--       <param name="build.main.java.version" value="8"/> -->  <!--       <param name="java.runtime.target" value="10"/> -->
605  <!--       <param name="build.main.javac" value="${javac8}"/> -->  <!--       <param name="build.main.javac" value="${javac10}"/> -->
606    <!--       <param name="build.main.javadoc" value="${javadoc12}"/> -->
607    <!--       <param name="build.main.javadoc.source" value="10"/> -->
608    <!--       <target name="test"/> -->
609    <!--       <target name="docs"/> -->
610  <!--     </antcall> -->  <!--     </antcall> -->
611    <!--   </target> -->
612    
613  <!--     <antcall target="clean"/> -->    <target name="test11">
614  <!--     <antcall target="test"> -->      <antcall target="clean"/>
615  <!--       <param name="build.main.java.version" value="9"/> -->      <antcall>
616  <!--       <param name="build.main.javac" value="${javac9}"/> -->        <param name="java.runtime.target" value="11"/>
617  <!--     </antcall> -->        <param name="build.main.javac" value="${javac11}"/>
618          <param name="build.main.javadoc" value="${javadoc12}"/>
619          <param name="build.main.javadoc.source" value="11"/>
620          <target name="test"/>
621          <target name="docs"/>
622        </antcall>
623      </target>
624    
625  <!--   </target> -->    <target name="test12">
626        <antcall target="clean"/>
627        <antcall>
628          <param name="java.runtime.target" value="12"/>
629          <param name="build.main.javac" value="${javac12}"/>
630          <param name="build.main.javadoc" value="${javadoc12}"/>
631          <param name="build.main.javadoc.source" value="12"/>
632          <target name="test"/>
633          <target name="docs"/>
634        </antcall>
635      </target>
636    
637      <target name="test13">
638        <antcall target="clean"/>
639        <antcall>
640          <param name="java.runtime.target" value="13"/>
641          <param name="build.main.javac" value="${javac13}"/>
642          <param name="build.main.javadoc" value="${javadoc13}"/>
643          <param name="build.main.javadoc.source" value="13"/>
644          <target name="test"/>
645          <target name="docs"/>
646        </antcall>
647      </target>
648    
649      <target name="test14">
650        <antcall target="clean"/>
651        <antcall>
652          <param name="java.runtime.target" value="14"/>
653          <param name="build.main.javac" value="${javac14}"/>
654          <param name="build.main.javadoc" value="${javadoc14}"/>
655          <param name="build.main.javadoc.source" value="14"/>
656          <target name="test"/>
657          <target name="docs"/>
658        </antcall>
659      </target>
660    
661      <target name="test11-12">
662        <antcall target="clean"/>
663        <antcall>
664          <param name="java.runtime.target" value="12"/>
665          <param name="build.main.javac" value="${javac11}"/>
666          <param name="build.main.javadoc" value="${javadoc12}"/>
667          <param name="build.main.javadoc.source" value="11"/>
668          <target name="test"/>
669          <target name="docs"/>
670        </antcall>
671      </target>
672    
673      <target name="test11-13">
674        <antcall target="clean"/>
675        <antcall>
676          <param name="java.runtime.target" value="13"/>
677          <param name="build.main.javac" value="${javac11}"/>
678          <param name="build.main.javadoc" value="${javadoc13}"/>
679          <param name="build.main.javadoc.source" value="11"/>
680          <target name="test"/>
681          <target name="docs"/>
682        </antcall>
683      </target>
684    
685      <target name="test11-14">
686        <antcall target="clean"/>
687        <antcall>
688          <param name="java.runtime.target" value="14"/>
689          <param name="build.main.javac" value="${javac11}"/>
690          <param name="build.main.javadoc" value="${javadoc14}"/>
691          <param name="build.main.javadoc.source" value="11"/>
692          <target name="test"/>
693          <target name="docs"/>
694        </antcall>
695      </target>
696    
697    
698    <target name="configure-compiler">    <target name="configure-compiler">
699      <fail message="ant version too old">      <fail message="ant version too old">
700        <condition>        <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
         <not> <antversion atleast="1.9.1"/> </not>  
       </condition>  
701      </fail>      </fail>
702    
703      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
# Line 624  Line 715 
715    </target>    </target>
716    
717    
   
   <!-- 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>  
   
   
718    <target name="compile-test-loops" depends="jar"    <target name="compile-test-loops" depends="jar"
719            description="compile all the perf tests in src/test/loops">            description="Compiles all the perf tests in src/test/loops">
720    
721      <mkdir dir="${build.dir}/test/loops"/>      <mkdir dir="${build.dir}/test/loops"/>
722    
# Line 669  Line 728 
728             includeAntRuntime="false"             includeAntRuntime="false"
729             includeJavaRuntime="false"             includeJavaRuntime="false"
730             encoding="ASCII"             encoding="ASCII"
731             executable="${javac9}"             executable="${build.main.javac}"
732             fork="true">             fork="true">
733    
734        <include name="*.java"/>        <include name="*.java"/>
# Line 677  Line 736 
736        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
737        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
738        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
739      </javac>      </javac>
   
740    </target>    </target>
741    
742    
# Line 705  Line 762 
762             encoding="ASCII"             encoding="ASCII"
763             executable="${javac8}"             executable="${javac8}"
764             fork="true">             fork="true">
   
765        <include name="**/*.java"/>        <include name="**/*.java"/>
766        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
767        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
768        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
769        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
770        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
771      </javac>      </javac>
772    </target>    </target>
773    
# Line 736  Line 791 
791             encoding="ASCII"             encoding="ASCII"
792             executable="${javac8}"             executable="${javac8}"
793             fork="true">             fork="true">
   
794        <include name="**/*.java"/>        <include name="**/*.java"/>
795        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
796        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
797        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
798        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
799        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
800      </javac>      </javac>
801    </target>    </target>
802    
# Line 759  Line 812 
812          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
813        </manifest>        </manifest>
814      </jar>      </jar>
   
815    </target>    </target>
816    
817    
# Line 775  Line 827 
827          <!-- JDK9+ test classes -->          <!-- JDK9+ test classes -->
828          <exclude name="*9Test.java"/>          <exclude name="*9Test.java"/>
829          <exclude name="*10Test.java"/>          <exclude name="*10Test.java"/>
830            <compilerarg value="-Werror"/>
831        </javac-elements>        </javac-elements>
832      </run-tck-tests>      </run-tck-tests>
833    </target>    </target>
# Line 792  Line 845 
845    
846    <target name="4jdk8-test"    <target name="4jdk8-test"
847            depends="4jdk8-tck, 4jdk8-jtreg"            depends="4jdk8-tck, 4jdk8-jtreg"
848            description="Runs tck and jtreg tests for jsr166-4jdk8">            description="Runs tck and jtreg tests for jsr166-4jdk8"/>
   </target>  
849    
850    
851    <target name="4jdk8docs"    <target name="4jdk8docs"
# Line 809  Line 861 
861               access="${build.javadoc.access}"               access="${build.javadoc.access}"
862               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
863               classpath=""               classpath=""
864                 source="8"
865               executable="${javadoc8}"               executable="${javadoc8}"
866               failonerror = "true">               failonerror = "true">
867        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
# Line 816  Line 869 
869        </fileset>        </fileset>
870        <arg line="-Xdocrootparent ${java8.docroot.url}"/>        <arg line="-Xdocrootparent ${java8.docroot.url}"/>
871        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
872        <arg value="-tag"/>        <arg value="-tag"/> <arg value="${javadoc.jls.option}"/>
873        <arg value="${javadoc.jls.option}"/>        <arg value="-tag"/> <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
874  <!-- @apiNote currently unused -->        <arg value="-tag"/> <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
875  <!--       <arg value="-tag"/> -->  <!-- @apiNote tag currently unused -->
876  <!--       <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;"/>  
877      </javadoc>      </javadoc>
878    </target>    </target>
879    
# Line 836  Line 885 
885    
886    <target name="4jdk8clean"    <target name="4jdk8clean"
887            description="Removes all 4jdk8 build products">            description="Removes all 4jdk8 build products">
   
888      <delete dir="${build.4jdk8.dir}"/>      <delete dir="${build.4jdk8.dir}"/>
   
889    </target>    </target>
890    
891    
# Line 854  Line 901 
901    </target>    </target>
902    
903    
904      <!-- jsr166 4jdk7 (no longer maintained) -->
905    
906    <!-- jsr166 4jdk7 -->    <target name="4jdk7compile" depends="configure-compiler">
   
   <target name="4jdk7compile"  
           depends="configure-compiler"  
           description="Compiles src/jdk7 sources, targeting jdk7">  
   
907      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
908    
909      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 884  Line 927 
927        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
928        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
929        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
930      </javac>      </javac>
931    </target>    </target>
932    
933    <target name="4jdk7doclint"    <target name="4jdk7doclint" depends="configure-compiler">
           depends="configure-compiler"  
           description="Finds doclint warnings">  
   
934      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
935    
936      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 915  Line 954 
954        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
955        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
956        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
957      </javac>      </javac>
958    </target>    </target>
959    
960      <target name="4jdk7jar" depends="4jdk7compile">
   <target name="4jdk7jar"  
           depends="4jdk7compile"  
           description="Builds library jar from compiled sources">  
   
961      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
962        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
963        <manifest>        <manifest>
# Line 931  Line 965 
965          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
966        </manifest>        </manifest>
967      </jar>      </jar>
   
968    </target>    </target>
969    
970      <target name="4jdk7-tck" depends="4jdk7jar">
   <target name="4jdk7-tck"  
           depends="4jdk7jar"  
           description="Runs tck tests for jsr166-4jdk7 directly">  
   
971      <run-tck-tests      <run-tck-tests
972        target="7"        target="7"
973        workdir="${build.4jdk7.dir}"        workdir="${build.4jdk7.dir}"
# Line 956  Line 985 
985          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
986          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
987          <exclude name="SubmissionPublisherTest.java"/>          <exclude name="SubmissionPublisherTest.java"/>
988            <compilerarg value="-Werror"/>
989        </javac-elements>        </javac-elements>
990      </run-tck-tests>      </run-tck-tests>
991    </target>    </target>
992    
   
993    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
994    <target name="4jdk7-tck-junit"    <target name="4jdk7-tck-junit" depends="4jdk7compile">
           depends="4jdk7compile">  
995    
996      <junit printsummary="true"      <junit printsummary="true"
997             showoutput="true"             showoutput="true"
# Line 985  Line 1013 
1013    
1014        <test name="${jsr166.tckTestClass}" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
1015        </test>        </test>
   
1016      </junit>      </junit>
1017    </target>    </target>
1018    
1019    <target name="4jdk7-jtreg"    <target name="4jdk7-jtreg" depends="4jdk7jar">
           depends="4jdk7jar"  
           description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">  
1020      <run-jtreg-tests      <run-jtreg-tests
1021         target="7"         target="7"
1022         workdir="${build.4jdk7.dir}"         workdir="${build.4jdk7.dir}"
1023         classes="${4jdk7product.jar}"/>         classes="${4jdk7product.jar}"/>
1024    </target>    </target>
1025    
1026      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
1027    
1028    <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">  
   
1029      <delete dir="${4jdk7docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
1030      <mkdir dir="${4jdk7docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
1031    
# Line 1028  Line 1046 
1046      </javadoc>      </javadoc>
1047    </target>    </target>
1048    
1049      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
1050    
1051    <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">  
   
1052      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
   
1053    </target>    </target>
1054    
1055      <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
   <target name="4jdk7dist-jar"  
           depends="4jdk7clean, 4jdk7jar">  
1056      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1057    </target>    </target>
1058    
1059      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
   <target name="4jdk7dist-docs"  
           depends="4jdk7clean, 4jdk7docs">  
1060      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1061    </target>    </target>
1062    
1063    
1064    <!-- jsr166x -->    <!-- jsr166x (no longer maintained) -->
   
   <target name="jsr166xcompile"  
           depends="configure-compiler"  
           description="Compiles jsr166x sources to build dir">  
1065    
1066      <target name="jsr166xcompile" depends="configure-compiler">
1067      <mkdir dir="${build.jsr166x.classes.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1068    
1069      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1076  Line 1080 
1080             encoding="ASCII"             encoding="ASCII"
1081             executable="${javac7}"             executable="${javac7}"
1082             fork="true">             fork="true">
   
1083        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1084        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1085        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1086        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1087        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1088      </javac>      </javac>
1089    </target>    </target>
1090    
1091      <target name="jsr166xjar" depends="jsr166xcompile">
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
   
1092      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1093        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1094        <manifest>        <manifest>
# Line 1098  Line 1096 
1096          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1097        </manifest>        </manifest>
1098      </jar>      </jar>
   
1099    </target>    </target>
1100    
1101      <target name="jsr166xdocs">
   <target name="jsr166xdocs"  
           description="Builds javadocs to dist dir">  
   
1102      <delete dir="${jsr166xdocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1103      <mkdir dir="${jsr166xdocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1104    
# Line 1119  Line 1113 
1113               failonerror = "true">               failonerror = "true">
1114        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1115        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1116      </javadoc>      </javadoc>
1117    </target>    </target>
1118    
1119      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1120    
1121    <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">  
   
1122      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
   
1123    </target>    </target>
1124    
1125      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1126      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1127    </target>    </target>
1128    
1129    <target name="jsr166xdist-docs"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
           depends="jsr166xclean, jsr166xdocs">  
1130      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1131    </target>    </target>
1132    
   <!-- jsr166y -->  
   
1133    
1134    <target name="jsr166ycompile"    <!-- jsr166y (no longer maintained) -->
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
1135    
1136      <target name="jsr166ycompile" depends="configure-compiler">
1137      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1138    
1139      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1176  Line 1156 
1156        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1157        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1158        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1159      </javac>      </javac>
1160    </target>    </target>
1161    
1162      <target name="jsr166yjar" depends="jsr166ycompile">
   <target name="jsr166yjar"  
           depends="jsr166ycompile"  
           description="Builds library jar from compiled sources">  
   
1163      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1164        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1165        <manifest>        <manifest>
# Line 1192  Line 1167 
1167          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1168        </manifest>        </manifest>
1169      </jar>      </jar>
   
1170    </target>    </target>
1171    
1172      <target name="jsr166ydocs">
   <target name="jsr166ydocs"  
           description="Builds javadocs to dist dir">  
   
1173      <delete dir="${jsr166ydocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1174      <mkdir dir="${jsr166ydocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1175    
# Line 1213  Line 1184 
1184               failonerror = "true">               failonerror = "true">
1185        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1186        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1187      </javadoc>      </javadoc>
1188    </target>    </target>
1189    
1190      <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1191    
1192    <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">  
   
1193      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
   
1194    </target>    </target>
1195    
1196      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1197      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1198    </target>    </target>
1199    
1200    <target name="jsr166ydist-docs"    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
           depends="jsr166yclean, jsr166ydocs">  
1201      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1202    </target>    </target>
1203    
1204    
1205    <!-- extra166y -->    <!-- extra166y (no longer maintained) -->
   
   
   <target name="extra166ycompile"  
           depends="configure-compiler, jsr166yjar"  
           description="Compiles extra166y sources">  
1206    
1207      <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1208      <mkdir dir="${build.extra166y.classes.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1209    
1210      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1271  Line 1227 
1227        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1228        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1229        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1230      </javac>      </javac>
1231    </target>    </target>
1232    
1233      <target name="extra166yjar" depends="extra166ycompile">
   <target name="extra166yjar"  
           depends="extra166ycompile"  
           description="Builds library jar from compiled sources">  
   
1234      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1235        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1236        <manifest>        <manifest>
# Line 1287  Line 1238 
1238          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1239        </manifest>        </manifest>
1240      </jar>      </jar>
   
1241    </target>    </target>
1242    
1243      <target name="extra166ydocs">
   <target name="extra166ydocs"  
           description="Builds javadocs to build dir">  
   
1244      <delete dir="${extra166ydocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1245      <mkdir dir="${extra166ydocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1246    
# Line 1307  Line 1254 
1254               executable="${javadoc7}">               executable="${javadoc7}">
1255        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1256        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1257      </javadoc>      </javadoc>
1258    </target>    </target>
1259    
1260      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1261    
1262    <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">  
   
1263      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
   
1264    </target>    </target>
1265    
1266      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
1267      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1268    </target>    </target>
1269    
1270    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
           depends="extra166yclean, extra166ydocs">  
1271      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1272    </target>    </target>
1273    
1274    <!-- jsr166e -->  
1275      <!-- jsr166e (no longer maintained) -->
1276    
1277    <property name="build.jsr166e.java.version" value="6"/>    <property name="build.jsr166e.java.version" value="6"/>
1278    <property name="build.jsr166e.javac" value="${javac6}"/>    <property name="build.jsr166e.javac" value="${javac6}"/>
1279    
1280    <target name="jsr166ecompile"    <target name="jsr166ecompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166e sources">  
   
1281      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1282    
1283      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1364  Line 1298 
1298        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1299        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1300        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1301      </javac>      </javac>
1302    </target>    </target>
1303    
   <!-- jsr166e: find doclint errors -->  
1304    <target name="jsr166edoclint">    <target name="jsr166edoclint">
   
1305      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1306    
1307      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1392  Line 1323 
1323        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1324        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1325        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
   
1326      </javac>      </javac>
1327    </target>    </target>
1328    
1329      <target name="jsr166ejar" depends="jsr166ecompile">
   <target name="jsr166ejar"  
           depends="jsr166ecompile"  
           description="Builds library jar from compiled sources">  
   
1330      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1331        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1332        <manifest>        <manifest>
# Line 1408  Line 1334 
1334          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1335        </manifest>        </manifest>
1336      </jar>      </jar>
   
1337    </target>    </target>
1338    
1339      <target name="jsr166edocs">
   <target name="jsr166edocs"  
           description="Builds javadocs to build dir">  
   
1340      <delete dir="${jsr166edocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1341      <mkdir dir="${jsr166edocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1342    
# Line 1428  Line 1350 
1350               failonerror = "true">               failonerror = "true">
1351        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1352        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1353      </javadoc>      </javadoc>
1354    </target>    </target>
1355    
1356      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
   <target name="jsr166e-tck-one-java-version"  
           depends="jsr166ejar">  
   
1357      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
   
1358      <run-tck-tests      <run-tck-tests
1359        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1360        target="${build.jsr166e.java.version}"        target="${build.jsr166e.java.version}"
# Line 1445  Line 1362 
1362        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1363    </target>    </target>
1364    
1365    <target name="jsr166e-tck"    <target name="jsr166e-tck">
           description="Runs tck tests for jsr166e for multiple java versions">  
1366    
1367  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
1368  <!--     <antcall target="jsr166e-tck-one-java-version"> -->  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
# Line 1467  Line 1383 
1383      </antcall>      </antcall>
1384    </target>    </target>
1385    
1386      <target name="jsr166e-test" depends="jsr166e-tck"/>
1387    
1388    <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"/>  
   
1389    
1390    <target name="jsr166eclean"    <target name="jsr166eclean">
           description="Removes all jsr166e build products">  
1391      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1392    </target>    </target>
1393    
   
1394    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1395            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1396      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1397    </target>    </target>
1398    
1399    <target name="jsr166edist-docs"    <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
           depends="jsr166eclean, jsr166edocs">  
1400      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1401    </target>    </target>
1402    
1403    
1404  <!-- Find buglets that can be detected by static build tools -->  <!-- Find buglets that can be detected by static build tools -->
1405    
1406    <target name="lint">  <!--   <target name="lint"> -->
1407      <antcall target="dists">  <!--     <antcall target="dists"> -->
1408        <param name="build.javadoc.access" value="public"/>  <!--       <param name="build.javadoc.access" value="protected"/> -->
1409      </antcall>  <!--     </antcall> -->
1410    </target>  <!--   </target> -->
1411    
1412  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->  <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1413    <target name="lint-private">    <target name="doclint-private">
1414      <antcall target="dist">      <antcall target="dist">
1415        <param name="build.javadoc.access" value="private"/>        <param name="build.javadoc.access" value="private"/>
1416      </antcall>      </antcall>
1417    </target>    </target>
1418    
1419    
1420    <!-- ==============================================================
1421      Experimental errorprone support
1422      https://errorprone.info
1423      https://errorprone.info/docs/installation
1424      https://github.com/google/error-prone/issues/1143
1425    =================================================================== -->
1426      <path id="errorprone.processorpath.path">
1427        <pathelement location="${lib.dir}/error_prone_core-2.3.2-with-dependencies.jar"/>
1428        <pathelement location="${lib.dir}/dataflow-2.5.7.jar"/>
1429        <pathelement location="${lib.dir}/javacutil-2.5.7.jar"/>
1430        <pathelement location="${lib.dir}/jFormatString-3.0.0.jar"/>
1431      </path>
1432      <property name="errorprone.processorpath" refid="errorprone.processorpath.path" />
1433      <property name="errorprone.jsr166.user.flags" value=""/>
1434      <property name="errorprone.jsr166.flags"
1435                value="-Xep:HashtableContains:OFF
1436                       -Xep:JdkObsolete:OFF
1437                       -Xep:MissingOverride:OFF
1438                       -Xep:MissingFail:OFF
1439                       -Xep:ThreadPriorityCheck:OFF
1440                       -Xep:MixedArrayDimensions:ERROR
1441                       -Xep:RemoveUnusedImports:ERROR
1442                       -Xep:EmptyIf:ERROR
1443                       -Xep:MultipleTopLevelClasses:ERROR
1444                       -Xep:ClassName:ERROR
1445                       -Xep:LongLiteralLowerCaseSuffix:ERROR
1446                       -Xep:RedundantThrows:ERROR
1447                       -Xep:IdentityBinaryExpression:WARN
1448                       -Xep:ConstructorInvokesOverridable:WARN
1449                       -Xep:MethodCanBeStatic:WARN
1450                       ${errorprone.jsr166.user.flags}"/>
1451      <!-- -Xep:WildcardImport:ERROR -->
1452      <property name="errorprone.jsr166.test.flags"
1453                value="-Xep:StringSplitter:OFF
1454                       -Xep:BoxedPrimitiveConstructor:OFF
1455                       -Xep:ModifyingCollectionWithItself:OFF"/>
1456      <!-- ant -emacs errorprone |& grep -EA1 '(warning|error):|warnings' -->
1457      <target name="errorprone"
1458              depends="clean, configure-compiler"
1459              description="Run errorprone over jsr166 source code (experimental)">
1460    
1461        <local name="destdir"/>
1462        <property name="destdir" value="${build.classes.dir}/java.base"/>
1463        <mkdir dir="${destdir}"/>
1464    
1465        <javac srcdir="${src.dir}"
1466               destdir="${destdir}"
1467               debug="${build.debug}"
1468               debuglevel="${build.debuglevel}"
1469               deprecation="${build.deprecation}"
1470               classpath=""
1471               includeAntRuntime="false"
1472               includeJavaRuntime="false"
1473               encoding="ASCII"
1474               executable="${build.main.javac}"
1475               fork="true">
1476    
1477          <include name="**/*.java"/>
1478          <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1479          <compilerarg value="-J--illegal-access=permit"/>
1480          <compilerarg value="-XDcompilePolicy=simple"/>
1481          <compilerarg value="-processorpath"/>
1482          <compilerarg pathref="errorprone.processorpath.path"/>
1483          <compilerarg value="-Xplugin:ErrorProne
1484                              ${errorprone.jsr166.flags}"/>
1485          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1486          <compilerarg value="-Xprefer:source"/>
1487          <compilerarg value="-XDignore.symbol.file=true"/>
1488          <compilerarg value="-Xlint:all"/>
1489          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1490          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1491          <compilerarg line="${build.args}"/>
1492        </javac>
1493    
1494        <jar destfile="${product.jar}">
1495          <fileset dir="${destdir}"/>
1496        </jar>
1497    
1498        <run-tck-tests
1499          target="${java.runtime.target}"
1500          workdir="${build.dir}"
1501          classes="${product.jar}">
1502          <javac-elements>
1503            <!-- Needed to silence -Xep:FutureReturnValueIgnored -->
1504            <compilerarg value="-J--illegal-access=permit"/>
1505            <compilerarg value="-XDcompilePolicy=simple"/>
1506            <compilerarg line="-processorpath ${errorprone.processorpath}"/>
1507            <compilerarg value="-Xplugin:ErrorProne
1508                                ${errorprone.jsr166.flags}
1509                                ${errorprone.jsr166.test.flags}"/>
1510            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1511          </javac-elements>
1512        </run-tck-tests>
1513      </target>
1514    
1515      <!-- ant -emacs errorprone-jtreg |& grep -EA1 '(warning|error):' -->
1516      <!-- -XDcompilePolicy=simple or byfile avoids confusing UnusedImports -->
1517      <target name="errorprone-jtreg"
1518              depends="jar"
1519              description="Run errorprone over jtreg tests (experimental)">
1520    
1521        <run-jtreg-tests
1522           target="${java.runtime.target}"
1523           workdir="${build.dir}"
1524           classes="${product.jar}"
1525           verbose="all">
1526          <jtreg-elements>
1527            <arg value="-javacoption:-XDcompilePolicy=simple"/>
1528            <arg value="-javacoption:-processorpath"/>
1529            <arg value="-javacoption:${errorprone.processorpath}"/>
1530            <arg value="-javacoption:-Xplugin:ErrorProne
1531                                ${errorprone.jsr166.flags}
1532                                ${errorprone.jsr166.test.flags}
1533                                -Xep:MultipleTopLevelClasses:WARN
1534                                -Xep:NonAtomicVolatileUpdate:OFF"/>
1535          </jtreg-elements>
1536        </run-jtreg-tests>
1537      </target>
1538    
1539    
1540  <!-- ==============================================================  <!-- ==============================================================
1541    Running guava tests against jsr166 code    Running guava tests against jsr166 code
1542  =================================================================== -->  =================================================================== -->
# Line 1562  Line 1589 
1589      <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"
1590           dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>           dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1591      <junit printsummary="true" showoutput="true" haltonfailure="true"      <junit printsummary="true" showoutput="true" haltonfailure="true"
1592             jvm="${java9}" fork="true">             jvm="${build.main.java}" fork="true">
1593        <jvmarg line="-ea -esa --patch-module java.base=${product.jar}"/>        <jvmarg line="-ea -esa --patch-module=java.base=${product.jar}"/>
1594        <formatter type="brief"/>        <formatter type="brief"/>
1595        <classpath>        <classpath>
1596          <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>          <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>

Legend:
Removed from v.1.234  
changed lines
  Added in v.1.303

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