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

Diff of /jsr166/build.xml

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

revision 1.72 by dl, Fri May 20 16:29:57 2005 UTC revision 1.210 by jsr166, Mon Apr 18 15:30:49 2016 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 6  Line 7 
7    
8    Usage: ant [target]    Usage: ant [target]
9    
10      See http://gee.cs.oswego.edu/dl/concurrency-interest/index.html for
11      more details.
12    
13    User-specific settings are read from user.properties.    User-specific settings are read from user.properties.
14    See user.properties.sample for an explanation of some useful settings.    See user.properties.sample for an explanation of some useful settings.
15    
16      The repository contains all dependencies except for ant and the JDK
17      itself.  Because the JDK version matters and because different
18      targets require different JDKs, we assume that users have created a
19      hierarchy containing:
20      $HOME/jdk/jdk6
21      $HOME/jdk/jdk7
22      $HOME/jdk/jdk8
23      $HOME/jdk/jdk9
24      where each of the above is a JDK or a symlink to same, and
25      $HOME/jdk/src/jdk6
26      $HOME/jdk/src/jdk7
27      $HOME/jdk/src/jdk8
28      $HOME/jdk/src/jdk9
29      where each of the above is a complete JDK source tree
30      (e.g. mercurial forest) or a symlink to same.
31    
32      Alternatively, define ant variables thus:
33      ant -Djdk$N.home=... -Djdk$N.src.home=...
34      for $N in 6 7 8 9 ...
35    
36      As of 2016-03, the sources in src/main are for jdk9+ only.  The "docs"
37      target is currently broken.
38  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
39    </description>    </description>
40    
41    <target name="usage" description="Advises user to run with -projecthelp">    <!-- Run 'ant -projecthelp' (default target) -->
42      <echo>Run "ant -projecthelp" for full usage information.</echo>    <target name="usage">
43        <java classname="org.apache.tools.ant.Main">
44          <arg value="-projecthelp" />
45        </java>
46    </target>    </target>
47    
48      <!-- HOWTO printf debug: <echo message="prop=${prop}"/> -->
49    
50    <!-- User-specific settings -->    <!-- User-specific settings -->
51    <property file="user.properties"/>    <property file="user.properties"/>
52    
53    
54    <!-- Compilation options -->    <!-- Compilation options -->
55    <property name="build.sourcelevel"    value="1.5"/>    <property name="build.sourcelevel"    value="6"/>
56    <property name="build.debug"          value="true"/>    <property name="build.debug"          value="true"/>
57    <property name="build.debuglevel"     value="source,lines,vars"/>    <property name="build.debuglevel"     value="source,lines,vars"/>
58    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
59      <property name="build.javadoc.access" value="protected"/>
60    
61    <!-- Build locations -->    <!-- Build locations -->
62    <property name="build.dir"            location="build"/>    <property name="build.dir"                   location="build"/>
63    <property name="build.classes.dir"    location="${build.dir}/classes"/>    <property name="build.classes.dir"           location="${build.dir}/classes"/>
64    <property name="build.testcases.dir"  location="${build.dir}/testcases"/>    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>
65    <property name="build.j1.dir"         location="${build.dir}/j1"/>    <property name="build.loops.dir"             location="${build.dir}/loops"/>
66    <property name="build.loops.dir"      location="${build.dir}/loops"/>    <property name="build.reports.dir"           location="${build.dir}/reports"/>
67    <property name="build.lib.dir"        location="${build.dir}/lib"/>  
68    <property name="build.ant.dir"        location="${build.dir}/ant"/>    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
69    <property name="build.javadocs.dir"   location="${build.dir}/javadocs"/>    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>
70    <property name="build.reports.dir"    location="${build.dir}/reports"/>    <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/>
71    <property name="build.checkstyle.dir" location="${build.dir}/checkstyle"/>    <property name="build.4jdk7.docs.dir"        location="${build.4jdk7.dir}/docs"/>
72    <property name="build.doccheck.dir"   location="${build.dir}/doccheck"/>  
73    <property name="build.filter.src.dir" location="${build.dir}/filtersrc"/>    <property name="build.4jdk8.dir"             location="${build.dir}/jsr166-4jdk8"/>
74    <property name="build.dc-filter.dir"  location="${build.dir}/filterdocchk"/>    <property name="build.4jdk8.classes.dir"     location="${build.4jdk8.dir}/classes"/>
75    <property name="build.jsr166x.dir"    location="${build.dir}/jsr166x"/>    <property name="build.4jdk8.tck.classes.dir" location="${build.4jdk8.dir}/tck-classes"/>
76    <property name="build.jsr166xlib.dir"        location="${build.dir}/jsr166xlib"/>    <property name="build.4jdk8.docs.dir"        location="${build.4jdk8.dir}/docs"/>
77    <property name="build.jsr166xjavadocs.dir"   location="${build.dir}/jsr166xjavadocs"/>  
78      <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>
79      <property name="build.jsr166y.dir"           location="${build.dir}/jsr166y"/>
80      <property name="build.jsr166e.dir"           location="${build.dir}/jsr166e"/>
81      <property name="build.extra166y.dir"         location="${build.dir}/extra166y"/>
82    
83      <property name="build.jsr166x.classes.dir"   location="${build.jsr166x.dir}/classes"/>
84      <property name="build.jsr166y.classes.dir"   location="${build.jsr166y.dir}/classes"/>
85      <property name="build.jsr166e.classes.dir"   location="${build.jsr166e.dir}/classes"/>
86      <property name="build.extra166y.classes.dir" location="${build.extra166y.dir}/classes"/>
87    
88      <!-- JDK locations -->
89      <property name="jdks.home"  location="${user.home}/jdk"/>
90    
91      <macrodef name="defjdklocations">
92        <attribute name="v"/>
93        <sequential>
94        <property name="jdk@{v}.home"     location="${jdks.home}/jdk@{v}"/>
95        <property name="java@{v}"         location="${jdk@{v}.home}/bin/java"/>
96        <property name="javac@{v}"        location="${jdk@{v}.home}/bin/javac"/>
97        <property name="javadoc@{v}"      location="${jdk@{v}.home}/bin/javadoc"/>
98        <property name="jdk@{v}.src.home" location="${jdks.home}/src/jdk@{v}"/>
99        <local name="have.java.base"/>
100        <available property="have.java.base"
101          file="${jdk@{v}.src.home}/jdk/src/java.base/share/classes" type="dir"/>
102        <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/java.base/share/classes"
103          if:set="have.java.base"/>
104        <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/share/classes"
105          unless:set="have.java.base"/>
106        <local name="modules"/>
107        <available property="modules" file="${jdk@{v}.home}/jmods" type="dir"/>
108        <local name="boot.jar.dir"/>
109        <property name="boot.jar.dir"   location="${jdk@{v}.home}/jre/lib" unless:set="modules"/>
110        <path id="bootclasspath@{v}" unless:set="modules">
111          <pathelement path="${boot.jar.dir}/resources.jar"/>
112          <pathelement path="${boot.jar.dir}/rt.jar"/>
113          <pathelement path="${boot.jar.dir}/jsse.jar"/>
114          <pathelement path="${boot.jar.dir}/jce.jar"/>
115          <pathelement path="${boot.jar.dir}/charsets.jar"/>
116        </path>
117        <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}" unless:set="modules"/>
118        </sequential>
119      </macrodef>
120    
121      <macrodef name="mirror-dir">
122        <attribute name="src"/>
123        <attribute name="dst"/>
124        <sequential>
125        <delete dir="@{dst}"/>
126        <mkdir dir="@{dst}"/>
127        <copy todir="@{dst}" preservelastmodified="true">
128          <fileset dir="@{src}"/>
129        </copy>
130        </sequential>
131      </macrodef>
132    
133      <defjdklocations v="6"/>
134      <defjdklocations v="7"/>
135      <defjdklocations v="8"/>
136      <defjdklocations v="9"/>
137    
138    <!-- Source locations -->    <!-- Source locations -->
139    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
140    <property name="test.src.dir"         location="${basedir}/src/test"/>    <property name="test.src.dir"         location="${basedir}/src/test"/>
   <property name="j1.src.dir"           location="${basedir}/src/javaone"/>  
