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

Diff of /jsr166/build.xml

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

revision 1.37 by tim, Fri May 30 03:24:18 2003 UTC revision 1.184 by jsr166, Wed Sep 30 15:30:46 2015 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">
3    
4    <description>    <description>
5  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
# Line 8  Line 9 
9    
10    User-specific settings are read from user.properties.    User-specific settings are read from user.properties.
11    See user.properties.sample for an explanation of some useful settings.    See user.properties.sample for an explanation of some useful settings.
12    
13      The repository contains all dependencies except for ant and the JDK
14      itself.  Because the JDK version matters and because different
15      targets require different JDKs, we assume that users have created a
16      hierarchy containing:
17      $HOME/jdk/jdk6
18      $HOME/jdk/jdk7
19      $HOME/jdk/jdk8
20      $HOME/jdk/jdk9
21      where each of the above is a JDK or a symlink to same, and
22      $HOME/jdk/src/jdk6
23      $HOME/jdk/src/jdk7
24      $HOME/jdk/src/jdk8
25      $HOME/jdk/src/jdk9
26      where each of the above is a complete JDK source tree
27      (e.g. mercurial forest) or a symlink to same.
28    
29      Alternatively, define ant variables thus:
30      ant -Djdk$N.home=...
31      for $N in 6 7 8 9 ...
32    
33      As of 2015-09, there is incomplete hacky support for jigsaw
34      Build for jigsaw using something like:
35      ant -Djdk9.home="$HOME/jdk/jigsaw" -Djdk9.src.dir="$HOME/jdk/src/jigsaw" clean test dist
36      "docs" target is still broken.
37  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
38    </description>    </description>
39    
40    <target name="usage" description="Advises user to run with -projecthelp">    <!-- Display main targets by running 'ant -projecthelp' -->
41      <echo>Run "ant -projecthelp" for full usage information.</echo>    <target name="usage">
42        <java classname="org.apache.tools.ant.Main">
43          <arg value="-projecthelp" />
44        </java>
45    </target>    </target>
46    
47      <!-- HOWTO printf debug: <echo message="prop=${prop}"/> -->
48    
49    <!-- User-specific settings -->    <!-- User-specific settings -->
50    <property file="user.properties"/>    <property file="user.properties"/>
51    
52    
53    <!-- Compilation options -->    <!-- Compilation options -->
54    <property name="build.sourcelevel"    value="1.5"/>    <property name="build.sourcelevel"    value="6"/>
   <property name="build.docsourcelevel" value="1.4"/>  
