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

Diff of /jsr166/build.xml

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

revision 1.10, Wed Dec 11 05:16:42 2002 UTC revision 1.26, Tue May 27 16:21:52 2003 UTC
# Line 1  Line 1 
1  <project name="jsr166" default="jar">  <project name="jsr166" default="usage">
2    
3    <description>    <description>
4      Build file for JSR-166      Build file for JSR-166
5    
6      Note that junit.jar must be in ${ant.home}/lib for the      JUnit 1.8 must be in ${ant.home}/lib for the test target to work.
     test target to work. [FIXME: This should be automatically  
     enforced by this build file by failing with a message if  
     junit.jar is not in the right place.]  
7    </description>    </description>
8    
9    
10      <target name="usage" description="Prints this message">
11        <echo>
12    ant [target], where target is one of:
13    
14     usage       (default) Prints this message
15     compile     Compiles all sources to build folder
16     jar         Builds library jar from compiled sources
17     test        Runs all tests (requires JUnit 1.8 in ${ant.home}/lib)
18     docs        Builds javadocs with custom tags to build folder
19     dist-docs   Builds javadocs without custom tags to dist folder
20     dist        Puts all distributable products in single hierarchy
21    
22     clean       Removes all build products
23     dist-clean  Removes all build and distribution products
24    
25     checkstyle  Reports on style errors in Java source (verbose, mostly chaff)
26     doccheck    Reports on javadoc style errors (not working yet)
27        </echo>
28      </target>
29    
30      <property file="user.properties"/>
31      <property name="testcase" value="*"/>
32    
33    <!-- Compilation options -->    <!-- Compilation options -->
34      <property name="build.sourcelevel"    value="1.5"/>
35      <property name="build.docsourcelevel" value="1.4"/>
36    <property name="build.debug"          value="true"/>    <property name="build.debug"          value="true"/>
37    <property name="build.debuglevel"     value="source,lines,vars"/>    <property name="build.debuglevel"     value="source,lines,vars"/>
38    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
39    <property name="build.sourcelevel"    value="1.5"/>    <!--
40      <property name="build.warnings"       value="true"/>
41      -->
42    
43    <!-- Build locations -->    <!-- Build locations -->
44    <property name="build.dir"            location="build"/>    <property name="build.dir"            location="build"/>
# Line 22  Line 47 
47    <property name="build.lib.dir"        location="${build.dir}/lib"/>    <property name="build.lib.dir"        location="${build.dir}/lib"/>
48    <property name="build.ant.dir"        location="${build.dir}/ant"/>    <property name="build.ant.dir"        location="${build.dir}/ant"/>
49    <property name="build.javadocs.dir"   location="${build.dir}/javadocs"/>    <property name="build.javadocs.dir"   location="${build.dir}/javadocs"/>
50      <property name="build.stripped.dir"   location="${build.dir}/stripped"/>
51    <property name="build.reports.dir"    location="${build.dir}/reports"/>    <property name="build.reports.dir"    location="${build.dir}/reports"/>
52      <property name="build.doccheck.dir"   location="${build.dir}/doccheck"/>
53    <property name="build.filter.src.dir" location="${build.dir}/filtersrc"/>    <property name="build.filter.src.dir" location="${build.dir}/filtersrc"/>
54    
55    <!-- Source locations -->    <!-- Source locations -->
56    <property name="src.dir"              location="${basedir}"/>    <property name="src.dir"              location="${basedir}/src/main"/>
57    <property name="test.src.dir"         location="${basedir}/etc/testcases"/>    <property name="test.src.dir"         location="${basedir}/src/test"/>
58    <property name="ant.src.dir"          location="${basedir}/etc/ant"/>    <property name="ant.src.dir"          location="${basedir}/etc/ant"/>
59    <property name="stylesheet.dir"       location="${basedir}/etc/xsl"/>    <property name="stylesheet.dir"       location="${basedir}/etc/xsl"/>
60    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
# Line 43  Line 70 
70    <property name="junit.jar"            location="${lib.dir}/junit.jar"/>    <property name="junit.jar"            location="${lib.dir}/junit.jar"/>
71    <property name="rt.jar"               location="${java.home}/lib/rt.jar"/>    <property name="rt.jar"               location="${java.home}/lib/rt.jar"/>
72    
73    <property name="gj.compiler.args"    <property name="javac.args"           value='-J-Xbootclasspath/p:$[src.dir]:${javac.jar}'/>
            value='-J-Xbootclasspath/p:${javac.jar} -deprecation -warnunchecked'  
   />  
