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

Diff of /jsr166/build.xml

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

revision 1.174 by jsr166, Thu Sep 3 01:38:44 2015 UTC revision 1.184 by jsr166, Wed Sep 30 15:30:46 2015 UTC
# Line 1  Line 1 
1  <project name="jsr166" default="usage">  <project name="jsr166" default="usage"
2      xmlns:if="ant:if" xmlns:unless="ant:unless">
3    
4    <description>    <description>
5  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
# Line 28  Line 29 
29    Alternatively, define ant variables thus:    Alternatively, define ant variables thus:
30    ant -Djdk$N.home=...    ant -Djdk$N.home=...
31    for $N in 6 7 8 9 ...    for $N in 6 7 8 9 ...
32    
33      As of 2015-09, there is incomplete hacky support for jigsaw
34      Build for jigsaw using something like:
35      ant -Djdk9.home="$HOME/jdk/jigsaw" -Djdk9.src.dir="$HOME/jdk/src/jigsaw" clean test dist
36      "docs" target is still broken.
37  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
38    </description>    </description>
39    
# Line 38  Line 44 
44      </java>      </java>
45    </target>    </target>
46    
47      <!-- HOWTO printf debug: <echo message="prop=${prop}"/> -->
48    
49    <!-- User-specific settings -->    <!-- User-specific settings -->
50    <property file="user.properties"/>    <property file="user.properties"/>
# Line 50  Line 57 
57    <property name="build.deprecation"    value="false"/>    <property name="build.deprecation"    value="false"/>
58    <property name="build.javadoc.access" value="protected"/>    <property name="build.javadoc.access" value="protected"/>
59    
   <!-- Tck options; see JSR166TestCase.java  
    To profile a single tck test class:  
    ant -Djsr166.profileTests=true -Djsr166.profileThreshold=100 -Djsr166.tckTestClass=CompletableFutureTest tck  
    To stress test a single tck test class:  
    ant -Djsr166.tckTestClass=CountedCompleterTest -Djsr166.runsPerTest=100 tck  
   -->  
   <property name="jsr166.profileTests"     value="false"/>  
   <property name="jsr166.profileThreshold" value="100"/>  
   <property name="jsr166.runsPerTest"      value="1"/>  
   <property name="jsr166.tckTestClass"     value="JSR166TestCase"/>  
   