55    <property name="build.debug"          value="true"/>    <property name="build.debug"          value="true"/>
56    <property name="build.debuglevel"     value="source,lines,vars"/>    <property name="build.debuglevel"     value="source,lines,vars"/>
57    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
58      <property name="build.javadoc.access" value="protected"/>
59    
60    <!-- Build locations -->    <!-- Build locations -->
61    <property name="build.dir"            location="build"/>    <property name="build.dir"                   location="build"/>
62    <property name="build.classes.dir"    location="${build.dir}/classes"/>    <property name="build.classes.dir"           location="${build.dir}/classes"/>
63    <property name="build.emulation.dir"  location="${build.dir}/emulation"/>    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>
64    <property name="build.testcases.dir"  location="${build.dir}/testcases"/>    <property name="build.loops.dir"             location="${build.dir}/loops"/>
65    <property name="build.lib.dir"        location="${build.dir}/lib"/>    <property name="build.reports.dir"           location="${build.dir}/reports"/>
66    <property name="build.ant.dir"        location="${build.dir}/ant"/>  
67    <property name="build.javadocs.dir"   location="${build.dir}/javadocs"/>    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
68    <property name="build.stripped.dir"   location="${build.dir}/stripped"/>    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>
69    <property name="build.reports.dir"    location="${build.dir}/reports"/>    <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/>
70    <property name="build.doccheck.dir"   location="${build.dir}/doccheck"/>    <property name="build.4jdk7.docs.dir"        location="${build.4jdk7.dir}/docs"/>
71    <property name="build.filter.src.dir" location="${build.dir}/filtersrc"/>  
72      <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>
73      <property name="build.jsr166y.dir"           location="${build.dir}/jsr166y"/>
74      <property name="build.jsr166e.dir"           location="${build.dir}/jsr166e"/>
75      <property name="build.extra166y.dir"         location="${build.dir}/extra166y"/>
76    
77      <property name="build.jsr166x.classes.dir"   location="${build.jsr166x.dir}/classes"/>
78      <property name="build.jsr166y.classes.dir"   location="${build.jsr166y.dir}/classes"/>
79      <property name="build.jsr166e.classes.dir"   location="${build.jsr166e.dir}/classes"/>
80      <property name="build.extra166y.classes.dir" location="${build.extra166y.dir}/classes"/>
81    
82      <!-- JDK locations -->
83      <property name="jdks.home"  location="${user.home}/jdk"/>
84    
85      <macrodef name="defjdklocations">
86        <attribute name="v"/>
87        <sequential>
88        <property name="jdk@{v}.home"   location="${jdks.home}/jdk@{v}"/>
89        <property name="java@{v}"       location="${jdk@{v}.home}/bin/java"/>
90        <property name="javac@{v}"      location="${jdk@{v}.home}/bin/javac"/>
91        <property name="javadoc@{v}"    location="${jdk@{v}.home}/bin/javadoc"/>
92        <local name="have.java.base"/>
93        <available property="have.java.base"
94          file="${jdks.home}/src/jdk@{v}/jdk/src/java.base/share/classes" type="dir"/>
95        <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/java.base/share/classes"
96          if:set="have.java.base"/>
97        <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/share/classes"
98          unless:set="have.java.base"/>
99        <local name="modules"/>
100        <available property="modules" file="${jdk@{v}.home}/jmods" type="dir"/>
101        <local name="boot.jar.dir"/>
102        <property name="boot.jar.dir"   location="${jdk@{v}.home}/jre/lib" unless:set="modules"/>
103        <path id="bootclasspath@{v}" unless:set="modules">
104          <pathelement path="${boot.jar.dir}/resources.jar"/>
105          <pathelement path="${boot.jar.dir}/rt.jar"/>
106          <pathelement path="${boot.jar.dir}/jsse.jar"/>
107          <pathelement path="${boot.jar.dir}/jce.jar"/>
108          <pathelement path="${boot.jar.dir}/charsets.jar"/>
109        </path>
110        <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}" unless:set="modules"/>
111        </sequential>
112      </macrodef>
113    
114      <macrodef name="mirror-dir">
115        <attribute name="src"/>
116        <attribute name="dst"/>
117        <sequential>
118        <delete dir="@{dst}"/>
119        <mkdir dir="@{dst}"/>
120        <copy todir="@{dst}" preservelastmodified="true">
121          <fileset dir="@{src}"/>
122        </copy>
123        </sequential>
124      </macrodef>
125    
126      <defjdklocations v="6"/>
127      <defjdklocations v="7"/>
128      <defjdklocations v="8"/>
129      <defjdklocations v="9"/>
130    
131    <!-- Source locations -->    <!-- Source locations -->
132    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
   <property name="emulation.src.dir"    location="${basedir}/src/emulation"/>  