74    
75    <path id="gj.compiler.bootclasspath">    <path id="javac.bootclasspath">
76        <pathelement location="${src.dir}"/>
77      <pathelement location="${collect.jar}"/>      <pathelement location="${collect.jar}"/>
78      <pathelement location="${rt.jar}"/>      <pathelement location="${rt.jar}"/>
79    </path>    </path>
# Line 57  Line 83 
83    </path>    </path>
84    
85    
86    <target name="compile">    <!-- Main targets -->
87    
88      <target name="compile" depends="init"
89              description="Compiles all sources to build folder">
90      <mkdir dir="${build.classes.dir}"/>      <mkdir dir="${build.classes.dir}"/>
91      <javac srcdir="${src.dir}"      <javac srcdir="${src.dir}"
92            destdir="${build.classes.dir}"            destdir="${build.classes.dir}"
# Line 67  Line 96 
96             source="${build.sourcelevel}"             source="${build.sourcelevel}"
97               fork="true">               fork="true">
98    
99        <bootclasspath refid="gj.compiler.bootclasspath"/>        <bootclasspath refid="javac.bootclasspath"/>
100        <compilerarg line="${gj.compiler.args}"/>        <compilerarg line="${javac.args} ${build.warnings.option}"/>
   
       <!-- need this because srcdir is basedir! -->  
       <include name="java/**/*.java"/>  
101    
102      </javac>      </javac>
103    </target>    </target>
104    
105    
106    <target name="jar" depends="compile">    <target name="jar" depends="compile"
107              description="Builds library jar from compiled sources">
108      <mkdir dir="${build.lib.dir}"/>      <mkdir dir="${build.lib.dir}"/>
109      <jar basedir="${build.classes.dir}"      <jar basedir="${build.classes.dir}"
110          destfile="${product.jar}"          destfile="${product.jar}"
# Line 85  Line 112 
112    </target>    </target>
113    
114    
115    <target name="test" depends="report-tests"/>    <target name="test" depends="init, check-junit, report-tests"
116              description="Runs all tests (requires JUnit 1.8 in ${ant.home}/lib)"/>
117    
118    
119      <target name="checkstyle" depends="filter-src"
120              description="Reports on style errors in Java source (verbose, mostly chaff)">
121        <taskdef resource="checkstyletask.properties"
122                classpath="${lib.dir}/checkstyle-all-2.4.jar"/>
123    
124        <checkstyle>
125          <formatter type="plain"/>  <!-- also available: type="xml" -->
126          <fileset dir="${build.filter.src.dir}" includes="**/*.java"/>
127        </checkstyle>
128      </target>
129    
130    
131      <target name="doccheck" depends="filter-src"
132              description="Reports on javadoc style errors (not working yet)">
133        <delete dir="${build.doccheck.dir}"/>
134        <mkdir dir="${build.doccheck.dir}"/>
135        <javadoc doclet="com.sun.tools.doclets.doccheck.DocCheck"
136             docletpath="${lib.dir}/doccheck.jar"
137                destdir="${build.doccheck.dir}">
138          <packageset dir="${build.filter.src.dir}"/>
139        </javadoc>
140      </target>
141    
142    
143    <target name="docs" depends="clean-filtered-src, filter-src"    <target name="docs" depends="filter-src"
144            description="Builds javadocs with custom tags to build folder">            description="Builds javadocs with custom tags to build folder">
145      <delete dir="${build.javadocs.dir}"/>      <delete dir="${build.javadocs.dir}"/>
146      <mkdir dir="${build.javadocs.dir}"/>      <mkdir dir="${build.javadocs.dir}"/>
147      <javadoc destdir="${build.javadocs.dir}"      <javadoc destdir="${build.javadocs.dir}"
148                  link="http://java.sun.com/j2se/1.4.1/docs/api"                  link="http://java.sun.com/j2se/1.4.1/docs/api"
149              overview="${src.dir}/intro.html"              overview="${src.dir}/intro.html"
150                source="${build.sourcelevel}">                source="${build.docsourcelevel}">
151    
152        <tag name="revised" description="Last revised:"/>        <tag name="revised" description="Last revised:"/>
153        <tag name="spec" description="Specified by:"/>        <tag name="spec" description="Specified by:"/>
154        <tag name="editor" description="Last edited by:"/>        <tag name="editor" description="Last edited by:"/>
155        <tag name="fixme" description="FIX ME:"/>        <tag name="fixme" description="FIX ME:"/>
156        <packageset dir="${build.filter.src.dir}">        <packageset dir="${build.filter.src.dir}"/>
         <include name="java/**"/>  
       </packageset>  
