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

Diff of /jsr166/build.xml

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

revision 1.31 by tim, Wed May 28 21:15:50 2003 UTC revision 1.154 by jsr166, Mon Jun 16 15:55:54 2014 UTC
# Line 7  Line 7 
7    Usage: ant [target]    Usage: ant [target]
8    
9    User-specific settings are read from user.properties.    User-specific settings are read from user.properties.
10    See user.properties.sample for examples.    See user.properties.sample for an explanation of some useful settings.
11    
12      The repository contains all dependencies except for ant and the JDK
13      itself.  Because the JDK version matters and because different
14      targets require different JDKs, we assume that users have created a
15      hierarchy containing:
16      $HOME/jdk/jdk6
17      $HOME/jdk/jdk7
18      $HOME/jdk/jdk8
19      $HOME/jdk/jdk9
20      where each of the above is a JDK or a symlink to same, and
21      $HOME/jdk/src/jdk6
22      $HOME/jdk/src/jdk7
23      $HOME/jdk/src/jdk8
24      $HOME/jdk/src/jdk9
25      where each of the above is a complete JDK source tree
26      (e.g. mercurial forest) or a symlink to same.
27  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
28    </description>    </description>
29    
30    <target name="usage" description="Advises user to run with -projecthelp">    <!-- Display main targets by running 'ant -projecthelp' -->
31      <echo>Run "ant -projecthelp" for full usage information.</echo>    <target name="usage">
32        <java classname="org.apache.tools.ant.Main">
33          <arg value="-projecthelp" />
34        </java>
35    </target>    </target>
36    
37    
# Line 21  Line 40 
40    
41    
42    <!-- Compilation options -->    <!-- Compilation options -->
43    <property name="build.sourcelevel"    value="1.5"/>    <property name="build.sourcelevel"    value="6"/>
   <property name="build.docsourcelevel" value="1.4"/>  
44    <property name="build.debug"          value="true"/>    <property name="build.debug"          value="true"/>
45    <property name="build.debuglevel"     value="source,lines,vars"/>    <property name="build.debuglevel"     value="source,lines,vars"/>
46    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
47    <property name="build.novariance.arg" value=""/>    <property name="build.javadoc.access" value="protected"/>
48    
49      <!-- Tck options; see JSR166TestCase.java -->
50      <!-- ant -Djsr166.profileTests=true -Djsr166.runsPerTest=100 test-tck -->
51      <property name="jsr166.profileTests"     value="false"/>
52      <property name="jsr166.profileThreshold" value="100"/>
53      <property name="jsr166.runsPerTest"      value="1"/>
54      <!-- Allow running an individual tck test class -->
55      <!-- ant -Djsr166.tckTestClass=CountedCompleterTest -Djsr166.runsPerTest=100 test-tck -->
56      <property name="jsr166.tckTestClass"     value="JSR166TestCase"/>
57    
58    <!-- Build locations -->    <!-- Build locations -->
59    <property name="build.dir"            location="build"/>    <property name="build.dir"                   location="build"/>
60    <property name="build.classes.dir"    location="${build.dir}/classes"/>    <property name="build.classes.dir"           location="${build.dir}/classes"/>
61    <property name="build.emulation.dir"  location="${build.dir}/emulation"/>    <property name="build.testcases.dir"         location="${build.dir}/testcases"/>
62    <property name="build.testcases.dir"  location="${build.dir}/testcases"/>    <property name="build.loops.dir"             location="${build.dir}/loops"/>
63    <property name="build.lib.dir"        location="${build.dir}/lib"/>    <property name="build.reports.dir"           location="${build.dir}/reports"/>
64    <property name="build.ant.dir"        location="${build.dir}/ant"/>  
65    <property name="build.javadocs.dir"   location="${build.dir}/javadocs"/>    <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
66    <property name="build.stripped.dir"   location="${build.dir}/stripped"/>    <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>
67    <property name="build.reports.dir"    location="${build.dir}/reports"/>    <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/>
68    <property name="build.doccheck.dir"   location="${build.dir}/doccheck"/>    <property name="build.4jdk7.docs.dir"        location="${build.4jdk7.dir}/docs"/>
69    <property name="build.filter.src.dir" location="${build.dir}/filtersrc"/>  
70      <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>
71      <property name="build.jsr166y.dir"           location="${build.dir}/jsr166y"/>
72      <property name="build.jsr166e.dir"           location="${build.dir}/jsr166e"/>
73      <property name="build.extra166y.dir"         location="${build.dir}/extra166y"/>
74    
75      <property name="build.jsr166x.classes.dir"   location="${build.jsr166x.dir}/classes"/>
76      <property name="build.jsr166y.classes.dir"   location="${build.jsr166y.dir}/classes"/>
77      <property name="build.jsr166e.classes.dir"   location="${build.jsr166e.dir}/classes"/>
78      <property name="build.extra166y.classes.dir" location="${build.extra166y.dir}/classes"/>
79    
80      <!-- JDK locations -->
81      <property name="jdks.home"  location="${user.home}/jdk"/>
82    
83      <macrodef name="defjdklocations">
84        <attribute name="v"/>
85        <sequential>
86        <property name="jdk@{v}.home"   location="${jdks.home}/jdk@{v}"/>
87        <property name="java@{v}"       location="${jdk@{v}.home}/bin/java"/>
88        <property name="javac@{v}"      location="${jdk@{v}.home}/bin/javac"/>
89        <property name="javadoc@{v}"    location="${jdk@{v}.home}/bin/javadoc"/>
90        <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/share/classes"/>
91        <local name="boot.jar.dir"/>
92        <property name="boot.jar.dir"   location="${jdk@{v}.home}/jre/lib"/>
93        <path id="bootclasspath@{v}">
94          <pathelement path="${boot.jar.dir}/resources.jar"/>
95          <pathelement path="${boot.jar.dir}/rt.jar"/>
96          <pathelement path="${boot.jar.dir}/jsse.jar"/>
97          <pathelement path="${boot.jar.dir}/jce.jar"/>
98          <pathelement path="${boot.jar.dir}/charsets.jar"/>
99        </path>
100        <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}"/>
101        </sequential>
102      </macrodef>
103    
104      <macrodef name="mirror-dir">
105        <attribute name="src"/>
106        <attribute name="dst"/>
107        <sequential>
108        <delete dir="@{dst}"/>
109        <mkdir dir="@{dst}"/>
110        <copy todir="@{dst}" preservelastmodified="true">
111          <fileset dir="@{src}"/>
112        </copy>
113        </sequential>
114      </macrodef>
115    
116      <defjdklocations v="6"/>
117      <defjdklocations v="7"/>
118      <defjdklocations v="8"/>
119      <defjdklocations v="9"/>
120    
121    <!-- Source locations -->    <!-- Source locations -->
122    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
   <property name="emulation.src.dir"    location="${basedir}/src/emulation"/>  