133    <property name="test.src.dir"         location="${basedir}/src/test"/>    <property name="test.src.dir"         location="${basedir}/src/test"/>
134    <property name="ant.src.dir"          location="${basedir}/etc/ant"/>    <property name="loops.src.dir"        location="${basedir}/src/loops"/>
135    <property name="stylesheet.dir"       location="${basedir}/etc/xsl"/>    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>
136      <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>
137      <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg"/>
138      <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>
139      <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>
140    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
141    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
142      <property name="topsrc.dir"           location="${basedir}/src"/>
143    <!-- Distribution locations -->    <property name="4jdk7src.dir"         location="${topsrc.dir}/jdk7"/>
144    <property name="dist.javadocs.dir"    location="${dist.dir}/docs"/>    <property name="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>
145      <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>
146      <property name="jsr166esrc.dir"       location="${topsrc.dir}/jsr166e"/>
147      <property name="extra166ysrc.dir"     location="${topsrc.dir}/extra166y"/>
148    
149      <!-- Javadoc locations -->
150      <property name="docs.dir"          location="${build.dir}/docs"/>
151      <property name="4jdk7docs.dir"     location="${build.4jdk7.dir}/docs"/>
152      <property name="jsr166xdocs.dir"   location="${build.jsr166x.dir}/docs"/>
153      <property name="jsr166ydocs.dir"   location="${build.jsr166y.dir}/docs"/>
154      <property name="jsr166edocs.dir"   location="${build.jsr166e.dir}/docs"/>
155      <property name="extra166ydocs.dir" location="${build.extra166y.dir}/docs"/>
156    
157      <property name="dist.docs.dir"          location="${dist.dir}/docs"/>
158      <property name="dist.4jdk7docs.dir"     location="${dist.dir}/jsr166-4jdk7docs"/>
159      <property name="dist.jsr166xdocs.dir"   location="${dist.dir}/jsr166xdocs"/>
160      <property name="dist.jsr166ydocs.dir"   location="${dist.dir}/jsr166ydocs"/>
161      <property name="dist.jsr166edocs.dir"   location="${dist.dir}/jsr166edocs"/>
162      <property name="dist.extra166ydocs.dir" location="${dist.dir}/extra166ydocs"/>
163    
164    <!-- Jar locations -->    <!-- Jar locations -->
165    <property name="product.jar"          location="${build.lib.dir}/jsr166.jar"/>    <property name="product.jar"      location="${build.dir}/jsr166.jar"/>
166    <property name="junit.jar"            location="${lib.dir}/junit.jar"/>    <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
167    <property name="rt.jar"               location="${java.home}/lib/rt.jar"/>    <property name="jsr166x.jar"      location="${build.jsr166x.dir}/jsr166x.jar"/>
168      <property name="jsr166y.jar"      location="${build.jsr166y.dir}/jsr166y.jar"/>
169      <property name="jsr166e.jar"      location="${build.jsr166e.dir}/jsr166e.jar"/>
170      <property name="extra166y.jar"    location="${build.extra166y.dir}/extra166y.jar"/>
171      <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
172    
173      <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
174      <property name="java5.docroot.url"      value="http://docs.oracle.com/javase/1.5.0/docs"/>
175      <property name="java6.docroot.url"      value="http://docs.oracle.com/javase/6/docs"/>
176      <property name="java7.docroot.url"      value="http://docs.oracle.com/javase/7/docs"/>
177      <property name="java8.docroot.url"      value="http://docs.oracle.com/javase/8/docs"/>
178      <!-- The expected canonical location does not yet exist as of 2014-07 -->
179      <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->
180      <property name="java9.docroot.url"      value="http://download.java.net/jdk9/docs"/>
181      <!-- Default jdk doc location (latest stable release seems best) -->
182      <property name="java.docroot.url"       value="${java8.docroot.url}"/>
183    
184      <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
185      <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>
186      <property name="java6.api.url"      value="${java6.docroot.url}/api/"/>
187      <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>
188      <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
189      <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>
190      <property name="java.api.url"       value="${java.docroot.url}/api/"/>
191    
192      <!-- Define the "jtreg" task -->
193      <!-- See the docs in "jtreg -onlineHelp" -->
194      <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"
195               classpath="${lib.dir}/jtreg.jar" />
196    
197      <!-- Test classpath -->
198      <path id="test.classpath">
199        <pathelement location="${build.testcases.dir}"/>
200        <pathelement location="${junit.jar}"/>
201      </path>
202    
203      <!-- Tck options; see JSR166TestCase.java
204       To profile a single tck test class:
205       ant -Djsr166.profileTests=true -Djsr166.profileThreshold=10 -Djsr166.tckTestClass=CompletableFutureTest tck
206       To stress test a single tck test class:
207       ant -Djsr166.tckTestClass=CountedCompleterTest -Djsr166.runsPerTest=100 tck
208       To stress test a single tck test method:
209       ant -Djsr166.tckTestClass=RecursiveTaskTest -Djsr166.runsPerTest=1000 -Djsr166.methodFilter=testAbnormalInvokeAll3 tck
210      -->
211      <property name="jsr166.tckTestClass"     value="JSR166TestCase"/>
212      <macrodef name="run-tck-tests">
213        <attribute name="tck.src.dir" default="${tck.src.dir}"/>
214        <attribute name="target"/>
215        <attribute name="compile-target" default="@{target}"/>
216        <attribute name="workdir"/>
217        <attribute name="classes"/>
218        <attribute name="jvmflags" default="-ea -esa -Djsr166.testImplementationDetails=true"/>
219        <element name="javac-elements" optional="true"/>
220    
221        <sequential>
222    
223        <local name="modules"/>
224        <condition property="modules">
225          <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>
226        </condition>
227    
228        <mkdir dir="@{workdir}/tck-classes"/>
229    
230        <javac srcdir="@{tck.src.dir}"
231               destdir="@{workdir}/tck-classes"
232               debug="${build.debug}"
233               debuglevel="${build.debuglevel}"
234               deprecation="${build.deprecation}"
235               source="@{compile-target}"
236               target="@{compile-target}"
237               classpath="${junit.jar}"
238               includeAntRuntime="false"
239               includeJavaRuntime="false"
240               executable="${javac@{compile-target}}"
241               fork="true">
242    
243          <include name="*.java"/>
244          <compilerarg value="-XDignore.symbol.file=true"/>
245          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
246          <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
247          <compilerarg value="-Xoverride:${build.classes.dir}" if:set="modules"/>
248          <compilerarg line="${build.args}"/>
249          <javac-elements/>
250    
251    <!-- Files excluded from emulation and dist-docs -->      </javac>
   <patternset id="emulation.excludes">  
     <exclude name="java/util/Random.*"/>  
     <exclude name="sun/misc/Unsafe.*"/>  
   </patternset>  
