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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.47  
changed lines
  Added in v.1.129

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