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

Diff of /jsr166/build.xml

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

revision 1.202 by jsr166, Sat Mar 26 15:10:14 2016 UTC revision 1.245 by jsr166, Fri Jun 16 20:50:16 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 292  Line 305 
305    <fileset dir="${jtreg8.src.dir}">    <fileset dir="${jtreg8.src.dir}">
306      <patternset id="jdk8.jtreg.tests">      <patternset id="jdk8.jtreg.tests">
307        <include name="**/*.java"/>        <include name="**/*.java"/>
       <exclude name="**/SpliteratorCharacteristics.java"/>  
       <!-- https://bugs.openjdk.java.net/browse/JDK-6842353 -->  
       <exclude name="**/GCDuringIteration.java"/>  
308      </patternset>      </patternset>
309    </fileset>    </fileset>
310    
# Line 309  Line 319 
319    
320    <macrodef name="run-jtreg-tests">    <macrodef name="run-jtreg-tests">
321      <!-- 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"/>  
322      <attribute name="target"/>      <attribute name="target"/>
323      <attribute name="workdir"/>      <attribute name="workdir"/>
324      <attribute name="classes"/>      <attribute name="classes"/>
# Line 326  Line 335 
335      </condition>      </condition>
336    
337      <delete dir="@{workdir}/JTwork"   quiet="true"/>      <delete dir="@{workdir}/JTwork"   quiet="true"/>
     <delete dir="@{workdir}/JTreport" quiet="true"/>  
     <mkdir dir="@{workdir}/JTwork/scratch"/>  
     <!-- workaround for https://bugs.openjdk.java.net/browse/CODETOOLS-7901571 -->  
     <mkdir dir="@{workdir}/JTreport/html"/>  
     <mkdir dir="@{workdir}/JTreport/text"/>  
338      <jtreg dir="${jtreg@{target}.src.dir}"      <jtreg dir="${jtreg@{target}.src.dir}"
339             jdk="${jdk@{target}.home}"             jdk="${jdk@{target}.home}"
340             workDir="@{workdir}/JTwork"             workDir="@{workdir}/JTwork">
            reportDir="@{workdir}/JTreport">  
341        <patternset refid="jdk@{target}.jtreg.tests"/>        <patternset refid="jdk@{target}.jtreg.tests"/>
342        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
343        <arg value="-Xpatch:${build.classes.dir}" if:set="modules"/>        <arg value="-javacoptions:--patch-module java.base=@{classes}" if:set="modules"/>
344          <arg value="-vmoptions:--patch-module java.base=@{classes}" if:set="modules"/>
345        <arg value="-agentvm"/>        <arg value="-agentvm"/>
346          <arg value="-noreport"/>
347        <arg value="-verbose:${jtreg.verbose}"/>        <arg value="-verbose:${jtreg.verbose}"/>
348        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
349        <arg value="-automatic"/>        <arg value="-automatic"/>
# Line 364  Line 369 
369    <property name="build.main.javac" value="${javac9}"/>    <property name="build.main.javac" value="${javac9}"/>
370    
371    <target name="dists"    <target name="dists"
372            depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"            depends="dist, 4jdk8dist"
373            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
374              <!--
375                  depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
376              -->
377    
378    <target name="compile"    <target name="compile"
379            depends="configure-compiler"            depends="configure-compiler"
# Line 393  Line 401 
401             classpath=""             classpath=""
402             includeAntRuntime="false"             includeAntRuntime="false"
403             includeJavaRuntime="false"             includeJavaRuntime="false"
404               encoding="ASCII"
405             executable="${build.main.javac}"             executable="${build.main.javac}"
406             fork="true">             fork="true">
407    
408        <include name="**/*.java"/>        <include name="**/*.java"/>
409        <compilerarg value="-Xmodule:java.base" if:set="modules"/>        <compilerarg value="--patch-module=java.base=${src.dir}" if:set="modules"/>
410        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
411        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
412        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
413          <compilerarg line="--doclint-format html5"/>
414          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
415        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
       <compilerarg value="-Xdoclint:all/protected"/>  
416        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
417        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
418    
419      </javac>      </javac>
   
     <!-- We need jdk9's Contended annotation, but at compile time only -->  
     <!--  
         <delete file="${destdir}/jdk/internal/vm/annotation/Contended.class"/>  
     -->  