123    <property name="test.src.dir"         location="${basedir}/src/test"/>    <property name="test.src.dir"         location="${basedir}/src/test"/>
124    <property name="ant.src.dir"          location="${basedir}/etc/ant"/>    <property name="loops.src.dir"        location="${basedir}/src/loops"/>
125    <property name="stylesheet.dir"       location="${basedir}/etc/xsl"/>    <property name="tck.src.dir"          location="${test.src.dir}/tck"/>
126      <property name="jtreg.src.dir"        location="${test.src.dir}/jtreg"/>
127    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
128    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
129      <property name="topsrc.dir"           location="${basedir}/src"/>
130    <!-- Distribution locations -->    <property name="4jdk7src.dir"         location="${topsrc.dir}/jdk7"/>
131    <property name="dist.javadocs.dir"    location="${dist.dir}/docs"/>    <property name="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>
132      <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>
133      <property name="jsr166esrc.dir"       location="${topsrc.dir}/jsr166e"/>
134      <property name="extra166ysrc.dir"     location="${topsrc.dir}/extra166y"/>
135    
136      <!-- Javadoc locations -->
137      <property name="docs.dir"          location="${build.dir}/docs"/>
138      <property name="4jdk7docs.dir"     location="${build.4jdk7.dir}/docs"/>
139      <property name="jsr166xdocs.dir"   location="${build.jsr166x.dir}/docs"/>
140      <property name="jsr166ydocs.dir"   location="${build.jsr166y.dir}/docs"/>
141      <property name="jsr166edocs.dir"   location="${build.jsr166e.dir}/docs"/>
142      <property name="extra166ydocs.dir" location="${build.extra166y.dir}/docs"/>
143    
144      <property name="dist.docs.dir"          location="${dist.dir}/docs"/>
145      <property name="dist.4jdk7docs.dir"     location="${dist.dir}/jsr166-4jdk7docs"/>
146      <property name="dist.jsr166xdocs.dir"   location="${dist.dir}/jsr166xdocs"/>
147      <property name="dist.jsr166ydocs.dir"   location="${dist.dir}/jsr166ydocs"/>
148      <property name="dist.jsr166edocs.dir"   location="${dist.dir}/jsr166edocs"/>
149      <property name="dist.extra166ydocs.dir" location="${dist.dir}/extra166ydocs"/>
150    
151    <!-- Jar locations -->    <!-- Jar locations -->
152    <property name="product.jar"          location="${build.lib.dir}/jsr166.jar"/>    <property name="product.jar"      location="${build.dir}/jsr166.jar"/>
153    <property name="javac.jar"            location="${lib.dir}/javac.jar"/>    <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
154    <property name="collect.jar"          location="${lib.dir}/collect.jar"/>    <property name="jsr166x.jar"      location="${build.jsr166x.dir}/jsr166x.jar"/>
155    <property name="junit.jar"            location="${lib.dir}/junit.jar"/>    <property name="jsr166y.jar"      location="${build.jsr166y.dir}/jsr166y.jar"/>
156    <property name="rt.jar"               location="${java.home}/lib/rt.jar"/>    <property name="jsr166e.jar"      location="${build.jsr166e.dir}/jsr166e.jar"/>
157      <property name="extra166y.jar"    location="${build.extra166y.dir}/extra166y.jar"/>
158      <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
159    
160      <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag -->
161      <property name="java5.docroot.url"      value="http://docs.oracle.com/javase/1.5.0/docs"/>
162      <property name="java6.docroot.url"      value="http://docs.oracle.com/javase/6/docs"/>
163      <property name="java7.docroot.url"      value="http://docs.oracle.com/javase/7/docs"/>
164      <!-- The expected canonical location does not yet exist as of 2014-02 -->
165      <!-- <property name="java8.docroot.url" value="http://docs.oracle.com/javase/8/docs"/> -->
166      <property name="java8.docroot.url"      value="http://download.java.net/jdk8/docs"/>
167      <!-- No published jdk9 docs exist as of 2014-02 -->
168      <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> -->
169      <property name="java9.docroot.url"      value="${java8.docroot.url}"/>
170      <!-- Default jdk doc location (latest stable release seems best) -->
171      <property name="java.docroot.url"       value="${java7.docroot.url}"/>
172    
173      <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
174      <property name="java5.api.url"      value="${java5.docroot.url}/api/"/>
175      <property name="java6.api.url"      value="${java6.docroot.url}/api/"/>
176      <property name="java7.api.url"      value="${java7.docroot.url}/api/"/>
177      <property name="java8.api.url"      value="${java8.docroot.url}/api/"/>
178      <property name="java9.api.url"      value="${java9.docroot.url}/api/"/>
179      <property name="java.api.url"       value="${java.docroot.url}/api/"/>
180    
181      <!-- Define the "jtreg" task -->
182      <!-- See the docs in "jtreg -onlineHelp" -->
183      <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"
184               classpath="${lib.dir}/jtreg.jar" />
185    
186      <!-- Test classpath -->
187      <path id="test.classpath">
188        <pathelement location="${build.testcases.dir}"/>
189        <pathelement location="${junit.jar}"/>
190      </path>
191    
192      <macrodef name="run-tck-tests">
193        <attribute name="tck.src.dir" default="${tck.src.dir}"/>
194        <attribute name="target"/>
195        <attribute name="compile-target" default="@{target}"/>
196        <attribute name="workdir"/>
197        <attribute name="classes"/>
198        <attribute name="jvmflags" default="-ea -esa"/>
199        <element name="javac-elements" optional="true"/>
200        <sequential>
201    
202        <mkdir dir="@{workdir}/tck-classes"/>
203    
204        <javac srcdir="@{tck.src.dir}"
205               destdir="@{workdir}/tck-classes"
206               debug="${build.debug}"
207               debuglevel="${build.debuglevel}"
208               deprecation="${build.deprecation}"
209               source="@{compile-target}"
210               target="@{compile-target}"
211               classpath="${junit.jar}"
212               bootclasspath="@{classes}:${bootclasspath@{compile-target}}"
213               includeAntRuntime="false"
214               includeJavaRuntime="false"
215               executable="${javac@{compile-target}}"
216               fork="true">
217    
218          <include name="*.java"/>
219          <compilerarg value="-XDignore.symbol.file=true"/>
220          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
221          <compilerarg line="${build.args}"/>
222          <javac-elements/>
223    
224    <!--      </javac>
    ! Bootclasspath munging for source compilation.  
    -->  