60    <!-- Build locations -->    <!-- Build locations -->
61    <property name="build.dir"                   location="build"/>    <property name="build.dir"                   location="build"/>
62    <property name="build.classes.dir"           location="${build.dir}/classes"/>    <property name="build.classes.dir"           location="${build.dir}/classes"/>
# Line 93  Line 89 
89      <property name="java@{v}"       location="${jdk@{v}.home}/bin/java"/>      <property name="java@{v}"       location="${jdk@{v}.home}/bin/java"/>
90      <property name="javac@{v}"      location="${jdk@{v}.home}/bin/javac"/>      <property name="javac@{v}"      location="${jdk@{v}.home}/bin/javac"/>
91      <property name="javadoc@{v}"    location="${jdk@{v}.home}/bin/javadoc"/>      <property name="javadoc@{v}"    location="${jdk@{v}.home}/bin/javadoc"/>
92      <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/share/classes"/>      <local name="have.java.base"/>
93        <available property="have.java.base"
94          file="${jdks.home}/src/jdk@{v}/jdk/src/java.base/share/classes" type="dir"/>
95        <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/java.base/share/classes"
96          if:set="have.java.base"/>
97        <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/share/classes"
98          unless:set="have.java.base"/>
99        <local name="modules"/>
100        <available property="modules" file="${jdk@{v}.home}/jmods" type="dir"/>
101      <local name="boot.jar.dir"/>      <local name="boot.jar.dir"/>
102      <property name="boot.jar.dir"   location="${jdk@{v}.home}/jre/lib"/>      <property name="boot.jar.dir"   location="${jdk@{v}.home}/jre/lib" unless:set="modules"/>
103      <path id="bootclasspath@{v}">      <path id="bootclasspath@{v}" unless:set="modules">
104        <pathelement path="${boot.jar.dir}/resources.jar"/>        <pathelement path="${boot.jar.dir}/resources.jar"/>
105        <pathelement path="${boot.jar.dir}/rt.jar"/>        <pathelement path="${boot.jar.dir}/rt.jar"/>
106        <pathelement path="${boot.jar.dir}/jsse.jar"/>        <pathelement path="${boot.jar.dir}/jsse.jar"/>
107        <pathelement path="${boot.jar.dir}/jce.jar"/>        <pathelement path="${boot.jar.dir}/jce.jar"/>
108        <pathelement path="${boot.jar.dir}/charsets.jar"/>        <pathelement path="${boot.jar.dir}/charsets.jar"/>
109      </path>      </path>
110      <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}"/>      <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}" unless:set="modules"/>
111      </sequential>      </sequential>
112    </macrodef>    </macrodef>
113    
# Line 196  Line 200 
200      <pathelement location="${junit.jar}"/>      <pathelement location="${junit.jar}"/>
201    </path>    </path>
202    
203      <!-- Tck options; see JSR166TestCase.java
204       To profile a single tck test class:
205       ant -Djsr166.profileTests=true -Djsr166.profileThreshold=10 -Djsr166.tckTestClass=CompletableFutureTest tck
206       To stress test a single tck test class:
207       ant -Djsr166.tckTestClass=CountedCompleterTest -Djsr166.runsPerTest=100 tck
208       To stress test a single tck test method:
209       ant -Djsr166.tckTestClass=RecursiveTaskTest -Djsr166.runsPerTest=1000 -Djsr166.methodFilter=testAbnormalInvokeAll3 tck
210      -->
211      <property name="jsr166.tckTestClass"     value="JSR166TestCase"/>
212    <macrodef name="run-tck-tests">    <macrodef name="run-tck-tests">
213      <attribute name="tck.src.dir" default="${tck.src.dir}"/>      <attribute name="tck.src.dir" default="${tck.src.dir}"/>
214      <attribute name="target"/>      <attribute name="target"/>
# Line 204  Line 217 
217      <attribute name="classes"/>      <attribute name="classes"/>
218      <attribute name="jvmflags" default="-ea -esa -Djsr166.testImplementationDetails=true"/>      <attribute name="jvmflags" default="-ea -esa -Djsr166.testImplementationDetails=true"/>
219      <element name="javac-elements" optional="true"/>      <element name="javac-elements" optional="true"/>
220    
221      <sequential>      <sequential>
222    
223        <local name="modules"/>
224        <condition property="modules">
225          <available file="${jdk@{compile-target}.home}/jmods" type="dir"/>
226        </condition>
227    
228      <mkdir dir="@{workdir}/tck-classes"/>      <mkdir dir="@{workdir}/tck-classes"/>
229    
230      <javac srcdir="@{tck.src.dir}"      <javac srcdir="@{tck.src.dir}"
# Line 224  Line 243 
243        <include name="*.java"/>        <include name="*.java"/>
244        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
245        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
246        <compilerarg value="-Xbootclasspath/p:@{classes}"/>        <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
247          <compilerarg value="-Xoverride:${build.classes.dir}" if:set="modules"/>
248        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
249        <javac-elements/>        <javac-elements/>
250    
# Line 234  Line 254 
254            failonerror="true"            failonerror="true"
255            jvm="${java@{target}}"            jvm="${java@{target}}"
256            fork="true">            fork="true">
257          <jvmarg value="-Xbootclasspath/p:@{classes}"/>          <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
258            <jvmarg value="-Xoverride:${build.classes.dir}" if:set="modules"/>
259          <jvmarg line="@{jvmflags}"/>          <jvmarg line="@{jvmflags}"/>
260    
261          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->          <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck -->
262          <syspropertyset id="java.util.concurrent.ForkJoinPool-properties">          <syspropertyset id="system-properties-used-by-tck">
263            <propertyref prefix="java.util.concurrent.ForkJoinPool"/>            <propertyref prefix="java.util.concurrent.ForkJoinPool"/>
264              <propertyref prefix="jsr166."/>
265          </syspropertyset>          </syspropertyset>
266    
         <sysproperty key="jsr166.profileTests"     value="${jsr166.profileTests}"/>  
         <sysproperty key="jsr166.profileThreshold" value="${jsr166.profileThreshold}"/>  
         <sysproperty key="jsr166.runsPerTest"      value="${jsr166.runsPerTest}"/>  