420    </target>    </target>
421    
422    
423    <target name="jar"    <target name="jar"
424            depends="compile"            depends="compile"
425            description="Builds library jar from compiled sources">            description="Builds library jar for src/main from compiled sources">
426        <local name="subdir"/>
427        <available property="subdir" file="${build.classes.dir}/java.base" type="dir" value="/java.base"/>
428      <jar destfile="${product.jar}">      <jar destfile="${product.jar}">
429        <fileset dir="${build.classes.dir}"/>        <fileset dir="${build.classes.dir}${subdir}"/>
430        <manifest>        <manifest>
431          <attribute name="Built-By" value="${user.name}"/>          <attribute name="Built-By" value="${user.name}"/>
432          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
# Line 438  Line 444 
444      <!-- the packagenames="none" hack below prevents scanning the -->      <!-- the packagenames="none" hack below prevents scanning the -->
445      <!-- sourcepath for packages -->      <!-- sourcepath for packages -->
446    
447    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" -->
448    <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" -->
449    <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" -->
450    <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> -->
451    <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> -->
452      <javadoc destdir="${docs.dir}"      <javadoc destdir="${docs.dir}"
453               packagenames="none"               packagenames="none"
454               link="${java9.api.url}"               link="${java9.api.url}"
455               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
456               access="${build.javadoc.access}"               access="${build.javadoc.access}"
457               sourcepath="${src.dir}:${jdk9.src.dir}"               sourcepath="${src.dir}"
458               classpath=""               classpath=""
459                 source="9"
460               executable="${javadoc9}">               executable="${javadoc9}">
461        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
462          <include name="**/*.java"/>          <include name="**/*.java"/>
# Line 452  Line 464 
464        <arg line="-Xdocrootparent ${java9.docroot.url}"/>        <arg line="-Xdocrootparent ${java9.docroot.url}"/>
465        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
466        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
467  <!--  TODO     <arg value="-Xmodule:java.base"/> -->        <arg value="-html5"/>
468          <arg value="--patch-module=java.base=${src.dir}"/>
469        <arg value="-tag"/>        <arg value="-tag"/>
470        <arg value="${javadoc.jls.option}"/>        <arg value="${javadoc.jls.option}"/>
471    <!-- @apiNote currently unused -->
472    <!--       <arg value="-tag"/> -->
473    <!--       <arg value="apiNote:a:API Note:"/> -->
474        <arg value="-tag"/>        <arg value="-tag"/>
475        <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"/>  
476        <arg value="-tag"/>        <arg value="-tag"/>
477        <arg value="spec:X"/>        <arg value="implNote:a:Implementation Note:"/>
478    <!-- tags added in jdk9: currently unused -->
479    <!--       <arg value="-tag"/> -->
480    <!--       <arg value="revised:X"/> -->
481    <!--       <arg value="-tag"/> -->
482    <!--       <arg value="spec:X"/> -->
483      </javadoc>      </javadoc>
484    </target>    </target>
485    
# Line 499  Line 513 
513    
514    <target name="clean"    <target name="clean"
515            description="Removes all build products">            description="Removes all build products">
   
516      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
   
517    </target>    </target>
518    
519    
520    <target name="dist-clean"    <target name="dist-clean"
521            description="Removes all build and distribution products">            description="Removes all build and distribution products">
   
522      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
523      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
   
524    </target>    </target>
525    
526    
# Line 526  Line 536 
536    
537    <target name="tck"    <target name="tck"
538            depends="jar"            depends="jar"
539            description="Runs tck tests for main directly">            description="Runs tck tests for src/main directly">
540    
541      <run-tck-tests      <run-tck-tests
542        target="${build.main.java.version}"        target="${build.main.java.version}"
543        workdir="${build.dir}"        workdir="${build.dir}"
544        classes="${product.jar}"/>        classes="${product.jar}">
545          <javac-elements>
546            <compilerarg value="-Werror"/>
547          </javac-elements>
548        </run-tck-tests>
549    </target>    </target>
550    
551    <target name="tck-parallelism-1"    <target name="tck-parallelism-1"
552            description="Runs tck with given common pool parallelism">            description="Runs tck with common pool parallelism 1">
553      <antcall target="tck">      <antcall target="tck">
554        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
555      </antcall>      </antcall>
556    </target>    </target>
557    
558    <target name="tck-parallelism-0"    <target name="tck-parallelism-0"
559            description="Runs tck with given common pool parallelism">            description="Runs tck with common pool parallelism 0">
560      <antcall target="tck">      <antcall target="tck">
561        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>        <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
562      </antcall>      </antcall>
563    </target>    </target>
564    
565      <target name="tck-security-manager"
566              description="Runs tck with a security manager">
567        <antcall target="tck">
568          <param name="jsr166.useSecurityManager" value="true"/>
569        </antcall>
570      </target>
571    
572    <target name="jtreg"    <target name="jtreg"
573            depends="jar"            depends="jar"
574            description="Runs jtreg tests for main using the jtreg ant task">            description="Runs jtreg tests for src/main using the jtreg ant task">
575      <run-jtreg-tests      <run-jtreg-tests
576         target="${build.main.java.version}"         target="${build.main.java.version}"
577         workdir="${build.dir}"         workdir="${build.dir}"
# Line 558  Line 579 
579    </target>    </target>
580    
581    <target name="test"    <target name="test"
582            depends="tck, tck-parallelism-1, jtreg"            depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
583            description="Runs tck and jtreg tests for main">            description="Runs tck and jtreg tests for src/main"/>
   </target>  