225    
226    <path id="javac.bootclasspath.prefix">      <java classname="${jsr166.tckTestClass}"
227      <!-- <pathelement location="${src.dir}"/> -->            failonerror="true"
228      <pathelement location="${javac.jar}"/>            jvm="${java@{target}}"
229              fork="true">
230            <jvmarg value="-Xbootclasspath/p:@{classes}"/>
231            <jvmarg line="@{jvmflags}"/>
232            <sysproperty key="jsr166.profileTests"     value="${jsr166.profileTests}"/>
233            <sysproperty key="jsr166.profileThreshold" value="${jsr166.profileThreshold}"/>
234            <sysproperty key="jsr166.runsPerTest"      value="${jsr166.runsPerTest}"/>
235            <classpath>
236              <pathelement location="${junit.jar}"/>
237              <pathelement location="@{workdir}/tck-classes"/>
238            </classpath>
239        </java>
240    
241        </sequential>
242      </macrodef>
243    
244      <macrodef name="run-jtreg-tests">
245        <!-- ant -Djtreg.src.dir=src/test/jtreg/util/concurrent/CompletableFuture test-jtreg -->
246        <attribute name="jtreg.src.dir" default="${jtreg.src.dir}"/>
247        <attribute name="source" default="7"/>
248        <attribute name="target"/>
249        <attribute name="workdir"/>
250        <attribute name="classes"/>
251        <attribute name="jtregflags" default=""/>
252        <sequential>
253        <delete dir="@{workdir}/JTwork"   quiet="true"/>
254        <delete dir="@{workdir}/JTreport" quiet="true"/>
255        <mkdir dir="@{workdir}/JTwork/scratch"/>
256        <mkdir dir="@{workdir}/JTreport"/>
257        <jtreg dir="@{jtreg.src.dir}"
258               jdk="${jdk@{target}.home}"
259               workDir="@{workdir}/JTwork"
260               reportDir="@{workdir}/JTreport">
261    
262          <arg value="-Xbootclasspath/p:@{classes}"/>
263          <arg value="-agentvm"/>
264          <arg value="-v:nopass,fail"/>
265          <arg value="-vmoptions:-esa -ea"/>
266          <arg value="-automatic"/>
267          <arg value="-k:!ignore"/>
268          <arg line="@{jtregflags}"/>
269        </jtreg>
270        </sequential>
271      </macrodef>
272    
273      <!-- ALoops classpath -->
274      <path id="loops.classpath">
275        <pathelement location="${build.loops.dir}"/>
276    </path>    </path>
277    
278    <path id="javac.bootclasspath">    <!-- Support @jls tag, used in jdk8+ javadoc -->
279      <!-- <pathelement location="${src.dir}"/> -->    <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
280      <pathelement location="${collect.jar}"/>    <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
     <pathelement location="${rt.jar}"/>  
   </path>  
281    
282    <!-- Flatten bootclasspath prefix into a platform-appropriate string -->    <!-- Main targets -->
   <property name="javac.bootclasspath.prefix"  
            refid="javac.bootclasspath.prefix"/>  
   
   <!-- Turn the flattened bootclasspath prefix into a javac argument -->  
   <property name="build.bootclasspath.arg"  
            value='-J-Xbootclasspath/p:${javac.bootclasspath.prefix}'/>  
283    
284      <property name="build.main.java.version" value="9"/>
285      <property name="build.main.javac" value="${javac9}"/>
286    
287    <!--    <target name="dists"
288     ! Bootclasspath munging for testing, so JUnit can test our local            depends="dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
289     ! modifications to java.*.            description="Builds all public jars and docs"/>
    -->  
290    
291    <path id="test.classpath">    <target name="compile"
292      <pathelement location="${product.jar}"/>            depends="configure-compiler"
293      <pathelement location="${build.testcases.dir}"/>            description="Compiles src/main sources to build dir">
     <pathelement location="${junit.jar}"/>  
   </path>  
294    
295    <!-- Flatten test classpath into a platform-appropriate string -->      <mkdir dir="${build.classes.dir}"/>
   <property name="test.classpath" refid="test.classpath"/>  
296    
297    <!-- Turn the flattened test classpath into a javac argument -->      <javac srcdir="${src.dir}"
298    <property name="test.bootclasspath.arg"             destdir="${build.classes.dir}"
299             value='-Xbootclasspath/p:${test.classpath}'/>             debug="${build.debug}"
300               debuglevel="${build.debuglevel}"
301               deprecation="${build.deprecation}"
302               classpath=""
303               includeAntRuntime="false"
304               includeJavaRuntime="false"
305               executable="${build.main.javac}"
306               fork="true">
307    
308          <include name="**/*.java"/>
309          <compilerarg value="-Xprefer:source"/>
310          <compilerarg value="-XDignore.symbol.file=true"/>
311          <compilerarg value="-Xlint:all"/>
312          <compilerarg value="-Xdoclint:all/protected"/>
313          <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
314          <compilerarg line="${build.args}"/>
315    
316        </javac>
317      </target>
318    
319    
320    <!-- Files excluded from emulation and dist-docs -->    <target name="jar"
321    <patternset id="emulation.excludes">            depends="compile"
322      <exclude name="java/util/Random.*"/>            description="Builds library jar from compiled sources">
     <exclude name="sun/misc/Unsafe.*"/>  
   </patternset>  
323    
324        <jar destfile="${product.jar}">
325          <fileset dir="${build.classes.dir}"/>
326        </jar>
327      </target>
328    
329    
330    <!-- Main targets -->    <target name="docs"
331              description="Builds javadocs for src/main to dist dir">
332    
333    <target name="compile"      <delete dir="${docs.dir}"/>
334            depends="init"      <mkdir dir="${docs.dir}"/>
           description="Compiles main sources to build folder">  
335    
336      <mkdir dir="${build.classes.dir}"/>      <!-- the packagenames="none" hack below prevents scanning the -->
337        <!-- sourcepath for packages -->
338    
339      <javac srcdir="${src.dir}"      <javadoc destdir="${docs.dir}"
340            destdir="${build.classes.dir}"               packagenames="none"
341              debug="${build.debug}"               link="${java9.api.url}"
342         debuglevel="${build.debuglevel}"               overview="${src.dir}/intro.html"
343        deprecation="${build.deprecation}"               access="${build.javadoc.access}"
344             source="${build.sourcelevel}"               sourcepath="${src.dir}:${jdk9src.dir}"
345               fork="true">               classpath=""
346                 executable="${javadoc9}">
347          <fileset dir="${src.dir}" defaultexcludes="yes">
348            <include name="**/*.java"/>
349          </fileset>
350          <arg line="-Xdocrootparent ${java9.docroot.url}"/>
351          <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
352          <arg value="-XDignore.symbol.file=true"/>
353          <arg value="-tag"/>
354          <arg value="${javadoc.jls.option}"/>
355          <arg value="-tag"/>
356          <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>
357          <arg value="-tag"/>
358          <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
359          <arg value="-tag"/>
360          <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
361        </javadoc>
362      </target>
363    
       <bootclasspath refid="javac.bootclasspath"/>  
       <compilerarg line="${build.javac.args}"/>  