252    
253        <java classname="${jsr166.tckTestClass}"
254              failonerror="true"
255              jvm="${java@{target}}"
256              fork="true">
257            <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
258            <jvmarg value="-Xoverride:${build.classes.dir}" if:set="modules"/>
259            <jvmarg line="@{jvmflags}"/>
260    
261            <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
262            <syspropertyset id="system-properties-used-by-tck">
263              <propertyref prefix="java.util.concurrent.ForkJoinPool"/>
264              <propertyref prefix="jsr166."/>
265            </syspropertyset>
266    
267            <classpath>
268              <pathelement location="${junit.jar}"/>
269              <pathelement location="@{workdir}/tck-classes"/>
270            </classpath>
271        </java>
272    
273        </sequential>
274      </macrodef>
275    
276      <!-- Define jtreg test sets for different jdk versions -->
277      <fileset dir="${jtreg9.src.dir}">
278        <patternset id="jdk9.jtreg.tests">
279          <include name="**/*.java"/>
280        </patternset>
281      </fileset>
282    
283      <fileset dir="${jtreg8.src.dir}">
284        <patternset id="jdk8.jtreg.tests">
285          <include name="**/*.java"/>
286          <exclude name="**/SpliteratorCharacteristics.java"/>
287          <!-- https://bugs.openjdk.java.net/browse/JDK-6842353 -->
288          <exclude name="**/GCDuringIteration.java"/>
289        </patternset>
290      </fileset>
291    
292      <fileset dir="${jtreg7.src.dir}">
293        <patternset id="jdk7.jtreg.tests">
294          <include name="**/*.java"/>
295        </patternset>
296      </fileset>
297    
298      <macrodef name="run-jtreg-tests">
299        <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
300        <attribute name="source" default="7"/>
301        <attribute name="target"/>
302        <attribute name="workdir"/>
303        <attribute name="classes"/>
304        <attribute name="jtregflags" default=""/>
305    
306        <sequential>
307    
308        <local name="modules"/>
309        <condition property="modules">
310          <available file="${jdk@{target}.home}/jmods" type="dir"/>
311        </condition>
312    
313        <delete dir="@{workdir}/JTwork"   quiet="true"/>
314        <delete dir="@{workdir}/JTreport" quiet="true"/>
315        <mkdir dir="@{workdir}/JTwork/scratch"/>
316        <mkdir dir="@{workdir}/JTreport"/>
317        <jtreg dir="${jtreg@{target}.src.dir}"
318               jdk="${jdk@{target}.home}"
319               workDir="@{workdir}/JTwork"
320               reportDir="@{workdir}/JTreport">
321          <patternset refid="jdk@{target}.jtreg.tests"/>
322          <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
323          <arg value="-Xoverride:${build.classes.dir}" if:set="modules"/>
324          <arg value="-agentvm"/>
325          <arg value="-v:nopass,fail"/>
326          <arg value="-vmoptions:-esa -ea"/>
327          <arg value="-automatic"/>
328          <arg value="-k:!ignore"/>
329          <arg line="@{jtregflags}"/>
330        </jtreg>
331        </sequential>
332      </macrodef>
333    
334      <!-- ALoops classpath -->
335      <path id="loops.classpath">
336        <pathelement location="${build.loops.dir}"/>
337      </path>
338    
339      <!-- Support @jls tag, used in jdk8+ javadoc -->
340      <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
341      <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
342    
343    <!-- Main targets -->    <!-- Main targets -->
344    
345    <target name="compile"    <property name="build.main.java.version" value="9"/>
346            depends="init, configure-compiler, prepare-src"    <property name="build.main.javac" value="${javac9}"/>
           description="Compiles main sources to build folder">  