584    
585    <target name="jtreg8" description="Runs jtreg tests with jdk8">  <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->
586    
587      <antcall target="jtreg">  <!--     <antcall target="jtreg"> -->
588        <param name="build.main.java.version" value="8"/>  <!--       <param name="build.main.java.version" value="8"/> -->
589        <param name="build.main.javac" value="${javac8}"/>  <!--       <param name="build.main.javac" value="${javac8}"/> -->
590      </antcall>  <!--     </antcall> -->
591    
592    </target>  <!--   </target> -->
593    
594    <target name="test89"  <!--   <target name="test89" -->
595            description="Runs tck and jtreg tests for main for multiple java versions">  <!--           description="Runs tck and jtreg tests for src/main for multiple java versions"> -->
596    
597      <antcall target="clean"/>  <!--     <antcall target="clean"/> -->
598      <antcall target="test">  <!--     <antcall target="test"> -->
599        <param name="build.main.java.version" value="8"/>  <!--       <param name="build.main.java.version" value="8"/> -->
600        <param name="build.main.javac" value="${javac8}"/>  <!--       <param name="build.main.javac" value="${javac8}"/> -->
601      </antcall>  <!--     </antcall> -->
602    
603      <antcall target="clean"/>  <!--     <antcall target="clean"/> -->
604      <antcall target="test">  <!--     <antcall target="test"> -->
605        <param name="build.main.java.version" value="9"/>  <!--       <param name="build.main.java.version" value="9"/> -->
606        <param name="build.main.javac" value="${javac9}"/>  <!--       <param name="build.main.javac" value="${javac9}"/> -->
607      </antcall>  <!--     </antcall> -->
608    
609    </target>  <!--   </target> -->
610    
611    
612    
613    <target name="configure-compiler">    <target name="configure-compiler">
614      <fail message="ant version too old">      <fail message="ant version too old">
615        <condition>        <condition> <not> <antversion atleast="1.9.1"/> </not> </condition>
         <not> <antversion atleast="1.9.1"/> </not>  
       </condition>  
616      </fail>      </fail>
617    
618      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
# Line 616  Line 634 
634    <!-- Various demos and test programs -->    <!-- Various demos and test programs -->
635    
636    
637    <target name="loops" depends="configure-compiler"    <!-- description="Benchmark from Doug Lea's AQS paper" -->
638            description="Benchmark from Doug Lea's AQS paper">    <target name="loops" depends="configure-compiler">
639    
640      <mkdir dir="${build.loops.dir}"/>      <mkdir dir="${build.loops.dir}"/>
641    
# Line 628  Line 646 
646        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
647             source="${build.sourcelevel}"             source="${build.sourcelevel}"
648             target="${build.sourcelevel}"             target="${build.sourcelevel}"
649             encoding="ASCII"
650               fork="true">               fork="true">
651    
652        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
# Line 639  Line 658 
658      <java classname="ALoops" fork="true">      <java classname="ALoops" fork="true">
659        <classpath refid="loops.classpath"/>        <classpath refid="loops.classpath"/>
660      </java>      </java>
   
661    </target>    </target>
662    
663    
664    <target name="compile-test-loops" depends="jar"    <target name="compile-test-loops" depends="jar"
665            description="compile all the perf tests in src/test/loops">            description="Compiles all the perf tests in src/test/loops">
666    
667      <mkdir dir="${build.dir}/test/loops"/>      <mkdir dir="${build.dir}/test/loops"/>
668    
# Line 655  Line 673 
673             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
674             includeAntRuntime="false"             includeAntRuntime="false"
675             includeJavaRuntime="false"             includeJavaRuntime="false"
676               encoding="ASCII"
677             executable="${javac9}"             executable="${javac9}"
678             fork="true">             fork="true">
679    
# Line 663  Line 682 
682        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
683        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>        <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
684        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
685      </javac>      </javac>
   
686    </target>    </target>
687    
688    
# Line 688  Line 705 
705             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
706             includeAntRuntime="false"             includeAntRuntime="false"
707             includeJavaRuntime="false"             includeJavaRuntime="false"
708               encoding="ASCII"
709             executable="${javac8}"             executable="${javac8}"
710             fork="true">             fork="true">
   
711        <include name="**/*.java"/>        <include name="**/*.java"/>
712        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
713        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
714        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
715        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
716        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
717      </javac>      </javac>
718    </target>    </target>
719    
# Line 718  Line 734 
734             bootclasspath="${bootclasspath8}"             bootclasspath="${bootclasspath8}"
735             includeAntRuntime="false"             includeAntRuntime="false"
736             includeJavaRuntime="false"             includeJavaRuntime="false"
737               encoding="ASCII"
738             executable="${javac8}"             executable="${javac8}"
739             fork="true">             fork="true">
   
740        <include name="**/*.java"/>        <include name="**/*.java"/>
741        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
742        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
743        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
744        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected,reference/private"/>
745        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
746      </javac>      </javac>
747    </target>    </target>
748    
# Line 743  Line 758 
758          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
759        </manifest>        </manifest>
760      </jar>      </jar>
   
761    </target>    </target>
762    
763    
# Line 759  Line 773 
773          <!-- JDK9+ test classes -->          <!-- JDK9+ test classes -->
774          <exclude name="*9Test.java"/>          <exclude name="*9Test.java"/>
775          <exclude name="*10Test.java"/>          <exclude name="*10Test.java"/>
776            <compilerarg value="-Werror"/>
777        </javac-elements>        </javac-elements>
778      </run-tck-tests>      </run-tck-tests>
779    </target>    </target>
# Line 776  Line 791 
791    
792    <target name="4jdk8-test"    <target name="4jdk8-test"
793            depends="4jdk8-tck, 4jdk8-jtreg"            depends="4jdk8-tck, 4jdk8-jtreg"
794            description="Runs tck and jtreg tests for jsr166-4jdk8">            description="Runs tck and jtreg tests for jsr166-4jdk8"/>
   </target>  