141    <property name="loops.src.dir"        location="${basedir}/src/loops"/>    <property name="loops.src.dir"        location="${basedir}/src/loops"/>
142    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>
143    <property name="jtreg.src.dir"        location="${test.src.dir}/jtreg"/>    <property name="jtreg7.src.dir"       location="${test.src.dir}/jtreg-jdk7"/>
144    <property name="ant.src.dir"          location="${basedir}/etc/ant"/>    <property name="jtreg8.src.dir"       location="${test.src.dir}/jtreg-jdk8"/>
145    <property name="stylesheet.dir"       location="${basedir}/etc/xsl"/>    <property name="jtreg9.src.dir"       location="${test.src.dir}/jtreg"/>
146      <property name="jtreg.src.dir"        location="${jtreg9.src.dir}"/>
147    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
148    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
149    <property name="topsrc.dir"           location="${basedir}/src"/>    <property name="topsrc.dir"           location="${basedir}/src"/>
150    <property name="jsr166xsrc.dir"       location="${basedir}/src/jsr166x"/>    <property name="4jdk7src.dir"         location="${topsrc.dir}/jdk7"/>
151      <property name="4jdk8src.dir"         location="${topsrc.dir}/jdk8"/>
152    <!-- Distribution locations -->    <property name="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>
153    <property name="dist.javadocs.dir"    location="${dist.dir}/docs"/>    <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>
154    <property name="dist.jsr166xjavadocs.dir"    location="${dist.dir}/jsr166xdocs"/>    <property name="jsr166esrc.dir"       location="${topsrc.dir}/jsr166e"/>
155      <property name="extra166ysrc.dir"     location="${topsrc.dir}/extra166y"/>
156    
157      <!-- Javadoc locations -->
158      <property name="docs.dir"          location="${build.dir}/docs"/>
159      <property name="4jdk7docs.dir"     location="${build.4jdk7.dir}/docs"/>
160      <property name="4jdk8docs.dir"     location="${build.4jdk8.dir}/docs"/>
161      <property name="jsr166xdocs.dir"   location="${build.jsr166x.dir}/docs"/>
162      <property name="jsr166ydocs.dir"   location="${build.jsr166y.dir}/docs"/>
163      <property name="jsr166edocs.dir"   location="${build.jsr166e.dir}/docs"/>
164      <property name="extra166ydocs.dir" location="${build.extra166y.dir}/docs"/>
165    
166      <property name="dist.docs.dir"          location="${dist.dir}/docs"/>
167      <property name="dist.4jdk7docs.dir"     location="${dist.dir}/jsr166-4jdk7docs"/>
168      <property name="dist.4jdk8docs.dir"     location="${dist.dir}/jsr166-4jdk8docs"/>
169      <property name="dist.jsr166xdocs.dir"   location="${dist.dir}/jsr166xdocs"/>
170      <property name="dist.jsr166ydocs.dir"   location="${dist.dir}/jsr166ydocs"/>
171      <property name="dist.jsr166edocs.dir"   location="${dist.dir}/jsr166edocs"/>
172      <property name="dist.extra166ydocs.dir" location="${dist.dir}/extra166ydocs"/>
173    
174    <!-- Jar locations -->    <!-- Jar locations -->
175    <property name="product.jar"          location="${build.lib.dir}/jsr166.jar"/>    <property name="product.jar"      location="${build.dir}/jsr166.jar"/>
176    <property name="jsr166xproduct.jar"   location="${build.jsr166xlib.dir}/jsr166x.jar"/>    <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
177    <property name="junit.jar"            location="${lib.dir}/junit.jar"/>    <property name="4jdk8product.jar" location="${build.4jdk8.dir}/jsr166-4jdk8.jar"/>
178    <property name="concurrent.jar"       location="${lib.dir}/concurrent.jar"/>    <property name="jsr166x.jar"      location="${build.jsr166x.dir}/jsr166x.jar"/>
179      <property name="jsr166y.jar"      location="${build.jsr166y.dir}/jsr166y.jar"/>
180    <!-- Bootclasspath argument -->    <property name="jsr166e.jar"      location="${build.jsr166e.dir}/jsr166e.jar"/>
181    <property name="bootclasspath.args"   value="-Xbootclasspath/p:${product.jar}"/>    <property name="extra166y.jar"    location="${build.extra166y.dir}/extra166y.jar"/>
182      <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
183    <!-- Test classpath -->  
184    <path id="test.classpath">    <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
185      <pathelement location="${build.testcases.dir}"/>    <property name="java5.docroot.url"      value="http://docs.oracle.com/javase/1.5.0/docs"/>
186      <pathelement location="${junit.jar}"/>    <property name="java6.docroot.url"      value="http://docs.oracle.com/javase/6/docs"/>
187    </path>    <property name="java7.docroot.url"      value="http://docs.oracle.com/javase/7/docs"/>
188      <property name="java8.docroot.url"      value="http://docs.oracle.com/javase/8/docs"/>
189    <!-- ALoops classpath -->    <!-- The expected canonical location does not yet exist as of 2016-04 -->
190    <path id="loops.classpath">    <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->
191      <pathelement location="${build.loops.dir}"/>    <property name="java9.docroot.url"      value="http://http://download.java.net/java/jdk9/docs"/>
192    </path>    <!-- Default jdk doc location (latest stable release seems best) -->
193      <property name="java.docroot.url"       value="${java8.docroot.url}"/>
194    <!-- J1 classpath -->  
195    <path id="j1.classpath">    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
196      <pathelement location="${build.classes.dir}"/>    <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>
197      <pathelement location="${build.j1.dir}"/>    <property name="java6.api.url"      value="${java6.docroot.url}/api/"/>
198      <pathelement location="${junit.jar}"/>    <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>
199      <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
200      <!-- Include dl.u.c for BoundedBuffer comparison -->    <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>
201      <pathelement location="${concurrent.jar}"/>    <property name="java.api.url"       value="${java.docroot.url}/api/"/>
202    </path>  
203      <!-- Define the "jtreg" task -->
204      <!-- See the docs in "jtreg -onlineHelp" -->
205    <!-- Main targets -->    <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"
206               classpath="${lib.dir}/jtreg.jar" />
207    
208      <!-- Tck options; see JSR166TestCase.java
209       To profile a single tck test class:
210       ant -Djsr166.profileTests=true -Djsr166.profileThreshold=10 -Djsr166.tckTestClass=CompletableFutureTest tck
211       To stress test a single tck test class:
212       ant -Djsr166.tckTestClass=CountedCompleterTest -Djsr166.runsPerTest=100 tck
213       To stress test a single tck test method:
214       ant -Djsr166.tckTestClass=RecursiveTaskTest -Djsr166.runsPerTest=1000 -Djsr166.methodFilter=testAbnormalInvokeAll3 tck
215      -->
216      <property name="jsr166.tckTestClass"     value="JSR166TestCase"/>
217      <macrodef name="run-tck-tests">
218        <attribute name="tck.src.dir" default="${tck.src.dir}"/>
219        <attribute name="target"/>
220        <attribute name="compile-target" default="@{target}"/>
221        <attribute name="workdir"/>
222        <attribute name="classes"/>
223        <!--
224            <attribute name="jvmflags" default="-XX:+UseParallelGC -XX:-UseBiasedLocking -ea -esa -Djsr166.testImplementationDetails=true"/>
225        -->
226            <attribute name="jvmflags" default="-ea -esa -Djsr166.testImplementationDetails=true"/>
227        <element name="javac-elements" optional="true"/>
228    
229    <target name="compile"      <sequential>
           depends="init, configure-compiler"  
           description="Compiles main sources to build folder">  
230    
231      <mkdir dir="${build.classes.dir}"/>      <local name="modules"/>
232        <condition property="modules">
233          <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>
234        </condition>
235    
236      <javac srcdir="${src.dir}"      <mkdir dir="@{workdir}/tck-classes"/>
           destdir="${build.classes.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
237    
238        <include name="**/*.java"/>      <javac srcdir="@{tck.src.dir}"
239  <!--             destdir="@{workdir}/tck-classes"
240        <exclude name="java/lang/**"/>             debug="${build.debug}"
241  -->             debuglevel="${build.debuglevel}"
242               deprecation="${build.deprecation}"
243               source="@{compile-target}"
244               target="@{compile-target}"
245               classpath="${junit.jar}"
246               includeAntRuntime="false"
247               includeJavaRuntime="false"
248               executable="${javac@{compile-target}}"
249               fork="true">
250    
251          <include name="*.java"/>
252          <compilerarg value="-XDignore.symbol.file=true"/>
253          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/>
254          <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
255          <compilerarg value="-Xpatch:${build.classes.dir}" if:set="modules"/>
256        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
257          <javac-elements/>
258    
259      </javac>      </javac>
260    
261    </target>      <java classname="${jsr166.tckTestClass}"
262              failonerror="true"
263              jvm="${java@{target}}"
264              fork="true">
265    <target name="jar"          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
266            depends="compile"          <jvmarg value="-Xpatch:${build.classes.dir}" if:set="modules"/>
267            description="Builds library jar from compiled sources">          <jvmarg line="@{jvmflags}"/>
268    
269            <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
270            <syspropertyset id="system-properties-used-by-tck">
271              <propertyref prefix="java.util.concurrent.ForkJoinPool"/>
272              <propertyref prefix="jsr166."/>
273              <propertyref name="test.timeout.factor"/>
274            </syspropertyset>
275    
276            <classpath>
277              <pathelement location="${junit.jar}"/>
278              <pathelement location="@{workdir}/tck-classes"/>
279            </classpath>
280        </java>
281    
282      <mkdir dir="${build.lib.dir}"/>      </sequential>
283      </macrodef>
284    
285      <jar destfile="${product.jar}">    <!-- Define jtreg test sets for different jdk versions -->
286        <fileset dir="${build.classes.dir}"/>    <fileset dir="${jtreg9.src.dir}">
287      </jar>      <patternset id="jdk9.jtreg.tests">
288          <include name="**/*.java"/>
289        </patternset>
290      </fileset>
291    
292    </target>    <fileset dir="${jtreg8.src.dir}">
293        <patternset id="jdk8.jtreg.tests">
294          <include name="**/*.java"/>
295          <exclude name="**/SpliteratorCharacteristics.java"/>
296          <!-- https://bugs.openjdk.java.net/browse/JDK-6842353 -->
297          <exclude name="**/GCDuringIteration.java"/>
298        </patternset>
299      </fileset>
300    
301      <fileset dir="${jtreg7.src.dir}">
302        <patternset id="jdk7.jtreg.tests">
303          <include name="**/*.java"/>
304        </patternset>
305      </fileset>
306    
307      <!-- ant -Djtreg.flags=-timeoutFactor:4 -->
308      <property name="jtreg.flags" value=""/>
309    
310    <target name="test"    <macrodef name="run-jtreg-tests">
311            depends="init, configure-tests, report-tests"      <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg -->
312            description="Runs all tests (requires JUnit 3.8.1 in ${ant.home}/lib)" />      <attribute name="source" default="7"/>
313        <attribute name="target"/>
314        <attribute name="workdir"/>
315        <attribute name="classes"/>
316        <attribute name="jtregflags" default=""/>
317    
318        <sequential>
319    
320        <!-- ant -Djtreg.verbose=time,fail,error jtreg -->
321        <property name="jtreg.verbose" value="nopass,fail,error"/>
322    
323        <local name="modules"/>
324        <condition property="modules">
325          <available file="${jdk@{target}.home}/jmods" type="dir"/>
326        </condition>
327    
328        <delete dir="@{workdir}/JTwork"   quiet="true"/>
329        <delete dir="@{workdir}/JTreport" quiet="true"/>
330        <jtreg dir="${jtreg@{target}.src.dir}"
331               jdk="${jdk@{target}.home}"
332               workDir="@{workdir}/JTwork"
333               reportDir="@{workdir}/JTreport">
334          <patternset refid="jdk@{target}.jtreg.tests"/>
335          <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
336          <arg value="-Xpatch:${build.classes.dir}" if:set="modules"/>
337          <arg value="-agentvm"/>
338          <arg value="-verbose:${jtreg.verbose}"/>
339          <arg value="-vmoptions:-esa -ea"/>
340          <arg value="-automatic"/>
341          <arg value="-k:!ignore"/>
342          <arg line="@{jtregflags}"/>
343          <arg line="${jtreg.flags}"/>
344        </jtreg>
345        </sequential>
346      </macrodef>
347    
348      <!-- ALoops classpath -->
349      <path id="loops.classpath">
350        <pathelement location="${build.loops.dir}"/>
351      </path>
352    
353    <target name="docs"    <!-- Support @jls tag, used in jdk8+ javadoc -->
354            description="Builds javadocs with custom tags to build folder">    <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
355      <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
356    
357      <delete dir="${build.javadocs.dir}"/>    <!-- Main targets -->
     <mkdir dir="${build.javadocs.dir}"/>  