347    
348      <property name="prepare.src.dir" value="${src.dir}"/>    <target name="dists"
349              depends="dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
350              description="Builds all public jars and docs"/>
351    
352      <mkdir dir="${build.classes.dir}"/>    <target name="compile"
353              depends="configure-compiler"
354              description="Compiles src/main sources to build dir">
355    
356  <!--      <local name="modules"/>
357      <echo>javac ${gjc.args}</echo>      <condition property="modules">
358      <echo>bootclasspath=${compile.bootclasspath}</echo>        <and>
359  -->          <available file="${jdk9.home}/jmods" type="dir"/>
360            <equals arg1="9" arg2="${build.main.java.version}"/>
361          </and>
362        </condition>
363    
364      <javac srcdir="${prepare.src.dir}"      <local name="destdir"/>
365            destdir="${build.classes.dir}"      <property name="destdir" value="${build.classes.dir}/java.base" if:set="modules"/>
366              debug="${build.debug}"      <property name="destdir" value="${build.classes.dir}" unless:set="modules"/>
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
367    
368        <compilerarg    line="${gjc.args}"/>      <mkdir dir="${destdir}"/>
       <bootclasspath refid="compile.bootclasspath"/>  
369    
370      </javac>      <javac srcdir="${src.dir}"
371               destdir="${destdir}"
372               debug="${build.debug}"
373               debuglevel="${build.debuglevel}"
374               deprecation="${build.deprecation}"
375               classpath=""
376               includeAntRuntime="false"
377               includeJavaRuntime="false"
378               executable="${build.main.javac}"
379               fork="true">
380    
381          <include name="**/*.java"/>
382          <compilerarg value="-Xmodule:java.base" if:set="modules"/>
383          <compilerarg value="-Xprefer:source"/>
384          <compilerarg value="-XDignore.symbol.file=true"/>
385          <compilerarg value="-Xlint:all"/>
386          <compilerarg value="-Werror"/>
387          <compilerarg value="-Xdoclint:all/protected"/>
388          <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
389          <compilerarg line="${build.args}"/>
390    
391        </javac>
392    </target>    </target>
393    
394    
395    <target name="jar"    <target name="jar"
396            depends="configure-emulation, init-jar, native-jar, emulation-jar"            depends="compile"
397            description="Builds library jar from compiled sources"/>            description="Builds library jar from compiled sources">
398    
399        <jar destfile="${product.jar}">
400          <fileset dir="${build.classes.dir}"/>
401          <manifest>
402            <attribute name="Built-By" value="${user.name}"/>
403            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
404          </manifest>
405        </jar>
406      </target>
407    
   <target name="test"  
           depends="init, configure-tests, report-tests"  
           description="Runs all tests (requires JUnit 3.8.1 in ${ant.home}/lib)" />  
