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

Diff of /jsr166/build.xml

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

revision 1.208 by jsr166, Sat Apr 2 16:09:42 2016 UTC revision 1.248 by jsr166, Sat Jun 17 01:26:31 2017 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" xmlns:unless="ant:unless"
3      xmlns:ivy="antlib:org.apache.ivy.ant">
4    
5    <description>    <description>
6  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
# Line 17  Line 18 
18    itself.  Because the JDK version matters and because different    itself.  Because the JDK version matters and because different
19    targets require different JDKs, we assume that users have created a    targets require different JDKs, we assume that users have created a
20    hierarchy containing:    hierarchy containing:
   $HOME/jdk/jdk6  
   $HOME/jdk/jdk7  
21    $HOME/jdk/jdk8    $HOME/jdk/jdk8
22    $HOME/jdk/jdk9    $HOME/jdk/jdk9
23      $HOME/jdk/jdk10
24    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/jdk6  
   $HOME/jdk/src/jdk7  
25    $HOME/jdk/src/jdk8    $HOME/jdk/src/jdk8
26    $HOME/jdk/src/jdk9    $HOME/jdk/src/jdk9
27      $HOME/jdk/src/jdk10
28    where each of the above is a complete JDK source tree    where each of the above is a complete JDK source tree
29    (e.g. mercurial forest) or a symlink to same.    (e.g. mercurial forest) or a symlink to same.
30    
31    Alternatively, define ant variables thus:    Alternatively, define ant variables thus:
32    ant -Djdk$N.home=... -Djdk$N.src.home=...    ant -Djdk$N.home=... -Djdk$N.src.home=...
33    for $N in 6 7 8 9 ...    for $N in 8 9 10 ...
34    
35    As of 2016-03, the sources in src/main are for jdk9+ only.  The "docs"    As of 2016-03, the sources in src/main are for jdk9+ only.
   target is currently broken.  
36  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
37    </description>    </description>
38    
39    <!-- Display main targets by running 'ant -projecthelp' -->    <!-- Run 'ant -projecthelp' (default target) -->
40    <target name="usage">    <target name="usage">
41      <java classname="org.apache.tools.ant.Main">      <java classname="org.apache.tools.ant.Main">
42        <arg value="-projecthelp" />        <arg value="-projecthelp" />
# Line 63  Line 61 
61    <property name="build.classes.dir"           location="${build.dir}/classes"/>    <property name="build.classes.dir"           location="${build.dir}/classes"/>
62    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>
63    <property name="build.loops.dir"             location="${build.dir}/loops"/>    <property name="build.loops.dir"             location="${build.dir}/loops"/>
   <property name="build.reports.dir"           location="${build.dir}/reports"/>  
