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

Diff of /jsr166/build.xml

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

revision 1.46 by tim, Sat Jul 26 13:17:51 2003 UTC revision 1.57 by tim, Mon Sep 15 14:07:36 2003 UTC
# Line 30  Line 30 
30    <!-- Build locations -->    <!-- Build locations -->
31    <property name="build.dir"            location="build"/>    <property name="build.dir"            location="build"/>
32    <property name="build.classes.dir"    location="${build.dir}/classes"/>    <property name="build.classes.dir"    location="${build.dir}/classes"/>
   <property name="build.emulation.dir"  location="${build.dir}/emulation"/>  
33    <property name="build.testcases.dir"  location="${build.dir}/testcases"/>    <property name="build.testcases.dir"  location="${build.dir}/testcases"/>
34    <property name="build.lib.dir"        location="${build.dir}/lib"/>    <property name="build.lib.dir"        location="${build.dir}/lib"/>
35    <property name="build.ant.dir"        location="${build.dir}/ant"/>    <property name="build.ant.dir"        location="${build.dir}/ant"/>
36    <property name="build.javadocs.dir"   location="${build.dir}/javadocs"/>    <property name="build.javadocs.dir"   location="${build.dir}/javadocs"/>
37      <property name="build.sinjdocs.dir"   location="${build.dir}/sinjdocs"/>
38    <property name="build.stripped.dir"   location="${build.dir}/stripped"/>    <property name="build.stripped.dir"   location="${build.dir}/stripped"/>
39    <property name="build.reports.dir"    location="${build.dir}/reports"/>    <property name="build.reports.dir"    location="${build.dir}/reports"/>
40    <property name="build.doccheck.dir"   location="${build.dir}/doccheck"/>    <property name="build.doccheck.dir"   location="${build.dir}/doccheck"/>
41    <property name="build.filter.src.dir" location="${build.dir}/filtersrc"/>    <property name="build.filter.src.dir" location="${build.dir}/filtersrc"/>
42      <property name="build.filter.doccheck.dir" location="${build.dir}/filterdocchk"/>
43    
44    <!-- Source locations -->    <!-- Source locations -->
45    <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"/>  
46    <property name="test.src.dir"         location="${basedir}/src/test"/>    <property name="test.src.dir"         location="${basedir}/src/test"/>
47    <property name="ant.src.dir"          location="${basedir}/etc/ant"/>    <property name="ant.src.dir"          location="${basedir}/etc/ant"/>
48    <property name="stylesheet.dir"       location="${basedir}/etc/xsl"/>    <property name="stylesheet.dir"       location="${basedir}/etc/xsl"/>
# Line 56  Line 56 
56    <property name="product.jar"          location="${build.lib.dir}/jsr166.jar"/>    <property name="product.jar"          location="${build.lib.dir}/jsr166.jar"/>
57    <property name="junit.jar"            location="${lib.dir}/junit.jar"/>    <property name="junit.jar"            location="${lib.dir}/junit.jar"/>
58    <property name="rt.jar"               location="${java.home}/lib/rt.jar"/>    <property name="rt.jar"               location="${java.home}/lib/rt.jar"/>
59      <property name="sinjdoc.jar"          location="${lib.dir}/sinjdoc.jar"/>
60    
61    
62      <!-- Files excluded from dist-docs -->
63    <!-- Files excluded from dist-docs and emulation jar -->    <patternset id="docs.exclusion">
   <patternset id="unsafe.exclusion">  
64      <exclude name="java/util/Random.*"/>      <exclude name="java/util/Random.*"/>
65      <exclude name="sun/misc/Unsafe.*"/>      <exclude name="sun/misc/Unsafe.*"/>
66    </patternset>    </patternset>
67    
   <!-- Files excludes from emulation jar -->  
   <patternset id="atomic.exclusion">  
     <exclude name="java/util/concurrent/atomic/AtomicBoolean*"/>  
     <exclude name="java/util/concurrent/atomic/AtomicInteger*"/>  
     <exclude name="java/util/concurrent/atomic/AtomicLong*"/>  
     <exclude name="java/util/concurrent/atomic/AtomicReference*"/>  
   </patternset>  
   