364    
365      </javac>    <target name="dist"
366              depends="dist-clean, dist-jar, dist-docs"
367              description="Puts all distributable products in single hierarchy"/>
368    
369    
370      <target name="release"
371              depends="dist"
372              description="Puts entire CVS tree, plus distribution productions, in a jar">
373    
374        <property name="release.jar" value="dist/jsr166-${version}-dist.jar"/>
375    
376        <jar basedir="${basedir}" destfile="${release.jar}">
377          <!-- <exclude name="build/**"/> -->
378          <exclude name="${release.jar}"/>
379          <exclude name="user.properties"/>
380          <exclude name="etc/notes/**"/>
381          <exclude name="src/emulation/**"/>
382          <exclude name="**/SyntaxTest.java"/>
383          <exclude name="**/SuperfluousAbstract.java"/>
384        </jar>
385    </target>    </target>
386    
387    
388    <target name="jar"    <target name="clean"
389            depends="check-emulation, init-jar, native-jar, emulation-jar"            description="Removes all build products">
           description="Builds library jar from compiled sources"/>  
390    
391        <delete dir="${build.dir}"/>
392    
393    <target name="test"    </target>
           depends="init, check-junit, report-tests"  
           description="Runs all tests (requires JUnit 3.8.1 in ${ant.home}/lib)" />  
394    
395    
396    <target name="checkstyle"    <target name="dist-clean"
397            depends="filter-src"            description="Removes all build and distribution products">
           description="Reports on style errors in Java source (verbose, mostly chaff)">  
398    
399      <taskdef resource="checkstyletask.properties"      <delete dir="${build.dir}"/>
400              classpath="${lib.dir}/checkstyle-all-2.4.jar"/>      <delete dir="${dist.dir}"/>
401    
402      </target>
403    
     <checkstyle>  
       <formatter type="plain"/>  <!-- also available: type="xml" -->  
       <fileset dir="${build.filter.src.dir}" includes="**/*.java"/>  
     </checkstyle>  
404    
405      <target name="dist-jar"
406              depends="clean, jar">
407        <copy file="${product.jar}" todir="${dist.dir}"/>
408    </target>    </target>
409    
410      <target name="dist-docs"
411              depends="clean, docs">
412        <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
413      </target>
414    
   <target name="doccheck"  
           depends="filter-src"  
           description="Reports on javadoc style errors (not working yet)">  
415    
416      <delete dir="${build.doccheck.dir}"/>    <target name="test-tck"
417      <mkdir dir="${build.doccheck.dir}"/>            depends="jar"
418              description="Runs tck tests for main directly">
419    
420      <javadoc doclet="com.sun.tools.doclets.doccheck.DocCheck"      <run-tck-tests
421           docletpath="${lib.dir}/doccheck.jar"        target="${build.main.java.version}"
422              destdir="${build.doccheck.dir}">        workdir="${build.dir}"
423        <packageset dir="${build.filter.src.dir}"/>        classes="${product.jar}"/>
424      </javadoc>    </target>
425    
426      <target name="test-jtreg"
427              depends="jar"
428              description="Runs jtreg tests for main using the jtreg ant task">
429        <run-jtreg-tests
430           target="${build.main.java.version}"
431           workdir="${build.dir}"
432           classes="${product.jar}"/>
433    </target>    </target>
434    
435      <target name="test"
436              depends="test-tck, test-jtreg"
437              description="Runs tck and jtreg tests for main">
438      </target>
439    
440    <target name="docs"    <target name="test89"
441            depends="filter-src"            description="Runs tck and jtreg tests for main for multiple java versions">
           description="Builds javadocs with custom tags to build folder">  
442    
443      <delete dir="${build.javadocs.dir}"/>      <antcall target="clean"/>
444      <mkdir dir="${build.javadocs.dir}"/>      <antcall target="test">
445          <param name="build.main.java.version" value="8"/>
446          <param name="build.main.javac" value="${javac8}"/>
447        </antcall>
448    
449      <javadoc destdir="${build.javadocs.dir}"      <antcall target="clean"/>
450                  link="http://java.sun.com/j2se/1.4.1/docs/api"      <antcall target="test">
451              overview="${src.dir}/intro.html"        <param name="build.main.java.version" value="9"/>
452                source="${build.docsourcelevel}">        <param name="build.main.javac" value="${javac9}"/>
453        </antcall>
       <tag name="revised" description="Last revised:"/>  
       <tag name="spec"    description="Specified by:"/>  
       <tag name="editor"  description="Last edited by:"/>  
       <tag name="fixme"   description="FIX ME:"/>  
454    
455        <packageset dir="${build.filter.src.dir}"/>    </target>
456    
457      </javadoc>  
458    
459      <target name="configure-compiler">
460    
461        <property name="unchecked.option" value="-Xlint:unchecked"/>
462    
463        <condition property="warnunchecked.arg" value="${unchecked.option}">
464          <istrue value="${build.warnunchecked}"/>
465        </condition>
466    
467        <property name="warnunchecked.arg" value=""/>
468    
469    
470        <!-- Common options in javac invocations -->
471        <property name="build.args" value="${warnunchecked.arg}"/>
472    
473    </target>    </target>
474    
475    
476    <target name="strip"  
477            depends="init"    <!-- Various demos and test programs -->
478            description="Strip generics from java source (not working yet)">  
479    
480      <mkdir dir="${build.stripped.dir}"/>    <target name="loops" depends="configure-compiler"
481              description="Benchmark from Doug Lea's AQS paper">
482      <!--  
483       # javac -s doesn't reliably generate compilable code. It generates      <mkdir dir="${build.loops.dir}"/>
484       # bridge methods (marked as "synthetic") that can have identical  
485       # signatures to existing methods except for the return value.      <javac srcdir="${loops.src.dir}"
486       -->            destdir="${build.loops.dir}"
     <javac srcdir="${src.dir}"  
           destdir="${build.stripped.dir}"  
