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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.63  
changed lines
  Added in v.1.214

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