64    
65    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
66    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>
# Line 134  Line 131 
131    <defjdklocations v="7"/>    <defjdklocations v="7"/>
132    <defjdklocations v="8"/>    <defjdklocations v="8"/>
133    <defjdklocations v="9"/>    <defjdklocations v="9"/>
134      <defjdklocations v="10"/>
135    
136    <!-- Source locations -->    <!-- Source locations -->
137    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
# Line 143  Line 141 
141    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>
142    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>
143    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>
144      <property name="jtreg10.src.dir"      location="${test.src.dir}/jtreg"/>
145    <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>    <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>
146    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
147    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
# Line 186  Line 185 
185    <property name="java6.docroot.url"      value="http://docs.oracle.com/javase/6/docs"/>    <property name="java6.docroot.url"      value="http://docs.oracle.com/javase/6/docs"/>
186    <property name="java7.docroot.url"      value="http://docs.oracle.com/javase/7/docs"/>    <property name="java7.docroot.url"      value="http://docs.oracle.com/javase/7/docs"/>
187    <property name="java8.docroot.url"      value="http://docs.oracle.com/javase/8/docs"/>    <property name="java8.docroot.url"      value="http://docs.oracle.com/javase/8/docs"/>
188    <!-- The expected canonical location does not yet exist as of 2016-03 -->    <!-- The expected canonical location does not yet exist as of 2016-04 -->
189    <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->    <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->
190    <property name="java9.docroot.url"      value="http://download.java.net/jdk9/docs"/>    <property name="java9.docroot.url"      value="http://download.java.net/java/jdk9/docs"/>
191    <!-- Default jdk doc location (latest stable release seems best) -->    <!-- Default jdk doc location (latest stable release seems best) -->
192    <property name="java.docroot.url"       value="${java8.docroot.url}"/>    <property name="java.docroot.url"       value="${java8.docroot.url}"/>
193    
# Line 233  Line 232 
232        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>        <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>
233      </condition>      </condition>
234    
235        <local name="use-doclint"/>
236        <condition property="use-doclint">
237          <not> <equals arg1="@{target}" arg2="7"/> </not>
238        </condition>
239    
240      <mkdir dir="@{workdir}/tck-classes"/>      <mkdir dir="@{workdir}/tck-classes"/>
241    
242      <javac srcdir="@{tck.src.dir}"      <javac srcdir="@{tck.src.dir}"
# Line 245  Line 249 
249             classpath="${junit.jar}"             classpath="${junit.jar}"
250             includeAntRuntime="false"             includeAntRuntime="false"
251             includeJavaRuntime="false"             includeJavaRuntime="false"
252               encoding="ASCII"
253             executable="${javac@{compile-target}}"             executable="${javac@{compile-target}}"
254             fork="true">             fork="true">
255    
256        <include name="*.java"/>        <include name="*.java"/>
257        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
258        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
259          <compilerarg value="-Xdoclint:reference/private" if:set="use-doclint"/>
260        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
261        <compilerarg value="-Xpatch:${build.classes.dir}" if:set="modules"/>        <compilerarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
262        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
263        <javac-elements/>        <javac-elements/>
264    
# Line 263  Line 269 
269            jvm="${java@{target}}"            jvm="${java@{target}}"
270            fork="true">            fork="true">
271          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
272          <jvmarg value="-Xpatch:${build.classes.dir}" if:set="modules"/>          <jvmarg value="--patch-module=java.base=@{classes}" if:set="modules"/>
273            <jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED" if:set="modules"/>
274            <jvmarg value="--add-opens=java.base/java.util=ALL-UNNAMED" if:set="modules"/>
275            <jvmarg value="--add-opens=java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/>
276            <jvmarg value="--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/>
277            <jvmarg value="--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/>
278          <jvmarg line="@{jvmflags}"/>          <jvmarg line="@{jvmflags}"/>
279            <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck -->
280            <jvmarg line="${vmoptions}" if:set="vmoptions"/>
281    
282          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
283          <syspropertyset id="system-properties-used-by-tck">          <syspropertyset id="system-properties-used-by-tck">
284            <propertyref prefix="java.util.concurrent.ForkJoinPool"/>            <propertyref prefix="java.util.concurrent.ForkJoinPool"/>
285            <propertyref prefix="jsr166."/>            <propertyref prefix="jsr166."/>
# Line 283  Line 296 
296    </macrodef>    </macrodef>
297    
298    <!-- Define jtreg test sets for different jdk versions -->    <!-- Define jtreg test sets for different jdk versions -->
299      <fileset dir="${jtreg10.src.dir}">
300        <patternset id="jdk10.jtreg.tests">
301          <include name="**/*.java"/>
302        </patternset>
303      </fileset>
304    
305    <fileset dir="${jtreg9.src.dir}">    <fileset dir="${jtreg9.src.dir}">
306      <patternset id="jdk9.jtreg.tests">      <patternset id="jdk9.jtreg.tests">
307        <include name="**/*.java"/>        <include name="**/*.java"/>
# Line 292  Line 311 
311    <fileset dir="${jtreg8.src.dir}">    <fileset dir="${jtreg8.src.dir}">
312      <patternset id="jdk8.jtreg.tests">      <patternset id="jdk8.jtreg.tests">
313        <include name="**/*.java"/>        <include name="**/*.java"/>
       <exclude name="**/SpliteratorCharacteristics.java"/>  
       <!-- https://bugs.openjdk.java.net/browse/JDK-6842353 -->  
       <exclude name="**/GCDuringIteration.java"/>  
314      </patternset>      </patternset>
315    </fileset>    </fileset>
316    
# Line 309  Line 325 
325    
326    <macrodef name="run-jtreg-tests">    <macrodef name="run-jtreg-tests">
327      <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->      <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
     <attribute name="source" default="7"/>  
328      <attribute name="target"/>      <attribute name="target"/>
329      <attribute name="workdir"/>      <attribute name="workdir"/>
330      <attribute name="classes"/>      <attribute name="classes"/>
# Line 326  Line 341 
341      </condition>      </condition>
342    
343      <delete dir="@{workdir}/JTwork"   quiet="true"/>      <delete dir="@{workdir}/JTwork"   quiet="true"/>
     <delete dir="@{workdir}/JTreport" quiet="true"/>  
344      <jtreg dir="${jtreg@{target}.src.dir}"      <jtreg dir="${jtreg@{target}.src.dir}"
345             jdk="${jdk@{target}.home}"             jdk="${jdk@{target}.home}"
346             workDir="@{workdir}/JTwork"             workDir="@{workdir}/JTwork">
            reportDir="@{workdir}/JTreport">  
347        <patternset refid="jdk@{target}.jtreg.tests"/>        <patternset refid="jdk@{target}.jtreg.tests"/>
348        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
349        <arg value="-Xpatch:${build.classes.dir}" if:set="modules"/>        <arg value="-javacoptions:--patch-module java.base=@{classes}" if:set="modules"/>
350          <arg value="-vmoptions:--patch-module java.base=@{classes}" if:set="modules"/>
351        <arg value="-agentvm"/>        <arg value="-agentvm"/>
352          <arg value="-noreport"/>
353        <arg value="-verbose:${jtreg.verbose}"/>        <arg value="-verbose:${jtreg.verbose}"/>
354        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
355        <arg value="-automatic"/>        <arg value="-automatic"/>
# Line 357  Line 372 
372    <!-- Main targets -->    <!-- Main targets -->
373    
374    <property name="build.main.java.version" value="9"/>    <property name="build.main.java.version" value="9"/>
375    <property name="build.main.javac" value="${javac9}"/>    <!-- Workaround "no nested properties in ant" -->
376      <macrodef name="define-build-main-properties">
377        <attribute name="v"/>
378        <sequential>
379          <property name="build.main.java"    value="${java@{v}}"/>
380          <property name="build.main.javac"   value="${javac@{v}}"/>
381          <property name="build.main.javadoc" value="${javadoc@{v}}"/>
382        </sequential>
383      </macrodef>
384      <define-build-main-properties v="${build.main.java.version}"/>
385    
386    <target name="dists"    <target name="dists"
387            depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"            depends="dist, 4jdk8dist"
388            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
389              <!--
390                  depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
391              -->
392    
393    <target name="compile"    <target name="compile"
394            depends="configure-compiler"            depends="configure-compiler"
395            description="Compiles src/main sources to build dir">            description="Compiles src/main sources to build dir">
396    
     <local name="modules"/>  
     <condition property="modules">  
       <and>  
         <available file="${jdk9.home}/jmods" type="dir"/>  
         <equals arg1="9" arg2="${build.main.java.version}"/>  
       </and>  
     </condition>  
   