68    
69    
70    <!-- Main targets -->    <!-- Main targets -->
# Line 86  Line 78 
78      <mkdir dir="${build.classes.dir}"/>      <mkdir dir="${build.classes.dir}"/>
79    
80  <!--  <!--
81      <echo>javac ${gjc.args}</echo>      <echo>javac ${build.args}</echo>
     <echo>bootclasspath=${compile.bootclasspath}</echo>  
82  -->  -->
83    
84      <javac srcdir="${prepare.src.dir}"      <javac srcdir="${prepare.src.dir}"
# Line 98  Line 89 
89             source="${build.sourcelevel}"             source="${build.sourcelevel}"
90               fork="true">               fork="true">
91    
92        <compilerarg    line="${gjc.args}"/>        <compilerarg    line="${build.args}"/>
       <bootclasspath refid="compile.bootclasspath"/>  
93    
94      </javac>      </javac>
95    
# Line 107  Line 97 
97    
98    
99    <target name="jar"    <target name="jar"
100            depends="configure-emulation, init-jar, native-jar, emulation-jar"            depends="init-jar, native-jar"
101            description="Builds library jar from compiled sources"/>            description="Builds library jar from compiled sources"/>
102    
103    
# Line 132  Line 122 
122    
123    
124    <target name="doccheck"    <target name="doccheck"
125            depends="filter-src"            depends="filter-doccheck"
126            description="Reports on javadoc style errors (not working yet)">            description="Reports on javadoc style errors">
127    
128      <delete dir="${build.doccheck.dir}"/>      <delete dir="${build.doccheck.dir}"/>
129      <mkdir dir="${build.doccheck.dir}"/>      <mkdir dir="${build.doccheck.dir}"/>
# Line 141  Line 131 
131      <javadoc doclet="com.sun.tools.doclets.doccheck.DocCheck"      <javadoc doclet="com.sun.tools.doclets.doccheck.DocCheck"
132           docletpath="${lib.dir}/doccheck.jar"           docletpath="${lib.dir}/doccheck.jar"
133              destdir="${build.doccheck.dir}">              destdir="${build.doccheck.dir}">
134        <packageset dir="${build.filter.src.dir}"/>        <packageset dir="${build.filter.doccheck.dir}"/>
135      </javadoc>      </javadoc>
136    
137        <echo>DocCheck output is in ${build.doccheck.dir}</echo>
138    
139    </target>    </target>
140    
141    
# Line 171  Line 163 
163    </target>    </target>
164    
165    
166      <target name="sinjdocs"
167              depends="configure-tests"
168              description="Builds javadocs with custom tags to build folder">
169    
170        <delete dir="${build.sinjdocs.dir}"/>
171        <mkdir dir="${build.sinjdocs.dir}"/>
172    
173        <java classname="net.cscott.sinjdoc.Main" fork="true">
174    
175          <jvmarg value="-Xbootclasspath/p:${test.bootclasspath}"/>
176    
177          <classpath>
178            <pathelement location="${sinjdoc.jar}"/>
179            <pathelement location="${lib.dir}/jutil.jar"/>
180            <pathelement location="${lib.dir}/cup.jar"/>
181            <path refid="test.classpath"/>
182          </classpath>
183    
184          <!-- <arg value="-help"/> -->
185          <!-- <arg value="-verbose"/> -->
186          <!-- <arg value="-link"/>  <arg value="http://java.sun.com/j2se/1.4.1/docs/api"/> -->
187          
188          <arg value="-d"/>          <arg value="${build.sinjdocs.dir}"/>
189          <arg value="-sourcepath"/> <arg value="${src.dir}"/>
190          <arg value="-overview"/>   <arg value="${src.dir}/intro.html"/>
191          <arg value="-source"/>     <arg value="${build.sourcelevel}"/>
192          
193          <arg value="java.lang"/>
194          <arg value="java.util"/>
195          <arg value="java.util.concurrent"/>
196          <arg value="java.util.concurrent.atomic"/>
197          <arg value="java.util.concurrent.locks"/>
198    
199    
200        </java>
201    
202      </target>
203    
204    
205    <target name="strip"    <target name="strip"
206            depends="init, configure-compiler"            depends="init, configure-compiler"
207            description="Strip generics from java source (not working yet)">            description="Strip generics from java source (not working yet)">
# Line 190  Line 221 
221             source="${build.sourcelevel}"             source="${build.sourcelevel}"
222               fork="true">               fork="true">
223    
224        <compilerarg    line="${gjc.args} -s"/>        <compilerarg    line="${build.args} -s"/>
       <bootclasspath refid="compile.bootclasspath"/>  