358    
359      <javadoc destdir="${build.javadocs.dir}"    <property name="build.main.java.version" value="9"/>
360                  link="http://java.sun.com/j2se/1.5.0/docs/api"    <property name="build.main.javac" value="${javac9}"/>
             overview="${src.dir}/intro.html"  
             sourcepath="${src.dir}:/home/dl/1.5.0/j2se/martin/j2se/src/share/classes"  
     >            
361    
362        <packageset dir="${src.dir}"/>    <target name="dists"
363              depends="dist, 4jdk8dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
364              description="Builds all public jars and docs"/>
365    
366      </javadoc>    <target name="compile"
367              depends="configure-compiler"
368              description="Compiles src/main sources to build dir">
369    
370    </target>      <local name="modules"/>
371        <condition property="modules">
372          <and>
373            <available file="${jdk9.home}/jmods" type="dir"/>
374            <equals arg1="9" arg2="${build.main.java.version}"/>
375          </and>
376        </condition>
377    
378        <local name="destdir"/>
379        <property name="destdir" value="${build.classes.dir}/java.base" if:set="modules"/>
380        <property name="destdir" value="${build.classes.dir}" unless:set="modules"/>
381    
382        <mkdir dir="${destdir}"/>
383    
384    <target name="doccheck"      <javac srcdir="${src.dir}"
385            depends="filter-doccheck"             destdir="${destdir}"
386            description="Reports on javadoc style errors">             debug="${build.debug}"
387               debuglevel="${build.debuglevel}"
388      <delete dir="${build.doccheck.dir}"/>             deprecation="${build.deprecation}"
389      <mkdir dir="${build.doccheck.dir}"/>             classpath=""
390               includeAntRuntime="false"
391      <javadoc doclet="com.sun.tools.doclets.doccheck.DocCheck"             includeJavaRuntime="false"
392           docletpath="${lib.dir}/doccheck.jar"             executable="${build.main.javac}"
393              destdir="${build.doccheck.dir}">             fork="true">
       <packageset dir="${build.dc-filter.dir}"/>  
     </javadoc>  
394    
395      <echo>DocCheck output is in ${build.doccheck.dir}</echo>        <include name="**/*.java"/>
396          <compilerarg value="-Xmodule:java.base" if:set="modules"/>
397          <compilerarg value="-Xprefer:source"/>
398          <compilerarg value="-XDignore.symbol.file=true"/>
399          <compilerarg value="-Xlint:all"/>
400          <compilerarg value="-Werror"/>
401          <compilerarg value="-Xdoclint:all/protected"/>
402          <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
403          <compilerarg line="${build.args}"/>
404    
405        </javac>
406    </target>    </target>
407    
408    
409      <target name="jar"
410              depends="compile"
411              description="Builds library jar for src/main from compiled sources">
412    
413    <target name="checkstyle"      <jar destfile="${product.jar}">
414            depends="filter-src"        <fileset dir="${build.classes.dir}"/>
415            description="Reports on style errors in Java source (verbose, mostly chaff)">        <manifest>
416            <attribute name="Built-By" value="${user.name}"/>
417            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
418          </manifest>
419        </jar>
420      </target>
421    
     <taskdef resource="checkstyletask.properties"  
             classpath="${lib.dir}/checkstyle-all-3.1.jar"/>  
422    
423      <mkdir dir="${build.checkstyle.dir}"/>    <target name="docs"
424              description="Builds javadocs for src/main to dist dir">
425    
426      <checkstyle config="etc/checkstyle/sun_checks.xml"      <delete dir="${docs.dir}"/>
427         failOnViolation="false">      <mkdir dir="${docs.dir}"/>
       <formatter type="xml" toFile="${build.checkstyle.dir}/checkstyle-report.xml"/>  
       <fileset dir="${build.filter.src.dir}" includes="**/*.java"/>  
     </checkstyle>  
428    
429      <style in="${build.checkstyle.dir}/checkstyle-report.xml"      <!-- the packagenames="none" hack below prevents scanning the -->
430            out="${build.checkstyle.dir}/checkstyle-report.html"      <!-- sourcepath for packages -->
         style="${stylesheet.dir}/checkstyle-frames.xsl"/>  
431    
432        <javadoc destdir="${docs.dir}"
433                 packagenames="none"
434                 link="${java9.api.url}"
435                 overview="${src.dir}/intro.html"
436                 access="${build.javadoc.access}"
437                 sourcepath="${src.dir}:${jdk9.src.dir}"
438                 classpath=""
439                 executable="${javadoc9}">
440          <fileset dir="${src.dir}" defaultexcludes="yes">
441            <include name="**/*.java"/>
442          </fileset>
443          <arg line="-Xdocrootparent ${java9.docroot.url}"/>
444          <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
445          <arg value="-XDignore.symbol.file=true"/>
446    <!--  TODO     <arg value="-Xmodule:java.base"/> -->
447          <arg value="-tag"/>
448          <arg value="${javadoc.jls.option}"/>
449          <arg value="-tag"/>
450          <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>
451          <arg value="-tag"/>
452          <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
453          <arg value="-tag"/>
454          <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
455    <!-- tags added in jdk9 -->
456          <arg value="-tag"/>
457          <arg value="revised:X"/>
458          <arg value="-tag"/>
459          <arg value="spec:X"/>
460        </javadoc>
461    </target>    </target>
462    
463    
   
464    <target name="dist"    <target name="dist"
465            depends="init, dist-clean, dist-jar, dist-docs"            depends="dist-clean, dist-jar, dist-docs"
466            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
467    
468    
   
469    <target name="release"    <target name="release"
470            depends="dist"            depends="dist"
471            description="Puts entire CVS tree, plus distribution productions, in a jar">            description="Puts entire CVS tree, plus distribution productions, in a jar">
# Line 224  Line 480 
480        <exclude name="src/emulation/**"/>        <exclude name="src/emulation/**"/>
481        <exclude name="**/SyntaxTest.java"/>        <exclude name="**/SyntaxTest.java"/>
482        <exclude name="**/SuperfluousAbstract.java"/>        <exclude name="**/SuperfluousAbstract.java"/>
483          <manifest>
484            <attribute name="Built-By" value="${user.name}"/>
485            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
486          </manifest>
487      </jar>      </jar>
   
488    </target>    </target>
489    
490    
   
491    <target name="clean"    <target name="clean"
492            description="Removes all build products">            description="Removes all build products">
493    
494      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
     <delete dir="${build.classes.dir}"/>  
     <delete dir="${build.lib.dir}"/>  
495    
496    </target>    </target>
497    
498    
   
499    <target name="dist-clean"    <target name="dist-clean"
500            description="Removes all build and distribution products">            description="Removes all build and distribution products">
501    
502        <delete dir="${build.dir}"/>
503      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
504    
505    </target>    </target>
506    
507    
508      <target name="dist-jar"
509              depends="clean, jar">
510        <copy file="${product.jar}" todir="${dist.dir}"/>
511      </target>
512    
513    <target name="dist-docs"    <target name="dist-docs"
514            description="Builds javadocs without custom tags to dist folder">            depends="clean, docs">
515        <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
     <delete dir="${dist.javadocs.dir}"/>  
     <mkdir dir="${dist.javadocs.dir}"/>  
   
     <javadoc destdir="${dist.javadocs.dir}"  
               link="http://java.sun.com/j2se/1.5.0/docs/api"  
             overview="${src.dir}/intro.html"  
   
             sourcepath="${src.dir}:/home/dl/1.5.0/j2se/martin/j2se/src/share/classes"  
      >  
       <packageset dir="${src.dir}" defaultexcludes="yes">  
       <include name="java/util/concurrent"/>  
       <include name="java/util/concurrent/atomic"/>  
       <include name="java/util/concurrent/locks"/>  
       </packageset>  
       <fileset dir="${topsrc.dir}" defaultexcludes="yes">  
       <include name="main/java/util/*.java"/>  
 <!--      <include name="jsr166x/*.java"/> -->  
       </fileset>  
     </javadoc>  
   
516    </target>    </target>
517    
518      <target name="tck"
519              depends="jar"
520              description="Runs tck tests for src/main directly">
521    
522        <run-tck-tests
523    <!-- Internal targets -->        target="${build.main.java.version}"
524          workdir="${build.dir}"
525          classes="${product.jar}"/>
   <target name="init">  
   
     <!-- Version is kept in a separate file -->  
     <loadfile property="version" srcFile="version.properties"/>  
     <echo>Building JSR-166 version ${version}</echo>  
     <echo>java.home is ${java.home}</echo>  
   