408    
409      <target name="docs"
410              description="Builds javadocs for src/main to dist dir">
411    
412    <target name="checkstyle"      <delete dir="${docs.dir}"/>
413            depends="filter-src"      <mkdir dir="${docs.dir}"/>
           description="Reports on style errors in Java source (verbose, mostly chaff)">  
414    
415      <taskdef resource="checkstyletask.properties"      <!-- the packagenames="none" hack below prevents scanning the -->
416              classpath="${lib.dir}/checkstyle-all-2.4.jar"/>      <!-- sourcepath for packages -->
417    
418      <checkstyle>      <javadoc destdir="${docs.dir}"
419        <formatter type="plain"/>  <!-- also available: type="xml" -->               packagenames="none"
420        <fileset dir="${build.filter.src.dir}" includes="**/*.java"/>               link="${java9.api.url}"
421      </checkstyle>               overview="${src.dir}/intro.html"
422                 access="${build.javadoc.access}"
423                 sourcepath="${src.dir}:${jdk9src.dir}"
424                 classpath=""
425                 executable="${javadoc9}">
426          <fileset dir="${src.dir}" defaultexcludes="yes">
427            <include name="**/*.java"/>
428          </fileset>
429          <arg line="-Xdocrootparent ${java9.docroot.url}"/>
430          <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
431          <arg value="-XDignore.symbol.file=true"/>
432    <!--  TODO     <arg value="-Xmodule:java.base"/> -->
433          <arg value="-tag"/>
434          <arg value="${javadoc.jls.option}"/>
435          <arg value="-tag"/>
436          <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>
437          <arg value="-tag"/>
438          <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
439          <arg value="-tag"/>
440          <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
441        </javadoc>
442      </target>
443    
444    
445      <target name="dist"
446              depends="dist-clean, dist-jar, dist-docs"
447              description="Puts all distributable products in single hierarchy"/>
448    
449    
450      <target name="release"
451              depends="dist"
452              description="Puts entire CVS tree, plus distribution productions, in a jar">
453    
454        <property name="release.jar" value="dist/jsr166-${version}-dist.jar"/>
455    
456        <jar basedir="${basedir}" destfile="${release.jar}">
457          <!-- <exclude name="build/**"/> -->
458          <exclude name="${release.jar}"/>
459          <exclude name="user.properties"/>
460          <exclude name="etc/notes/**"/>
461          <exclude name="src/emulation/**"/>
462          <exclude name="**/SyntaxTest.java"/>
463          <exclude name="**/SuperfluousAbstract.java"/>
464          <manifest>
465            <attribute name="Built-By" value="${user.name}"/>
466            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
467          </manifest>
468        </jar>
469    </target>    </target>