157    
158      </javadoc>      </javadoc>
159    </target>    </target>
160    
161    
162    <target name="dist-docs" depends="clean-filtered-src, filter-src"    <!--
163            description="Builds javadocs without custom tags to dist folder">     # javac -s doesn't reliably generate compilable code. It generates
164      <delete dir="${dist.javadocs.dir}"/>     # bridge methods (marked as "synthetic") that can have identical
165      <mkdir dir="${dist.javadocs.dir}"/>     # signatures to existing methods except for the return value.
166      <javadoc destdir="${dist.javadocs.dir}"     -->
167                  link="http://java.sun.com/j2se/1.4.1/docs/api"    <target name="strip" depends="init">
168              overview="${src.dir}/intro.html"      <mkdir dir="${build.stripped.dir}"/>
169                source="${build.sourcelevel}">      <javac srcdir="${src.dir}"
170              destdir="${build.stripped.dir}"
171        <packageset dir="${build.filter.src.dir}">              debug="${build.debug}"
172          <include name="java/**"/>         debuglevel="${build.debuglevel}"
173        </packageset>        deprecation="${build.deprecation}"
174               source="${build.sourcelevel}"
175      </javadoc>               fork="true">
   </target>  
176    
177          <bootclasspath refid="javac.bootclasspath"/>
178          <compilerarg line="${javac.args} ${build.warnings.option} -s"/>
179    
180    <target name="dist-jar" depends="clean, jar">      </javac>
     <copy file="${product.jar}" todir="${dist.dir}"/>  
181    </target>    </target>
182    
183    
184    <target name="dist" depends="dist-clean, dist-jar, dist-docs"/>    <target name="dist" depends="init, dist-clean, dist-jar, dist-docs"
185              description="Puts all distributable products in single hierarchy"/>
186    
187    
188    <target name="clean">    <target name="clean"
189              description="Removes all build products">
190      <delete dir="${build.dir}"/>      <delete dir="${build.dir}"/>
191      <delete dir="${build.classes.dir}"/>      <delete dir="${build.classes.dir}"/>
192      <delete dir="${build.lib.dir}"/>      <delete dir="${build.lib.dir}"/>
193    </target>    </target>
194    
195    
196    <target name="dist-clean" depends="clean">    <target name="dist-clean"
197              description="Removes all build and distribution products">
198      <delete dir="${dist.dir}"/>      <delete dir="${dist.dir}"/>
199    </target>    </target>
200    
201    
202    <target name="clean-filtered-src">    <!-- Anthill targets -->
203      <delete dir="${build.filter.src.dir}"/>  
204      <!-- Should really run the tests instead of just the jar target -->
205      <target name="anthill-build" depends="jar, docs, dist-docs"/>
206    
207      <target name="anthill-publish">
208        <copy todir="${deployDir}/docs/private">
209          <fileset dir="${build.javadocs.dir}"/>
210        </copy>
211        <copy todir="${deployDir}/docs/public">
212          <fileset dir="${dist.javadocs.dir}"/>
213        </copy>
214        <copy tofile="${deployDir}/index.html"
215              file="${basedir}/etc/anthill-index.html"/>
216        <copy todir="${deployDir}/notes">
217          <fileset dir="${basedir}/etc/notes"/>
218        </copy>
219      </target>
220    
221    
222      <!-- Internal targets -->
223    
224      <target name="set-warnings-if" if="build.warnings">
225        <property name="build.warnings.option" value="-warnunchecked"/>
226      </target>
227    
228    
229      <target name="set-warnings-unless" unless="build.warnings">
230        <property name="build.warnings.option" value=""/>
231      </target>
232    
233    
234      <target name="init" depends="set-warnings-if, set-warnings-unless">
235        <!-- Version is kept in a separate file -->
236        <loadfile property="version" srcFile="version.properties"/>
237        <echo>Building JSR-166 version ${version}</echo>
238    </target>    </target>
239    
240    
241    <!-- Internal targets used by docs target -->    <target name="dist-jar" depends="clean, jar">
242        <copy file="${product.jar}" todir="${dist.dir}"/>
243      </target>
244    
245    <target name="compile-ant">  
246      <target name="dist-docs" depends="filter-src"
247              description="Builds javadocs without custom tags to dist folder">
248        <delete dir="${dist.javadocs.dir}"/>
249        <mkdir dir="${dist.javadocs.dir}"/>
250        <javadoc destdir="${dist.javadocs.dir}"
251                    link="http://java.sun.com/j2se/1.4.1/docs/api"
252                overview="${src.dir}/intro.html"
253                  source="${build.docsourcelevel}">
254    
255          <packageset dir="${build.filter.src.dir}"/>
256    
257        </javadoc>
258      </target>
259    
260    
261      <target name="compile-ant-filter" depends="init">
262      <mkdir dir="${build.ant.dir}"/>      <mkdir dir="${build.ant.dir}"/>
263      <javac srcdir="${ant.src.dir}"      <javac srcdir="${ant.src.dir}"
264            destdir="${build.ant.dir}"            destdir="${build.ant.dir}"
# Line 162  Line 267 
267    </target>    </target>
268    
269    
270    <target name="filter-src" depends="compile-ant">    <target name="filter-src" depends="compile-ant-filter">
271      <mkdir dir="${build.filter.src.dir}"/>      <mkdir dir="${build.filter.src.dir}"/>
272      <copy todir="${build.filter.src.dir}">      <copy todir="${build.filter.src.dir}">
273        <fileset dir="${src.dir}">        <fileset dir="${src.dir}">
# Line 203  Line 308 
308    </target>    </target>
309    
310    
   <!-- Internal targets used by test target -->  
   