225    
226      </javac>      </javac>
227    
# Line 216  Line 246 
246        <exclude name="${release.jar}"/>        <exclude name="${release.jar}"/>
247        <exclude name="user.properties"/>        <exclude name="user.properties"/>
248        <exclude name="etc/notes/**"/>        <exclude name="etc/notes/**"/>
       <exclude name="lib/gjc/2.1/**"/>  
249        <exclude name="**/SyntaxTest.java"/>        <exclude name="**/SyntaxTest.java"/>
250      </jar>      </jar>
251    
# Line 268  Line 297 
297      <!-- Version is kept in a separate file -->      <!-- Version is kept in a separate file -->
298      <loadfile property="version" srcFile="version.properties"/>      <loadfile property="version" srcFile="version.properties"/>
299      <echo>Building JSR-166 version ${version}</echo>      <echo>Building JSR-166 version ${version}</echo>
300        <echo>java.home is ${java.home}</echo>
301    
302    </target>    </target>
303    
# Line 280  Line 310 
310    
311    
312    <target name="native-jar"    <target name="native-jar"
313            depends="compile"            depends="compile">
           unless="build.emulation.true">  
314    
315      <jar destfile="${product.jar}">      <jar destfile="${product.jar}">
316        <fileset dir="${build.classes.dir}"/>        <fileset dir="${build.classes.dir}"/>
# Line 290  Line 319 
319    </target>    </target>
320    
321    
   <target name="compile-emulation"  
           depends="init, configure-compiler"  
           if="build.emulation.true">  
   
     <mkdir dir="${build.emulation.dir}"/>  
   
     <javac srcdir="${emulation.src.dir}"  
           destdir="${build.emulation.dir}"  
             debug="${build.debug}"  
        debuglevel="${build.debuglevel}"  
       deprecation="${build.deprecation}"  
            source="${build.sourcelevel}"  
              fork="true">  
   
       <compilerarg    line="${gjc.args}"/>  
       <bootclasspath refid="compile.bootclasspath"/>  
   
     </javac>  
   
   </target>  
   
   
   <target name="emulation-jar"  
           depends="compile-emulation"  
           if="build.emulation.true">  
   
   
     <jar destfile="${product.jar}" duplicate="add">  
       <fileset dir="${build.classes.dir}">  
         <patternset refid="atomic.exclusion"/>  
         <patternset refid="unsafe.exclusion"/>  
       </fileset>  
       <fileset dir="${build.emulation.dir}"/>  
     </jar>  
   
   </target>  
   
   
322    <target name="dist-jar"    <target name="dist-jar"
323            depends="clean, jar">            depends="clean, jar">
324    
# Line 360  Line 351 
351        </fileset>        </fileset>
352      </copy>      </copy>
353    
     <!-- Not needed now, used for doccheck filtering:  
     <property name="generic.declarations"  
              value="public interface E {} public interface T {} public interface K {} public interface V {}"  
     />  
     -->  
   
