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

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

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8