795    
796    
797    <target name="4jdk8docs"    <target name="4jdk8docs"
# Line 793  Line 807 
807               access="${build.javadoc.access}"               access="${build.javadoc.access}"
808               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"               sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
809               classpath=""               classpath=""
810               executable="${javadoc8}">               source="8"
811                 executable="${javadoc8}"
812                 failonerror = "true">
813        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
814          <include name="**/*.java"/>          <include name="**/*.java"/>
815        </fileset>        </fileset>
# Line 801  Line 817 
817        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
818        <arg value="-tag"/>        <arg value="-tag"/>
819        <arg value="${javadoc.jls.option}"/>        <arg value="${javadoc.jls.option}"/>
820        <arg value="-tag"/>  <!-- @apiNote currently unused -->
821        <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>  <!--       <arg value="-tag"/> -->
822    <!--       <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/> -->
823        <arg value="-tag"/>        <arg value="-tag"/>
824        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>        <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
825        <arg value="-tag"/>        <arg value="-tag"/>
# Line 818  Line 835 
835    
836    <target name="4jdk8clean"    <target name="4jdk8clean"
837            description="Removes all 4jdk8 build products">            description="Removes all 4jdk8 build products">
   
838      <delete dir="${build.4jdk8.dir}"/>      <delete dir="${build.4jdk8.dir}"/>
   
839    </target>    </target>
840    
841    
# Line 836  Line 851 
851    </target>    </target>
852    
853    
854      <!-- jsr166 4jdk7 (no longer maintained) -->
855    
856    <!-- jsr166 4jdk7 -->    <target name="4jdk7compile" depends="configure-compiler">
   
   <target name="4jdk7compile"  
           depends="configure-compiler"  
           description="Compiles src/jdk7 sources, targeting jdk7">  
   
857      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
858    
859      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 856  Line 867 
867             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
868             includeAntRuntime="false"             includeAntRuntime="false"
869             includeJavaRuntime="false"             includeJavaRuntime="false"
870               encoding="ASCII"
871             executable="${javac7}"             executable="${javac7}"
872             fork="true">             fork="true">
873    
# Line 865  Line 877 
877        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
878        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
879        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
880      </javac>      </javac>
881    </target>    </target>
882    
883    <target name="4jdk7doclint"    <target name="4jdk7doclint" depends="configure-compiler">
           depends="configure-compiler"  
           description="Finds doclint warnings">  
   
884      <mkdir dir="${build.4jdk7.classes.dir}"/>      <mkdir dir="${build.4jdk7.classes.dir}"/>
885    
886      <javac srcdir="${4jdk7src.dir}"      <javac srcdir="${4jdk7src.dir}"
# Line 886  Line 894 
894             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
895             includeAntRuntime="false"             includeAntRuntime="false"
896             includeJavaRuntime="false"             includeJavaRuntime="false"
897               encoding="ASCII"
898             executable="${javac8}"             executable="${javac8}"
899             fork="true">             fork="true">
900    
# Line 895  Line 904 
904        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
905        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
906        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
907      </javac>      </javac>
908    </target>    </target>
909    
910      <target name="4jdk7jar" depends="4jdk7compile">
   <target name="4jdk7jar"  
           depends="4jdk7compile"  
           description="Builds library jar from compiled sources">  
   
911      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
912        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
913        <manifest>        <manifest>
# Line 911  Line 915 
915          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
916        </manifest>        </manifest>
917      </jar>      </jar>
   
918    </target>    </target>
919    
920      <target name="4jdk7-tck" depends="4jdk7jar">
   <target name="4jdk7-tck"  
           depends="4jdk7jar"  
           description="Runs tck tests for jsr166-4jdk7 directly">  
   
921      <run-tck-tests      <run-tck-tests
922        target="7"        target="7"
923        workdir="${build.4jdk7.dir}"        workdir="${build.4jdk7.dir}"
# Line 936  Line 935 
935          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
936          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
937          <exclude name="SubmissionPublisherTest.java"/>          <exclude name="SubmissionPublisherTest.java"/>
938            <compilerarg value="-Werror"/>
939        </javac-elements>        </javac-elements>
940      </run-tck-tests>      </run-tck-tests>
941    </target>    </target>
942    
943      <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
944    <target name="4jdk7-tck-junit"    <target name="4jdk7-tck-junit" depends="4jdk7compile">
           depends="4jdk7compile"  
           description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">  
945    
946      <junit printsummary="true"      <junit printsummary="true"
947             showoutput="true"             showoutput="true"
# Line 965  Line 963 
963    
964        <test name="${jsr166.tckTestClass}" haltonfailure="no">        <test name="${jsr166.tckTestClass}" haltonfailure="no">
965        </test>        </test>
   
966      </junit>      </junit>
967    </target>    </target>
968    
969    <target name="4jdk7-jtreg"    <target name="4jdk7-jtreg" depends="4jdk7jar">
           depends="4jdk7jar"  
           description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">  
970      <run-jtreg-tests      <run-jtreg-tests
971         target="7"         target="7"
972         workdir="${build.4jdk7.dir}"         workdir="${build.4jdk7.dir}"
973         classes="${4jdk7product.jar}"/>         classes="${4jdk7product.jar}"/>
974    </target>    </target>
975    
976      <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/>
977    
978    <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">  
   
979      <delete dir="${4jdk7docs.dir}"/>      <delete dir="${4jdk7docs.dir}"/>
980      <mkdir dir="${4jdk7docs.dir}"/>      <mkdir dir="${4jdk7docs.dir}"/>
981    
# Line 998  Line 986 
986               access="${build.javadoc.access}"               access="${build.javadoc.access}"
987               sourcepath="${4jdk7src.dir}:${jdk7.src.dir}"               sourcepath="${4jdk7src.dir}:${jdk7.src.dir}"
988               classpath=""               classpath=""
989               executable="${javadoc7}">               executable="${javadoc7}"
990                 failonerror = "true">
991        <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">        <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
992          <include name="**/*.java"/>          <include name="**/*.java"/>
993        </fileset>        </fileset>
# Line 1007  Line 996 
996      </javadoc>      </javadoc>
997    </target>    </target>
998    
999      <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/>
1000    
1001    <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">  
   