487              debug="${build.debug}"              debug="${build.debug}"
488         debuglevel="${build.debuglevel}"         debuglevel="${build.debuglevel}"
489        deprecation="${build.deprecation}"        deprecation="${build.deprecation}"
490             source="${build.sourcelevel}"             source="${build.sourcelevel}"
491               fork="true">               fork="true">
492    
493        <bootclasspath refid="javac.bootclasspath"/>        <compilerarg line="${build.args}"/>
494        <compilerarg line="${build.javac.args} -s"/>        <classpath refid="loops.classpath"/>
495          <compilerarg value="-XDignore.symbol.file=true"/>
496    
497      </javac>      </javac>
498    
499        <java classname="ALoops" fork="true">
500          <classpath refid="loops.classpath"/>
501        </java>
502    
503    </target>    </target>
504    
505    
506    <target name="dist"    <!-- jsr166 4jdk7 -->
507            depends="init, dist-clean, dist-jar, dist-docs"  
508            description="Puts all distributable products in single hierarchy"/>    <target name="4jdk7compile"
509              depends="configure-compiler"
510              description="Compiles src/jdk7 sources, targeting jdk7">
511    
512        <mkdir dir="${build.4jdk7.classes.dir}"/>
513    
514        <javac srcdir="${4jdk7src.dir}"
515               destdir="${build.4jdk7.classes.dir}"
516               debug="${build.debug}"
517               debuglevel="${build.debuglevel}"
518               deprecation="${build.deprecation}"
519               source="6"
520               classpath=""
521               bootclasspath="${bootclasspath6}"
522               includeAntRuntime="false"
523               includeJavaRuntime="false"
524               executable="${javac7}"
525               fork="true">
526    
527          <include name="**/*.java"/>
528          <compilerarg value="-Xprefer:source"/>
529          <compilerarg value="-XDignore.symbol.file=true"/>
530          <compilerarg value="-Xlint:all"/>
531          <compilerarg line="${build.args}"/>
532    
533    <target name="clean"      </javac>
534            description="Removes all build products">    </target>
535    
536      <delete dir="${build.dir}"/>    <target name="4jdk7doclint"
537      <delete dir="${build.classes.dir}"/>            depends="configure-compiler"
538      <delete dir="${build.lib.dir}"/>            description="Finds doclint warnings">
539    
540        <mkdir dir="${build.4jdk7.classes.dir}"/>
541    
542        <javac srcdir="${4jdk7src.dir}"
543               destdir="${build.4jdk7.classes.dir}"
544               debug="${build.debug}"
545               debuglevel="${build.debuglevel}"
546               deprecation="${build.deprecation}"
547               source="6"
548               classpath=""
549               bootclasspath="${bootclasspath7}"
550               includeAntRuntime="false"
551               includeJavaRuntime="false"
552               executable="${javac8}"
553               fork="true">
554    
555          <include name="**/*.java"/>
556          <compilerarg value="-Xprefer:source"/>
557          <compilerarg value="-XDignore.symbol.file=true"/>
558          <compilerarg value="-Xlint:all"/>
559          <compilerarg value="-Xdoclint:all/protected"/>
560          <compilerarg line="${build.args}"/>
561    
562        </javac>
563    </target>    </target>
564    
565    
566    <target name="dist-clean"    <target name="4jdk7jar"
567            description="Removes all build and distribution products">            depends="4jdk7compile"
568              description="Builds library jar from compiled sources">
569    
570      <delete dir="${dist.dir}"/>      <jar destfile="${4jdk7product.jar}">
571          <fileset dir="${build.4jdk7.classes.dir}"/>
572        </jar>
573    
574    </target>    </target>
575    
576    
577    <target name="dist-docs"    <target name="4jdk7-test-tck"
578            depends="filter-src"            depends="4jdk7jar"
579            description="Builds javadocs without custom tags to dist folder">            description="Runs tck tests for jsr166-4jdk7 directly">
580    
581        <run-tck-tests
582          target="7"
583          workdir="${build.4jdk7.dir}"
584          classes="${4jdk7product.jar}">
585          <javac-elements>
586            <!-- JDK8+ test classes -->
587            <exclude name="*8Test.java"/>
588            <exclude name="*9Test.java"/>
589            <exclude name="DoubleAccumulatorTest.java"/>
590            <exclude name="DoubleAdderTest.java"/>
591            <exclude name="LongAccumulatorTest.java"/>
592            <exclude name="LongAdderTest.java"/>
593            <exclude name="CompletableFutureTest.java"/>
594            <exclude name="SplittableRandomTest.java"/>
595            <exclude name="StampedLockTest.java"/>
596          </javac-elements>
597        </run-tck-tests>
598      </target>
599    
     <delete dir="${dist.javadocs.dir}"/>  
     <mkdir dir="${dist.javadocs.dir}"/>  
600    
601      <javadoc destdir="${dist.javadocs.dir}"    <target name="4jdk7-test-tck-junit"
602                  link="http://java.sun.com/j2se/1.4.1/docs/api"            depends="4jdk7compile"
603              overview="${src.dir}/intro.html"            description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">
               source="${build.docsourcelevel}">  
604    
605        <packageset dir="${build.filter.src.dir}"/>      <junit printsummary="true"
606               showoutput="true"
607               errorProperty="junit.failed"
608               failureProperty="junit.failed"
609               includeantruntime="true"
610               jvm="${java7}"
611               fork="true">
612    
613          <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
614          <jvmarg value="-server"/>
615    
616          <classpath>
617            <pathelement location="${junit.jar}"/>
618            <pathelement location="${build.4jdk7.tck.classes.dir}"/>
619          </classpath>
620    
621          <formatter type="brief"/>
622    
623          <test name="${jsr166.tckTestClass}" haltonfailure="no">
624          </test>
625    
626        </junit>
627      </target>
628    
629      <target name="4jdk7-test-jtreg"
630              depends="4jdk7jar"
631              description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">
632        <run-jtreg-tests
633           target="7"
634           workdir="${build.4jdk7.dir}"
635           classes="${4jdk7product.jar}"
636           jtregflags="-exclude:${jtreg.src.dir}/jdk8tests"/>
637      </target>
638    
     </javadoc>  
639    
640      <target name="4jdk7-test"
641              depends="4jdk7-test-tck, 4jdk7-test-jtreg"
642              description="Runs tck and jtreg tests for jsr166-4jdk7">
643    </target>    </target>
644    
645    
646      <target name="4jdk7docs"
647              description="Builds javadocs for src/jdk7 to dist dir">
648    
649        <delete dir="${4jdk7docs.dir}"/>
650        <mkdir dir="${4jdk7docs.dir}"/>
651    
652        <javadoc destdir="${4jdk7docs.dir}"
653                 packagenames="none"
654                 link="${java7.api.url}"
655                 overview="${4jdk7src.dir}/intro.html"
656                 access="${build.javadoc.access}"
657                 sourcepath="${4jdk7src.dir}:${jdk7src.dir}"
658                 classpath=""
659                 executable="${javadoc7}">
660          <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
661            <include name="**/*.java"/>
662          </fileset>
663          <arg line="-Xdocrootparent ${java7.docroot.url}"/>
664          <arg value="-XDignore.symbol.file=true"/>
665        </javadoc>
666      </target>
667    
   <!-- Internal targets -->  