526    </target>    </target>
527    
528      <target name="tck-parallelism-1"
529              description="Runs tck with common pool parallelism 1">
530        <antcall target="tck">
531          <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/>
532        </antcall>
533      </target>
534    
535    <target name="dist-jar"    <target name="tck-parallelism-0"
536            depends="clean, jar">            description="Runs tck with common pool parallelism 0">
537        <antcall target="tck">
538          <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/>
539        </antcall>
540      </target>
541    
542      <copy file="${product.jar}" todir="${dist.dir}"/>    <target name="jtreg"
543              depends="jar"
544              description="Runs jtreg tests for src/main using the jtreg ant task">
545        <run-jtreg-tests
546           target="${build.main.java.version}"
547           workdir="${build.dir}"
548           classes="${product.jar}"/>
549      </target>
550    
551      <target name="test"
552              depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg"
553              description="Runs tck and jtreg tests for src/main">
554    </target>    </target>
555    
556    <!--   <target name="jtreg8" description="Runs jtreg tests with jdk8"> -->
557    
558    <target name="compile-ant-filter"  <!--     <antcall target="jtreg"> -->
559            depends="init">  <!--       <param name="build.main.java.version" value="8"/> -->
560    <!--       <param name="build.main.javac" value="${javac8}"/> -->
561    <!--     </antcall> -->
562    
563      <mkdir dir="${build.ant.dir}"/>  <!--   </target> -->
564    
565      <javac srcdir="${ant.src.dir}"  <!--   <target name="test89" -->
566            destdir="${build.ant.dir}"  <!--           description="Runs tck and jtreg tests for src/main for multiple java versions"> -->
            source="1.4"/>  
567    
568    </target>  <!--     <antcall target="clean"/> -->
569    <!--     <antcall target="test"> -->
570    <!--       <param name="build.main.java.version" value="8"/> -->
571    <!--       <param name="build.main.javac" value="${javac8}"/> -->
572    <!--     </antcall> -->
573    
574    <!--     <antcall target="clean"/> -->
575    <!--     <antcall target="test"> -->
576    <!--       <param name="build.main.java.version" value="9"/> -->
577    <!--       <param name="build.main.javac" value="${javac9}"/> -->
578    <!--     </antcall> -->
579    
580    <target name="filter-src"  <!--   </target> -->
           depends="compile-ant-filter">  
581    
     <mkdir dir="${build.filter.src.dir}"/>  
582    
     <copy todir="${build.filter.src.dir}">  
       <fileset dir="${src.dir}">  
         <include name="**/*.html"/>  
       </fileset>  
     </copy>  
583    
584      <copy todir="${build.filter.src.dir}">    <target name="configure-compiler">
585        <fileset dir="${src.dir}">      <fail message="ant version too old">
586          <exclude name="**/*.html"/>        <condition>
587          <!-- Files excluded from dist-docs -->          <not> <antversion atleast="1.9.1"/> </not>
588          <exclude name="java/util/Random.*"/>        </condition>
589          <exclude name="sun/misc/Unsafe.*"/>      </fail>
       </fileset>  
       <!--  
       <filterchain>  
       -->  
   
         <!--  
          # This filter gets rid of angle-bracketed type parameters  
          # so that javadoc can run on the result. The following  
          # heuristic seems to work:  
          #  
          # For all lines not starting with space(s)-asterisk-space(s),  
          #   replace <something> with a space, where there may be more  
          #   than one right angle bracket at the end, and "something"  
          #   must not contain parens or pipes. (This may need some  
          #   tweaking.)  
          -->  
   
         <!--  
         <filterreader classname="jsr166.ant.filters.ReplaceFilter"  
                       classpath="${build.ant.dir}">  
           <param name="notmatching" value="^\s+\*\s.*$"/>  
           <param name="pattern"     value="&lt;[^|>()]+?>+"/>  
           <param name="replacement" value=" "/>  
         </filterreader>  
         -->  
   
       <!--  
       </filterchain>  
       -->  
     </copy>  
590    
591    </target>      <property name="unchecked.option" value="-Xlint:unchecked"/>
592    
593        <condition property="warnunchecked.arg" value="${unchecked.option}">
594          <istrue value="${build.warnunchecked}"/>
595        </condition>
596    
597        <property name="warnunchecked.arg" value=""/>
598    
   <target name="filter-doccheck"  
           depends="filter-src">  
599    
600      <mkdir dir="${build.dc-filter.dir}"/>      <!-- Common options in javac invocations -->
601        <property name="build.args" value="${warnunchecked.arg}"/>
602    
603      <copy todir="${build.dc-filter.dir}">    </target>
       <fileset dir="${build.filter.src.dir}">  
         <include name="**/*.html"/>  
       </fileset>  
     </copy>  
604    
     <property name="generic.declarations"  
              value="/** Fake type parameter. */ public interface E {} /** Fake type parameter. */ public interface T {} /** Fake type parameter. */ public interface K {} /** Fake type parameter. */ public interface V {}"  
     />  
   
     <copy todir="${build.dc-filter.dir}">  
       <fileset dir="${build.filter.src.dir}">  
         <exclude name="**/*.html"/>  
       </fileset>  
       <filterchain>  
         <!--  
          # These two filters try to make the source look like  
          # something that doccheck can process. The first removes  
          # -source 1.4 assertions and the second adds in a bunch  
          # of single letter public nested marker interfaces so that  
          # the generic type parameters are recognized.  
          -->  
   
         <filterreader classname="jsr166.ant.filters.ReplaceFilter"  
                       classpath="${build.ant.dir}">  
           <param name="matching"    value="^\s*assert[\s ].*$"/>  
           <param name="pattern"     value="assert"/>  
           <param name="replacement" value="//assert"/>  
         </filterreader>  
   
         <filterreader classname="jsr166.ant.filters.ReplaceFilter"  
                       classpath="${build.ant.dir}">  
           <param name="matching"    value="^([^*]*(class|interface|implements) .*|)\{.*$"/>  
           <param name="pattern"     value="$"/>  
           <param name="replacement" value=" ${generic.declarations}"/>  
         </filterreader>  
605    
       </filterchain>  
     </copy>  
606    
607    </target>    <!-- Various demos and test programs -->
608    
609    
610    <target name="compile-tests"    <!-- description="Benchmark from Doug Lea's AQS paper" -->
611            depends="jar">    <target name="loops" depends="configure-compiler">
612    
613      <mkdir dir="${build.testcases.dir}"/>      <mkdir dir="${build.loops.dir}"/>
614    
615      <javac srcdir="${tck.src.dir}"      <javac srcdir="${loops.src.dir}"
616            destdir="${build.testcases.dir}"            destdir="${build.loops.dir}"
617              debug="${build.debug}"              debug="${build.debug}"
618         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
619        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
620             source="${build.sourcelevel}"             source="${build.sourcelevel}"
621               target="${build.sourcelevel}"
622               fork="true">               fork="true">
623    
       <compilerarg value="${bootclasspath.args}"/>  
624        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
625          <classpath refid="loops.classpath"/>
626        <classpath refid="test.classpath"/>        <compilerarg value="-XDignore.symbol.file=true"/>
627    
628      </javac>      </javac>
629    
630      <javac srcdir="${test.src.dir}"      <java classname="ALoops" fork="true">
631            destdir="${build.testcases.dir}"        <classpath refid="loops.classpath"/>
632              debug="${build.debug}"      </java>
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
   
       <include name="jsr166/test/**"/>  
633    
634        <compilerarg value="${bootclasspath.args}"/>    </target>
       <compilerarg line="${build.args}"/>  
635    
       <classpath refid="test.classpath"/>  
636    
637      </javac>    <target name="compile-test-loops" depends="jar"
638              description="compile all the perf tests in src/test/loops">
639    
640  <!--      <mkdir dir="${build.dir}/test/loops"/>
     <javac srcdir="${jtreg.src.dir}"  
           destdir="${build.testcases.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
641    
642        <compilerarg value="${bootclasspath.args}"/>      <javac srcdir="${basedir}/src/test/loops"
643               destdir="${build.dir}/test/loops"
644               debug="${build.debug}"
645               debuglevel="${build.debuglevel}"
646               deprecation="${build.deprecation}"
647               includeAntRuntime="false"
648               includeJavaRuntime="false"
649               executable="${javac9}"
650               fork="true">
651    
652          <include name="*.java"/>
653          <compilerarg value="-XDignore.symbol.file=true"/>
654          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
655          <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
656        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
657    
       <classpath refid="test.classpath"/>  
   
658      </javac>      </javac>
 -->  
659    
660    </target>    </target>
661    
662    
663    <target name="run-tests"    <!-- jsr166 4jdk8 -->
           depends="compile-tests">  
664    
665      <!-- May be overridden by user.properties -->    <target name="4jdk8compile"
666      <property name="testcase" value="*"/>            depends="configure-compiler"
667              description="Compiles src/jdk8 sources, targeting jdk8">
668    
669        <mkdir dir="${build.4jdk8.classes.dir}"/>
670    
671        <javac srcdir="${4jdk8src.dir}"
672               destdir="${build.4jdk8.classes.dir}"
673               debug="${build.debug}"
674               debuglevel="${build.debuglevel}"
675               deprecation="${build.deprecation}"
676               source="8"
677               target="8"
678               classpath=""
679               bootclasspath="${bootclasspath8}"
680               includeAntRuntime="false"
681               includeJavaRuntime="false"
682               executable="${javac8}"
683               fork="true">
684    
685      <mkdir dir="${build.reports.dir}"/>        <include name="**/*.java"/>
686          <compilerarg value="-Xprefer:source"/>
687          <compilerarg value="-XDignore.symbol.file=true"/>
688          <compilerarg value="-Xlint:all"/>
689          <compilerarg value="-Werror"/>
690          <compilerarg line="${build.args}"/>
691    
692      <junit printsummary="true"      </javac>
693               showoutput="true"    </target>
           errorProperty="junit.failed"  
         failureProperty="junit.failed"  
                     dir="${build.reports.dir}"  
                    fork="true">  
694    
695        <jvmarg value="${bootclasspath.args}"/>    <target name="4jdk8doclint"
696        <jvmarg value="-server"/>            depends="configure-compiler"
697        <jvmarg value="-showversion"/>            description="Finds doclint warnings">
698    
699        <mkdir dir="${build.4jdk8.classes.dir}"/>
700    
701        <javac srcdir="${4jdk8src.dir}"
702               destdir="${build.4jdk8.classes.dir}"
703               debug="${build.debug}"
704               debuglevel="${build.debuglevel}"
705               deprecation="${build.deprecation}"
706               source="8"
707               target="8"
708               classpath=""
709               bootclasspath="${bootclasspath8}"
710               includeAntRuntime="false"
711               includeJavaRuntime="false"
712               executable="${javac8}"
713               fork="true">
714    
715          <include name="**/*.java"/>
716          <compilerarg value="-Xprefer:source"/>
717          <compilerarg value="-XDignore.symbol.file=true"/>
718          <compilerarg value="-Xlint:all"/>
719          <compilerarg value="-Xdoclint:all/protected"/>
720          <compilerarg line="${build.args}"/>
721    
722        <classpath refid="test.classpath"/>      </javac>
723      </target>
724    
       <formatter type="xml"/>  