1002      <delete dir="${build.4jdk7.dir}"/>      <delete dir="${build.4jdk7.dir}"/>
   
1003    </target>    </target>
1004    
1005      <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar">
   <target name="4jdk7dist-jar"  
           depends="4jdk7clean, 4jdk7jar">  
1006      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1007    </target>    </target>
1008    
1009      <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs">
   <target name="4jdk7dist-docs"  
           depends="4jdk7clean, 4jdk7docs">  
1010      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>      <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1011    </target>    </target>
1012    
1013    
1014    <!-- jsr166x -->    <!-- jsr166x (no longer maintained) -->
   
   <target name="jsr166xcompile"  
           depends="configure-compiler"  
           description="Compiles jsr166x sources to build dir">  
1015    
1016      <target name="jsr166xcompile" depends="configure-compiler">
1017      <mkdir dir="${build.jsr166x.classes.dir}"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
1018    
1019      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1052  Line 1027 
1027             target="5"             target="5"
1028             includeAntRuntime="false"             includeAntRuntime="false"
1029             includeJavaRuntime="false"             includeJavaRuntime="false"
1030               encoding="ASCII"
1031             executable="${javac7}"             executable="${javac7}"
1032             fork="true">             fork="true">
   
1033        <include name="jsr166x/**/*.java"/>        <include name="jsr166x/**/*.java"/>
1034        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1035        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1036        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1037        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1038      </javac>      </javac>
1039    </target>    </target>
1040    
1041      <target name="jsr166xjar" depends="jsr166xcompile">
   <target name="jsr166xjar"  
           depends="jsr166xcompile"  
           description="Builds library jar from compiled sources">  
   
1042      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
1043        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
1044        <manifest>        <manifest>
# Line 1076  Line 1046 
1046          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1047        </manifest>        </manifest>
1048      </jar>      </jar>
   
1049    </target>    </target>
1050    
1051      <target name="jsr166xdocs">
   <target name="jsr166xdocs"  
           description="Builds javadocs to dist dir">  
   
1052      <delete dir="${jsr166xdocs.dir}"/>      <delete dir="${jsr166xdocs.dir}"/>
1053      <mkdir dir="${jsr166xdocs.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
1054    
# Line 1093  Line 1059 
1059               sourcepath="${topsrc.dir}:${jdk6.src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1060               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1061               source="5"               source="5"
1062               executable="${javadoc7}">               executable="${javadoc7}"
1063                 failonerror = "true">
1064        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1065        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1066      </javadoc>      </javadoc>
1067    </target>    </target>
1068    
1069      <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/>
1070    
1071    <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">  
   
1072      <delete dir="${build.jsr166x.dir}"/>      <delete dir="${build.jsr166x.dir}"/>
   
1073    </target>    </target>
1074    
1075      <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar">
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1076      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1077    </target>    </target>
1078    
1079    <target name="jsr166xdist-docs"    <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs">
           depends="jsr166xclean, jsr166xdocs">  
1080      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1081    </target>    </target>
1082    
   <!-- jsr166y -->  
1083    
1084      <!-- jsr166y (no longer maintained) -->
1085    
1086    <target name="jsr166ycompile"    <target name="jsr166ycompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166y sources">  
   
1087      <mkdir dir="${build.jsr166y.classes.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
1088    
1089      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1144  Line 1097 
1097             bootclasspath="${bootclasspath6}"             bootclasspath="${bootclasspath6}"
1098             includeAntRuntime="false"             includeAntRuntime="false"
1099             includeJavaRuntime="false"             includeJavaRuntime="false"
1100               encoding="ASCII"
1101             executable="${javac7}"             executable="${javac7}"
1102             fork="true">             fork="true">
1103    
# Line 1152  Line 1106 
1106        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1107        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1108        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1109      </javac>      </javac>
1110    </target>    </target>
1111    
1112      <target name="jsr166yjar" depends="jsr166ycompile">
   <target name="jsr166yjar"  
           depends="jsr166ycompile"  
           description="Builds library jar from compiled sources">  
   
1113      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
1114        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
1115        <manifest>        <manifest>
# Line 1168  Line 1117 
1117          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1118        </manifest>        </manifest>
1119      </jar>      </jar>
   
1120    </target>    </target>
1121    
1122      <target name="jsr166ydocs">
   <target name="jsr166ydocs"  
           description="Builds javadocs to dist dir">  
   
1123      <delete dir="${jsr166ydocs.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
1124      <mkdir dir="${jsr166ydocs.dir}"/>      <mkdir dir="${jsr166ydocs.dir}"/>
1125    
# Line 1185  Line 1130 
1130               sourcepath="${topsrc.dir}:${jdk6.src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1131               bootclasspath="${bootclasspath6}"               bootclasspath="${bootclasspath6}"
1132               source="6"               source="6"
1133               executable="${javadoc7}">               executable="${javadoc7}"
1134                 failonerror = "true">
1135        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1136        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1137      </javadoc>      </javadoc>
1138    </target>    </target>
1139    
1140      <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/>
1141    
1142    <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">  
   
