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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.73  
changed lines
  Added in v.1.220

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