354      <copy todir="${build.filter.src.dir}">      <copy todir="${build.filter.src.dir}">
355        <fileset dir="${src.dir}">        <fileset dir="${src.dir}">
356          <exclude name="**/*.html"/>          <exclude name="**/*.html"/>
357          <patternset refid="unsafe.exclusion"/>          <patternset refid="docs.exclusion"/>
358        </fileset>        </fileset>
359        <filterchain>        <filterchain>
360    
# Line 392  Line 377 
377            <param name="replacement" value=" "/>            <param name="replacement" value=" "/>
378          </filterreader>          </filterreader>
379    
380          </filterchain>
381        </copy>
382    
383          <!--    </target>
          # 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.  
          -->  
384    
         <filterreader classname="jsr166.ant.filters.ReplaceFilter"  
                       classpath="${build.ant.dir}">  
           <param name="matching"    value="^//@.*$"/>  
           <param name="pattern"     value="^//@"/>  
           <param name="replacement" value=""/>  
         </filterreader>  
385    
386    
387    
388      <target name="filter-doccheck"
389              depends="filter-src">
390    
391        <mkdir dir="${build.filter.doccheck.dir}"/>
392    
393        <copy todir="${build.filter.doccheck.dir}">
394          <fileset dir="${build.filter.src.dir}">
395            <include name="**/*.html"/>
396          </fileset>
397        </copy>
398    
399        <property name="generic.declarations"
400                 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 {}"
401        />
402    
403        <copy todir="${build.filter.doccheck.dir}">
404          <fileset dir="${build.filter.src.dir}">
405            <exclude name="**/*.html"/>
406          </fileset>
407          <filterchain>
408          <!--          <!--
409           # The next two filters try to make the source look like           # These two filters try to make the source look like
410           # something that doccheck can process. The first removes           # something that doccheck can process. The first removes
411           # -source 1.4 assertions and the second adds in a bunch           # -source 1.4 assertions and the second adds in a bunch
412           # of single letter public nested marker interfaces so that           # of single letter public nested marker interfaces so that
413           # the generic type parameters are recognized.           # the generic type parameters are recognized.
          #  
          # Currently commented out because doccheck doesn't work. :-(  
414           -->           -->
415    
         <!--  
416          <filterreader classname="jsr166.ant.filters.ReplaceFilter"          <filterreader classname="jsr166.ant.filters.ReplaceFilter"
417                        classpath="${build.ant.dir}">                        classpath="${build.ant.dir}">
418            <param name="matching"    value="^\s*assert[\s ].*$"/>            <param name="matching"    value="^\s*assert[\s ].*$"/>
# Line 427  Line 422 
422    
423          <filterreader classname="jsr166.ant.filters.ReplaceFilter"          <filterreader classname="jsr166.ant.filters.ReplaceFilter"
424                        classpath="${build.ant.dir}">                        classpath="${build.ant.dir}">
425            <param name="matching"    value="^(.*(class|interface|implements) .*|)\{.*$"/>            <param name="matching"    value="^([^*]*(class|interface|implements) .*|)\{.*$"/>
426            <param name="pattern"     value="$"/>            <param name="pattern"     value="$"/>
427            <param name="replacement" value=" ${generic.declarations}"/>            <param name="replacement" value=" ${generic.declarations}"/>
428          </filterreader>          </filterreader>
         -->  
429    
430        </filterchain>        </filterchain>
431      </copy>      </copy>
# Line 445  Line 439 
439      <mkdir dir="${build.testcases.dir}"/>      <mkdir dir="${build.testcases.dir}"/>
440    
441  <!--  <!--
442      <echo>javac ${gjc.args}</echo>      <echo>javac ${build.args}</echo>
     <echo>bootclasspath=${test.compile.bootclasspath}</echo>  