1143      <delete dir="${build.jsr166y.dir}"/>      <delete dir="${build.jsr166y.dir}"/>
   
1144    </target>    </target>
1145    
1146      <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar">
   <target name="jsr166ydist-jar"  
           depends="jsr166yclean, jsr166yjar">  
1147      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1148    </target>    </target>
1149    
1150    <target name="jsr166ydist-docs"    <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs">
           depends="jsr166yclean, jsr166ydocs">  
1151      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>      <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1152    </target>    </target>
1153    
1154    
1155    <!-- extra166y -->    <!-- extra166y (no longer maintained) -->
   
   
   <target name="extra166ycompile"  
           depends="configure-compiler, jsr166yjar"  
           description="Compiles extra166y sources">  
1156    
1157      <target name="extra166ycompile" depends="configure-compiler, jsr166yjar">
1158      <mkdir dir="${build.extra166y.classes.dir}"/>      <mkdir dir="${build.extra166y.classes.dir}"/>
1159    
1160      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1237  Line 1168 
1168             target="6"             target="6"
1169             includeAntRuntime="false"             includeAntRuntime="false"
1170             includeJavaRuntime="false"             includeJavaRuntime="false"
1171               encoding="ASCII"
1172             executable="${javac7}"             executable="${javac7}"
1173             fork="true">             fork="true">
1174    
# Line 1245  Line 1177 
1177        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1178        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1179        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1180      </javac>      </javac>
1181    </target>    </target>
1182    
1183      <target name="extra166yjar" depends="extra166ycompile">
   <target name="extra166yjar"  
           depends="extra166ycompile"  
           description="Builds library jar from compiled sources">  
   
1184      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1185        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1186        <manifest>        <manifest>
# Line 1261  Line 1188 
1188          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1189        </manifest>        </manifest>
1190      </jar>      </jar>
   
1191    </target>    </target>
1192    
1193      <target name="extra166ydocs">
   <target name="extra166ydocs"  
           description="Builds javadocs to build dir">  
   