668    
669    <target name="set-warnings-if" if="build.warnings">    <target name="4jdk7dist"
670              depends="4jdk7dist-jar, 4jdk7dist-docs"
671              description="Puts all distributable products in single hierarchy"/>
672    
673      <property name="build.warnings.arg" value="-warnunchecked"/>  
674      <target name="4jdk7clean"
675              description="Removes all 4jdk7 build products">
676    
677        <delete dir="${build.4jdk7.dir}"/>
678    
679    </target>    </target>
680    
681    
682    <target name="set-warnings-unless" unless="build.warnings">    <target name="4jdk7dist-jar"
683              depends="4jdk7clean, 4jdk7jar">
684        <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
685      </target>
686    
     <property name="build.warnings.arg" value=""/>  
687    
688      <target name="4jdk7dist-docs"
689              depends="4jdk7clean, 4jdk7docs">
690        <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
691    </target>    </target>
692    
693    
694    <target name="init"    <!-- jsr166x -->
           depends="set-warnings-if, set-warnings-unless">  
695    
696      <!-- Version is kept in a separate file -->    <target name="jsr166xcompile"
697      <loadfile property="version" srcFile="version.properties"/>            depends="configure-compiler"
698      <echo>Building JSR-166 version ${version}</echo>            description="Compiles jsr166x sources to build dir">
699    
700      <!-- Common options in javac invocations -->      <mkdir dir="${build.jsr166x.classes.dir}"/>
701      <property name="build.javac.args"  
702               value="${build.bootclasspath.arg} ${build.warnings.arg} ${build.novariance.arg}"/>      <javac srcdir="${topsrc.dir}"
703               destdir="${build.jsr166x.classes.dir}"
704               debug="${build.debug}"
705               debuglevel="${build.debuglevel}"
706               deprecation="${build.deprecation}"
707               classpath=""
708               bootclasspath="${bootclasspath6}"
709               source="5"
710               includeAntRuntime="false"
711               includeJavaRuntime="false"
712               executable="${javac7}"
713               fork="true">
714    
715          <include name="jsr166x/**/*.java"/>
716          <compilerarg value="-XDignore.symbol.file=true"/>
717          <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
718          <compilerarg line="${build.args}"/>
719    
720        </javac>
721    </target>    </target>
722    
723    
724    <target name="init-jar">    <target name="jsr166xjar"
725              depends="jsr166xcompile"
726              description="Builds library jar from compiled sources">
727    
728      <mkdir dir="${build.lib.dir}"/>      <jar destfile="${jsr166x.jar}">
729          <fileset dir="${build.jsr166x.classes.dir}"/>
730        </jar>
731    
732    </target>    </target>
733    
734    
735    <target name="native-jar"    <target name="jsr166xdocs"
736            depends="compile"            description="Builds javadocs to dist dir">
           unless="build.emulation.true">  
737    
738      <jar destfile="${product.jar}">      <delete dir="${jsr166xdocs.dir}"/>
739        <fileset dir="${build.classes.dir}"/>      <mkdir dir="${jsr166xdocs.dir}"/>
     </jar>  
740    
741        <javadoc destdir="${jsr166xdocs.dir}"
742                 packagenames="jsr166x.*"
743                 link="${java.api.url}"
744                 access="${build.javadoc.access}"
745                 sourcepath="${topsrc.dir}:${jdk6src.dir}"
746                 bootclasspath="${bootclasspath6}"
747                 source="5"
748                 executable="${javadoc7}">
749          <arg line="-Xdocrootparent ${java.docroot.url}"/>
750          <arg value="-XDignore.symbol.file=true"/>
751    
752        </javadoc>
753    </target>    </target>
754    
755    
756    <target name="compile-emulation"    <target name="jsr166xdist"
757            depends="init"            depends="jsr166xdist-jar, jsr166xdist-docs"
758            if="build.emulation.true">            description="Puts all distributable products in single hierarchy"/>
759    
     <mkdir dir="${build.emulation.dir}"/>  
760    
761      <javac srcdir="${emulation.src.dir}"    <target name="jsr166xclean"
762            destdir="${build.emulation.dir}"            description="Removes all jsr166x build products">
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
763    
764        <bootclasspath refid="javac.bootclasspath"/>      <delete dir="${build.jsr166x.dir}"/>
765        <compilerarg line="${build.javac.args}"/>  
766      </target>
767    
     </javac>  
768    
769      <target name="jsr166xdist-jar"
770              depends="jsr166xclean, jsr166xjar">
771        <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
772    </target>    </target>
773    
774      <target name="jsr166xdist-docs"
775              depends="jsr166xclean, jsr166xdocs">
776        <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
777      </target>
778    
779    <target name="emulation-jar"    <!-- jsr166y -->
           depends="compile-emulation"  
           if="build.emulation.true">  
780    
781    
782      <jar destfile="${product.jar}" duplicate="add">    <target name="jsr166ycompile"
783        <fileset dir="${build.classes.dir}">            depends="configure-compiler"
784          <patternset refid="emulation.excludes"/>            description="Compiles jsr166y sources">
785        </fileset>  
786        <fileset dir="${build.emulation.dir}"/>      <mkdir dir="${build.jsr166y.classes.dir}"/>
787      </jar>  
788        <javac srcdir="${topsrc.dir}"
789               destdir="${build.jsr166y.classes.dir}"
790               debug="${build.debug}"
791               debuglevel="${build.debuglevel}"
792               deprecation="${build.deprecation}"
793               source="6"
794               classpath=""
795               bootclasspath="${bootclasspath6}"
796               includeAntRuntime="false"
797               includeJavaRuntime="false"
798               executable="${javac7}"
799               fork="true">
800    
801          <include name="jsr166y/**/*.java"/>
802          <compilerarg value="-XDignore.symbol.file=true"/>
803          <compilerarg value="-Xlint:all"/>
804          <compilerarg line="${build.args}"/>
805    
806        </javac>
807    </target>    </target>
808    
809    
810    <target name="dist-jar"    <target name="jsr166yjar"
811            depends="clean, jar">            depends="jsr166ycompile"
812              description="Builds library jar from compiled sources">
813    
814      <copy file="${product.jar}" todir="${dist.dir}"/>      <jar destfile="${jsr166y.jar}" index="true">
815          <fileset dir="${build.jsr166y.classes.dir}"/>
816        </jar>
817    
818    </target>    </target>
819    
820    
821    <target name="compile-ant-filter"    <target name="jsr166ydocs"
822            depends="init">            description="Builds javadocs to dist dir">
823    
824      <mkdir dir="${build.ant.dir}"/>      <delete dir="${jsr166ydocs.dir}"/>
825        <mkdir dir="${jsr166ydocs.dir}"/>
826    
827      <javac srcdir="${ant.src.dir}"      <javadoc destdir="${jsr166ydocs.dir}"
828            destdir="${build.ant.dir}"               packagenames="jsr166y.*"
829             source="1.4"               link="${java.api.url}"
830      />               access="${build.javadoc.access}"
831                 sourcepath="${topsrc.dir}:${jdk6src.dir}"
832                 bootclasspath="${bootclasspath6}"
833                 source="6"
834                 executable="${javadoc7}">
835          <arg line="-Xdocrootparent ${java.docroot.url}"/>
836          <arg value="-XDignore.symbol.file=true"/>
837    
838        </javadoc>
839    </target>    </target>
840    
841    
842    <target name="filter-src"    <target name="jsr166ydist"
843            depends="compile-ant-filter">            depends="jsr166ydist-jar, jsr166ydist-docs"
844              description="Puts all distributable products in single hierarchy"/>
845    
     <mkdir dir="${build.filter.src.dir}"/>  