311    <target name="compile-tests" depends="jar">    <target name="compile-tests" depends="jar">
312      <mkdir dir="${build.testcases.dir}"/>      <mkdir dir="${build.testcases.dir}"/>
313      <javac srcdir="${test.src.dir}"      <javac srcdir="${test.src.dir}"
# Line 215  Line 318 
318             source="${build.sourcelevel}"             source="${build.sourcelevel}"
319               fork="true">               fork="true">
320    
321        <bootclasspath refid="gj.compiler.bootclasspath"/>        <bootclasspath refid="javac.bootclasspath"/>
322        <compilerarg line="${gj.compiler.args}"/>        <compilerarg line="${javac.args} ${build.warnings.option}"/>
323        <classpath refid="test.classpath"/>        <classpath refid="test.classpath"/>
       <include name="**/*Test.java"/>  
324    
325      </javac>      </javac>
326    </target>    </target>
327    
328    
329    <target name="run-tests" depends="compile-tests">    <target name="run-tests" depends="compile-tests">
330      <mkdir dir="${build.reports.dir}"/>      <mkdir dir="${build.reports.dir}"/>
331      <junit printsummary="true"      <junit printsummary="true"
332               showoutput="true"               showoutput="true"
333            errorProperty="junit.failed"            errorProperty="junit.failed"
334          failureProperty="junit.failed"          failureProperty="junit.failed"
335                      dir="${build.reports.dir}">                      dir="${build.reports.dir}"
336                       fork="true">
337    
338        <classpath>        <!--
339          <path refid="test.classpath"/>         ! This nastiness is so JUnit can test classes we are inserting
340          <pathelement location="${build.testcases.dir}"/>         ! into the java.* packages.
341        </classpath>         -->
342          <jvmarg value="-Xbootclasspath/p:${product.jar};${build.testcases.dir};${junit.jar}"/>
343    
344        <formatter type="xml"/>        <formatter type="xml"/>
345    
346        <batchtest todir="${build.reports.dir}">        <batchtest todir="${build.reports.dir}">
347          <fileset dir="${test.src.dir}">          <fileset dir="${test.src.dir}">
348            <include name="**/*Test.java"/>            <include name="**/${testcase}Test.java"/>
349          </fileset>          </fileset>
350        </batchtest>        </batchtest>
351    
# Line 271  Line 376 
376    </target>    </target>
377    
378    
379      <target name="check-junit">
380        <!-- FIXME: this test isn't specific enough -->
381        <available property="junit.available"
382                   classname="junit.framework.TestCase"/>
383        <fail message="Need JUnit 3.8 to run tests" unless="junit.available"/>
384      </target>
385    
386    
387  </project>  </project>

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.26

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8