1194      <delete dir="${extra166ydocs.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1195      <mkdir dir="${extra166ydocs.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1196    
# Line 1281  Line 1204 
1204               executable="${javadoc7}">               executable="${javadoc7}">
1205        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1206        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1207      </javadoc>      </javadoc>
1208    </target>    </target>
1209    
1210      <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/>
1211    
1212    <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">  
   
1213      <delete dir="${build.extra166y.dir}"/>      <delete dir="${build.extra166y.dir}"/>
   
1214    </target>    </target>
1215    
1216      <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar">
   <target name="extra166ydist-jar"  
           depends="extra166yclean, extra166yjar">  
1217      <copy file="${extra166y.jar}" todir="${dist.dir}"/>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1218    </target>    </target>
1219    
1220    <target name="extra166ydist-docs"    <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs">
           depends="extra166yclean, extra166ydocs">  
1221      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1222    </target>    </target>
1223    
1224    <!-- jsr166e -->  
1225      <!-- jsr166e (no longer maintained) -->
1226    
1227    <property name="build.jsr166e.java.version" value="6"/>    <property name="build.jsr166e.java.version" value="6"/>
1228    <property name="build.jsr166e.javac" value="${javac6}"/>    <property name="build.jsr166e.javac" value="${javac6}"/>
1229    
1230    <target name="jsr166ecompile"    <target name="jsr166ecompile" depends="configure-compiler">
           depends="configure-compiler"  
           description="Compiles jsr166e sources">  
   
1231      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1232    
1233      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1338  Line 1248 
1248        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1249        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1250        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
   
1251      </javac>      </javac>
1252    </target>    </target>
1253    
   <!-- jsr166e: find doclint errors -->  
1254    <target name="jsr166edoclint">    <target name="jsr166edoclint">
   
1255      <mkdir dir="${build.jsr166e.classes.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1256    
1257      <javac srcdir="${topsrc.dir}"      <javac srcdir="${topsrc.dir}"
# Line 1366  Line 1273 
1273        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
1274        <compilerarg value="-Werror"/>        <compilerarg value="-Werror"/>
1275        <compilerarg value="-Xdoclint:all/protected"/>        <compilerarg value="-Xdoclint:all/protected"/>
   
1276      </javac>      </javac>
1277    </target>    </target>
1278    
1279      <target name="jsr166ejar" depends="jsr166ecompile">
   <target name="jsr166ejar"  
           depends="jsr166ecompile"  
           description="Builds library jar from compiled sources">  
   
1280      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1281        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1282        <manifest>        <manifest>
# Line 1382  Line 1284 
1284          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>          <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1285        </manifest>        </manifest>
1286      </jar>      </jar>
   
1287    </target>    </target>
1288    
1289      <target name="jsr166edocs">
   <target name="jsr166edocs"  
           description="Builds javadocs to build dir">  
   
1290      <delete dir="${jsr166edocs.dir}"/>      <delete dir="${jsr166edocs.dir}"/>
1291      <mkdir dir="${jsr166edocs.dir}"/>      <mkdir dir="${jsr166edocs.dir}"/>
1292    
# Line 1398  Line 1296 
1296               access="${build.javadoc.access}"               access="${build.javadoc.access}"
1297               sourcepath="${topsrc.dir}:${jdk6.src.dir}"               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1298               source="${build.jsr166e.java.version}"               source="${build.jsr166e.java.version}"
1299               executable="${javadoc7}">               executable="${javadoc7}"
1300                 failonerror = "true">
1301        <arg line="-Xdocrootparent ${java.docroot.url}"/>        <arg line="-Xdocrootparent ${java.docroot.url}"/>
1302        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
   
1303      </javadoc>      </javadoc>
1304    </target>    </target>
1305    
1306      <target name="jsr166e-tck-one-java-version" depends="jsr166ejar">
   <target name="jsr166e-tck-one-java-version"  
           depends="jsr166ejar">  
   
1307      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
   
1308      <run-tck-tests      <run-tck-tests
1309        tck.src.dir="${test.src.dir}/tck-jsr166e"        tck.src.dir="${test.src.dir}/tck-jsr166e"
1310        target="${build.jsr166e.java.version}"        target="${build.jsr166e.java.version}"
# Line 1418  Line 1312 
1312        classes="${jsr166e.jar}"/>        classes="${jsr166e.jar}"/>
1313    </target>    </target>
1314    
1315    <target name="jsr166e-tck"    <target name="jsr166e-tck">
           description="Runs tck tests for jsr166e for multiple java versions">  
1316    
1317  <!--     <antcall target="clean"/> -->  <!--     <antcall target="clean"/> -->
1318  <!--     <antcall target="jsr166e-tck-one-java-version"> -->  <!--     <antcall target="jsr166e-tck-one-java-version"> -->
# Line 1440  Line 1333 
1333      </antcall>      </antcall>
1334    </target>    </target>
1335    
1336      <target name="jsr166e-test" depends="jsr166e-tck"/>
1337    
1338    <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"/>  
   
1339    
1340    <target name="jsr166eclean"    <target name="jsr166eclean">
           description="Removes all jsr166e build products">  
1341      <delete dir="${build.jsr166e.dir}"/>      <delete dir="${build.jsr166e.dir}"/>
1342    </target>    </target>
1343    
   
1344    <target name="jsr166edist-jar"    <target name="jsr166edist-jar"
1345            depends="jsr166eclean, jsr166ejar">            depends="jsr166eclean, jsr166ejar">
1346      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1347    </target>    </target>
1348    
1349    <target name="jsr166edist-docs"    <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs">
           depends="jsr166eclean, jsr166edocs">  
1350      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>      <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1351    </target>    </target>
1352    
# Line 1484  Line 1367 
1367    </target>    </target>
1368    
1369    
1370    <!-- ==============================================================
1371      Experimental errorprone support - http://errorprone.info
1372      You may need to bring your own errorprone jar.
1373    =================================================================== -->
1374      <target name="errorprone"
1375              depends="clean, configure-compiler"
1376              description="Run errorprone over jsr166 source code (experimental)">
1377    
1378        <local name="destdir"/>
1379        <property name="destdir" value="${build.classes.dir}/java.base"/>
1380        <mkdir dir="${destdir}"/>
1381    
1382        <javac srcdir="${src.dir}"
1383               destdir="${destdir}"
1384               debug="${build.debug}"
1385               debuglevel="${build.debuglevel}"
1386               deprecation="${build.deprecation}"
1387               classpath=""
1388               includeAntRuntime="false"
1389               includeJavaRuntime="false"
1390               encoding="ASCII"
1391               executable="${build.main.javac}"
1392               fork="true">
1393    
1394          <include name="**/*.java"/>
1395          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED"/>
1396          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"/>
1397          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"/>
1398          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED"/>
1399          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"/>
1400          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"/>
1401          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED"/>
1402          <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1403          <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1404          <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.20-SNAPSHOT.jar"/>
1405          <compilerarg value="-Xplugin:ErrorProne
1406                              -Xep:IdentityBinaryExpression:WARN
1407                              -Xep:MissingOverride:OFF
1408                              -Xep:MixedArrayDimensions:WARN
1409                              -Xep:RemoveUnusedImports:ERROR
1410                              -Xep:ClassName:ERROR
1411                              -Xep:MultipleTopLevelClasses:ERROR
1412                              -Xep:EmptyIf:ERROR
1413                              -Xep:LongLiteralLowerCaseSuffix:ERROR
1414                              -Xep:ArgumentParameterSwap:ERROR
1415                              -Xep:RedundantThrows:ERROR
1416                              -Xep:MethodCanBeStatic:WARN"/>
1417          <compilerarg value="--patch-module=java.base=${src.dir}"/>
1418          <compilerarg value="-Xprefer:source"/>
1419          <compilerarg value="-XDignore.symbol.file=true"/>
1420          <compilerarg value="-Xlint:all"/>
1421          <compilerarg value="-Xdoclint:all/protected,reference/private"/>
1422          <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1423          <compilerarg line="${build.args}"/>
1424        </javac>
1425    
1426        <jar destfile="${product.jar}">
1427          <fileset dir="${destdir}"/>
1428        </jar>
1429    
1430        <run-tck-tests
1431          target="${build.main.java.version}"
1432          workdir="${build.dir}"
1433          classes="${product.jar}">
1434          <javac-elements>
1435            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED"/>
1436            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"/>
1437            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED"/>
1438            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED"/>
1439            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"/>
1440            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED"/>
1441            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED"/>
1442            <compilerarg value="-J--add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1443            <compilerarg value="-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED"/>
1444            <compilerarg line="-processorpath ${lib.dir}/error_prone_ant-2.0.20-SNAPSHOT.jar"/>
1445            <compilerarg value="-Xplugin:ErrorProne
1446                                -Xep:IdentityBinaryExpression:WARN
1447                                -Xep:BoxedPrimitiveConstructor:OFF
1448                                -Xep:HashtableContains:OFF
1449                                -Xep:ModifyingCollectionWithItself:OFF
1450                                -Xep:MissingOverride:OFF
1451                                -Xep:MixedArrayDimensions:WARN
1452                                -Xep:RemoveUnusedImports:ERROR
1453                                -Xep:ClassName:ERROR
1454                                -Xep:MultipleTopLevelClasses:ERROR
1455                                -Xep:EmptyIf:ERROR
1456                                -Xep:LongLiteralLowerCaseSuffix:ERROR
1457                                -Xep:ArgumentParameterSwap:ERROR
1458                                -Xep:RedundantThrows:ERROR
1459                                -Xep:MethodCanBeStatic:WARN"/>
1460            <compilerarg line="-Xmaxerrs 3000 -Xmaxwarns 3000"/>
1461          </javac-elements>
1462        </run-tck-tests>
1463      </target>
1464    
1465    
1466    <!-- ==============================================================
1467      Running guava tests against jsr166 code
1468    =================================================================== -->
1469    
1470    <!-- <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" -->
1471    <!--   organisation="com.google.guava" module="guava-testlib" revision="21.0"/> -->
1472    <!-- <property name="guava.version" value="21.0"/> -->
1473    
1474    <!-- HOWTO debug print a path id -->
1475    <!-- <pathconvert property="guava.testlib.classpath" refid="guava.testlib.classpath" /> -->
1476    <!-- <echo message="guava.testlib.classpath=${guava.testlib.classpath}"/> -->
1477    
1478    <!-- <ivy:retrieve pathid="guava.tests.classpath" type="jar" inline="true" conf="*" pattern="${lib.dir}/[type]/[artifact].[ext]" -->
1479    <!--   organisation="com.google.guava" module="guava-tests"/> -->
1480    <!-- <get src="http://repo2.maven.org/maven2/com/google/guava/guava-tests/${guava.version}/guava-tests-${guava.version}-tests.jar" -->
1481    <!--   dest="${lib.dir}/jar/guava-tests-tests.jar" usetimestamp="true"/> -->
1482    <!--     <ivy:cachepath pathid="lib.path.id" inline="true" conf="*" type="*" -->
1483    <!--       organisation="com.google.guava" module="guava-testlib" revision="${guava.version}"/> -->
1484    
1485    <!-- <test name="com.google.common.collect.testing.TestsForQueuesInJavaUtil"/> -->
1486    <!-- <test name="com.google.common.collect.testing.TestsForListsInJavaUtil"/> -->
1487    <!-- <test name="com.google.common.collect.testing.TestsForSetsInJavaUtil"/> -->
1488    <!-- <test name="com.google.common.collect.testing.TestsForMapsInJavaUtil"/> -->
1489    
1490    <!-- <ivy:retrieve pathid="guava.testlib.classpath" -->
1491    <!--   type="*" inline="true" conf="*(private),*(public)" -->
1492    <!--   pattern="${guava.dir}/[artifact].[ext]" -->
1493    <!--   organisation="com.google.guava" module="guava-testlib"/> -->
1494    
1495    <!-- Work around bug below by downloading guava-testlib-tests.jar "by hand": -->
1496    <!-- https://issues.apache.org/jira/browse/IVY-1444 -->
1497    <!-- maven tests artifacts cannot be downloaded because they are mapped to private configurations -->
1498    
1499      <target name="init-ivy">
1500        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/2.4.0/ivy-2.4.0.jar"
1501             dest="${build.dir}/ivy.jar" usetimestamp="true" skipexisting="true"/>
1502        <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant"
1503                 classpath="${build.dir}/ivy.jar"/>
1504      </target>
1505    
1506      <target name="guava-tests" depends="jar, init-ivy"
1507              description="Guava tests run against jsr166 collections">
1508        <property name="guava.dir" value="${build.dir}/guava-testlib"/>
1509        <mkdir dir="${guava.dir}"/>
1510        <ivy:retrieve pathid="guava.testlib.classpath"
1511          type="jar,bundle" inline="true" conf="default,master"
1512          pattern="${guava.dir}/[artifact].[ext]"
1513          organisation="com.google.guava" module="guava-testlib"/>
1514        <property name="guava.version" value="21.0"/>
1515        <get src="http://repo2.maven.org/maven2/com/google/guava/guava-testlib/${guava.version}/guava-testlib-${guava.version}-tests.jar"
1516             dest="${guava.dir}/guava-testlib-tests.jar" usetimestamp="true"/>
1517        <junit printsummary="true" showoutput="true" haltonfailure="true"
1518               jvm="${java9}" fork="true">
1519          <jvmarg line="-ea -esa --patch-module java.base=${product.jar}"/>
1520          <formatter type="brief"/>
1521          <classpath>
1522            <pathelement location="${guava.dir}/guava-testlib-tests.jar"/>
1523            <path refid="guava.testlib.classpath"/>
1524          </classpath>
1525    
1526          <!-- "6" in "OpenJdk6Tests" misleadingly means "6+" -->
1527          <test name="com.google.common.collect.testing.OpenJdk6Tests"/>
1528        </junit>
1529      </target>
1530    
1531  </project>  </project>

Legend:
Removed from v.1.202  
changed lines
  Added in v.1.245

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