725    
726        <batchtest todir="${build.reports.dir}" unless="no.test.tck">    <target name="4jdk8jar"
727          <fileset dir="${tck.src.dir}">            depends="4jdk8compile"
728            <include name="**/${testcase}Test.java"/>            description="Builds library jar from compiled sources">
         </fileset>  
       </batchtest>  
   
       <batchtest todir="${build.reports.dir}" if="do.test.old">  
         <fileset dir="${test.src.dir}">  
           <include name="jsr166/test/**/${testcase}Test.java"/>  
         </fileset>  
       </batchtest>  
   
 <!--  
       <batchtest todir="${build.reports.dir}" if="do.test.jtreg">  
         <fileset dir="${jtreg.src.dir}">  
           <include name="**/${testcase}Test.java"/>  
         </fileset>  
       </batchtest>  
 -->  
729    
730      </junit>      <jar destfile="${4jdk8product.jar}">
731          <fileset dir="${build.4jdk8.classes.dir}"/>
732          <manifest>
733            <attribute name="Built-By" value="${user.name}"/>
734            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
735          </manifest>
736        </jar>
737    
738    </target>    </target>
739    
740    
741    <target name="report-tests"    <target name="4jdk8-tck"
742            depends="run-tests">            depends="4jdk8jar"
743              description="Runs tck tests for jsr166-4jdk8 directly">
744    
745        <run-tck-tests
746          target="8"
747          workdir="${build.4jdk8.dir}"
748          classes="${4jdk8product.jar}">
749          <javac-elements>
750            <!-- JDK9+ test classes -->
751            <exclude name="*9Test.java"/>
752            <exclude name="*10Test.java"/>
753          </javac-elements>
754        </run-tck-tests>
755      </target>
756    
     <!-- Sets junit.report.format to frames if redirection is present,  
          otherwise sets it to noframes. -->  
     <available property="junit.report.format"  
                   value="frames"  
               classname="org.apache.xalan.lib.Redirect"  
     />  
     <property name="junit.report.format" value="noframes"/>  
   
     <junitreport todir="${build.reports.dir}">  
       <fileset dir="${build.reports.dir}">  
         <include name="TEST-*.xml"/>  
       </fileset>  
       <report styledir="${stylesheet.dir}"  
                 format="${junit.report.format}"  
                  todir="${build.reports.dir}"  
       />  
     </junitreport>  
757    
758      <fail message="Test Cases Failed" if="junit.failed"/>    <target name="4jdk8-jtreg"
759              depends="4jdk8jar"
760              description="Runs jtreg tests for jsr166-4jdk8 using the jtreg ant task">
761        <run-jtreg-tests
762           target="8"
763           workdir="${build.4jdk8.dir}"
764           classes="${4jdk8product.jar}"/>
765      </target>
766    
767    
768      <target name="4jdk8-test"
769              depends="4jdk8-tck, 4jdk8-jtreg"
770              description="Runs tck and jtreg tests for jsr166-4jdk8">
771    </target>    </target>
772    
773    
774    <target name="configure-compiler">    <target name="4jdk8docs"
775              description="Builds javadocs for src/jdk8 to dist dir">
776    
777        <delete dir="${4jdk8docs.dir}"/>
778        <mkdir dir="${4jdk8docs.dir}"/>
779    
780        <javadoc destdir="${4jdk8docs.dir}"
781                 packagenames="none"
782                 link="${java8.api.url}"
783                 overview="${4jdk8src.dir}/intro.html"
784                 access="${build.javadoc.access}"
785                 sourcepath="${4jdk8src.dir}:${jdk8.src.dir}"
786                 classpath=""
787                 executable="${javadoc8}"
788                 failonerror = "true">
789          <fileset dir="${4jdk8src.dir}" defaultexcludes="yes">
790            <include name="**/*.java"/>
791          </fileset>
792          <arg line="-Xdocrootparent ${java8.docroot.url}"/>
793          <arg value="-XDignore.symbol.file=true"/>
794          <arg value="-tag"/>
795          <arg value="${javadoc.jls.option}"/>
796          <arg value="-tag"/>
797          <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>
798          <arg value="-tag"/>
799          <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
800          <arg value="-tag"/>
801          <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
802        </javadoc>
803      </target>
804    
     <property name="unchecked.option" value="-Xlint:unchecked"/>  
805    
806      <condition property="warnunchecked.arg" value="${unchecked.option}">    <target name="4jdk8dist"
807        <istrue value="${build.warnunchecked}"/>            depends="4jdk8dist-jar, 4jdk8dist-docs"
808      </condition>            description="Puts all distributable products in single hierarchy"/>
809    
     <property name="warnunchecked.arg" value=""/>  
810    
811      <target name="4jdk8clean"
812              description="Removes all 4jdk8 build products">
813    
814      <!-- Common options in javac invocations -->      <delete dir="${build.4jdk8.dir}"/>
     <property name="build.args" value="${warnunchecked.arg}"/>  
815    
816    </target>    </target>
817    
818    
819    <target name="configure-tests"    <target name="4jdk8dist-jar"
820         depends="configure-compiler">            depends="4jdk8clean, 4jdk8jar">
821        <copy file="${4jdk8product.jar}" todir="${dist.dir}"/>
822      </target>
823    
     <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->  
     <available property="junit.available"  
                classname="junit.framework.Protectable"/>  
824    
825      <!-- Xalan -->    <target name="4jdk8dist-docs"
826      <available property="xalan.available"            depends="4jdk8clean, 4jdk8docs">
827                 classname="org.apache.xalan.Version"/>      <mirror-dir src="${4jdk8docs.dir}" dst="${dist.4jdk8docs.dir}"/>
828      </target>
829    
830    
     <!-- Ant 1.6beta and later don't need or want this check -->  
     <!--  
     <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"  
           unless="junit.available"/>  
831    
832      <fail message="Need Xalan 2.5.1 jar in ${ant.home}${file.separator}lib to run tests"    <!-- jsr166 4jdk7 -->
           unless="xalan.available"/>  
     -->  
833    
834    </target>    <target name="4jdk7compile"
835              depends="configure-compiler"
836              description="Compiles src/jdk7 sources, targeting jdk7">
837    
838        <mkdir dir="${build.4jdk7.classes.dir}"/>
839    
840        <javac srcdir="${4jdk7src.dir}"
841               destdir="${build.4jdk7.classes.dir}"
842               debug="${build.debug}"
843               debuglevel="${build.debuglevel}"
844               deprecation="${build.deprecation}"
845               source="6"
846               target="6"
847               classpath=""
848               bootclasspath="${bootclasspath6}"
849               includeAntRuntime="false"
850               includeJavaRuntime="false"
851               executable="${javac7}"
852               fork="true">
853    
854    <!-- Anthill targets -->        <include name="**/*.java"/>
855          <compilerarg value="-Xprefer:source"/>
856          <compilerarg value="-XDignore.symbol.file=true"/>
857          <compilerarg value="-Xlint:all"/>
858          <compilerarg value="-Werror"/>
859          <compilerarg line="${build.args}"/>
860    
861    <target name="anthill-build">      </javac>
862      </target>
863    
864      <!-- Override this in user.properties -->    <target name="4jdk7doclint"
865      <property name="tiger.home" location="e:/j2sdk1.5.0"/>            depends="configure-compiler"
866              description="Finds doclint warnings">
867    
868        <mkdir dir="${build.4jdk7.classes.dir}"/>
869    
870        <javac srcdir="${4jdk7src.dir}"
871               destdir="${build.4jdk7.classes.dir}"
872               debug="${build.debug}"
873               debuglevel="${build.debuglevel}"
874               deprecation="${build.deprecation}"
875               source="6"
876               target="6"
877               classpath=""
878               bootclasspath="${bootclasspath6}"
879               includeAntRuntime="false"
880               includeJavaRuntime="false"
881               executable="${javac8}"
882               fork="true">
883    
884      <exec resultproperty="result.property" dir="${basedir}" executable="${tiger.home}/bin/java">        <include name="**/*.java"/>
885        <arg value="-Xmx256000000"/>        <compilerarg value="-Xprefer:source"/>
886        <!-- classpath of new JVM -->        <compilerarg value="-XDignore.symbol.file=true"/>
887        <arg value="-classpath"/> <arg path="${java.class.path}"/>        <compilerarg value="-Xlint:all"/>
888        <!-- location of Ant home directory -->        <compilerarg value="-Xdoclint:all/protected"/>
889        <arg value="-Dant.home=${ant.home}"/>        <compilerarg line="${build.args}"/>
       <!-- the Ant main class -->  
       <arg value="org.apache.tools.ant.Main"/>  
       <!-- The build file -->  
       <arg value="-buildfile"/>  <arg value="build.xml"/>  
       <!-- the target to build on the new Ant instance -->  
       <arg value="-DJAVA_HOME=${tiger.home}"/>  
       <arg value="do-anthill-build"/>  
     </exec>  
   </target>  
890    
891    <target name="do-anthill-build"      </javac>
892            depends="jar, test, docs, dist-docs"/>    </target>
893    
   <target name="anthill-publish">  
894    
895      <copy todir="${deployDir}/docs/private">    <target name="4jdk7jar"
896        <fileset dir="${build.javadocs.dir}"/>            depends="4jdk7compile"
897      </copy>            description="Builds library jar from compiled sources">
898    
899      <copy todir="${deployDir}/docs/public">      <jar destfile="${4jdk7product.jar}">
900        <fileset dir="${dist.javadocs.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
901      </copy>        <manifest>
902            <attribute name="Built-By" value="${user.name}"/>
903            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
904          </manifest>
905        </jar>
906    
907      <copy tofile="${deployDir}/index.html"    </target>
           file="${basedir}/etc/anthill-index.html"/>  