397      <local name="destdir"/>      <local name="destdir"/>
398      <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"/>  
399    
400      <mkdir dir="${destdir}"/>      <mkdir dir="${destdir}"/>
401    
# Line 389  Line 407 
407             classpath=""             classpath=""
408             includeAntRuntime="false"             includeAntRuntime="false"
409             includeJavaRuntime="false"             includeJavaRuntime="false"
410               encoding="ASCII"
411             executable="${build.main.javac}"             executable="${build.main.javac}"
412             fork="true">             fork="true">
413    
414        <include name="**/*.java"/>        <include name="**/*.java"/>
415        <compilerarg value="-Xmodule:java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=${src.dir}"/>
416        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
417        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
418        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
419          <compilerarg line="--doclint-format html5"/>
420          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
421        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
       <compilerarg value="-Xdoclint:all/protected"/>  
422        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
423        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
424    
# Line 409  Line 429 
429    <target name="jar"    <target name="jar"
430            depends="compile"            depends="compile"
431            description="Builds library jar for src/main from compiled sources">            description="Builds library jar for src/main from compiled sources">
432        <local name="subdir"/>
433        <available property="subdir" file="${build.classes.dir}/java.base" type="dir" value="/java.base"/>
434      <jar destfile="${product.jar}">      <jar destfile="${product.jar}">
435        <fileset dir="${build.classes.dir}"/>        <fileset dir="${build.classes.dir}${subdir}"/>
436        <manifest>        <manifest>
437          <attribute name="Built-By" value="${user.name}"/>          <attribute name="Built-By" value="${user.name}"/>
438          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
# Line 429  Line 450 
450      <!-- the packagenames="none" hack below prevents scanning the -->      <!-- the packagenames="none" hack below prevents scanning the -->
451      <!-- sourcepath for packages -->      <!-- sourcepath for packages -->
452    
453    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
454    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
455    <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
456    <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
457    <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
458      <javadoc destdir="${docs.dir}"      <javadoc destdir="${docs.dir}"
459               packagenames="none"               packagenames="none"
460               link="${java9.api.url}"               link="${java9.api.url}"
461               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
462               access="${build.javadoc.access}"               access="${build.javadoc.access}"
463               sourcepath="${src.dir}:${jdk9.src.dir}"               sourcepath="${src.dir}"
464               classpath=""               classpath=""
465               executable="${javadoc9}">               source="9"
466                 executable="${build.main.javadoc}">
467        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
468          <include name="**/*.java"/>          <include name="**/*.java"/>
469        </fileset>        </fileset>
470        <arg line="-Xdocrootparent ${java9.docroot.url}"/>        <arg line="-Xdocrootparent ${java9.docroot.url}"/>
471        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
472        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
473  <!--  TODO     <arg value="-Xmodule:java.base"/> -->        <arg value="-html5"/>
474          <arg value="--patch-module=java.base=${src.dir}"/>
475        <arg value="-tag"/>        <arg value="-tag"/>
476        <arg value="${javadoc.jls.option}"/>        <arg value="${javadoc.jls.option}"/>
477    <!-- @apiNote currently unused -->
478    <!--       <arg value="-tag"/> -->
479    <!--       <arg value="apiNote:a:API Note:"/> -->
480        <arg value="-tag"/>        <arg value="-tag"/>
481        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>        <arg value="implSpec:a:Implementation Requirements:"/>
       <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;"/>  
 <!-- tags added in jdk9 -->  
       <arg value="-tag"/>  
       <arg value="revised:X"/>  
482        <arg value="-tag"/>        <arg value="-tag"/>
483        <arg value="spec:X"/>        <arg value="implNote:a:Implementation Note:"/>
484    <!-- tags added in jdk9: currently unused -->
485    <!--       <arg value="-tag"/> -->
486    <!--       <arg value="revised:X"/> -->
487    <!--       <arg value="-tag"/> -->
488    <!--       <arg value="spec:X"/> -->
489      </javadoc>      </javadoc>
490    </target>    </target>
491    
# Line 490  Line 519 
519    
520    <target name="clean"    <target name="clean"
521            description="Removes all build products">            description="Removes all build products">
   
522      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
   