443      <echo>classpath="${test.classpath}"</echo>      <echo>classpath="${test.classpath}"</echo>
444  -->  -->
445    
# Line 458  Line 451 
451             source="${build.sourcelevel}"             source="${build.sourcelevel}"
452               fork="true">               fork="true">
453    
454        <compilerarg    line="${gjc.args}"/>        <compilerarg line="${build.args}"/>
455        <bootclasspath refid="test.compile.bootclasspath"/>        <classpath refid="test.classpath"/>
456        <classpath     refid="test.classpath"/>        
457          <include name="java/**"/>
458          <include name="jsr166/**"/>
459    
460      </javac>      </javac>
461    
# Line 482  Line 477 
477                      dir="${build.reports.dir}"                      dir="${build.reports.dir}"
478                     fork="true">                     fork="true">
479    
480        <jvmarg value="-Xbootclasspath/p:${test.run.bootclasspath}"/>        <jvmarg value="-Xbootclasspath:${test.bootclasspath}"/>
481    
482        <formatter type="xml"/>        <formatter type="xml"/>
483    
484        <batchtest todir="${build.reports.dir}">        <batchtest todir="${build.reports.dir}">
485          <fileset dir="${test.src.dir}">          <fileset dir="${test.src.dir}">
486            <include name="**/${testcase}Test.java"/>            <include name="java/**/${testcase}Test.java"/>
487              <include name="jsr166/**/${testcase}Test.java"/>
488          </fileset>          </fileset>
489        </batchtest>        </batchtest>
490    
# Line 500  Line 496 
496    <target name="report-tests"    <target name="report-tests"
497            depends="run-tests">            depends="run-tests">
498    
499      <!-- Sets junit.report.format to frames if Xalan is present,      <!-- Sets junit.report.format to frames if redirection is present,
500           otherwise sets it to noframes. -->           otherwise sets it to noframes. -->
501      <available property="junit.report.format"      <available property="junit.report.format"
502                    value="frames"                    value="frames"
# Line 525  Line 521 
521    
522    <target name="configure-compiler">    <target name="configure-compiler">
523    
524      <property name="gjc.version"      <property name="unchecked.option" value="-Xlint:unchecked"/>
              value="2.2"/>  
   
     <condition property="novariance.arg" value="-novariance">  
       <and>  
         <equals arg1="${gjc.version}" arg2="2.0"/>  
         <or>  
           <not><isset property="gjc.novariance"/></not>  
           <istrue value="${gjc.novariance}"/>  
         </or>  
       </and>  
     </condition>  
   
     <property name="novariance.arg"  
              value=""/>  
525    
526      <property name="gjc.dir"      <condition property="warnunchecked.arg" value="${unchecked.option}">
527               value="${lib.dir}/gjc"/>        <istrue value="${build.warnunchecked}"/>
   
     <property name="javac.jar"  
           location="${gjc.dir}/${gjc.version}/javac.jar"/>  
   
     <property name="collect.jar"  
           location="${gjc.dir}/${gjc.version}/collect${novariance.arg}.jar"/>  
   
   
     <condition property="warnunchecked.arg" value="-warnunchecked">  
       <istrue value="${gjc.warnunchecked}"/>  
528      </condition>      </condition>
529    
530      <property name="warnunchecked.arg" value=""/>      <property name="warnunchecked.arg" value=""/>
531        
532      <condition property="prepare.src.dir" value="${build.dir}/prepare-src">      <condition property="prepare.src.dir" value="${build.dir}/prepare-src">
533        <istrue value="${build.nothreads}"/>        <istrue value="${build.nothreads}"/>
534      </condition>      </condition>
535    
536    
     <!--  
      ! Bootclasspath munging for source compilation.  
      -->  
   
     <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"/>  
   
   
537      <!-- Common options in javac invocations -->      <!-- Common options in javac invocations -->
538      <property name="gjc.args"      <property name="build.args" value="${warnunchecked.arg}"/>
              value="-J-Xbootclasspath/p:${pre.bootclasspath} ${warnunchecked.arg} ${novariance.arg}"  
     />  
539    
540    </target>    </target>
541    
# Line 603  Line 554 
554    </target>    </target>
555    
556    
   <target name="configure-emulation">  
   
     <condition property="build.emulation.true">  
       <or>  
         <and>  
           <os family="windows"/>  
           <not>  
             <isset property="build.emulation"/>  
           </not>  
         </and>  
         <istrue value="${build.emulation}"/>  
       </or>  
     </condition>  
   
   </target>  
   
   