908    
     <copy todir="${deployDir}/notes">  
       <fileset dir="${basedir}/etc/notes"/>  
     </copy>  
909    
910      <target name="4jdk7-tck"
911              depends="4jdk7jar"
912              description="Runs tck tests for jsr166-4jdk7 directly">
913    
914        <run-tck-tests
915          target="7"
916          workdir="${build.4jdk7.dir}"
917          classes="${4jdk7product.jar}">
918          <javac-elements>
919            <!-- JDK8+ test classes -->
920            <exclude name="*8Test.java"/>
921            <exclude name="*9Test.java"/>
922            <exclude name="*10Test.java"/>
923            <exclude name="DoubleAccumulatorTest.java"/>
924            <exclude name="DoubleAdderTest.java"/>
925            <exclude name="LongAccumulatorTest.java"/>
926            <exclude name="LongAdderTest.java"/>
927            <exclude name="CompletableFutureTest.java"/>
928            <exclude name="SplittableRandomTest.java"/>
929            <exclude name="StampedLockTest.java"/>
930            <exclude name="SubmissionPublisherTest.java"/>
931          </javac-elements>
932        </run-tck-tests>
933    </target>    </target>
934    
935    
936      <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) -->
937      <target name="4jdk7-tck-junit"
938              depends="4jdk7compile">
939    
940    <!-- Various demos and test programs -->      <junit printsummary="true"
941               showoutput="true"
942               errorProperty="junit.failed"
943               failureProperty="junit.failed"
944               includeantruntime="true"
945               jvm="${java7}"
946               fork="true">
947    
948          <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
949          <jvmarg value="-server"/>
950    
951          <classpath>
952            <pathelement location="${junit.jar}"/>
953            <pathelement location="${build.4jdk7.tck.classes.dir}"/>
954          </classpath>
955    
956    <target name="sample" depends="init, configure-compiler"        <formatter type="brief"/>
           description="Standalone demo program">  
957    
958      <mkdir dir="${build.testcases.dir}"/>        <test name="${jsr166.tckTestClass}" haltonfailure="no">
959          </test>
960    
961      <javac srcdir="${test.src.dir}"      </junit>
962            destdir="${build.testcases.dir}"    </target>
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
963    
964        <include name="jsr166/test/Sample.java"/>    <target name="4jdk7-jtreg"
965              depends="4jdk7jar"
966              description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">
967        <run-jtreg-tests
968           target="7"
969           workdir="${build.4jdk7.dir}"
970           classes="${4jdk7product.jar}"/>
971      </target>
972    
     </javac>  
973    
974      <copy todir="${build.testcases.dir}">    <target name="4jdk7-test"
975        <fileset dir="${test.src.dir}">            depends="4jdk7-tck, 4jdk7-jtreg"
976          <include name="**/*.properties"/>            description="Runs tck and jtreg tests for jsr166-4jdk7">
977        </fileset>    </target>
     </copy>  
978    
979    
980      <java classname="jsr166.test.Sample" fork="true">    <target name="4jdk7docs"
981        <classpath refid="test.classpath"/>            description="Builds javadocs for src/jdk7 to dist dir">
982        <!-- <jvmarg value="-ea"/> -->  
983        <!-- <jvmarg value="-server"/> -->      <delete dir="${4jdk7docs.dir}"/>
984        <!-- <arg value="1000"/> -->      <mkdir dir="${4jdk7docs.dir}"/>
985      </java>  
986        <javadoc destdir="${4jdk7docs.dir}"
987                 packagenames="none"
988                 link="${java7.api.url}"
989                 overview="${4jdk7src.dir}/intro.html"
990                 access="${build.javadoc.access}"
991                 sourcepath="${4jdk7src.dir}:${jdk7.src.dir}"
992                 classpath=""
993                 executable="${javadoc7}"
994                 failonerror = "true">
995          <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
996            <include name="**/*.java"/>
997          </fileset>
998          <arg line="-Xdocrootparent ${java7.docroot.url}"/>
999          <arg value="-XDignore.symbol.file=true"/>
1000        </javadoc>
1001    </target>    </target>
1002    
1003    
1004    <target name="loops" depends="init, configure-compiler"    <target name="4jdk7dist"
1005            description="Benchmark from Doug Lea's AQS paper">            depends="4jdk7dist-jar, 4jdk7dist-docs"
1006              description="Puts all distributable products in single hierarchy"/>
1007    
     <mkdir dir="${build.loops.dir}"/>  
1008    
1009      <javac srcdir="${loops.src.dir}"    <target name="4jdk7clean"
1010            destdir="${build.loops.dir}"            description="Removes all 4jdk7 build products">
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
1011    
1012        <compilerarg line="${build.args}"/>      <delete dir="${build.4jdk7.dir}"/>
       <classpath refid="loops.classpath"/>  
1013    
1014      </javac>    </target>
1015    
     <java classname="ALoops" fork="true">  
       <classpath refid="loops.classpath"/>  
     </java>  
1016    
1017      <target name="4jdk7dist-jar"
1018              depends="4jdk7clean, 4jdk7jar">
1019        <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
1020    </target>    </target>
1021    
1022    
1023    <target name="compile-j1" depends="init, configure-compiler, compile">    <target name="4jdk7dist-docs"
1024              depends="4jdk7clean, 4jdk7docs">
1025        <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
1026      </target>
1027    
1028    
1029      <mkdir dir="${build.j1.dir}"/>    <!-- jsr166x -->
1030    
1031      <javac srcdir="${j1.src.dir}"    <target name="jsr166xcompile"
1032            destdir="${build.j1.dir}"            depends="configure-compiler"
1033              debug="${build.debug}"            description="Compiles jsr166x sources to build dir">
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}" >  
1034    
1035        <include name="**/*.java"/>      <mkdir dir="${build.jsr166x.classes.dir}"/>
       <exclude name="**/dijkstra/**"/>  
1036    
1037        <javac srcdir="${topsrc.dir}"
1038               destdir="${build.jsr166x.classes.dir}"
1039               debug="${build.debug}"
1040               debuglevel="${build.debuglevel}"
1041               deprecation="${build.deprecation}"
1042               classpath=""
1043               bootclasspath="${bootclasspath6}"
1044               source="5"
1045               target="5"
1046               includeAntRuntime="false"
1047               includeJavaRuntime="false"
1048               executable="${javac7}"
1049               fork="true">
1050    
1051          <include name="jsr166x/**/*.java"/>
1052          <compilerarg value="-XDignore.symbol.file=true"/>
1053          <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
1054          <compilerarg value="-Werror"/>
1055        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
       <classpath refid="j1.classpath"/>  
1056    
1057      </javac>      </javac>
   
1058    </target>    </target>
1059    
1060    
1061    <target name="sw" depends="compile-j1"    <target name="jsr166xjar"
1062            description="Runs the SwingWorker demo">            depends="jsr166xcompile"
1063              description="Builds library jar from compiled sources">
1064    
1065        <jar destfile="${jsr166x.jar}">
1066          <fileset dir="${build.jsr166x.classes.dir}"/>
1067          <manifest>
1068            <attribute name="Built-By" value="${user.name}"/>
1069            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1070          </manifest>
1071        </jar>
1072    
1073      </target>
1074    
     <!--  
     <java classname="jsr166.swing.SwingWorkerDemo" fork="true">  
       <classpath refid="j1.classpath"/>  
     </java>  
     -->  
1075    
1076      <copy todir="${build.j1.dir}" file="${j1.src.dir}/jsr166/swing/SwingWorker.html"/>    <target name="jsr166xdocs"
1077              description="Builds javadocs to dist dir">
1078    
1079        <delete dir="${jsr166xdocs.dir}"/>
1080        <mkdir dir="${jsr166xdocs.dir}"/>
1081    
1082      <exec dir="${build.j1.dir}" executable="appletviewer.exe">      <javadoc destdir="${jsr166xdocs.dir}"
1083        <arg value="${build.j1.dir}/SwingWorker.html"/>               packagenames="jsr166x.*"
1084      </exec>               link="${java.api.url}"
1085                 access="${build.javadoc.access}"
1086                 sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1087                 bootclasspath="${bootclasspath6}"
1088                 source="5"
1089                 executable="${javadoc7}"
1090                 failonerror = "true">
1091          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1092          <arg value="-XDignore.symbol.file=true"/>
1093    
1094        </javadoc>
1095    </target>    </target>
1096    
   <target name="j1" depends="compile-j1"  
           description="Runs a standalone JavaOne program">  
1097    
1098      <java classname="${j1.test}" fork="true">    <target name="jsr166xdist"
1099        <classpath refid="j1.classpath"/>            depends="jsr166xdist-jar, jsr166xdist-docs"
1100        <jvmarg value="-client"/>            description="Puts all distributable products in single hierarchy"/>
1101    
       <!-- TestPseudoRandom args -->  
       <arg value="2"/>  
       <arg value="25"/>  
       <arg value="100000"/>  
1102    
1103        <!-- WebCrawler args -->    <target name="jsr166xclean"
1104        <!--            description="Removes all jsr166x build products">
       <arg value="jsr166.webcrawler.WebCrawler3"/>  
       <arg value="http://www.priorartisans.com"/>  
       <arg value="25"/>  
       -->  
1105    
1106      </java>      <delete dir="${build.jsr166x.dir}"/>
1107    
1108    </target>    </target>
1109    
1110    
1111    <target name="test-j1" depends="compile-j1"    <target name="jsr166xdist-jar"
1112            description="Runs testcases from the JavaOne source directories">            depends="jsr166xclean, jsr166xjar">
1113        <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
1114      </target>
1115    
1116      <junit printsummary="true"    <target name="jsr166xdist-docs"
1117               showoutput="true"            depends="jsr166xclean, jsr166xdocs">
1118            errorProperty="junit.failed"      <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
1119          failureProperty="junit.failed"    </target>
                     dir="${build.j1.dir}"  
                    fork="true">  
   
       <!-- <jvmarg value="-server"/> -->  
       <classpath refid="j1.classpath"/>  
       <formatter type="xml"/>  
   
       <batchtest todir="${build.j1.dir}">  
         <fileset dir="${j1.src.dir}">  
           <include name="**/*Test.java"/>  
         </fileset>  
       </batchtest>  