523    </target>    </target>
524    
525    
526    <target name="dist-clean"    <target name="dist-clean"
527            description="Removes all build and distribution products">            description="Removes all build and distribution products">
   
528      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
529      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
530    </target>    </target>
531    
532    
# Line 522  Line 547 
547      <run-tck-tests      <run-tck-tests
548        target="${build.main.java.version}"        target="${build.main.java.version}"
549        workdir="${build.dir}"        workdir="${build.dir}"
550        classes="${product.jar}"/>        classes="${product.jar}">
551          <javac-elements>
552            <compilerarg value="-Werror"/>
553          </javac-elements>
554        </run-tck-tests>
555    </target>    </target>
556    
557    <target name="tck-parallelism-1"    <target name="tck-parallelism-1"
# Line 539  Line 568 
568      </antcall>      </antcall>
569    </target>    </target>
570    
571      <target name="tck-security-manager"
572              description="Runs tck with a security manager">
573        <antcall target="tck">
574          <param name="jsr166.useSecurityManager" value="true"/>
575        </antcall>
576      </target>
577    
578    <target name="jtreg"    <target name="jtreg"
579            depends="jar"            depends="jar"
580            description="Runs jtreg tests for src/main using the jtreg ant task">            description="Runs jtreg tests for src/main using the jtreg ant task">
# Line 550  Line 586 
586    
587    <target name="test"    <target name="test"
588            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
589            description="Runs tck and jtreg tests for src/main">            description="Runs tck and jtreg tests for src/main"/>
   </target>  
590    
591  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->
592    
# Line 562  Line 597 
597    
598  <!--   </target> -->  <!--   </target> -->
599    
600  <!--   <target name="test89" -->    <target name="test910"
601  <!--           description="Runs tck and jtreg tests for src/main for multiple java versions"> -->            description="Runs tck and jtreg tests for src/main for multiple java versions">
602    
603  <!--     <antcall target="clean"/> -->      <antcall target="clean"/>
604  <!--     <antcall target="test"> -->      <antcall target="test">
605  <!--       <param name="build.main.java.version" value="8"/> -->        <param name="build.main.java.version" value="9"/>
606  <!--       <param name="build.main.javac" value="${javac8}"/> -->      </antcall>
 <!--     </antcall> -->  
607    
608  <!--     <antcall target="clean"/> -->      <antcall target="clean"/>
609  <!--     <antcall target="test"> -->      <antcall target="test">
610  <!--       <param name="build.main.java.version" value="9"/> -->        <param name="build.main.java.version" value="10"/>
611  <!--       <param name="build.main.javac" value="${javac9}"/> -->      </antcall>
 <!--     </antcall> -->  
612    
613  <!--   </target> -->    </target>
614    
615    
616    
617    <target name="configure-compiler">    <target name="configure-compiler">
618      <fail message="ant version too old">      <fail message="ant version too old">
619        <condition>        <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
         <not> <antversion atleast="1.9.1"/> </not>  
       </condition>  
620      </fail>      </fail>
621    
622      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
# Line 619  Line 650 
650        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
651             source="${build.sourcelevel}"             source="${build.sourcelevel}"
652             target="${build.sourcelevel}"             target="${build.sourcelevel}"
653             encoding="ASCII"
654               fork="true">               fork="true">
655    
656        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
# Line 630  Line 662 
662      <java classname="ALoops" fork="true">      <java classname="ALoops" fork="true">
663        <classpath refid="loops.classpath"/>        <classpath refid="loops.classpath"/>
664      </java>      </java>
   
665    </target>    </target>
666    
667    
668    <target name="compile-test-loops" depends="jar"    <target name="compile-test-loops" depends="jar"
669            description="compile all the perf tests in src/test/loops">            description="Compiles all the perf tests in src/test/loops">
670    
671      <mkdir dir="${build.dir}/test/loops"/>      <mkdir dir="${build.dir}/test/loops"/>
672    
# Line 646  Line 677 
677             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
678             includeAntRuntime="false"             includeAntRuntime="false"
679             includeJavaRuntime="false"             includeJavaRuntime="false"
680             executable="${javac9}"             encoding="ASCII"
681               executable="${build.main.javac}"
682             fork="true">             fork="true">
683    
684        <include name="*.java"/>        <include name="*.java"/>
# Line 654  Line 686 
686        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
687        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
688        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
689      </javac>      </javac>
   
690    </target>    </target>
691    
692    
# Line 679  Line 709 
709             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
710             includeAntRuntime="false"             includeAntRuntime="false"
711             includeJavaRuntime="false"             includeJavaRuntime="false"
712               encoding="ASCII"
713             executable="${javac8}"             executable="${javac8}"
714             fork="true">             fork="true">
   
715        <include name="**/*.java"/>        <include name="**/*.java"/>
716        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
717        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
718        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
719        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
720        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
721      </javac>      </javac>
722    </target>    </target>
723    
# Line 709  Line 738 
738             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
739             includeAntRuntime="false"             includeAntRuntime="false"
740             includeJavaRuntime="false"             includeJavaRuntime="false"
741               encoding="ASCII"
742             executable="${javac8}"             executable="${javac8}"
743             fork="true">             fork="true">
   