267          <classpath>          <classpath>
268            <pathelement location="${junit.jar}"/>            <pathelement location="${junit.jar}"/>
269            <pathelement location="@{workdir}/tck-classes"/>            <pathelement location="@{workdir}/tck-classes"/>
# Line 283  Line 302 
302      <attribute name="workdir"/>      <attribute name="workdir"/>
303      <attribute name="classes"/>      <attribute name="classes"/>
304      <attribute name="jtregflags" default=""/>      <attribute name="jtregflags" default=""/>
305    
306      <sequential>      <sequential>
307    
308        <local name="modules"/>
309        <condition property="modules">
310          <available file="${jdk@{target}.home}/jmods" type="dir"/>
311        </condition>
312    
313      <delete dir="@{workdir}/JTwork"   quiet="true"/>      <delete dir="@{workdir}/JTwork"   quiet="true"/>
314      <delete dir="@{workdir}/JTreport" quiet="true"/>      <delete dir="@{workdir}/JTreport" quiet="true"/>
315      <mkdir dir="@{workdir}/JTwork/scratch"/>      <mkdir dir="@{workdir}/JTwork/scratch"/>
# Line 293  Line 319 
319             workDir="@{workdir}/JTwork"             workDir="@{workdir}/JTwork"
320             reportDir="@{workdir}/JTreport">             reportDir="@{workdir}/JTreport">
321        <patternset refid="jdk@{target}.jtreg.tests"/>        <patternset refid="jdk@{target}.jtreg.tests"/>
322        <arg value="-Xbootclasspath/p:@{classes}"/>        <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/>
323          <arg value="-Xoverride:${build.classes.dir}" if:set="modules"/>
324        <arg value="-agentvm"/>        <arg value="-agentvm"/>
325        <arg value="-v:nopass,fail"/>        <arg value="-v:nopass,fail"/>
326        <arg value="-vmoptions:-esa -ea"/>        <arg value="-vmoptions:-esa -ea"/>
# Line 326  Line 353 
353            depends="configure-compiler"            depends="configure-compiler"
354            description="Compiles src/main sources to build dir">            description="Compiles src/main sources to build dir">
355    
356      <mkdir dir="${build.classes.dir}"/>      <local name="modules"/>
357        <condition property="modules">
358          <and>
359            <available file="${jdk9.home}/jmods" type="dir"/>
360            <equals arg1="9" arg2="${build.main.java.version}"/>
361          </and>
362        </condition>
363    
364        <local name="destdir"/>
365        <property name="destdir" value="${build.classes.dir}/java.base" if:set="modules"/>
366        <property name="destdir" value="${build.classes.dir}" unless:set="modules"/>
367    
368        <mkdir dir="${destdir}"/>
369    
370      <javac srcdir="${src.dir}"      <javac srcdir="${src.dir}"
371             destdir="${build.classes.dir}"             destdir="${destdir}"
372             debug="${build.debug}"             debug="${build.debug}"
373             debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
374             deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
# Line 340  Line 379 
379             fork="true">             fork="true">
380    
381        <include name="**/*.java"/>        <include name="**/*.java"/>
382          <compilerarg value="-Xmodule:java.base" if:set="modules"/>
383        <compilerarg value="-Xprefer:source"/>        <compilerarg value="-Xprefer:source"/>
384        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
385        <compilerarg value="-Xlint:all"/>        <compilerarg value="-Xlint:all"/>
# Line 358  Line 398 
398    
399      <jar destfile="${product.jar}">      <jar destfile="${product.jar}">
400        <fileset dir="${build.classes.dir}"/>        <fileset dir="${build.classes.dir}"/>
401          <manifest>
402            <attribute name="Built-By" value="${user.name}"/>
403            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
404          </manifest>
405      </jar>      </jar>
406    </target>    </target>
407    
# Line 385  Line 429 
429        <arg line="-Xdocrootparent ${java9.docroot.url}"/>        <arg line="-Xdocrootparent ${java9.docroot.url}"/>
430        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>        <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
431        <arg value="-XDignore.symbol.file=true"/>        <arg value="-XDignore.symbol.file=true"/>
432    <!--  TODO     <arg value="-Xmodule:java.base"/> -->
433        <arg value="-tag"/>        <arg value="-tag"/>
434        <arg value="${javadoc.jls.option}"/>        <arg value="${javadoc.jls.option}"/>
435        <arg value="-tag"/>        <arg value="-tag"/>
# Line 416  Line 461 
461        <exclude name="src/emulation/**"/>        <exclude name="src/emulation/**"/>
462        <exclude name="**/SyntaxTest.java"/>        <exclude name="**/SyntaxTest.java"/>
463        <exclude name="**/SuperfluousAbstract.java"/>        <exclude name="**/SuperfluousAbstract.java"/>
464          <manifest>
465            <attribute name="Built-By" value="${user.name}"/>
466            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
467          </manifest>
468      </jar>      </jar>
469    </target>    </target>
470    
# Line 514  Line 563 
563    
564    
565    <target name="configure-compiler">    <target name="configure-compiler">
566        <fail message="ant version too old">
567          <condition>
568            <not> <antversion atleast="1.9.1"/> </not>
569          </condition>
570        </fail>
571    
572      <property name="unchecked.option" value="-Xlint:unchecked"/>      <property name="unchecked.option" value="-Xlint:unchecked"/>
573    
# Line 653  Line 707 
707    
708      <jar destfile="${4jdk7product.jar}">      <jar destfile="${4jdk7product.jar}">
709        <fileset dir="${build.4jdk7.classes.dir}"/>        <fileset dir="${build.4jdk7.classes.dir}"/>
710          <manifest>
711            <attribute name="Built-By" value="${user.name}"/>
712            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
713          </manifest>
714      </jar>      </jar>
715    
716    </target>    </target>
# Line 670  Line 728 
728          <!-- JDK8+ test classes -->          <!-- JDK8+ test classes -->
729          <exclude name="*8Test.java"/>          <exclude name="*8Test.java"/>
730          <exclude name="*9Test.java"/>          <exclude name="*9Test.java"/>
731            <exclude name="*10Test.java"/>
732          <exclude name="DoubleAccumulatorTest.java"/>          <exclude name="DoubleAccumulatorTest.java"/>
733          <exclude name="DoubleAdderTest.java"/>          <exclude name="DoubleAdderTest.java"/>
734          <exclude name="LongAccumulatorTest.java"/>          <exclude name="LongAccumulatorTest.java"/>
# Line 677  Line 736 
736          <exclude name="CompletableFutureTest.java"/>          <exclude name="CompletableFutureTest.java"/>
737          <exclude name="SplittableRandomTest.java"/>          <exclude name="SplittableRandomTest.java"/>
738          <exclude name="StampedLockTest.java"/>          <exclude name="StampedLockTest.java"/>
739            <exclude name="SubmissionPublisherTest.java"/>
740        </javac-elements>        </javac-elements>
741      </run-tck-tests>      </run-tck-tests>
742    </target>    </target>
# Line 811  Line 871 
871    
872      <jar destfile="${jsr166x.jar}">      <jar destfile="${jsr166x.jar}">
873        <fileset dir="${build.jsr166x.classes.dir}"/>        <fileset dir="${build.jsr166x.classes.dir}"/>
874          <manifest>
875            <attribute name="Built-By" value="${user.name}"/>
876            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
877          </manifest>
878      </jar>      </jar>
879    
880    </target>    </target>
# Line 898  Line 962 
962    
963      <jar destfile="${jsr166y.jar}" index="true">      <jar destfile="${jsr166y.jar}" index="true">
964        <fileset dir="${build.jsr166y.classes.dir}"/>        <fileset dir="${build.jsr166y.classes.dir}"/>
965          <manifest>
966            <attribute name="Built-By" value="${user.name}"/>
967            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
968          </manifest>
969      </jar>      </jar>
970    
971    </target>    </target>
# Line 986  Line 1054 
1054    
1055      <jar destfile="${extra166y.jar}" index="true">      <jar destfile="${extra166y.jar}" index="true">
1056        <fileset dir="${build.extra166y.classes.dir}"/>        <fileset dir="${build.extra166y.classes.dir}"/>
1057          <manifest>
1058            <attribute name="Built-By" value="${user.name}"/>
1059            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1060          </manifest>
1061      </jar>      </jar>
1062    
1063    </target>    </target>
# Line 1101  Line 1173 
1173    
1174      <jar destfile="${jsr166e.jar}" index="true">      <jar destfile="${jsr166e.jar}" index="true">
1175        <fileset dir="${build.jsr166e.classes.dir}"/>        <fileset dir="${build.jsr166e.classes.dir}"/>
1176          <manifest>
1177            <attribute name="Built-By" value="${user.name}"/>
1178            <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/>
1179          </manifest>
1180      </jar>      </jar>
1181    
1182    </target>    </target>

Legend:
Removed from v.1.174  
changed lines
  Added in v.1.184

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