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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.44  
changed lines
  Added in v.1.101

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