744        <include name="**/*.java"/>        <include name="**/*.java"/>
745        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
746        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
747        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
748        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
749        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
750      </javac>      </javac>
751    </target>    </target>
752    
# Line 734  Line 762 
762          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
763        </manifest>        </manifest>
764      </jar>      </jar>
   
765    </target>    </target>
766    
767    
# Line 750  Line 777 
777          <!-- JDK9+ test classes -->          <!-- JDK9+ test classes -->
778          <exclude name="*9Test.java"/>          <exclude name="*9Test.java"/>
779          <exclude name="*10Test.java"/>          <exclude name="*10Test.java"/>
780            <compilerarg value="-Werror"/>
781        </javac-elements>        </javac-elements>
782      </run-tck-tests>      </run-tck-tests>
783    </target>    </target>
# Line 767  Line 795 
795    
796    <target name="4jdk8-test"    <target name="4jdk8-test"
797            depends="4jdk8-tck, 4jdk8-jtreg"            depends="4jdk8-tck, 4jdk8-jtreg"
798            description="Runs tck and jtreg tests for jsr166-4jdk8">            description="Runs tck and jtreg tests for jsr166-4jdk8"/>
   </target>  
799    
800    
801    <target name="4jdk8docs"    <target name="4jdk8docs"
# Line 784  Line 811 
811               access="${build.javadoc.access}"               access="${build.javadoc.access}"
812               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
813               classpath=""               classpath=""
814                 source="8"
815               executable="${javadoc8}"               executable="${javadoc8}"
816               failonerror = "true">               failonerror = "true">
817        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
# Line 793  Line 821 
821        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
822        <arg value="-tag"/>        <arg value="-tag"/>
823        <arg value="${javadoc.jls.option}"/>        <arg value="${javadoc.jls.option}"/>
824        <arg value="-tag"/>  <!-- @apiNote currently unused -->
825        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>  <!--       <arg value="-tag"/> -->
826    <!--       <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
827        <arg value="-tag"/>        <arg value="-tag"/>
828        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
829        <arg value="-tag"/>        <arg value="-tag"/>
# Line 810  Line 839 
839    
840    <target name="4jdk8clean"    <target name="4jdk8clean"
841            description="Removes all 4jdk8 build products">            description="Removes all 4jdk8 build products">
   
842      <delete dir="${build.4jdk8.dir}"/>      <delete dir="${build.4jdk8.dir}"/>
   
843    </target>    </target>
844    
845    
# Line 828  Line 855 
855    </target>    </target>
856    
857    
858      <!-- jsr166 4jdk7 (no longer maintained) -->
859    
860    <!-- jsr166 4jdk7 -->    <target name="4jdk7compile" depends="configure-compiler">
   
   <target name="4jdk7compile"  
           depends="configure-compiler"  
           description="Compiles src/jdk7 sources, targeting jdk7">  
   
861      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
862    
863      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 848  Line 871 
871             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
872             includeAntRuntime="false"             includeAntRuntime="false"
873             includeJavaRuntime="false"             includeJavaRuntime="false"
874               encoding="ASCII"
875             executable="${javac7}"             executable="${javac7}"
876             fork="true">             fork="true">
877    
# Line 857  Line 881 
881        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
882        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
883        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
884      </javac>      </javac>
885    </target>    </target>
886    
887    <target name="4jdk7doclint"    <target name="4jdk7doclint" depends="configure-compiler">
           depends="configure-compiler"  
           description="Finds doclint warnings">  
   
888      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
889    
890      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 878  Line 898 
898             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
899             includeAntRuntime="false"             includeAntRuntime="false"
900             includeJavaRuntime="false"             includeJavaRuntime="false"
901               encoding="ASCII"
902             executable="${javac8}"             executable="${javac8}"
903             fork="true">             fork="true">
904    
# Line 887  Line 908 
908        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
909        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
910        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
911      </javac>      </javac>
912    </target>    </target>
913    
914      <target name="4jdk7jar" depends="4jdk7compile">
   <target name="4jdk7jar"  
           depends="4jdk7compile"  
           description="Builds library jar from compiled sources">  
   
915      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
916        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
917        <manifest>        <manifest>
# Line 903  Line 919 
919          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
920        </manifest>        </manifest>
921      </jar>      </jar>
   
922    </target>    </target>
923    
924      <target name="4jdk7-tck" depends="4jdk7jar">
   <target name="4jdk7-tck"  
           depends="4jdk7jar"  
           description="Runs tck tests for jsr166-4jdk7 directly">  
   
925      <run-tck-tests      <run-tck-tests
926        target="7"        target="7"
927        workdir="${build.4jdk7.dir}"        workdir="${build.4jdk7.dir}"
# Line 928  Line 939 
939          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
940          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
941          <exclude name="SubmissionPublisherTest.java"/>          <exclude name="SubmissionPublisherTest.java"/>
942            <compilerarg value="-Werror"/>
943        </javac-elements>        </javac-elements>
944      </run-tck-tests>      </run-tck-tests>
945    </target>    </target>
946    
   
947    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->    <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
948    <target name="4jdk7-tck-junit"    <target name="4jdk7-tck-junit" depends="4jdk7compile">
           depends="4jdk7compile">  