557    <target name="configure-tests"    <target name="configure-tests"
558         depends="configure-compiler">         depends="configure-compiler">
559    
# Line 630  Line 564 
564      <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"      <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests"
565            unless="junit.available"/>            unless="junit.available"/>
566    
567        <!-- Xalan -->
568        <available property="xalan.available"
569                   classname="org.apache.xalan.Version"/>
570    
571        <fail message="Need Xalan 2.5.1 jar in ${ant.home}${file.separator}lib to run tests"
572              unless="xalan.available"/>
573    
574    
575      <!--      <!--
576       ! Bootclasspath munging for testing, so JUnit can test our local       ! Bootclasspath munging for testing, so JUnit can test our local
# Line 638  Line 579 
579    
580      <path id="test.classpath">      <path id="test.classpath">
581        <pathelement location="${product.jar}"/>        <pathelement location="${product.jar}"/>
       <pathelement location="${build.testcases.dir}"/>  
       <pathelement location="${junit.jar}"/>  
     </path>  
   
     <path id="test.compile.bootclasspath">  
       <pathelement location="${javac.jar}"/>  
       <pathelement location="${collect.jar}"/>  
582        <pathelement location="${rt.jar}"/>        <pathelement location="${rt.jar}"/>
583          <pathelement location="${junit.jar}"/>
584          <pathelement location="${build.testcases.dir}"/>
585      </path>      </path>
586    
587      <path id="test.run.bootclasspath">      <path id="test.bootclasspath">
       <pathelement location="${javac.jar}"/>  
588        <path refid="test.classpath"/>        <path refid="test.classpath"/>
589      </path>      </path>
590    
591      <!-- Flatten test classpaths into platform-appropriate strings -->      <!-- Flatten test classpaths into platform-appropriate strings -->
592      <property name="test.classpath"             refid="test.classpath"/>      <property name="test.classpath"         refid="test.classpath"/>
593      <property name="test.compile.bootclasspath" refid="test.compile.bootclasspath"/>      <property name="test.bootclasspath"     refid="test.bootclasspath"/>
     <property name="test.run.bootclasspath"     refid="test.run.bootclasspath"/>  
594    
595    </target>    </target>
596    
# Line 664  Line 598 
598    
599    <!-- Anthill targets -->    <!-- Anthill targets -->
600    
601    <target name="anthill-build"    <target name="anthill-build">
602      
603        <!-- Override this in user.properties -->
604        <property name="tiger.home" location="e:/j2sdk1.5.0"/>
605        
606        <exec resultproperty="result.property" dir="${basedir}" executable="${tiger.home}/bin/java">
607          <arg value="-Xmx256000000"/>
608          <!-- classpath of new JVM -->
609          <arg value="-classpath"/> <arg path="${java.class.path}"/>
610          <!-- location of Ant home directory -->
611          <arg value="-Dant.home=${ant.home}"/>
612          <!-- the Ant main class -->
613          <arg value="org.apache.tools.ant.Main"/>
614          <!-- The build file -->
615          <arg value="-buildfile"/>  <arg value="build.xml"/>
616          <!-- the target to build on the new Ant instance -->
617          <arg value="-DJAVA_HOME=${tiger.home}"/>
618          <arg value="do-anthill-build"/>
619        </exec>
620      </target>
621      
622      <target name="do-anthill-build"
623            depends="jar, test, docs, dist-docs"/>            depends="jar, test, docs, dist-docs"/>
624    
625    <target name="anthill-publish">    <target name="anthill-publish">
# Line 690  Line 645 
645    <target name="ng" depends="test">    <target name="ng" depends="test">
646      <java classname="SuperfluousAbstract" fork="true">      <java classname="SuperfluousAbstract" fork="true">
647    
648        <jvmarg value="-Xbootclasspath/p:${test.run.bootclasspath}"/>        <jvmarg value="-Xbootclasspath/p:${test.bootclasspath}"/>
649    
650      </java>      </java>
651    </target>    </target>

Legend:
Removed from v.1.46  
changed lines
  Added in v.1.57

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