846    
847      <copy todir="${build.filter.src.dir}">    <target name="jsr166yclean"
848        <fileset dir="${src.dir}">            description="Removes all jsr166y build products">
         <include name="**/*.html"/>  
       </fileset>  
     </copy>  
849    
850      <copy todir="${build.filter.src.dir}">      <delete dir="${build.jsr166y.dir}"/>
       <fileset dir="${src.dir}">  
         <exclude name="**/*.html"/>  
         <patternset refid="emulation.excludes"/>  
       </fileset>  
       <filterchain>  
         <filterreader classname="jsr166.ant.filters.ReplaceFilter"  
                       classpath="${build.ant.dir}">  
           <!--  
            # These arguments are to get rid of angle-bracketed type  
            # parameters so that javadoc can run on the result. The  
            # following heuristic that 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.)  
            -->  
           <param name="notmatching" value="^\s+\*\s.*$"/>  
           <param name="pattern" value="&lt;[^|>()]+?>+"/>  
           <param name="replacement" value=" "/>  
         </filterreader>  
         <filterreader classname="jsr166.ant.filters.ReplaceFilter"  
                       classpath="${build.ant.dir}">  
           <!--  
            # These arguments are to uncomment lines beginning with  
            # "//@" so that javadoc can see imports that are needed  
            # to resolve links but that shouldn't be in the compiled  
            # code.  
            -->  
           <param name="matching" value="^//@.*$"/>  
           <param name="pattern" value="^//@"/>  
           <param name="replacement" value=""/>  
         </filterreader>  
       </filterchain>  
     </copy>  
851    
852    </target>    </target>
853    
854    
855    <target name="compile-tests"    <target name="jsr166ydist-jar"
856            depends="jar">            depends="jsr166yclean, jsr166yjar">
857        <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
858      </target>
859    
860      <mkdir dir="${build.testcases.dir}"/>    <target name="jsr166ydist-docs"
861              depends="jsr166yclean, jsr166ydocs">
862        <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
863      </target>
864    
     <javac srcdir="${test.src.dir}"  
           destdir="${build.testcases.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
865    
866        <classpath refid="test.classpath"/>    <!-- extra166y -->
867        <bootclasspath refid="javac.bootclasspath"/>  
868        <compilerarg line="${build.javac.args}"/>  
869      <target name="extra166ycompile"
870              depends="configure-compiler, jsr166yjar"
871              description="Compiles extra166y sources">
872    
873        <mkdir dir="${build.extra166y.classes.dir}"/>
874    
875        <javac srcdir="${topsrc.dir}"
876               destdir="${build.extra166y.classes.dir}"
877               debug="${build.debug}"
878               debuglevel="${build.debuglevel}"
879               deprecation="${build.deprecation}"
880               bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
881               classpath=""
882               source="6"
883               includeAntRuntime="false"
884               includeJavaRuntime="false"
885               executable="${javac7}"
886               fork="true">
887    
888          <include name="extra166y/**/*.java"/>
889          <compilerarg value="-XDignore.symbol.file=true"/>
890          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
891          <compilerarg line="${build.args}"/>
892    
893      </javac>      </javac>
894      </target>
895    
896    
897      <target name="extra166yjar"
898              depends="extra166ycompile"
899              description="Builds library jar from compiled sources">
900    
901        <jar destfile="${extra166y.jar}" index="true">
902          <fileset dir="${build.extra166y.classes.dir}"/>
903        </jar>
904    
905    </target>    </target>
906    
907    
908    <target name="run-tests"    <target name="extra166ydocs"
909            depends="compile-tests">            description="Builds javadocs to build dir">
910    
911      <!-- May be overridden by user.properties -->      <delete dir="${extra166ydocs.dir}"/>
912      <property name="testcase" value="*"/>      <mkdir dir="${extra166ydocs.dir}"/>
913    
914      <mkdir dir="${build.reports.dir}"/>      <javadoc destdir="${extra166ydocs.dir}"
915                 packagenames="extra166y.*"
916                 link="${java.api.url}"
917                 access="${build.javadoc.access}"
918                 sourcepath="${topsrc.dir}:${jdk6src.dir}"
919                 bootclasspath="${bootclasspath6}"
920                 source="6"
921                 executable="${javadoc7}">
922          <arg line="-Xdocrootparent ${java.docroot.url}"/>
923          <arg value="-XDignore.symbol.file=true"/>
924    
925      <junit printsummary="true"      </javadoc>
926               showoutput="true"    </target>
           errorProperty="junit.failed"  
         failureProperty="junit.failed"  
                     dir="${build.reports.dir}"  
                    fork="true">  
   
       <jvmarg value="${test.bootclasspath.arg}"/>  
   
       <formatter type="xml"/>  
   
       <batchtest todir="${build.reports.dir}">  
         <fileset dir="${test.src.dir}">  
           <include name="**/${testcase}Test.java"/>  
         </fileset>  
       </batchtest>  