1120    
1121      </junit>    <!-- jsr166y -->
1122    
     <available property="junit.report.format"  
                   value="frames"  
               classname="org.apache.xalan.lib.Redirect"/>  
     <property name="junit.report.format" value="noframes"/>  
   
     <junitreport todir="${build.j1.dir}">  
       <fileset dir="${build.j1.dir}">  
         <include name="TEST-*.xml"/>  
       </fileset>  
       <report styledir="${stylesheet.dir}"  
                 format="${junit.report.format}"  
                  todir="${build.j1.dir}"  
       />  
     </junitreport>  
1123    
1124      <fail message="Test Cases Failed" if="junit.failed"/>    <target name="jsr166ycompile"
1125              depends="configure-compiler"
1126              description="Compiles jsr166y sources">
1127    
1128        <mkdir dir="${build.jsr166y.classes.dir}"/>
1129    
1130        <javac srcdir="${topsrc.dir}"
1131               destdir="${build.jsr166y.classes.dir}"
1132               debug="${build.debug}"
1133               debuglevel="${build.debuglevel}"
1134               deprecation="${build.deprecation}"
1135               source="6"
1136               target="6"
1137               classpath=""
1138               bootclasspath="${bootclasspath6}"
1139               includeAntRuntime="false"
1140               includeJavaRuntime="false"
1141               executable="${javac7}"
1142               fork="true">
1143    
1144          <include name="jsr166y/**/*.java"/>
1145          <compilerarg value="-XDignore.symbol.file=true"/>
1146          <compilerarg value="-Xlint:all"/>
1147          <compilerarg value="-Werror"/>
1148          <compilerarg line="${build.args}"/>
1149    
1150        </javac>
1151    </target>    </target>
1152    
1153    
1154      <target name="jsr166yjar"
1155              depends="jsr166ycompile"
1156              description="Builds library jar from compiled sources">
1157    
1158    <!-- C++ and JNI definitions and demos -->      <jar destfile="${jsr166y.jar}" index="true">
1159          <fileset dir="${build.jsr166y.classes.dir}"/>
1160          <manifest>
1161            <attribute name="Built-By" value="${user.name}"/>
1162            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1163          </manifest>
1164        </jar>
1165    
1166    <target name="configure-cpp">    </target>
1167    
     <!-- Define tasks and types -->  
1168    
1169      <path id="cpptasks.path">    <target name="jsr166ydocs"
1170        <pathelement location="${lib.dir}/cpptasks.jar"/>            description="Builds javadocs to dist dir">
     </path>  
     <taskdef resource="cpptasks.tasks" classpathref="cpptasks.path"/>  
     <typedef resource="cpptasks.types" classpathref="cpptasks.path"/>  
1171    
1172      <!-- Set platform property for JNI includes -->      <delete dir="${jsr166ydocs.dir}"/>
1173        <mkdir dir="${jsr166ydocs.dir}"/>
1174    
1175      <condition property="platform" value="linux">      <javadoc destdir="${jsr166ydocs.dir}"
1176        <os name="Linux"/>               packagenames="jsr166y.*"
1177      </condition>               link="${java.api.url}"
1178      <condition property="platform" value="win32">               access="${build.javadoc.access}"
1179        <os family="windows"/>               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1180      </condition>               bootclasspath="${bootclasspath6}"
1181      <condition property="platform" value="solaris">               source="6"
1182        <os name="SunOS"/>               executable="${javadoc7}"
1183      </condition>               failonerror = "true">
1184          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1185          <arg value="-XDignore.symbol.file=true"/>
1186    
1187        </javadoc>
1188    </target>    </target>
1189    
1190    
1191    <target name="cppdemo" depends="configure-cpp">    <target name="jsr166ydist"
1192              depends="jsr166ydist-jar, jsr166ydist-docs"
1193              description="Puts all distributable products in single hierarchy"/>
1194    
     <mkdir dir="${build.dir}"/>  
1195    
1196      <cc multithreaded="true"    <target name="jsr166yclean"
1197                   name="g++"            description="Removes all jsr166y build products">
                objdir="${build.dir}"  
               outfile="${build.dir}/CppDemo">  
       <fileset dir="${test.src.dir}" includes="CppDemo.cpp"/>  
       <libset libs="stdc++"/>  
     </cc>  
1198    
1199      <exec executable="${build.dir}/CppDemo">      <delete dir="${build.jsr166y.dir}"/>
       <arg line="count in word frequency of word in command line count"/>  
     </exec>  
1200    
1201    </target>    </target>
1202    
1203    
1204    <target name="jnidemo" depends="init, configure-compiler, configure-cpp">    <target name="jsr166ydist-jar"
1205              depends="jsr166yclean, jsr166yjar">
1206        <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
1207      </target>
1208    
1209      <mkdir dir="${build.testcases.dir}"/>    <target name="jsr166ydist-docs"
1210              depends="jsr166yclean, jsr166ydocs">
1211        <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
1212      </target>
1213    
     <javac srcdir="${test.src.dir}"  
           destdir="${build.testcases.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
       <compilerarg value="${bootclasspath.args}"/>  
       <compilerarg line="${build.args}"/>  
       <classpath refid="test.classpath"/>  
       <include name="JniDemo.java"/>  
     </javac>  
1214    
1215      <javah destdir="${build.testcases.dir}"    <!-- extra166y -->
       classpathref="test.classpath">  
       <class name="JniDemo"/>  
     </javah>  
   
     <cc multithreaded="true"  
                  name="g++"  
                objdir="${build.dir}"  
               outfile="${build.dir}/JniDemo"  
               outtype="shared">  
   
       <compiler>  
         <defineset>  
           <define name="__int64" value="long long"/>  
         </defineset>  
         <includepath location="${java.home}/../include"/>  
         <includepath location="${java.home}/../include/${platform}"/>  
         <compilerarg value="-mno-cygwin"/>  
       </compiler>  
   
       <linker>  
         <linkerarg value="--add-stdcall-alias"/>  
       </linker>  
   
       <includepath location="${build.testcases.dir}"/>  
   
       <fileset dir="${test.src.dir}" includes="JniDemo.cpp"/>  
   
       <libset libs="stdc++"/>  
   
     </cc>  
   
     <!-- Necessary if windows, harmless if not -->  
     <copy file="${build.dir}/libJniDemo.so" tofile="${build.dir}/JniDemo.dll"/>  
   
     <java classname="JniDemo" fork="true">  
       <!-- Watch out: path separator hardwired to semicolon here! -->  
       <sysproperty key="java.library.path" path="${java.library.path};${build.dir}"/>  
       <classpath refid="test.classpath"/>  
       <arg line="count in word frequency of word in command line count"/>  
     </java>  
1216    
   </target>  
1217    
1218      <target name="extra166ycompile"
1219              depends="configure-compiler, jsr166yjar"
1220              description="Compiles extra166y sources">
1221    
1222        <mkdir dir="${build.extra166y.classes.dir}"/>
1223    
1224        <javac srcdir="${topsrc.dir}"
1225               destdir="${build.extra166y.classes.dir}"
1226               debug="${build.debug}"
1227               debuglevel="${build.debuglevel}"
1228               deprecation="${build.deprecation}"
1229               bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
1230               classpath=""
1231               source="6"
1232               target="6"
1233               includeAntRuntime="false"
1234               includeJavaRuntime="false"
1235               executable="${javac7}"
1236               fork="true">
1237    
1238          <include name="extra166y/**/*.java"/>
1239          <compilerarg value="-XDignore.symbol.file=true"/>
1240          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
1241          <compilerarg value="-Werror"/>
1242          <compilerarg line="${build.args}"/>
1243    
1244    <!-- Backward compatibility, work in progress (some files not checked in) -->      </javac>
1245      </target>
1246    
1247    
1248      <target name="extra166yjar"
1249              depends="extra166ycompile"
1250              description="Builds library jar from compiled sources">
1251    
1252        <jar destfile="${extra166y.jar}" index="true">
1253          <fileset dir="${build.extra166y.classes.dir}"/>
1254          <manifest>
1255            <attribute name="Built-By" value="${user.name}"/>
1256            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1257          </manifest>
1258        </jar>
1259    
1260      </target>
1261    
   <property name="pretiger.src.dir"     location="${build.dir}/pretiger/src"/>  
   <property name="build.pretiger.dir"   location="${build.dir}/pretiger/classes"/>  
   <property name="pretiger.jar"         location="${build.lib.dir}/jsr166-pretiger.jar"/>  
   <property name="pretiger.sourcelevel" value="1.4"/>  
1262    
1263    <target name="defang"    <target name="extra166ydocs"
1264         depends="init"            description="Builds javadocs to build dir">
    description="Generates pre-Tiger compatible source">  
1265    
1266      <delete dir="${pretiger.src.dir}"/>      <delete dir="${extra166ydocs.dir}"/>
1267      <mkdir dir="${pretiger.src.dir}"/>      <mkdir dir="${extra166ydocs.dir}"/>
1268    
1269      <exec executable="perl">      <javadoc destdir="${extra166ydocs.dir}"
1270        <arg file="etc/defang.pl"/>               packagenames="extra166y.*"
1271        <!-- <arg value="-v"/> -->               link="${java.api.url}"
1272        <arg value="-s"/> <arg file="${src.dir}"/>               access="${build.javadoc.access}"
1273        <arg value="-t"/> <arg file="${pretiger.src.dir}"/>               sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1274      </exec>               bootclasspath="${bootclasspath6}"
1275                 source="6"
1276                 executable="${javadoc7}">
1277          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1278          <arg value="-XDignore.symbol.file=true"/>
1279    
1280        </javadoc>
1281    </target>    </target>
1282    
   <target name="compile-pretiger"  
           depends="init, configure-compiler, defang"  
           description="Compiles pre-Tiger sources to build folder">  
