Parent Directory
|
Revision Log
|
Patch
revision 1.134 by jsr166, Sun Feb 3 02:25:01 2013 UTC | revision 1.235 by jsr166, Sun Mar 19 01:37:51 2017 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 | xmlns:ivy="antlib:org.apache.ivy.ant"> | |
4 | ||
5 | <description> | <description> |
6 | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
# | Line 6 | Line 8 |
8 | ||
9 | Usage: ant [target] | Usage: ant [target] |
10 | ||
11 | See http://gee.cs.oswego.edu/dl/concurrency-interest/index.html for | |
12 | more details. | |
13 | ||
14 | User-specific settings are read from user.properties. | User-specific settings are read from user.properties. |
15 | See user.properties.sample for an explanation of some useful settings. | See user.properties.sample for an explanation of some useful settings. |
16 | ||
# | Line 13 | Line 18 |
18 | itself. Because the JDK version matters and because different | itself. Because the JDK version matters and because different |
19 | targets require different JDKs, we assume that users have created a | targets require different JDKs, we assume that users have created a |
20 | hierarchy containing: | hierarchy containing: |
$HOME/jdk/jdk6 | ||
21 | $HOME/jdk/jdk7 | $HOME/jdk/jdk7 |
22 | $HOME/jdk/jdk8 | $HOME/jdk/jdk8 |
23 | $HOME/jdk/jdk9 | |
24 | $HOME/jdk/jdk10 | |
25 | where each of the above is a JDK or a symlink to same, and | where each of the above is a JDK or a symlink to same, and |
$HOME/jdk/src/jdk6 | ||
26 | $HOME/jdk/src/jdk7 | $HOME/jdk/src/jdk7 |
27 | $HOME/jdk/src/jdk8 | $HOME/jdk/src/jdk8 |
28 | $HOME/jdk/src/jdk9 | |
29 | $HOME/jdk/src/jdk10 | |
30 | where each of the above is a complete JDK source tree | where each of the above is a complete JDK source tree |
31 | (e.g. mercurial forest) or a symlink to same. | (e.g. mercurial forest) or a symlink to same. |
32 | As of 2013-02, the very latest lambda 8 jdk is needed for jdk8. | |
33 | Alternatively, define ant variables thus: | |
34 | ant -Djdk$N.home=... -Djdk$N.src.home=... | |
35 | for $N in 7 8 9 10 ... | |
36 | ||
37 | As of 2016-03, the sources in src/main are for jdk9+ only. | |
38 | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
39 | </description> | </description> |
40 | ||
41 | <target name="usage" description="Display main targets by running 'ant -projecthelp'"> | <!-- Run 'ant -projecthelp' (default target) --> |
42 | <target name="usage"> | |
43 | <java classname="org.apache.tools.ant.Main"> | <java classname="org.apache.tools.ant.Main"> |
44 | <arg value="-projecthelp" /> | <arg value="-projecthelp" /> |
45 | </java> | </java> |
46 | </target> | </target> |
47 | ||
48 | <!-- HOWTO printf debug: <echo message="prop=${prop}"/> --> | |
49 | ||
50 | <!-- User-specific settings --> | <!-- User-specific settings --> |
51 | <property file="user.properties"/> | <property file="user.properties"/> |
# | Line 49 As of 2013-02, the very latest lambda 8 | Line 63 As of 2013-02, the very latest lambda 8 |
63 | <property name="build.classes.dir" location="${build.dir}/classes"/> | <property name="build.classes.dir" location="${build.dir}/classes"/> |
64 | <property name="build.testcases.dir" location="${build.dir}/testcases"/> | <property name="build.testcases.dir" location="${build.dir}/testcases"/> |
65 | <property name="build.loops.dir" location="${build.dir}/loops"/> | <property name="build.loops.dir" location="${build.dir}/loops"/> |
<property name="build.reports.dir" location="${build.dir}/reports"/> | ||
66 | ||
67 | <property name="build.4jdk7.dir" location="${build.dir}/jsr166-4jdk7"/> | <property name="build.4jdk7.dir" location="${build.dir}/jsr166-4jdk7"/> |
68 | <property name="build.4jdk7.classes.dir" location="${build.4jdk7.dir}/classes"/> | <property name="build.4jdk7.classes.dir" location="${build.4jdk7.dir}/classes"/> |
69 | <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/> | <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/> |
70 | <property name="build.4jdk7.docs.dir" location="${build.4jdk7.dir}/docs"/> | <property name="build.4jdk7.docs.dir" location="${build.4jdk7.dir}/docs"/> |
71 | ||
72 | <property name="build.4jdk8.dir" location="${build.dir}/jsr166-4jdk8"/> | |
73 | <property name="build.4jdk8.classes.dir" location="${build.4jdk8.dir}/classes"/> | |
74 | <property name="build.4jdk8.tck.classes.dir" location="${build.4jdk8.dir}/tck-classes"/> | |
75 | <property name="build.4jdk8.docs.dir" location="${build.4jdk8.dir}/docs"/> | |
76 | ||
77 | <property name="build.jsr166x.dir" location="${build.dir}/jsr166x"/> | <property name="build.jsr166x.dir" location="${build.dir}/jsr166x"/> |
78 | <property name="build.jsr166y.dir" location="${build.dir}/jsr166y"/> | <property name="build.jsr166y.dir" location="${build.dir}/jsr166y"/> |
79 | <property name="build.jsr166e.dir" location="${build.dir}/jsr166e"/> | <property name="build.jsr166e.dir" location="${build.dir}/jsr166e"/> |
# | Line 72 As of 2013-02, the very latest lambda 8 | Line 90 As of 2013-02, the very latest lambda 8 |
90 | <macrodef name="defjdklocations"> | <macrodef name="defjdklocations"> |
91 | <attribute name="v"/> | <attribute name="v"/> |
92 | <sequential> | <sequential> |
93 | <property name="jdk@{v}.home" location="${jdks.home}/jdk@{v}"/> | <property name="jdk@{v}.home" location="${jdks.home}/jdk@{v}"/> |
94 | <property name="java@{v}" location="${jdk@{v}.home}/bin/java"/> | <property name="java@{v}" location="${jdk@{v}.home}/bin/java"/> |
95 | <property name="javac@{v}" location="${jdk@{v}.home}/bin/javac"/> | <property name="javac@{v}" location="${jdk@{v}.home}/bin/javac"/> |
96 | <property name="javadoc@{v}" location="${jdk@{v}.home}/bin/javadoc"/> | <property name="javadoc@{v}" location="${jdk@{v}.home}/bin/javadoc"/> |
97 | <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/share/classes"/> | <property name="jdk@{v}.src.home" location="${jdks.home}/src/jdk@{v}"/> |
98 | <local name="have.java.base"/> | |
99 | <available property="have.java.base" | |
100 | file="${jdk@{v}.src.home}/jdk/src/java.base/share/classes" type="dir"/> | |
101 | <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/java.base/share/classes" | |
102 | if:set="have.java.base"/> | |
103 | <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/share/classes" | |
104 | unless:set="have.java.base"/> | |
105 | <local name="modules"/> | |
106 | <available property="modules" file="${jdk@{v}.home}/jmods" type="dir"/> | |
107 | <local name="boot.jar.dir"/> | <local name="boot.jar.dir"/> |
108 | <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"/> |
109 | <path id="bootclasspath@{v}"> | <path id="bootclasspath@{v}" unless:set="modules"> |
110 | <pathelement path="${boot.jar.dir}/resources.jar"/> | <pathelement path="${boot.jar.dir}/resources.jar"/> |
111 | <pathelement path="${boot.jar.dir}/rt.jar"/> | <pathelement path="${boot.jar.dir}/rt.jar"/> |
112 | <pathelement path="${boot.jar.dir}/jsse.jar"/> | <pathelement path="${boot.jar.dir}/jsse.jar"/> |
113 | <pathelement path="${boot.jar.dir}/jce.jar"/> | <pathelement path="${boot.jar.dir}/jce.jar"/> |
114 | <pathelement path="${boot.jar.dir}/charsets.jar"/> | <pathelement path="${boot.jar.dir}/charsets.jar"/> |
115 | </path> | </path> |
116 | <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}"/> | <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}" unless:set="modules"/> |
117 | </sequential> | </sequential> |
118 | </macrodef> | </macrodef> |
119 | ||
# | Line 105 As of 2013-02, the very latest lambda 8 | Line 132 As of 2013-02, the very latest lambda 8 |
132 | <defjdklocations v="6"/> | <defjdklocations v="6"/> |
133 | <defjdklocations v="7"/> | <defjdklocations v="7"/> |
134 | <defjdklocations v="8"/> | <defjdklocations v="8"/> |
135 | <defjdklocations v="9"/> | |
136 | <defjdklocations v="10"/> | |
137 | ||
138 | <!-- Source locations --> | <!-- Source locations --> |
139 | <property name="src.dir" location="${basedir}/src/main"/> | <property name="src.dir" location="${basedir}/src/main"/> |
140 | <property name="test.src.dir" location="${basedir}/src/test"/> | <property name="test.src.dir" location="${basedir}/src/test"/> |
141 | <property name="loops.src.dir" location="${basedir}/src/loops"/> | <property name="loops.src.dir" location="${basedir}/src/loops"/> |
142 | <property name="tck.src.dir" location="${test.src.dir}/tck"/> | <property name="tck.src.dir" location="${test.src.dir}/tck"/> |
143 | <property name="jtreg.src.dir" location="${test.src.dir}/jtreg"/> | <property name="jtreg7.src.dir" location="${test.src.dir}/jtreg-jdk7"/> |
144 | <property name="jtreg8.src.dir" location="${test.src.dir}/jtreg-jdk8"/> | |
145 | <property name="jtreg9.src.dir" location="${test.src.dir}/jtreg"/> | |
146 | <property name="jtreg10.src.dir" location="${test.src.dir}/jtreg"/> | |
147 | <property name="jtreg.src.dir" location="${jtreg9.src.dir}"/> | |
148 | <property name="lib.dir" location="${basedir}/lib"/> | <property name="lib.dir" location="${basedir}/lib"/> |
149 | <property name="dist.dir" location="${basedir}/dist"/> | <property name="dist.dir" location="${basedir}/dist"/> |
150 | <property name="topsrc.dir" location="${basedir}/src"/> | <property name="topsrc.dir" location="${basedir}/src"/> |
151 | <property name="4jdk7src.dir" location="${topsrc.dir}/jdk7"/> | <property name="4jdk7src.dir" location="${topsrc.dir}/jdk7"/> |
152 | <property name="4jdk8src.dir" location="${topsrc.dir}/jdk8"/> | |
153 | <property name="jsr166xsrc.dir" location="${topsrc.dir}/jsr166x"/> | <property name="jsr166xsrc.dir" location="${topsrc.dir}/jsr166x"/> |
154 | <property name="jsr166ysrc.dir" location="${topsrc.dir}/jsr166y"/> | <property name="jsr166ysrc.dir" location="${topsrc.dir}/jsr166y"/> |
155 | <property name="jsr166esrc.dir" location="${topsrc.dir}/jsr166e"/> | <property name="jsr166esrc.dir" location="${topsrc.dir}/jsr166e"/> |
# | Line 124 As of 2013-02, the very latest lambda 8 | Line 158 As of 2013-02, the very latest lambda 8 |
158 | <!-- Javadoc locations --> | <!-- Javadoc locations --> |
159 | <property name="docs.dir" location="${build.dir}/docs"/> | <property name="docs.dir" location="${build.dir}/docs"/> |
160 | <property name="4jdk7docs.dir" location="${build.4jdk7.dir}/docs"/> | <property name="4jdk7docs.dir" location="${build.4jdk7.dir}/docs"/> |
161 | <property name="4jdk8docs.dir" location="${build.4jdk8.dir}/docs"/> | |
162 | <property name="jsr166xdocs.dir" location="${build.jsr166x.dir}/docs"/> | <property name="jsr166xdocs.dir" location="${build.jsr166x.dir}/docs"/> |
163 | <property name="jsr166ydocs.dir" location="${build.jsr166y.dir}/docs"/> | <property name="jsr166ydocs.dir" location="${build.jsr166y.dir}/docs"/> |
164 | <property name="jsr166edocs.dir" location="${build.jsr166e.dir}/docs"/> | <property name="jsr166edocs.dir" location="${build.jsr166e.dir}/docs"/> |
# | Line 131 As of 2013-02, the very latest lambda 8 | Line 166 As of 2013-02, the very latest lambda 8 |
166 | ||
167 | <property name="dist.docs.dir" location="${dist.dir}/docs"/> | <property name="dist.docs.dir" location="${dist.dir}/docs"/> |
168 | <property name="dist.4jdk7docs.dir" location="${dist.dir}/jsr166-4jdk7docs"/> | <property name="dist.4jdk7docs.dir" location="${dist.dir}/jsr166-4jdk7docs"/> |
169 | <property name="dist.4jdk8docs.dir" location="${dist.dir}/jsr166-4jdk8docs"/> | |
170 | <property name="dist.jsr166xdocs.dir" location="${dist.dir}/jsr166xdocs"/> | <property name="dist.jsr166xdocs.dir" location="${dist.dir}/jsr166xdocs"/> |
171 | <property name="dist.jsr166ydocs.dir" location="${dist.dir}/jsr166ydocs"/> | <property name="dist.jsr166ydocs.dir" location="${dist.dir}/jsr166ydocs"/> |
172 | <property name="dist.jsr166edocs.dir" location="${dist.dir}/jsr166edocs"/> | <property name="dist.jsr166edocs.dir" location="${dist.dir}/jsr166edocs"/> |
# | Line 139 As of 2013-02, the very latest lambda 8 | Line 175 As of 2013-02, the very latest lambda 8 |
175 | <!-- Jar locations --> | <!-- Jar locations --> |
176 | <property name="product.jar" location="${build.dir}/jsr166.jar"/> | <property name="product.jar" location="${build.dir}/jsr166.jar"/> |
177 | <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/> | <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/> |
178 | <property name="4jdk8product.jar" location="${build.4jdk8.dir}/jsr166-4jdk8.jar"/> | |
179 | <property name="jsr166x.jar" location="${build.jsr166x.dir}/jsr166x.jar"/> | <property name="jsr166x.jar" location="${build.jsr166x.dir}/jsr166x.jar"/> |
180 | <property name="jsr166y.jar" location="${build.jsr166y.dir}/jsr166y.jar"/> | <property name="jsr166y.jar" location="${build.jsr166y.dir}/jsr166y.jar"/> |
181 | <property name="jsr166e.jar" location="${build.jsr166e.dir}/jsr166e.jar"/> | <property name="jsr166e.jar" location="${build.jsr166e.dir}/jsr166e.jar"/> |
182 | <property name="extra166y.jar" location="${build.extra166y.dir}/extra166y.jar"/> | <property name="extra166y.jar" location="${build.extra166y.dir}/extra166y.jar"/> |
183 | <property name="junit.jar" location="${lib.dir}/junit.jar"/> | <property name="junit.jar" location="${lib.dir}/junit.jar"/> |
184 | ||
185 | <!-- Canonical location of jdk API docs, to use with javadoc link attribute --> | <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag --> |
186 | <property name="jdkapi5docs.url" value="http://docs.oracle.com/javase/1.5.0/docs/api/"/> | <property name="java5.docroot.url" value="http://docs.oracle.com/javase/1.5.0/docs"/> |
187 | <property name="jdkapi6docs.url" value="http://docs.oracle.com/javase/6/docs/api/"/> | <property name="java6.docroot.url" value="http://docs.oracle.com/javase/6/docs"/> |
188 | <property name="jdkapi7docs.url" value="http://docs.oracle.com/javase/7/docs/api/"/> | <property name="java7.docroot.url" value="http://docs.oracle.com/javase/7/docs"/> |
189 | <property name="java8.docroot.url" value="http://docs.oracle.com/javase/8/docs"/> | |
190 | <property name="jdkapi8docs.url" value="http://download.java.net/jdk8/docs/api/"/> | <!-- The expected canonical location does not yet exist as of 2016-04 --> |
191 | <!-- The below does not yet exist as of 2013-01 --> | <!-- <property name="java9.docroot.url" value="http://docs.oracle.com/javase/9/docs"/> --> |
192 | <!-- <property name="jdkapi8docs.url" value="http://docs.oracle.com/javase/8/docs/api/"/> --> | <property name="java9.docroot.url" value="http://download.java.net/java/jdk9/docs"/> |
193 | <!-- Default jdk doc location (latest stable release seems best) --> | |
194 | <property name="java.docroot.url" value="${java8.docroot.url}"/> | |
195 | ||
196 | <!-- Default jdk api doc location (latest stable release seems best) --> | <!-- Canonical location of jdk API docs, to use with javadoc link attribute --> |
197 | <property name="jdkapidocs.url" value="${jdkapi7docs.url}"/> | <property name="java5.api.url" value="${java5.docroot.url}/api/"/> |
198 | <property name="java6.api.url" value="${java6.docroot.url}/api/"/> | |
199 | <property name="java7.api.url" value="${java7.docroot.url}/api/"/> | |
200 | <property name="java8.api.url" value="${java8.docroot.url}/api/"/> | |
201 | <property name="java9.api.url" value="${java9.docroot.url}/api/"/> | |
202 | <property name="java.api.url" value="${java.docroot.url}/api/"/> | |
203 | ||
204 | <!-- Define the "jtreg" task --> | <!-- Define the "jtreg" task --> |
205 | <!-- See the docs in "jtreg -onlineHelp" --> | <!-- See the docs in "jtreg -onlineHelp" --> |
206 | <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant" | <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant" |
207 | classpath="${lib.dir}/jtreg.jar" /> | classpath="${lib.dir}/jtreg.jar" /> |
208 | ||
209 | <!-- Test classpath --> | <!-- Tck options; see JSR166TestCase.java |
210 | <path id="test.classpath"> | To profile a single tck test class: |
211 | <pathelement location="${build.testcases.dir}"/> | ant -Djsr166.profileTests=true -Djsr166.profileThreshold=10 -Djsr166.tckTestClass=CompletableFutureTest tck |
212 | <pathelement location="${junit.jar}"/> | To stress test a single tck test class: |
213 | </path> | ant -Djsr166.tckTestClass=CountedCompleterTest -Djsr166.runsPerTest=100 tck |
214 | To stress test a single tck test method: | |
215 | ant -Djsr166.tckTestClass=RecursiveTaskTest -Djsr166.runsPerTest=1000 -Djsr166.methodFilter=testAbnormalInvokeAll3 tck | |
216 | --> | |
217 | <property name="jsr166.tckTestClass" value="JSR166TestCase"/> | |
218 | <macrodef name="run-tck-tests"> | <macrodef name="run-tck-tests"> |
219 | <attribute name="tck.src.dir" default="${tck.src.dir}"/> | <attribute name="tck.src.dir" default="${tck.src.dir}"/> |
<attribute name="source" default="6"/> | ||
220 | <attribute name="target"/> | <attribute name="target"/> |
221 | <attribute name="compile-target" default="@{target}"/> | |
222 | <attribute name="workdir"/> | <attribute name="workdir"/> |
223 | <attribute name="classes"/> | <attribute name="classes"/> |
224 | <attribute name="jvmflags" default=""/> | <!-- |
225 | <attribute name="jvmflags" default="-XX:+UseParallelGC -XX:-UseBiasedLocking -ea -esa -Djsr166.testImplementationDetails=true"/> | |
226 | --> | |
227 | <attribute name="jvmflags" default="-ea -esa -Djsr166.testImplementationDetails=true"/> | |
228 | <element name="javac-elements" optional="true"/> | <element name="javac-elements" optional="true"/> |
229 | ||
230 | <sequential> | < |