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

Diff of /jsr166/build.xml

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

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

Legend:
Removed from v.1.53  
changed lines
  Added in v.1.107

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