1283    
1284      <mkdir dir="${build.pretiger.dir}"/>    <target name="extra166ydist"
1285              depends="extra166ydist-jar, extra166ydist-docs"
1286              description="Puts all distributable products in single hierarchy"/>
1287    
     <javac srcdir="${pretiger.src.dir}"  
           destdir="${build.pretiger.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${pretiger.sourcelevel}"  
              fork="true">  
1288    
1289        <compilerarg line="${build.args}"/>    <target name="extra166yclean"
1290        <exclude name="**/Thread.java"/>            description="Removes all extra166y build products">
1291    
1292      </javac>      <delete dir="${build.extra166y.dir}"/>
1293    
1294    </target>    </target>
1295    
   <target name="pretiger" depends="compile-pretiger">  
   
     <mkdir dir="${build.lib.dir}"/>  
1296    
1297      <jar destfile="${pretiger.jar}">    <target name="extra166ydist-jar"
1298        <fileset dir="${build.pretiger.dir}">            depends="extra166yclean, extra166yjar">
1299        </fileset>      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
1300      </jar>    </target>
1301    
1302      <target name="extra166ydist-docs"
1303              depends="extra166yclean, extra166ydocs">
1304        <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
1305    </target>    </target>
1306    
1307    <!-- jsr166x -->    <!-- jsr166e -->
1308    
1309      <property name="build.jsr166e.java.version" value="6"/>
1310      <property name="build.jsr166e.javac" value="${javac6}"/>
1311    
1312    <target name="jsr166xcompile"    <target name="jsr166ecompile"
1313            depends="init, configure-compiler"            depends="configure-compiler"
1314            description="Compiles jsr166x sources">            description="Compiles jsr166e sources">
1315    
1316      <mkdir dir="${build.jsr166x.dir}"/>      <mkdir dir="${build.jsr166e.classes.dir}"/>
1317    
1318      <javac srcdir="${jsr166xsrc.dir}"      <javac srcdir="${topsrc.dir}"
1319            destdir="${build.jsr166x.dir}"             destdir="${build.jsr166e.classes.dir}"
1320              debug="${build.debug}"             debug="${build.debug}"
1321         debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1322        deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1323             source="${build.sourcelevel}"             source="${build.jsr166e.java.version}"
1324               fork="true">             target="${build.jsr166e.java.version}"
1325               classpath=""
1326               includeAntRuntime="false"
1327               includeJavaRuntime="false"
1328               executable="${build.jsr166e.javac}"
1329               fork="true">
1330    
1331        <include name="**/*.java"/>        <include name="jsr166e/**/*.java"/>
1332          <compilerarg value="-XDignore.symbol.file=true"/>
1333          <compilerarg value="-Xlint:all"/>
1334          <compilerarg value="-Werror"/>
1335        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
1336    
1337      </javac>      </javac>
   
1338    </target>    </target>
1339    
1340      <!-- jsr166e: find doclint errors -->
1341      <target name="jsr166edoclint">
1342    
1343        <mkdir dir="${build.jsr166e.classes.dir}"/>
1344    
1345    <target name="jsr166xjar"      <javac srcdir="${topsrc.dir}"
1346            depends="jsr166xcompile"             destdir="${build.jsr166e.classes.dir}"
1347            description="Builds library jar from compiled sources">             debug="${build.debug}"
1348               debuglevel="${build.debuglevel}"
1349               deprecation="${build.deprecation}"
1350               source="${build.jsr166e.java.version}"
1351               target="${build.jsr166e.java.version}"
1352               classpath=""
1353               bootclasspath="${bootclasspath6}"
1354               includeAntRuntime="false"
1355               includeJavaRuntime="false"
1356               executable="${javac8}"
1357               fork="true">
1358    
1359          <include name="jsr166e/**/*.java"/>
1360          <compilerarg value="-XDignore.symbol.file=true"/>
1361          <compilerarg value="-Xlint:all"/>
1362          <compilerarg value="-Werror"/>
1363          <compilerarg value="-Xdoclint:all/protected"/>
1364    
1365      <mkdir dir="${build.jsr166xlib.dir}"/>      </javac>
1366      </target>
1367    
     <jar destfile="${jsr166xproduct.jar}">  
       <fileset dir="${build.jsr166x.dir}"/>  
     </jar>  
1368    
1369    </target>    <target name="jsr166ejar"
1370              depends="jsr166ecompile"
1371              description="Builds library jar from compiled sources">
1372    
1373        <jar destfile="${jsr166e.jar}" index="true">
1374          <fileset dir="${build.jsr166e.classes.dir}"/>
1375          <manifest>
1376            <attribute name="Built-By" value="${user.name}"/>
1377            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1378          </manifest>
1379        </jar>
1380    
1381      </target>
1382    
   <target name="jsr166xdocs"  
           description="Builds javadocs with custom tags to build folder">  
1383    
1384      <delete dir="${build.jsr166xjavadocs.dir}"/>    <target name="jsr166edocs"
1385      <mkdir dir="${build.jsr166xjavadocs.dir}"/>            description="Builds javadocs to build dir">
1386    
1387      <javadoc destdir="${build.jsr166xjavadocs.dir}"      <delete dir="${jsr166edocs.dir}"/>
1388                  link="http://java.sun.com/j2se/1.5.0/docs/api/"      <mkdir dir="${jsr166edocs.dir}"/>
             sourcepath="${jsr166xsrc.dir}:/home/dl/1.5.0/j2se/martin/j2se/src/share/classes"  
   
     >  
       <packageset dir="${topsrc.dir}" defaultexcludes="yes">  
       <include name="jsr166x"/>  
       </packageset>  
1389    
1390        <javadoc destdir="${jsr166edocs.dir}"
1391                 packagenames="jsr166e.*"
1392                 link="${java.api.url}"
1393                 access="${build.javadoc.access}"
1394                 sourcepath="${topsrc.dir}:${jdk6.src.dir}"
1395                 source="${build.jsr166e.java.version}"
1396                 executable="${javadoc7}"
1397                 failonerror = "true">
1398          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1399          <arg value="-XDignore.symbol.file=true"/>
1400    
1401      </javadoc>      </javadoc>
   
1402    </target>    </target>
1403    
1404    
1405    <target name="jsr166xdist"    <target name="jsr166e-tck-one-java-version"
1406            depends="jsr166xdist-clean, jsr166xdist-jar, jsr166xdist-docs"            depends="jsr166ejar">
           description="Puts all distributable products in single hierarchy"/>  
   
1407    
1408        <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
1409    
1410    <target name="jsr166xclean"      <run-tck-tests
1411            description="Removes all build products">        tck.src.dir="${test.src.dir}/tck-jsr166e"
1412          target="${build.jsr166e.java.version}"
1413      <delete dir="${build.jsr166x.dir}"/>        workdir="${build.jsr166e.dir}"
1414      <delete dir="${build.jsr166xlib.dir}"/>        classes="${jsr166e.jar}"/>
   
1415    </target>    </target>
1416    
1417      <target name="jsr166e-tck"
1418              description="Runs tck tests for jsr166e for multiple java versions">
1419    
1420    <!--     <antcall target="clean"/> -->
1421    <!--     <antcall target="jsr166e-tck-one-java-version"> -->
1422    <!--       <param name="build.jsr166e.java.version" value="8"/> -->
1423    <!--       <param name="build.jsr166e.javac" value="${javac8}"/> -->
1424    <!--     </antcall> -->
1425    
1426    <target name="jsr166xdist-clean"      <antcall target="clean"/>
1427            description="Removes all build and distribution products">      <antcall target="jsr166e-tck-one-java-version">
1428          <param name="build.jsr166e.java.version" value="7"/>
1429          <param name="build.jsr166e.javac" value="${javac7}"/>
1430        </antcall>
1431    
1432        <antcall target="clean"/>
1433        <antcall target="jsr166e-tck-one-java-version">
1434          <param name="build.jsr166e.java.version" value="6"/>
1435          <param name="build.jsr166e.javac" value="${javac6}"/>
1436        </antcall>
1437    </target>    </target>
1438    
1439    
1440      <target name="jsr166e-test"
1441              depends="jsr166e-tck"
1442              description="Runs all tests for jsr166e">
1443      </target>
1444    
1445    <target name="jsr166xdist-docs"    <target name="jsr166edist"
1446            description="Builds javadocs without custom tags to dist folder">            depends="jsr166edist-jar, jsr166edist-docs"
1447              description="Puts all distributable products in single hierarchy"/>
1448    
     <delete dir="${dist.jsr166xjavadocs.dir}"/>  
     <mkdir dir="${dist.jsr166xjavadocs.dir}"/>  
1449    
1450      <javadoc destdir="${dist.jsr166xjavadocs.dir}"    <target name="jsr166eclean"
1451                  link="http://java.sun.com/j2se/1.5.0/docs/api/"            description="Removes all jsr166e build products">
1452                source="${build.sourcelevel}">      <delete dir="${build.jsr166e.dir}"/>
1453      </target>
       <packageset dir="${topsrc.dir}" defaultexcludes="yes">  
       <include name="jsr166x"/>  
       </packageset>  
1454    
     </javadoc>  
1455    
1456      <target name="jsr166edist-jar"
1457              depends="jsr166eclean, jsr166ejar">
1458        <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1459      </target>
1460    
1461      <target name="jsr166edist-docs"
1462              depends="jsr166eclean, jsr166edocs">
1463        <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1464    </target>    </target>
1465    
   <target name="jsr166xdist-jar"  
           depends="jsr166xclean, jsr166xjar">  
1466    
1467      <copy file="${jsr166xproduct.jar}" todir="${dist.dir}"/>  <!-- Find buglets that can be detected by static build tools -->
1468    
1469      <target name="lint">
1470        <antcall target="dists">
1471          <param name="build.javadoc.access" value="public"/>
1472        </antcall>
1473    </target>    </target>
1474    
1475    <!-- Generates all doclint warnings, even for private methods (rarely useful) -->
1476      <target name="lint-private">
1477        <antcall target="dist">
1478          <param name="build.javadoc.access" value="private"/>
1479        </antcall>
1480      </target>
1481    
1482    
1483  </project>  </project>

Legend:
Removed from v.1.72  
changed lines
  Added in v.1.210

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