927    
928      </junit>  
929      <target name="extra166ydist"
930              depends="extra166ydist-jar, extra166ydist-docs"
931              description="Puts all distributable products in single hierarchy"/>
932    
933    
934      <target name="extra166yclean"
935              description="Removes all extra166y build products">
936    
937        <delete dir="${build.extra166y.dir}"/>
938    
939    </target>    </target>
940    
941    
942    <target name="report-tests"    <target name="extra166ydist-jar"
943            depends="run-tests">            depends="extra166yclean, extra166yjar">
944        <copy file="${extra166y.jar}" todir="${dist.dir}"/>
945      </target>
946    
947      <!-- Sets junit.report.format to frames if Xalan is present,    <target name="extra166ydist-docs"
948           otherwise sets it to noframes. -->            depends="extra166yclean, extra166ydocs">
949      <available property="junit.report.format"      <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
950                    value="frames"    </target>
951                classname="org.apache.xalan.lib.Redirect"  
952      />    <!-- jsr166e -->
953      <property name="junit.report.format" value="noframes"/>  
954      <property name="build.jsr166e.java.version" value="6"/>
955      <junitreport todir="${build.reports.dir}">    <property name="build.jsr166e.javac" value="${javac6}"/>
956        <fileset dir="${build.reports.dir}">  
957          <include name="TEST-*.xml"/>    <target name="jsr166ecompile"
958        </fileset>            depends="configure-compiler"
959        <report styledir="${stylesheet.dir}"            description="Compiles jsr166e sources">
960                  format="${junit.report.format}"  
961                   todir="${build.reports.dir}"      <mkdir dir="${build.jsr166e.classes.dir}"/>
962        />  
963      </junitreport>      <javac srcdir="${topsrc.dir}"
964               destdir="${build.jsr166e.classes.dir}"
965               debug="${build.debug}"
966               debuglevel="${build.debuglevel}"
967               deprecation="${build.deprecation}"
968               source="${build.jsr166e.java.version}"
969               classpath=""
970               includeAntRuntime="false"
971               includeJavaRuntime="false"
972               executable="${build.jsr166e.javac}"
973               fork="true">
974    
975          <include name="jsr166e/**/*.java"/>
976          <compilerarg value="-XDignore.symbol.file=true"/>
977          <compilerarg value="-Xlint:all"/>
978          <compilerarg line="${build.args}"/>
979    
980        </javac>
981      </target>
982    
983      <fail message="Test Cases Failed" if="junit.failed"/>    <!-- jsr166e: find doclint errors -->
984      <target name="jsr166edoclint">
985    
986        <mkdir dir="${build.jsr166e.classes.dir}"/>
987    
988        <javac srcdir="${topsrc.dir}"
989               destdir="${build.jsr166e.classes.dir}"
990               debug="${build.debug}"
991               debuglevel="${build.debuglevel}"
992               deprecation="${build.deprecation}"
993               source="${build.jsr166e.java.version}"
994               classpath=""
995               bootclasspath="${bootclasspath7}"
996               includeAntRuntime="false"
997               includeJavaRuntime="false"
998               executable="${javac8}"
999               fork="true">
1000    
1001          <include name="jsr166e/**/*.java"/>
1002          <compilerarg value="-XDignore.symbol.file=true"/>
1003          <compilerarg value="-Xlint:all"/>
1004          <compilerarg value="-Xdoclint:all/protected"/>
1005    
1006        </javac>
1007      </target>
1008    
1009    
1010      <target name="jsr166ejar"
1011              depends="jsr166ecompile"
1012              description="Builds library jar from compiled sources">
1013    
1014        <jar destfile="${jsr166e.jar}" index="true">
1015          <fileset dir="${build.jsr166e.classes.dir}"/>
1016        </jar>
1017    
1018    </target>    </target>
1019    
1020    
1021    <target name="check-junit">    <target name="jsr166edocs"
1022              description="Builds javadocs to build dir">
1023    
1024      <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->      <delete dir="${jsr166edocs.dir}"/>
1025      <available property="junit.available"      <mkdir dir="${jsr166edocs.dir}"/>
                classname="junit.framework.Protectable"/>  
1026    
1027      <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"      <javadoc destdir="${jsr166edocs.dir}"
1028            unless="junit.available"/>               packagenames="jsr166e.*"
1029                 link="${java.api.url}"
1030                 access="${build.javadoc.access}"
1031                 sourcepath="${topsrc.dir}:${jdk6src.dir}"
1032                 source="${build.jsr166e.java.version}"
1033                 executable="${javadoc7}">
1034          <arg line="-Xdocrootparent ${java.docroot.url}"/>
1035          <arg value="-XDignore.symbol.file=true"/>
1036    
1037        </javadoc>
1038    </target>    </target>
1039    
1040    
1041    <target name="check-emulation">    <target name="jsr166e-test-tck-one-java-version"
1042      <condition property="build.emulation.true">            depends="jsr166ejar">
1043        <or>  
1044          <isset property="build.emulation"/>      <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>
1045          <os family="windows"/>  
1046        </or>      <run-tck-tests
1047      </condition>        tck.src.dir="${test.src.dir}/tck-jsr166e"
1048          target="${build.jsr166e.java.version}"
1049          workdir="${build.jsr166e.dir}"
1050          classes="${jsr166e.jar}"/>
1051    </target>    </target>
1052    
1053      <target name="jsr166e-test-tck"
1054              description="Runs tck tests for jsr166e for multiple java versions">
1055    
1056    <!--     <antcall target="clean"/> -->
1057    <!--     <antcall target="jsr166e-test-tck-one-java-version"> -->
1058    <!--       <param name="build.jsr166e.java.version" value="8"/> -->
1059    <!--       <param name="build.jsr166e.javac" value="${javac8}"/> -->
1060    <!--     </antcall> -->
1061    
1062    <!-- Anthill targets -->      <antcall target="clean"/>
1063        <antcall target="jsr166e-test-tck-one-java-version">
1064          <param name="build.jsr166e.java.version" value="7"/>
1065          <param name="build.jsr166e.javac" value="${javac7}"/>
1066        </antcall>
1067    
1068    <target name="anthill-build"      <antcall target="clean"/>
1069            depends="jar, test, docs, dist-docs"/>      <antcall target="jsr166e-test-tck-one-java-version">
1070          <param name="build.jsr166e.java.version" value="6"/>
1071          <param name="build.jsr166e.javac" value="${javac6}"/>
1072        </antcall>
1073      </target>
1074    
   <target name="anthill-publish">  
1075    
1076      <copy todir="${deployDir}/docs/private">    <target name="jsr166e-test"
1077        <fileset dir="${build.javadocs.dir}"/>            depends="jsr166e-test-tck"
1078      </copy>            description="Runs all tests for jsr166e">
1079      </target>
1080    
1081      <copy todir="${deployDir}/docs/public">    <target name="jsr166edist"
1082        <fileset dir="${dist.javadocs.dir}"/>            depends="jsr166edist-jar, jsr166edist-docs"
1083      </copy>            description="Puts all distributable products in single hierarchy"/>
1084    
     <copy tofile="${deployDir}/index.html"  
           file="${basedir}/etc/anthill-index.html"/>  
1085    
1086      <copy todir="${deployDir}/notes">    <target name="jsr166eclean"
1087        <fileset dir="${basedir}/etc/notes"/>            description="Removes all jsr166e build products">
1088      </copy>      <delete dir="${build.jsr166e.dir}"/>
1089      </target>
1090    
1091    
1092      <target name="jsr166edist-jar"
1093              depends="jsr166eclean, jsr166ejar">
1094        <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1095      </target>
1096    
1097      <target name="jsr166edist-docs"
1098              depends="jsr166eclean, jsr166edocs">
1099        <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
1100      </target>
1101    
1102    
1103    <!-- Find buglets that can be detected by static build tools -->
1104    
1105      <target name="lint">
1106        <antcall target="dists">
1107          <param name="build.javadoc.access" value="private"/>
1108        </antcall>
1109    </target>    </target>
1110    
1111    

Legend:
Removed from v.1.31  
changed lines
  Added in v.1.154

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