949    
950      <junit printsummary="true"      <junit printsummary="true"
951             showoutput="true"             showoutput="true"
# Line 957  Line 967 
967    
968        <test name="${jsr166.tckTestClass}" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
969        </test>        </test>
   
970      </junit>      </junit>
971    </target>    </target>
972    
973    <target name="4jdk7-jtreg"    <target name="4jdk7-jtreg" depends="4jdk7jar">
           depends="4jdk7jar"  
           description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">  
974      <run-jtreg-tests      <run-jtreg-tests
975         target="7"         target="7"
976         workdir="${build.4jdk7.dir}"         workdir="${build.4jdk7.dir}"
977         classes="${4jdk7product.jar}"/>         classes="${4jdk7product.jar}"/>
978    </target>    </target>
979    
980      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
981    
982    <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">  
   
983      <delete dir="${4jdk7docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
984      <mkdir dir="${4jdk7docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
985    
# Line 1000  Line 1000 
1000      </javadoc>      </javadoc>
1001    </target>    </target>
1002    
1003      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
1004    
1005    <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">  
   
1006      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
   
1007    </target>    </target>
1008    
1009      <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
   <target name="4jdk7dist-jar"  
           depends="4jdk7clean, 4jdk7jar">  
1010      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1011    </target>    </target>
1012    
1013      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
   <target name="4jdk7dist-docs"  
           depends="4jdk7clean, 4jdk7docs">  
1014      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1015    </target>    </target>
1016    
1017    
1018    <!-- jsr166x -->    <!-- jsr166x (no longer maintained) -->
   
   <target name="jsr166xcompile"  
           depends="configure-compiler"  
           description="Compiles jsr166x sources to build dir">  
1019    
1020      <target name="jsr166xcompile" depends="configure-compiler">
1021      <mkdir dir="${build.jsr166x.classes.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1022    
1023      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1045  Line 1031 
1031             target="5"             target="5"
1032             includeAntRuntime="false"             includeAntRuntime="false"
1033             includeJavaRuntime="false"             includeJavaRuntime="false"
1034               encoding="ASCII"
1035             executable="${javac7}"             executable="${javac7}"
1036             fork="true">             fork="true">
   
1037        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1038        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1039        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1040        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1041        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1042      </javac>      </javac>
1043    </target>    </target>
1044    
1045      <target name="jsr166xjar" depends="jsr166xcompile">
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
   
1046      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1047        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1048        <manifest>        <manifest>
# Line 1069  Line 1050 
1050          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1051        </manifest>        </manifest>
1052      </jar>      </jar>
   
1053    </target>    </target>
1054    
1055      <target name="jsr166xdocs">
   <target name="jsr166xdocs"  
           description="Builds javadocs to dist dir">  
   
1056      <delete dir="${jsr166xdocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1057      <mkdir dir="${jsr166xdocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1058    
# Line 1090  Line 1067 
1067               failonerror = "true">               failonerror = "true">
1068        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1069        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1070      </javadoc>      </javadoc>
1071    </target>    </target>
1072    
1073      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1074    
1075    <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">  
   
1076      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
   
1077    </target>    </target>
1078    
1079      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1080      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1081    </target>    </target>
1082    
1083    <target name="jsr166xdist-docs"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
           depends="jsr166xclean, jsr166xdocs">  
1084      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1085    </target>    </target>
1086    
   <!-- jsr166y -->  
1087    
1088      <!-- jsr166y (no longer maintained) -->
1089    
1090    <target name="jsr166ycompile"    <target name="jsr166ycompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
   
1091      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1092    
1093      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1138  Line 1101 
1101             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1102             includeAntRuntime="false"             includeAntRuntime="false"
1103             includeJavaRuntime="false"             includeJavaRuntime="false"
1104               encoding="ASCII"
1105             executable="${javac7}"             executable="${javac7}"
1106             fork="true">             fork="true">
1107    
# Line 1146  Line 1110 
1110        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1111        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1112        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1113      </javac>      </javac>
1114    </target>    </target>
1115    
1116      <target name="jsr166yjar" depends="jsr166ycompile">
   <target name="jsr166yjar"  
           depends="jsr166ycompile"  
           description="Builds library jar from compiled sources">  
   
1117      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1118        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1119        <manifest>        <manifest>
# Line 1162  Line 1121 
1121          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1122        </manifest>        </manifest>
1123      </jar>      </jar>
   
1124    </target>    </target>
1125    
1126      <target name="jsr166ydocs">
   <target name="jsr166ydocs"  
           description="Builds javadocs to dist dir">  
   
1127      <delete dir="${jsr166ydocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1128      <mkdir dir="${jsr166ydocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1129    
# Line 1183  Line 1138 
1138               failonerror = "true">               failonerror = "true">
1139        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1140        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1141      </javadoc>      </javadoc>
1142    </target>    </target>
1143    
1144      <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1145    
1146    <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">  
   
1147      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
   
1148    </target>    </target>
1149    
1150      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1151      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1152    </target>    </target>
1153    
1154    <target name="jsr166ydist-docs"    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
           depends="jsr166yclean, jsr166ydocs">  
1155      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1156    </target>    </target>
1157    
1158    
1159    <!-- extra166y -->    <!-- extra166y (no longer maintained) -->
   
   
   <target name="extra166ycompile"  
           depends="configure-compiler, jsr166yjar"  
           description="Compiles extra166y sources">  
1160    
1161      <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1162      <mkdir dir="${build.extra166y.classes.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1163    
1164      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1232  Line 1172 
1172             target="6"             target="6"
1173             includeAntRuntime="false"             includeAntRuntime="false"
1174             includeJavaRuntime="false"             includeJavaRuntime="false"
1175               encoding="ASCII"
1176             executable="${javac7}"             executable="${javac7}"
1177             fork="true">             fork="true">
1178    
# Line 1240  Line 1181 
1181        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1182        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1183        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1184      </javac>      </javac>
1185    </target>    </target>
1186    
1187      <target name="extra166yjar" depends="extra166ycompile">
   <target name="extra166yjar"  
           depends="extra166ycompile"  
           description="Builds library jar from compiled sources">  
   
1188      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1189        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1190        <manifest>        <manifest>
# Line 1256  Line 1192 
1192          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1193        </manifest>        </manifest>
1194      </jar>      </jar>
   
1195    </target>    </target>
1196    
1197      <target name="extra166ydocs">
   <target name="extra166ydocs"  
           description="Builds javadocs to build dir">  
   
1198      <delete dir="${extra166ydocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1199      <mkdir dir="${extra166ydocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1200    
# Line 1276  Line 1208 
1208               executable="${javadoc7}">               executable="${javadoc7}">
1209        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1210        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1211      </javadoc>      </javadoc>
1212    </target>    </target>
1213    
1214      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1215    
1216    <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">  
   
1217      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
   
1218    </target>    </target>
1219    
1220      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
1221      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1222    </target>    </target>
1223    
1224    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
           depends="extra166yclean, extra166ydocs">  
1225      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1226    </target>    </target>
1227    
1228    <!-- jsr166e -->  
1229      <!-- jsr166e (no longer maintained) -->
1230    
1231    <property name="build.jsr166e.java.version" value="6"/>    <property name="build.jsr166e.java.version" value="6"/>
1232    <property name="build.jsr166e.javac" value="${javac6}"/>    <property name="build.jsr166e.javac" value="${javac6}"/>
1233    
1234    <target name="jsr166ecompile"    <target name="jsr166ecompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166e sources">  
   
1235      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1236    
1237      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1333  Line 1252 
1252        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1253        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1254        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1255      </javac>      </javac>
1256    </target>    </target>
1257    
   <!-- jsr166e: find doclint errors -->  
1258    <target name="jsr166edoclint">    <target name="jsr166edoclint">
   
1259      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1260    
1261      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1361  Line 1277 
1277        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1278        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1279        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
   
1280      </javac>      </javac>
1281    </target>    </target>
1282    
1283      <target name="jsr166ejar" depends="jsr166ecompile">
   <target name="jsr166ejar"  
           depends="jsr166ecompile"  
           description="Builds library jar from compiled sources">  
   
1284      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1285        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1286        <manifest>        <manifest>
# Line 1377  Line 1288 
1288          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1289        </manifest>        </manifest>
1290      </jar>      </jar>
   
1291    </target>    </target>
1292    
1293      <target name="jsr166edocs">
   <target name="jsr166edocs"  
           description="Builds javadocs to build dir">  
   
1294      <delete dir="${jsr166edocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1295      <mkdir dir="${jsr166edocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1296    
# Line 1397  Line 1304 
1304               failonerror = "true">               failonerror = "true">
1305        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1306        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1307      </javadoc>      </javadoc>
1308    </target>    </target>
1309    
1310      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
   <target name="jsr166e-tck-one-java-version"  
           depends="jsr166ejar">  
   
1311      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
   
1312      <run-tck-tests      <run-tck-tests
1313        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1314        target="${build.jsr166e.java.version}"        target="${build.jsr166e.java.version}"
# Line 1414  Line 1316 
1316        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1317    </target>    </target>
1318    
1319    <target name="jsr166e-tck"    <target name="jsr166e-tck">
           description="Runs tck tests for jsr166e for multiple java versions">  
1320    
1321  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
1322  <!--     <antcall target="jsr166e-tck-one-java-version"> -->  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
# Line 1436  Line 1337 
1337      </antcall>      </antcall>
1338    </target>    </target>
1339    
1340      <target name="jsr166e-test" depends="jsr166e-tck"/>
1341    
1342    <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"/>  
   
1343    
1344    <target name="jsr166eclean"    <target name="jsr166eclean">
           description="Removes all jsr166e build products">  
1345      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1346    </target>    </target>
1347    
   
1348    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1349            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1350      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1351    </target>    </target>
1352    
1353    <target name="jsr166edist-docs"    <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
           depends="jsr166eclean, jsr166edocs">  
1354      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1355    </target>    </target>
1356    
# Line 1480  Line 1371 
1371    </target>    </target>
1372    
1373    
1374    <!-- ==============================================================
1375      Experimental errorprone support - http://errorprone.info
1376      You may need to bring your own errorprone jar.
1377    =================================================================== -->
1378      <target name="errorprone"
1379              depends="clean, configure-compiler"
1380              description="Run errorprone over jsr166 source code (experimental)">
1381    
1382        <local name="destdir"/>
1383        <property name="destdir" value="${build.classes.dir}/java.base"/>
1384        <mkdir dir="${destdir}"/>
1385    
1386        <javac srcdir="${src.dir}"
1387               destdir="${destdir}"
1388               debug="${build.debug}"
1389               debuglevel="${build.debuglevel}"
1390               deprecation="${build.deprecation}"
1391               classpath=""
1392               includeAntRuntime="false"
1393               includeJavaRuntime="false"
1394               encoding="ASCII"
1395               executable="${build.main.javac}"
1396               fork="true">
1397    
1398          <include name="**/*.java"/>
1399          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED"/>
1400          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"/>
1401          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"/>
1402          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED"/>
1403          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"/>
1404          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"/>
1405          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED"/>
1406          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1407          <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1408          <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.20-SNAPSHOT.jar"/>
1409          <compilerarg value="-Xplugin:ErrorProne
1410                              -Xep:IdentityBinaryExpression:WARN
1411                              -Xep:MissingOverride:OFF
1412                              -Xep:MixedArrayDimensions:WARN
1413                              -Xep:RemoveUnusedImports:ERROR
1414                              -Xep:ClassName:ERROR
1415                              -Xep:MultipleTopLevelClasses:ERROR
1416                              -Xep:EmptyIf:ERROR
1417                              -Xep:LongLiteralLowerCaseSuffix:ERROR
1418                              -Xep:ArgumentParameterSwap:ERROR
1419                              -Xep:RedundantThrows:ERROR
1420                              -Xep:MethodCanBeStatic:WARN"/>
1421          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1422          <compilerarg value="-Xprefer:source"/>
1423          <compilerarg value="-XDignore.symbol.file=true"/>
1424          <compilerarg value="-Xlint:all"/>
1425          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1426          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1427          <compilerarg line="${build.args}"/>
1428        </javac>
1429    
1430        <jar destfile="${product.jar}">
1431          <fileset dir="${destdir}"/>
1432        </jar>
1433    
1434        <run-tck-tests
1435          target="${build.main.java.version}"
1436          workdir="${build.dir}"
1437          classes="${product.jar}">
1438          <javac-elements>
1439            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED"/>
1440            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"/>
1441            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"/>
1442            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED"/>
1443            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"/>
1444            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"/>
1445            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED"/>
1446            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1447            <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1448            <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.20-SNAPSHOT.jar"/>
1449            <compilerarg value="-Xplugin:ErrorProne
1450                                -Xep:IdentityBinaryExpression:WARN
1451                                -Xep:BoxedPrimitiveConstructor:OFF
1452                                -Xep:HashtableContains:OFF
1453                                -Xep:ModifyingCollectionWithItself:OFF
1454                                -Xep:MissingOverride:OFF
1455                                -Xep:MixedArrayDimensions:WARN
1456                                -Xep:RemoveUnusedImports:ERROR
1457                                -Xep:ClassName:ERROR
1458                                -Xep:MultipleTopLevelClasses:ERROR
1459                                -Xep:EmptyIf:ERROR
1460                                -Xep:LongLiteralLowerCaseSuffix:ERROR
1461                                -Xep:ArgumentParameterSwap:ERROR
1462                                -Xep:RedundantThrows:ERROR
1463                                -Xep:MethodCanBeStatic:WARN"/>
1464            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1465          </javac-elements>
1466        </run-tck-tests>
1467      </target>
1468    
1469    
1470    <!-- ==============================================================
1471      Running guava tests against jsr166 code
1472    =================================================================== -->
1473    
1474    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1475    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1476    <!-- <property name="guava.version" value="21.0"/> -->
1477    
1478    <!-- HOWTO debug print a path id -->
1479    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1480    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1481    
1482    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1483    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1484    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1485    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1486    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1487    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1488    
1489    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1490    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1491    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1492    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1493    
1494    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1495    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1496    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1497    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1498    
1499    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1500    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1501    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1502    
1503      <target name="init-ivy">
1504        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1505             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1506        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1507                 classpath="${build.dir}/ivy.jar"/>
1508      </target>
1509    
1510      <target name="guava-tests" depends="jar, init-ivy"
1511              description="Guava tests run against jsr166 collections">
1512        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1513        <mkdir dir="${guava.dir}"/>
1514        <ivy:retrieve pathid="guava.testlib.classpath"
1515          type="jar,bundle" inline="true" conf="default,master"
1516          pattern="${guava.dir}/[artifact].[ext]"
1517          organisation="com.google.guava" module="guava-testlib"/>
1518        <property name="guava.version" value="21.0"/>
1519        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1520             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1521        <junit printsummary="true" showoutput="true" haltonfailure="true"
1522               jvm="${build.main.java}" fork="true">
1523          <jvmarg line="-ea -esa --patch-module java.base=${product.jar}"/>
1524          <formatter type="brief"/>
1525          <classpath>
1526            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1527            <path refid="guava.testlib.classpath"/>
1528          </classpath>
1529    
1530          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1531          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1532        </junit>
1533      </target>
1534    
1535  </project>  </project>

Legend:
Removed from v.1.208  
changed lines
  Added in v.1.248

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