Parent Directory
|
Revision Log
|
Patch
revision 1.86 by jsr166, Sat May 28 02:19:20 2011 UTC | revision 1.291 by jsr166, Thu Dec 6 21:36:08 2018 UTC | |
---|---|---|
# | Line 1 | Line 1 |
1 | <project name="jsr166" default="usage"> | <project name="jsr166" default="usage" |
2 | xmlns:if="ant:if" | |
3 | xmlns:unless="ant:unless" | |
4 | xmlns:ivy="antlib:org.apache.ivy.ant"> | |
5 | ||
6 | <description> | <description> |
7 | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
# | Line 6 | Line 9 |
9 | ||
10 | Usage: ant [target] | Usage: ant [target] |
11 | ||
12 | See http://gee.cs.oswego.edu/dl/concurrency-interest/index.html for | |
13 | more details. | |
14 | ||
15 | User-specific settings are read from user.properties. | User-specific settings are read from user.properties. |
16 | See user.properties.sample for an explanation of some useful settings. | See user.properties.sample for an explanation of some useful settings. |
17 | ||
18 | The repository contains all dependencies except for ant and the JDK | |
19 | itself. Because the JDK version matters and because different | |
20 | targets require different JDKs, we assume that users have created a | |
21 | hierarchy containing: | |
22 | $HOME/jdk/jdk8 | |
23 | $HOME/jdk/jdk9 | |
24 | $HOME/jdk/jdk10 | |
25 | $HOME/jdk/jdk11 | |
26 | $HOME/jdk/jdk12 | |
27 | where each of the above is a JDK or a symlink to same, and | |
28 | $HOME/jdk/src/jdk8 | |
29 | $HOME/jdk/src/jdk9 | |
30 | $HOME/jdk/src/jdk10 | |
31 | $HOME/jdk/src/jdk11 | |
32 | $HOME/jdk/src/jdk12 | |
33 | where each of the above is a complete JDK source tree | |
34 | (e.g. mercurial forest) or a symlink to same. | |
35 | ||
36 | Alternatively, define ant variables thus: | |
37 | ant -Djdk$N.home=... -Djdk$N.src.home=... | |
38 | for $N in 8 9 10 ... | |
39 | ||
40 | As of 2016-03, the sources in src/main are for jdk9+ only. | |
41 | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ |
42 | </description> | </description> |
43 | ||
44 | <target name="usage" description="Advises user to run with -projecthelp"> | <!-- Run 'ant -projecthelp' (default target) --> |
45 | <echo>Run "ant -projecthelp" for full usage information.</echo> | <target name="usage"> |
46 | <java classname="org.apache.tools.ant.Main"> | |
47 | <arg value="-projecthelp" /> | |
48 | </java> | |
49 | </target> | </target> |
50 | ||
51 | <!-- HOWTO printf debug: <echo message="prop=${prop}"/> --> | |
52 | ||
53 | <!-- User-specific settings --> | <!-- User-specific settings --> |
54 | <property file="user.properties"/> | <property file="user.properties"/> |
55 | ||
56 | ||
57 | <!-- Compilation options --> | <!-- Compilation options --> |
<property name="build.sourcelevel" value="1.6"/> | ||
58 | <property name="build.debug" value="true"/> | <property name="build.debug" value="true"/> |
59 | <property name="build.debuglevel" value="source,lines,vars"/> | <property name="build.debuglevel" value="source,lines,vars"/> |
60 | <property name="build.deprecation" value="false"/> | <property name="build.deprecation" value="false"/> |
61 | <property name="build.javadoc.access" value="protected"/> | |
62 | ||
63 | <!-- Build locations --> | <!-- Build locations --> |
64 | <property name="build.dir" location="build"/> | <property name="build.dir" location="build"/> |
65 | <property name="build.classes.dir" location="${build.dir}/classes"/> | <property name="build.classes.dir" location="${build.dir}/classes"/> |
66 | <property name="build.testcases.dir" location="${build.dir}/testcases"/> | <property name="build.testcases.dir" location="${build.dir}/testcases"/> |
67 | <property name="build.loops.dir" location="${build.dir}/loops"/> | <property name="build.loops.dir" location="${build.dir}/loops"/> |
<property name="build.lib.dir" location="${build.dir}/lib"/> | ||
<property name="build.javadocs.dir" location="${build.dir}/javadocs"/> | ||
<property name="build.reports.dir" location="${build.dir}/reports"/> | ||
<property name="build.jsr166x.dir" location="${build.dir}/jsr166x"/> | ||
<property name="build.jsr166xlib.dir" location="${build.dir}/jsr166xlib"/> | ||
<property name="build.jsr166xjavadocs.dir" location="${build.dir}/jsr166xjavadocs"/> | ||
68 | ||
69 | <property name="build.jsr166y.dir" location="${build.dir}/jsr166y"/> | <property name="build.4jdk7.dir" location="${build.dir}/jsr166-4jdk7"/> |
70 | <property name="build.jsr166ylib.dir" location="${build.dir}/jsr166ylib"/> | <property name="build.4jdk7.classes.dir" location="${build.4jdk7.dir}/classes"/> |
71 | <property name="build.jsr166yjavadocs.dir" location="${build.dir}/jsr166yjavadocs"/> | <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/> |
72 | <property name="build.4jdk7.docs.dir" location="${build.4jdk7.dir}/docs"/> | |
73 | ||
74 | <property name="build.4jdk8.dir" location="${build.dir}/jsr166-4jdk8"/> | |
75 | <property name="build.4jdk8.classes.dir" location="${build.4jdk8.dir}/classes"/> | |
76 | <property name="build.4jdk8.tck.classes.dir" location="${build.4jdk8.dir}/tck-classes"/> | |
77 | <property name="build.4jdk8.docs.dir" location="${build.4jdk8.dir}/docs"/> | |
78 | ||
79 | <property name="build.jsr166x.dir" location="${build.dir}/jsr166x"/> | |
80 | <property name="build.jsr166y.dir" location="${build.dir}/jsr166y"/> | |
81 | <property name="build.jsr166e.dir" location="${build.dir}/jsr166e"/> | |
82 | <property name="build.extra166y.dir" location="${build.dir}/extra166y"/> | <property name="build.extra166y.dir" location="${build.dir}/extra166y"/> |
83 | <property name="build.extra166ylib.dir" location="${build.dir}/extra166ylib"/> | |
84 | <property name="build.extra166yjavadocs.dir" location="${build.dir}/extra166yjavadocs"/> | <property name="build.jsr166x.classes.dir" location="${build.jsr166x.dir}/classes"/> |
85 | <property name="build.jsr166y.classes.dir" location="${build.jsr166y.dir}/classes"/> | |
86 | <property name="build.jsr166e.classes.dir" location="${build.jsr166e.dir}/classes"/> | |
87 | <property name="build.extra166y.classes.dir" location="${build.extra166y.dir}/classes"/> | |
88 | ||
89 | <!-- JDK locations --> | |
90 | <property name="jdks.home" location="${user.home}/jdk"/> | |
91 | ||
92 | <macrodef name="defjdklocations"> | |
93 | <attribute name="v"/> | |
94 | <sequential> | |
95 | <property name="jdk@{v}.home" location="${jdks.home}/jdk@{v}"/> | |
96 | <property name="java@{v}" location="${jdk@{v}.home}/bin/java"/> | |
97 | <property name="javac@{v}" location="${jdk@{v}.home}/bin/javac"/> | |
98 | <property name="javadoc@{v}" location="${jdk@{v}.home}/bin/javadoc"/> | |
99 | <property name="jdk@{v}.src.home" location="${jdks.home}/src/jdk@{v}"/> | |
100 | <local name="have.java.base"/> | |
101 | <available property="have.java.base" | |
102 | file="${jdk@{v}.src.home}/jdk/src/java.base/share/classes" type="dir"/> | |
103 | <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/java.base/share/classes" | |
104 | if:set="have.java.base"/> | |
105 | <property name="jdk@{v}.src.dir" location="${jdk@{v}.src.home}/jdk/src/share/classes" | |
106 | unless:set="have.java.base"/> | |
107 | <local name="modules"/> | |
108 | <available property="modules" file="${jdk@{v}.home}/lib/modules" type="file"/> | |
109 | <local name="boot.jar.dir"/> | |
110 | <property name="boot.jar.dir" location="${jdk@{v}.home}/jre/lib" unless:set="modules"/> | |
111 | <path id="bootclasspath@{v}" unless:set="modules"> | |
112 | <pathelement path="${boot.jar.dir}/resources.jar"/> | |
113 | <pathelement path="${boot.jar.dir}/rt.jar"/> | |
114 | <pathelement path="${boot.jar.dir}/jsse.jar"/> | |
115 | <pathelement path="${boot.jar.dir}/jce.jar"/> | |
116 | <pathelement path="${boot.jar.dir}/charsets.jar"/> | |
117 | </path> | |
118 | <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}" unless:set="modules"/> | |
119 | </sequential> | |
120 | </macrodef> | |
121 | ||
122 | <macrodef name="mirror-dir"> | |
123 | <attribute name="src"/> | |
124 | <attribute name="dst"/> | |
125 | <sequential> | |
126 | <delete dir="@{dst}"/> | |
127 | <mkdir dir="@{dst}"/> | |
128 | <copy todir="@{dst}" preservelastmodified="true"> | |
129 | <fileset dir="@{src}"/> | |
130 | </copy> | |
131 | </sequential> | |
132 | </macrodef> | |
133 | ||
134 | <defjdklocations v="6"/> | |
135 | <defjdklocations v="7"/> | |
136 | <defjdklocations v="8"/> | |
137 | <defjdklocations v="9"/> | |
138 | <defjdklocations v="10"/> | |
139 | <defjdklocations v="11"/> | |
140 | <defjdklocations v="12"/> | |
141 | ||
142 | <!-- Source locations --> | <!-- Source locations --> |
143 | <property name="src.dir" location="${basedir}/src/main"/> | <property name="src.dir" location="${basedir}/src/main"/> |
144 | <property name="test.src.dir" location="${basedir}/src/test"/> | <property name="test.src.dir" location="${basedir}/src/test"/> |
145 | <property name="loops.src.dir" location="${basedir}/src/loops"/> | <property name="loops.src.dir" location="${basedir}/src/loops"/> |
146 | <property name="tck.src.dir" location="${test.src.dir}/tck"/> | <property name="tck.src.dir" location="${test.src.dir}/tck"/> |
147 | <property name="jtreg.src.dir" location="${test.src.dir}/jtreg"/> | <property name="jtreg7.src.dir" location="${test.src.dir}/jtreg-jdk7"/> |
148 | <property name="jtreg8.src.dir" location="${test.src.dir}/jtreg-jdk8"/> | |
149 | <property name="jtreg9.src.dir" location="${test.src.dir}/jtreg"/> | |
150 | <property name="jtreg10.src.dir" location="${test.src.dir}/jtreg"/> | |
151 | <property name="jtreg11.src.dir" location="${test.src.dir}/jtreg"/> | |
152 | <property name="jtreg12.src.dir" location="${test.src.dir}/jtreg"/> | |
153 | <property name="jtreg.src.dir" location="${jtreg9.src.dir}"/> | |
154 | <property name="lib.dir" location="${basedir}/lib"/> | <property name="lib.dir" location="${basedir}/lib"/> |
155 | <property name="dist.dir" location="${basedir}/dist"/> | <property name="dist.dir" location="${basedir}/dist"/> |
156 | <property name="topsrc.dir" location="${basedir}/src"/> | <property name="topsrc.dir" location="${basedir}/src"/> |
157 | <property name="jsr166xsrc.dir" location="${basedir}/src/jsr166x"/> | <property name="4jdk7src.dir" location="${topsrc.dir}/jdk7"/> |
158 | <property name="jsr166ysrc.dir" location="${basedir}/src/jsr166y"/> | <property name="4jdk8src.dir" location="${topsrc.dir}/jdk8"/> |
159 | <property name="extra166ysrc.dir" location="${basedir}/src/extra166y"/> | <property name="jsr166xsrc.dir" location="${topsrc.dir}/jsr166x"/> |
160 | <property name="jdksrc.dir" location="/home/dl/1.6.0/j2se/martin/j2se/src/share/classes"/> | <property name="jsr166ysrc.dir" location="${topsrc.dir}/jsr166y"/> |
161 | <!-- Distribution locations --> | <property name="jsr166esrc.dir" location="${topsrc.dir}/jsr166e"/> |
162 | <property name="dist.javadocs.dir" location="${dist.dir}/docs"/> | <property name="extra166ysrc.dir" location="${topsrc.dir}/extra166y"/> |
163 | <property name="dist.jsr166xjavadocs.dir" location="${dist.dir}/jsr166xdocs"/> | |
164 | <property name="dist.jsr166yjavadocs.dir" location="${dist.dir}/jsr166ydocs"/> | <!-- Javadoc locations --> |
165 | <property name="dist.extra166yjavadocs.dir" location="${dist.dir}/extra166ydocs"/> | <property name="docs.dir" location="${build.dir}/docs"/> |
166 | <property name="4jdk7docs.dir" location="${build.4jdk7.dir}/docs"/> | |
167 | <property name="4jdk8docs.dir" location="${build.4jdk8.dir}/docs"/> | |
168 | <property name="jsr166xdocs.dir" location="${build.jsr166x.dir}/docs"/> | |
169 | <property name="jsr166ydocs.dir" location="${build.jsr166y.dir}/docs"/> | |
170 | <property name="jsr166edocs.dir" location="${build.jsr166e.dir}/docs"/> | |
171 | <property name="extra166ydocs.dir" location="${build.extra166y.dir}/docs"/> | |
172 | ||
173 | <property name="dist.docs.dir" location="${dist.dir}/docs"/> | |
174 | <property name="dist.4jdk7docs.dir" location="${dist.dir}/jsr166-4jdk7docs"/> | |
175 | <property name="dist.4jdk8docs.dir" location="${dist.dir}/jsr166-4jdk8docs"/> | |
176 | <property name="dist.jsr166xdocs.dir" location="${dist.dir}/jsr166xdocs"/> | |
177 | <property name="dist.jsr166ydocs.dir" location="${dist.dir}/jsr166ydocs"/> | |
178 | <property name="dist.jsr166edocs.dir" location="${dist.dir}/jsr166edocs"/> | |
179 | <property name="dist.extra166ydocs.dir" location="${dist.dir}/extra166ydocs"/> | |
180 | ||
181 | <!-- Jar locations --> | <!-- Jar locations --> |
182 | <property name="product.jar" location="${build.lib.dir}/jsr166.jar"/> | <property name="product.jar" location="${build.dir}/jsr166.jar"/> |
183 | <property name="jsr166xproduct.jar" location="${build.jsr166xlib.dir}/jsr166x.jar"/> | <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/> |
184 | <property name="jsr166yproduct.jar" location="${build.jsr166ylib.dir}/jsr166y.jar"/> | <property name="4jdk8product.jar" location="${build.4jdk8.dir}/jsr166-4jdk8.jar"/> |
185 | <property name="extra166yproduct.jar" location="${build.extra166ylib.dir}/extra166y.jar"/> | <property name="jsr166x.jar" location="${build.jsr166x.dir}/jsr166x.jar"/> |
186 | <property name="junit.jar" location="${lib.dir}/junit.jar"/> | <property name="jsr166y.jar" location="${build.jsr166y.dir}/jsr166y.jar"/> |
187 | <property name="jsr166e.jar" location="${build.jsr166e.dir}/jsr166e.jar"/> | |
188 | <!-- Bootclasspath argument --> | <property name="extra166y.jar" location="${build.extra166y.dir}/extra166y.jar"/> |
189 | <property name="bootclasspath.args" value="-Xbootclasspath/p:${product.jar}"/> | <property name="junit.jar" location="${lib.dir}/junit.jar"/> |
190 | ||
191 | <!-- Test classpath --> | <!-- Canonical location of jdk docs root, to use with javadoc -Xdocrootparent flag --> |
192 | <path id="test.classpath"> | <!-- Switched to https: in 2017-10 - JDK-8190312 --> |
193 | <pathelement location="${build.testcases.dir}"/> | <property name="java5.docroot.url" value="https://docs.oracle.com/javase/1.5.0/docs"/> |
194 | <pathelement location="${junit.jar}"/> | <property name="java6.docroot.url" value="https://docs.oracle.com/javase/6/docs"/> |
195 | </path> | <property name="java7.docroot.url" value="https://docs.oracle.com/javase/7/docs"/> |
196 | <property name="java8.docroot.url" value="https://docs.oracle.com/javase/8/docs"/> | |
197 | <property name="java9.docroot.url" value="https://docs.oracle.com/javase/9/docs"/> | |
198 | <property name="java10.docroot.url" value="https://docs.oracle.com/javase/10/docs"/> | |
199 | <property name="java11.docroot.url" value="https://docs.oracle.com/en/java/javase/11/docs"/> | |
200 | <!-- The location of jdk early access docs (RIP) --> | |
201 | <!-- <property name="java9.docroot.url" value="http://download.java.net/java/jdk9/docs"/> --> | |
202 | <!-- <property name="java10.docroot.url" value="http://download.java.net/java/jdk10/docs"/> --> | |
203 | <!-- <property name="java11.docroot.url" value="http://download.java.net/java/jdk11/docs"/> --> | |
204 | <property name="java12.docroot.url" value="https://download.java.net/java/jdk12/docs"/> | |
205 | <!-- Default jdk doc location (latest stable LTS release seems best) --> | |
206 | <property name="java.docroot.url" value="${java11.docroot.url}"/> | |
207 | ||
208 | <!-- Canonical location of jdk API docs, to use with javadoc link attribute --> | |
209 | <property name="java5.api.url" value="${java5.docroot.url}/api/"/> | |
210 | <property name="java6.api.url" value="${java6.docroot.url}/api/"/> | |
211 | <property name="java7.api.url" value="${java7.docroot.url}/api/"/> | |
212 | <property name="java8.api.url" value="${java8.docroot.url}/api/"/> | |
213 | <property name="java9.api.url" value="${java9.docroot.url}/api/"/> | |
214 | <property name="java10.api.url" value="${java10.docroot.url}/api/"/> | |
215 | <property name="java11.api.url" value="${java11.docroot.url}/api/"/> | |
216 | <property name="java12.api.url" value="${java12.docroot.url}/api/"/> | |
217 | <property name="java.api.url" value="${java.docroot.url}/api/"/> | |
218 | ||
219 | <!-- Define the "jtreg" task --> | |
220 | <!-- See the docs in "jtreg -onlineHelp" --> | |
221 | <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant" | |
222 | classpath="${lib.dir}/jtreg.jar" /> | |
223 | ||
224 | <!-- Tck options; see JSR166TestCase.java | |
225 | To profile a single tck test class: | |
226 | ant -Djsr166.profileTests=true -Djsr166.profileThreshold=10 -Djsr166.tckTestClass=CompletableFutureTest tck | |
227 | To stress test a single tck test class: | |
228 | ant -Djsr166.tckTestClass=CountedCompleterTest -Djsr166.runsPerTest=100 tck | |
229 | To stress test a single tck test method: | |
230 | ant -Djsr166.tckTestClass=RecursiveTaskTest -Djsr166.runsPerTest=1000 -Djsr166.methodFilter=testAbnormalInvokeAll3 tck | |
231 | --> | |
232 | <property name="jsr166.tckTestClass" value="JSR166TestCase"/> | |
233 | <macrodef name="run-tck-tests"> | |
234 | <attribute name="tck.src.dir" default="${tck.src.dir}"/> | |
235 | <attribute name="target"/> | |
236 | <attribute name="compile-target" default="@{target}"/> | |
237 | <attribute name="workdir"/> | |
238 | <attribute name="classes"/> | |
239 | <!-- | |
240 | <attribute name="jvmflags" default="-XX:+UseParallelGC -XX:-UseBiasedLocking -ea -esa -Djsr166.testImplementationDetails=true"/> | |
241 | --> | |
242 | <attribute name="jvmflags" default="-ea -esa -Djsr166.testImplementationDetails=true"/> | |
243 | <element name="javac-elements" optional="true"/> | |
244 | ||
245 | <sequential> | |
246 | ||
247 | <local name="modules"/> | |
248 | <condition property="modules"> | |
249 | <available file="${jdk@{compile-target}.home}/lib/modules" type="file"/> | |
250 | </condition> | |
251 | ||
252 | <local name="use-doclint"/> | |
253 | <condition property="use-doclint"> | |
254 | <not> <equals arg1="@{target}" arg2="7"/> </not> | |
255 | </condition> | |
256 | ||
257 | <mkdir dir="@{workdir}/tck-classes"/> | |
258 | ||
259 | <javac srcdir="@{tck.src.dir}" | |
260 | destdir="@{workdir}/tck-classes" | |
261 | debug="${build.debug}" | |
262 | debuglevel="${build.debuglevel}" | |
263 | deprecation="${build.deprecation}" | |
264 | source="@{compile-target}" | |
265 | target="@{compile-target}" | |
266 | classpath="${junit.jar}" | |
267 | includeAntRuntime="false" | |
268 | includeJavaRuntime="false" | |
269 | encoding="ASCII" | |
270 | executable="${javac@{compile-target}}" | |
271 | fork="true"> | |
272 | ||
273 | <include name="*.java"/> | |
274 | <compilerarg value="-XDignore.symbol.file=true"/> | |
275 | <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation,-try"/> | |
276 | <compilerarg value="-Xdoclint:reference/private" if:set="use-doclint"/> | |
277 | <compilerarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/> | |
278 | <compilerarg value="--patch-module=java.base=@{classes}" if:set="modules"/> | |
279 | <compilerarg line="${build.args}"/> | |
280 | <javac-elements/> | |
281 | ||
282 | </javac> | |
283 | ||
284 | <java classname="${jsr166.tckTestClass}" | |
285 | failonerror="true" | |
286 | jvm="${java@{target}}" | |
287 | fork="true"> | |
288 | <jvmarg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/> | |
289 | <jvmarg value="--patch-module=java.base=@{classes}" if:set="modules"/> | |
290 | <jvmarg value="--add-opens=java.base/java.lang=ALL-UNNAMED" if:set="modules"/> | |
291 | <jvmarg value="--add-opens=java.base/java.util=ALL-UNNAMED" if:set="modules"/> | |
292 | <jvmarg value="--add-opens=java.base/java.util.concurrent=ALL-UNNAMED" if:set="modules"/> | |
293 | <jvmarg value="--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED" if:set="modules"/> | |
294 | <jvmarg value="--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED" if:set="modules"/> | |
295 | <jvmarg line="@{jvmflags}"/> | |
296 | <!-- ant -Dvmoptions="-Xmx8m" -Djsr166.tckTestClass=CompletableFutureTest tck --> | |
297 | <jvmarg line="${vmoptions}" if:set="vmoptions"/> | |
298 | ||
299 | <!-- ant -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 tck --> | |
300 | <syspropertyset id="system-properties-used-by-tck"> | |
301 | <propertyref prefix="java.util.concurrent.ForkJoinPool"/> | |
302 | <propertyref prefix="jsr166."/> | |
303 | <propertyref name="test.timeout.factor"/> | |
304 | </syspropertyset> | |
305 | ||
306 | <classpath> | |
307 | <pathelement location="${junit.jar}"/> | |
308 | <pathelement location="@{workdir}/tck-classes"/> | |
309 | </classpath> | |
310 | </java> | |
311 | ||
312 | </sequential> | |
313 | </macrodef> | |
314 | ||
315 | <!-- Define jtreg test sets for different jdk versions --> | |
316 | <!-- ant -Djtreg.test.pattern="**/ConcurrentHashMap/" --> | |
317 | <!-- ant -Djtreg.test.pattern="**/ToArray.java" --> | |
318 | <property name="jtreg.test.pattern" value="**/*.java"/> | |
319 | <macrodef name="defjtregtests"> | |
320 | <attribute name="v"/> | |
321 | <sequential> | |
322 | <fileset dir="${jtreg@{v}.src.dir}"> | |
323 | <patternset id="jdk@{v}.jtreg.tests"> | |
324 | <include name="${jtreg.test.pattern}"/> | |
325 | </patternset> | |
326 | </fileset> | |
327 | </sequential> | |
328 | </macrodef> | |
329 | ||
330 | <defjtregtests v="12"/> | |
331 | <defjtregtests v="11"/> | |
332 | <defjtregtests v="10"/> | |
333 | <defjtregtests v="9"/> | |
334 | <defjtregtests v="8"/> | |
335 | <defjtregtests v="7"/> | |
336 | ||
337 | <!-- ant -Djtreg.flags=-timeoutFactor:4 --> | |
338 | <property name="jtreg.flags" value=""/> | |
339 | ||
340 | <macrodef name="run-jtreg-tests"> | |
341 | <!-- ant -Djtreg9.src.dir=src/test/jtreg/util/concurrent/CompletableFuture jtreg --> | |
342 | <attribute name="target"/> | |
343 | <attribute name="workdir"/> | |
344 | <attribute name="classes"/> | |
345 | <attribute name="verbose" default="${jtreg.verbose}"/> | |
346 | <attribute name="jtregflags" default=""/> | |
347 | <element name="jtreg-elements" optional="true"/> | |
348 | ||
349 | <sequential> | |
350 | ||
351 | <!-- ant -Djtreg.verbose=time,fail,error jtreg --> | |
352 | <property name="jtreg.verbose" value="nopass,fail,error"/> | |
353 | ||
354 | <local name="modules"/> | |
355 | <condition property="modules"> | |
356 | <available file="${jdk@{target}.home}/lib/modules" type="file"/> | |
357 | </condition> | |
358 | ||
359 | <delete dir="@{workdir}/JTwork" quiet="true"/> | |
360 | <jtreg dir="${jtreg@{target}.src.dir}" | |
361 | jdk="${jdk@{target}.home}" | |
362 | workDir="@{workdir}/JTwork"> | |
363 | <patternset refid="jdk@{target}.jtreg.tests"/> | |
364 | <arg value="-Xbootclasspath/p:@{classes}" unless:set="modules"/> | |
365 | <arg value="-javacoptions:--patch-module=java.base=@{classes}" if:set="modules"/> | |
366 | <arg value="-vmoptions:--patch-module=java.base=@{classes}" if:set="modules"/> | |
367 | <arg value="-agentvm"/> | |
368 | <arg value="-noreport"/> | |
369 | <arg value="-verbose:@{verbose}"/> | |
370 | <arg value="-vmoptions:-esa -ea"/> | |
371 | <arg value="-automatic"/> | |
372 | <arg value="-k:!ignore"/> | |
373 | <arg line="@{jtregflags}"/> | |
374 | <arg line="${jtreg.flags}"/> | |
375 | <jtreg-elements/> | |
376 | </jtreg> | |
377 | </sequential> | |
378 | </macrodef> | |
379 | ||
380 | <!-- ALoops classpath --> | <!-- ALoops classpath --> |
381 | <path id="loops.classpath"> | <path id="loops.classpath"> |
382 | <pathelement location="${build.loops.dir}"/> | <pathelement location="${build.loops.dir}"/> |
383 | </path> | </path> |
384 | ||
385 | <!-- Support @jls tag, used in jdk8+ javadoc --> | |
386 | <property name="javadoc.jls.cite" value="The Java&trade; Language Specification"/> | |
387 | <property name="javadoc.jls.option" value="jls:a:See <cite>${javadoc.jls.cite}</cite>:"/> | |
388 | ||
389 | <!-- Main targets --> | <!-- Main targets --> |
390 | ||
391 | <!-- Default values: may seem strange ... --> | |
392 | <!-- At runtime, target latest LTS, i.e. jdk11 --> | |
393 | <!-- But at build time, target jdk9, for maximal binary portability --> | |
394 | <!-- Use javadoc12 (but -link to jdk11 api docs!), to get: | |
395 | o override-methods=summary | |
396 | o {@systemProperty ...} | |
397 | o 8211194: issues linking to external documentation (was: missing package-list for JDK10 / JDK11 documentation) | |
398 | o 8202628: javadoc generates bad links in TestModules.java | |
399 | --> | |
400 | <property name="java.runtime.target" value="11"/> | |
401 | <property name="build.main.java" value="${java11}"/> | |
402 | <property name="build.main.javac" value="${javac9}"/> | |
403 | <property name="build.main.javadoc" value="${javadoc12}"/> | |
404 | <property name="build.main.javadoc.source" value="${java.runtime.target}"/> | |
405 | ||
406 | <target name="dists" | <target name="dists" |
407 | depends="dist, jsr166xdist, jsr166ydist, extra166ydist" | depends="dist, 4jdk8dist" |
408 | description="Builds all public jars and docs"/> | description="Builds all public jars and docs"/> |
409 | <!-- no longer supported: 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist --> | |
410 | ||
411 | <target name="compile" | <target name="compile" |
412 | depends="init, configure-compiler" | depends="configure-compiler" |
413 | description="Compiles main sources to build folder"> | description="Compiles src/main sources to build dir"> |
414 | ||
415 | <mkdir dir="${build.classes.dir}"/> | <local name="destdir"/> |
416 | <property name="destdir" value="${build.classes.dir}/java.base"/> | |
417 | ||
418 | <mkdir dir="${destdir}"/> | |
419 | ||
420 | <javac srcdir="${src.dir}" | <javac srcdir="${src.dir}" |
421 | destdir="${build.classes.dir}" | destdir="${destdir}" |
422 | debug="${build.debug}" | debug="${build.debug}" |
423 | debuglevel="${build.debuglevel}" | debuglevel="${build.debuglevel}" |
424 | deprecation="${build.deprecation}" | deprecation="${build.deprecation}" |
425 | source="${build.sourcelevel}" | classpath="" |
426 | fork="true"> | includeAntRuntime="false" |
427 | includeJavaRuntime="false" | |
428 | encoding="ASCII" | |
429 | executable="${build.main.javac}" | |
430 | fork="true"> | |
431 | ||
432 | <include name="**/*.java"/> | <include name="**/*.java"/> |
433 | <compilerarg value="--patch-module=java.base=${src.dir}"/> | |
434 | <compilerarg value="-Xprefer:source"/> | |
435 | <compilerarg value="-XDignore.symbol.file=true"/> | <compilerarg value="-XDignore.symbol.file=true"/> |
436 | <compilerarg value="-Xlint:all,-removal"/> | |
437 | <!-- | <compilerarg line="--doclint-format html5"/> |
438 | <exclude name="java/lang/**"/> | <compilerarg value="-Xdoclint:all/protected,reference/private"/> |
439 | <compilerarg value="-Werror"/> | |
440 | <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/> | |
441 | <compilerarg line="${build.args}"/> | <compilerarg line="${build.args}"/> |
<compilerarg line="-Xlint -Xmaxwarns 1000"/> | ||
--> | ||
442 | ||
443 | </javac> | </javac> |
444 | </target> | </target> |
445 | ||
446 | ||
447 | <target name="jar" | <target name="jar" |
448 | depends="compile" | depends="compile" |
449 | description="Builds library jar from compiled sources"> | description="Builds library jar for src/main from compiled sources"> |
450 | <local name="subdir"/> | |
451 | <mkdir dir="${build.lib.dir}"/> | <available property="subdir" file="${build.classes.dir}/java.base" type="dir" value="/java.base"/> |
452 | <jar destfile="${product.jar}"> | <jar destfile="${product.jar}"> |
453 | <fileset dir="${build.classes.dir}"/> | <fileset dir="${build.classes.dir}${subdir}"/> |
454 | <manifest> | |
455 | <attribute name="Built-By" value="${user.name}"/> | |
456 | <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/> | |
457 | </manifest> | |
458 | </jar> | </jar> |
459 | </target> | </target> |
460 | ||
461 | ||
<target name="test" | ||
depends="init, configure-tests, report-tests" | ||
description="Runs all tests (requires JUnit 3.8.1 in ${ant.home}/lib)" /> | ||
462 | <target name="docs" | <target name="docs" |
463 | description="Builds javadocs with custom tags to build folder"> | description="Builds javadocs for src/main to dist dir"> |
464 | ||
465 | <delete dir="${build.javadocs.dir}"/> | <delete dir="${docs.dir}"/> |
466 | <mkdir dir="${build.javadocs.dir}"/> | <mkdir dir="${docs.dir}"/> |
467 | ||
468 | <javadoc destdir="${build.javadocs.dir}" | <!-- the packagenames="none" hack below prevents scanning the --> |
469 | link="http://download.oracle.com/javase/6/docs/api/" | <!-- sourcepath for packages --> |
overview="${src.dir}/intro.html" | ||
sourcepath="${src.dir}:${jdksrc.dir}" | ||
> | ||
<packageset dir="${src.dir}"/> | ||
470 | ||
471 | <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}" --> | |
472 | <!-- TODO: sourcepath="${src.dir}:${jdk9.src.dir}:${jdk9.src.home}/jdk/src/java.logging/share/classes" --> | |
473 | <!-- TODO: sourcepath="${src.dir}:${jdk9.home}/src.zip" --> | |
474 | <!-- TODO: <arg line="-sourcepath ${src.dir}:${jdk9.home}/src.zip"/> --> | |
475 | <!-- TODO: <arg line="- -module-source-path ${jdk9.home}/src.zip"/> --> | |
476 | <javadoc destdir="${docs.dir}" | |
477 | packagenames="none" | |
478 | link="${java.api.url}" | |
479 | overview="${src.dir}/intro.html" | |
480 | access="${build.javadoc.access}" | |
481 | sourcepath="${src.dir}" | |
482 | classpath="" | |
483 | source="${build.main.javadoc.source}" | |
484 | executable="${build.main.javadoc}"> | |
485 | <!-- TODO: JDK-8214571 failonerror = "true" --> | |
486 | <fileset dir="${src.dir}" defaultexcludes="yes"> | |
487 | <include name="**/*.java"/> | |
488 | </fileset> | |
489 | <arg line="-Xdocrootparent ${java.docroot.url}"/> | |
490 | <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/> | |
491 | <arg value="-XDignore.symbol.file=true"/> | |
492 | <arg value="-html5"/> | |
493 | <arg value="--patch-module=java.base=${src.dir}"/> | |
494 | <!-- old school frames via docs/index.html?overview-summary.html --> | |
495 | <arg value="--frames"/> | |
496 | <arg value="--override-methods=summary"/> | |
497 | <arg value="-tag"/> <arg value="${javadoc.jls.option}"/> | |
498 | <arg value="-tag"/> <arg value="implSpec:a:Implementation Requirements:"/> | |
499 | <arg value="-tag"/> <arg value="implNote:a:Implementation Note:"/> | |
500 | <arg value="-tag"/> <arg value="apiNote:a:API Note:"/> | |
501 | <!-- tags added in jdk9: currently unused --> | |
502 | <!-- <arg value="-tag"/> <arg value="revised:X"/> --> | |
503 | <!-- <arg value="-tag"/> <arg value="spec:X"/> --> | |
504 | </javadoc> | </javadoc> |
505 | </target> | </target> |
506 | ||
507 | ||
508 | <target name="dist" | <target name="dist" |
509 | depends="init, dist-clean, dist-jar, dist-docs" | depends="dist-clean, dist-jar, dist-docs" |
510 | description="Puts all distributable products in single hierarchy"/> | description="Puts all distributable products in single hierarchy"/> |
511 | ||
512 | ||
<target name="release" | ||
depends="dist" | ||
description="Puts entire CVS tree, plus distribution productions, in a jar"> | ||
<property name="release.jar" value="dist/jsr166-${version}-dist.jar"/> | ||
<jar basedir="${basedir}" destfile="${release.jar}"> | ||
<!-- <exclude name="build/**"/> --> | ||
<exclude name="${release.jar}"/> | ||
<exclude name="user.properties"/> | ||
<exclude name="etc/notes/**"/> | ||
<exclude name="src/emulation/**"/> | ||
<exclude name="**/SyntaxTest.java"/> | ||
<exclude name="**/SuperfluousAbstract.java"/> | ||
</jar> | ||
</target> | ||
513 | <target name="clean" | <target name="clean" |
514 | description="Removes all build products"> | description="Removes all build products"> |
515 | <delete dir="${build.dir}"/> | <delete dir="${build.dir}"/> |
<delete dir="${build.classes.dir}"/> | ||
<delete dir="${build.lib.dir}"/> | ||
516 | </target> | </target> |
517 | ||
518 | ||
519 | <target name="dist-clean" | <target name="dist-clean" |
520 | description="Removes all build and distribution products"> | description="Removes all build and distribution products"> |
521 | <delete dir="${build.dir}"/> | |
522 | <delete dir="${dist.dir}"/> | <delete dir="${dist.dir}"/> |
523 | </target> | </target> |
524 | ||
525 | ||
526 | <target name="dist-jar" | |
527 | depends="clean, jar"> | |
528 | <copy file="${product.jar}" todir="${dist.dir}"/> | |
529 | </target> | |
530 | ||
531 | <target name="dist-docs" | <target name="dist-docs" |
532 | description="Builds javadocs without custom tags to dist folder"> | depends="clean, docs"> |
533 | <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/> | |
534 | <delete dir="${dist.javadocs.dir}"/> | </target> |
<mkdir dir="${dist.javadocs.dir}"/> | ||
<!-- the packagenames="none" hack below prevents scanning the --> | ||
<!-- sourcepath for packages --> | ||
<javadoc destdir="${dist.javadocs.dir}" | ||
packagenames="none" | ||
link="http://download.oracle.com/javase/6/docs/api/" | ||
overview="${src.dir}/intro.html" | ||
sourcepath="${src.dir}:${jdksrc.dir}" > | ||
<fileset dir="${src.dir}" defaultexcludes="yes"> | ||
<include name="**/*.java"/> | ||
</fileset> | ||
</javadoc> | ||
535 | ||
536 | <target name="tck" | |
537 | depends="jar" | |
538 | description="Runs tck tests for src/main directly"> | |
539 | ||
540 | <run-tck-tests | |
541 | target="${java.runtime.target}" | |
542 | workdir="${build.dir}" | |
543 | classes="${product.jar}"> | |
544 | <javac-elements> | |
545 | <compilerarg value="-Werror"/> | |
546 | </javac-elements> | |
547 | </run-tck-tests> | |
548 | </target> | |
549 | ||
550 | <target name="tck-parallelism-1" | |
551 | description="Runs tck with common pool parallelism 1"> | |
552 | <antcall target="tck"> | |
553 | <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="1"/> | |
554 | </antcall> | |
555 | </target> | |
556 | ||
557 | <target name="tck-parallelism-0" | |
558 | description="Runs tck with common pool parallelism 0"> | |
559 | <antcall target="tck"> | |
560 | <param name="java.util.concurrent.ForkJoinPool.common.parallelism" value="0"/> | |
561 | </antcall> | |
562 | </target> | |
563 | ||
564 | <target name="tck-security-manager" | |
565 | description="Runs tck with a security manager"> | |
566 | <antcall target="tck"> | |
567 | <param name="jsr166.useSecurityManager" value="true"/> | |
568 | </antcall> | |
569 | </target> | |
570 | ||
571 | <target name="jtreg" | |
572 | depends="jar" | |
573 | description="Runs jtreg tests for src/main using the jtreg ant task"> | |
574 | <run-jtreg-tests | |
575 | target="${java.runtime.target}" | |
576 | workdir="${build.dir}" | |
577 | classes="${product.jar}"/> | |
578 | </target> | </target> |
579 | ||
580 | <target name="test" | |
581 | depends="tck, tck-parallelism-1, tck-parallelism-0, jtreg" | |
582 | description="Runs tck and jtreg tests for src/main"/> | |
583 | ||
584 | <target name="test-version-permutations" | |
585 | depends="test9, test10, test11, test12, test9-11, test9-12, clean, test, docs"> | |
586 | </target> | |
587 | ||
588 | <!-- Internal targets --> | <target name="test9"> |
589 | <antcall target="clean"/> | |
590 | <antcall> | |
591 | <param name="java.runtime.target" value="9"/> | |
592 | <param name="build.main.javac" value="${javac9}"/> | |
593 | <param name="build.main.javadoc" value="${javadoc12}"/> | |
594 | <param name="build.main.javadoc.source" value="9"/> | |
595 | <target name="test"/> | |
596 | <target name="docs"/> | |
597 | </antcall> | |
598 | </target> | |
599 | ||
600 | <target name="test10"> | |
601 | <antcall target="clean"/> | |
602 | <antcall> | |
603 | <param name="java.runtime.target" value="10"/> | |
604 | <param name="build.main.javac" value="${javac10}"/> | |
605 | <param name="build.main.javadoc" value="${javadoc12}"/> | |
606 | <param name="build.main.javadoc.source" value="10"/> | |
607 | <target name="test"/> | |
608 | <target name="docs"/> | |
609 | </antcall> | |
610 | </target> | |
611 | ||
612 | <target name="test11"> | |
613 | <antcall target="clean"/> | |
614 | <antcall> | |
615 | <param name="java.runtime.target" value="11"/> | |
616 | <param name="build.main.javac" value="${javac11}"/> | |
617 | <param name="build.main.javadoc" value="${javadoc12}"/> | |
618 | <param name="build.main.javadoc.source" value="11"/> | |
619 | <target name="test"/> | |
620 | <target name="docs"/> | |
621 | </antcall> | |
622 | </target> | |
623 | ||
624 | <target name="test12"> | |
625 | <antcall target="clean"/> | |
626 | <antcall> | |
627 | <param name="java.runtime.target" value="12"/> | |
628 | <param name="build.main.javac" value="${javac12}"/> | |
629 | <param name="build.main.javadoc" value="${javadoc12}"/> | |
630 | <param name="build.main.javadoc.source" value="12"/> | |
631 | <target name="test"/> | |
632 | <target name="docs"/> | |
633 | </antcall> | |
634 | </target> | |
635 | ||
636 | <target name="test9-11"> | |
637 | <antcall target="clean"/> | |
638 | <antcall> | |
639 | <param name="java.runtime.target" value="11"/> | |
640 | <param name="build.main.javac" value="${javac9}"/> | |
641 | <param name="build.main.javadoc" value="${javadoc12}"/> | |
642 | <param name="build.main.javadoc.source" value="9"/> | |
643 | <target name="test"/> | |
644 | <target name="docs"/> | |
645 | </antcall> | |
646 | </target> | |
647 | ||
648 | <target name="test9-12"> | |
649 | <antcall target="clean"/> | |
650 | <antcall> | |
651 | <param name="java.runtime.target" value="12"/> | |
652 | <param name="build.main.javac" value="${javac9}"/> | |
653 | <param name="build.main.javadoc" value="${javadoc12}"/> | |
654 | <param name="build.main.javadoc.source" value="9"/> | |
655 | <target name="test"/> | |
656 | <target name="docs"/> | |
657 | </antcall> | |
658 | </target> | |
659 | ||
660 | ||
661 | <target name="init"> | <target name="configure-compiler"> |
662 | <fail message="ant version too old"> | |
663 | <condition> <not> <antversion atleast="1.9.1"/> </not> </condition> | |
664 | </fail> | |
665 | ||
666 | <!-- Version is kept in a separate file --> | <property name="unchecked.option" value="-Xlint:unchecked"/> |
<loadfile property="version" srcFile="version.properties"/> | ||
<echo>Building JSR-166 version ${version}</echo> | ||
<echo>java.home is ${java.home}</echo> | ||
667 | ||
668 | </target> | <condition property="warnunchecked.arg" value="${unchecked.option}"> |
669 | <istrue value="${build.warnunchecked}"/> | |
670 | </condition> | |
671 | ||
672 | <property name="warnunchecked.arg" value=""/> | |
673 | ||
<target name="dist-jar" | ||
depends="clean, jar"> | ||
674 | ||
675 | <copy file="${product.jar}" todir="${dist.dir}"/> | <!-- Common options in javac invocations --> |
676 | <property name="build.args" value="${warnunchecked.arg}"/> | |
677 | ||
678 | </target> | </target> |
679 | ||
680 | ||
681 | <target name="compile-tests" | <target name="compile-test-loops" depends="jar" |
682 | depends="jar"> | description="Compiles all the perf tests in src/test/loops"> |
683 | ||
684 | <mkdir dir="${build.testcases.dir}"/> | <mkdir dir="${build.dir}/test/loops"/> |
685 | ||
686 | <javac srcdir="${tck.src.dir}" | <javac srcdir="${basedir}/src/test/loops" |
687 | destdir="${build.testcases.dir}" | destdir="${build.dir}/test/loops" |
688 | debug="${build.debug}" | debug="${build.debug}" |
689 | debuglevel="${build.debuglevel}" | debuglevel="${build.debuglevel}" |
690 | deprecation="${build.deprecation}" | deprecation="${build.deprecation}" |
691 | source="${build.sourcelevel}" | includeAntRuntime="false" |
692 | fork="true"> | includeJavaRuntime="false" |
693 | encoding="ASCII" | |
694 | executable="${build.main.javac}" | |
695 | fork="true"> | |
696 | ||
697 | <compilerarg value="${bootclasspath.args}"/> | <include name="*.java"/> |
<compilerarg line="${build.args}"/> | ||
698 | <compilerarg value="-XDignore.symbol.file=true"/> | <compilerarg value="-XDignore.symbol.file=true"/> |
699 | <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/> | |
700 | <classpath refid="test.classpath"/> | <compilerarg value="-Xbootclasspath/p:${product.jar}"/> |
701 | <compilerarg line="${build.args}"/> | |
702 | </javac> | </javac> |
703 | </target> | |
704 | ||
<javac srcdir="${test.src.dir}" | ||
destdir="${build.testcases.dir}" | ||
debug="${build.debug}" | ||
debuglevel="${build.debuglevel}" | ||
deprecation="${build.deprecation}" | ||
source="${build.sourcelevel}" | ||
fork="true"> | ||
705 | ||
706 | <include name="jsr166/test/**"/> | <!-- jsr166 4jdk8 --> |
707 | ||
708 | <compilerarg value="${bootclasspath.args}"/> | <target name="4jdk8compile" |
709 | <compilerarg line="${build.args}"/> | depends="configure-compiler" |
710 | description="Compiles src/jdk8 sources, targeting jdk8"> | |
711 | ||
712 | <mkdir dir="${build.4jdk8.classes.dir}"/> | |
713 | ||
714 | <javac srcdir="${4jdk8src.dir}" | |
715 | destdir="${build.4jdk8.classes.dir}" | |
716 | debug="${build.debug}" | |
717 | debuglevel="${build.debuglevel}" | |
718 | deprecation="${build.deprecation}" | |
719 | source="8" | |
720 | target="8" | |
721 | classpath="" | |
722 | bootclasspath="${bootclasspath8}" | |
723 | includeAntRuntime="false" | |
724 | includeJavaRuntime="false" | |
725 | encoding="ASCII" | |
726 | executable="${javac8}" | |
727 | fork="true"> | |
728 | <include name="**/*.java"/> | |
729 | <compilerarg value="-Xprefer:source"/> | |
730 | <compilerarg value="-XDignore.symbol.file=true"/> | <compilerarg value="-XDignore.symbol.file=true"/> |
731 | <compilerarg value="-Xlint:all"/> | |
732 | <classpath refid="test.classpath"/> | <compilerarg value="-Werror"/> |
733 | <compilerarg line="${build.args}"/> | |
734 | </javac> | </javac> |
735 | </target> | |
736 | ||
737 | <!-- | <target name="4jdk8doclint" |
738 | <javac srcdir="${jtreg.src.dir}" | depends="configure-compiler" |
739 | destdir="${build.testcases.dir}" | description="Finds doclint warnings"> |
740 | debug="${build.debug}" | |
741 | debuglevel="${build.debuglevel}" | <mkdir dir="${build.4jdk8.classes.dir}"/> |
742 | deprecation="${build.deprecation}" | |
743 | source="${build.sourcelevel}" | <javac srcdir="${4jdk8src.dir}" |
744 | fork="true"> | destdir="${build.4jdk8.classes.dir}" |
745 | debug="${build.debug}" | |
746 | <compilerarg value="${bootclasspath.args}"/> | debuglevel="${build.debuglevel}" |
747 | <compilerarg line="${build.args}"/> | deprecation="${build.deprecation}" |
748 | source="8" | |
749 | target="8" | |
750 | classpath="" | |
751 | bootclasspath="${bootclasspath8}" | |
752 | includeAntRuntime="false" | |
753 | includeJavaRuntime="false" | |
754 | encoding="ASCII" | |
755 | executable="${javac8}" | |
756 | fork="true"> | |
757 | <include name="**/*.java"/> | |
758 | <compilerarg value="-Xprefer:source"/> | |
759 | <compilerarg value="-XDignore.symbol.file=true"/> | <compilerarg value="-XDignore.symbol.file=true"/> |
760 | <compilerarg value="-Xlint:all"/> | |
761 | <classpath refid="test.classpath"/> | <compilerarg value="-Xdoclint:all/protected,reference/private"/> |
762 | <compilerarg line="${build.args}"/> | |
763 | </javac> | </javac> |
--> | ||
764 | </target> | </target> |
765 | ||
766 | ||
767 | <target name="run-tests" | <target name="4jdk8jar" |
768 | depends="compile-tests"> | depends="4jdk8compile" |
769 | description="Builds library jar from compiled sources"> | |
<!-- May be overridden by user.properties --> | ||
<property name="testcase" value="*"/> | ||
<mkdir dir="${build.reports.dir}"/> | ||
<junit printsummary="true" | ||
showoutput="true" | ||
errorProperty="junit.failed" | ||
failureProperty="junit.failed" | ||
dir="${build.reports.dir}" | ||
fork="true"> | ||
<jvmarg value="${bootclasspath.args}"/> | ||
<jvmarg value="-server"/> | ||
<jvmarg value="-showversion"/> | ||
<classpath refid="test.classpath"/> | ||
<formatter type="xml"/> | ||
<batchtest todir="${build.reports.dir}" unless="no.test.tck"> | ||
<fileset dir="${tck.src.dir}"> | ||
<include name="**/${testcase}Test.java"/> | ||
</fileset> | ||
</batchtest> | ||
<batchtest todir="${build.reports.dir}" if="do.test.old"> | ||
<fileset dir="${test.src.dir}"> | ||
<include name="jsr166/test/**/${testcase}Test.java"/> | ||
</fileset> | ||
</batchtest> | ||
<!-- | ||
<batchtest todir="${build.reports.dir}" if="do.test.jtreg"> | ||
<fileset dir="${jtreg.src.dir}"> | ||
<include name="**/${testcase}Test.java"/> | ||
</fileset> | ||
</batchtest> | ||
--> | ||
</junit> | ||
770 | ||
771 | <jar destfile="${4jdk8product.jar}"> | |
772 | <fileset dir="${build.4jdk8.classes.dir}"/> | |
773 | <manifest> | |
774 | <attribute name="Built-By" value="${user.name}"/> | |
775 | <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/> | |
776 | </manifest> | |
777 | </jar> | |
778 | </target> | </target> |
779 | ||
780 | ||
781 | <target name="report-tests" | <target name="4jdk8-tck" |
782 | depends="run-tests"> | depends="4jdk8jar" |
783 | description="Runs tck tests for jsr166-4jdk8 directly"> | |
<!-- Sets junit.report.format to frames if redirection is present, | ||
otherwise sets it to noframes. --> | ||
<available property="junit.report.format" | ||
value="frames" | ||
classname="org.apache.xalan.lib.Redirect" | ||
/> | ||
<property name="junit.report.format" value="noframes"/> | ||
<junitreport todir="${build.reports.dir}"> | ||
<fileset dir="${build.reports.dir}"> | ||
<include name="TEST-*.xml"/> | ||
</fileset> | ||
<report format="${junit.report.format}" todir="${build.reports.dir}" | ||
/> | ||
</junitreport> | ||
<fail message="Test Cases Failed" if="junit.failed"/> | ||
784 | ||
785 | <run-tck-tests | |
786 | target="8" | |
787 | workdir="${build.4jdk8.dir}" | |
788 | classes="${4jdk8product.jar}"> | |
789 | <javac-elements> | |
790 | <!-- JDK9+ test classes --> | |
791 | <exclude name="*9Test.java"/> | |
792 | <exclude name="*10Test.java"/> | |
793 | <compilerarg value="-Werror"/> | |
794 | </javac-elements> | |
795 | </run-tck-tests> | |
796 | </target> | </target> |
797 | ||
798 | ||
799 | <target name="configure-compiler"> | <target name="4jdk8-jtreg" |
800 | depends="4jdk8jar" | |
801 | description="Runs jtreg tests for jsr166-4jdk8 using the jtreg ant task"> | |
802 | <run-jtreg-tests | |
803 | target="8" | |
804 | workdir="${build.4jdk8.dir}" | |
805 | classes="${4jdk8product.jar}"/> | |
806 | </target> | |
807 | ||
<property name="unchecked.option" value="-Xlint:unchecked"/> | ||
808 | ||
809 | <condition property="warnunchecked.arg" value="${unchecked.option}"> | <target name="4jdk8-test" |
810 | <istrue value="${build.warnunchecked}"/> | depends="4jdk8-tck, 4jdk8-jtreg" |
811 | </condition> | description="Runs tck and jtreg tests for jsr166-4jdk8"/> |
812 | ||
<property name="warnunchecked.arg" value=""/> | ||
813 | ||
814 | <target name="4jdk8docs" | |
815 | description="Builds javadocs for src/jdk8 to dist dir"> | |
816 | ||
817 | <!-- Common options in javac invocations --> | <delete dir="${4jdk8docs.dir}"/> |
818 | <property name="build.args" value="${warnunchecked.arg}"/> | <mkdir dir="${4jdk8docs.dir}"/> |
819 | ||
820 | <javadoc destdir="${4jdk8docs.dir}" | |
821 | packagenames="none" | |
822 | link="${java8.api.url}" | |
823 | overview="${4jdk8src.dir}/intro.html" | |
824 | access="${build.javadoc.access}" | |
825 | sourcepath="${4jdk8src.dir}:${jdk8.src.dir}" | |
826 | classpath="" | |
827 | source="8" | |
828 | executable="${javadoc8}" | |
829 | failonerror = "true"> | |
830 | <fileset dir="${4jdk8src.dir}" defaultexcludes="yes"> | |
831 | <include name="**/*.java"/> | |
832 | </fileset> | |
833 | <arg line="-Xdocrootparent ${java8.docroot.url}"/> | |
834 | <arg value="-XDignore.symbol.file=true"/> | |
835 | <arg value="-tag"/> <arg value="${javadoc.jls.option}"/> | |
836 | <arg value="-tag"/> <arg value="implSpec:a:<em>Implementation Requirements:</em>"/> | |
837 | <arg value="-tag"/> <arg value="implNote:a:<em>Implementation Note:</em>"/> | |
838 | <!-- @apiNote tag currently unused --> | |
839 | <!-- <arg value="-tag"/> <arg value="apiNote:a:<em>API Note:</em>"/> --> | |
840 | </javadoc> | |
841 | </target> | </target> |
842 | ||
843 | ||
844 | <target name="configure-tests" | <target name="4jdk8dist" |
845 | depends="configure-compiler"> | depends="4jdk8dist-jar, 4jdk8dist-docs" |
846 | description="Puts all distributable products in single hierarchy"/> | |
<!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 --> | ||
<available property="junit.available" | ||
classname="junit.framework.Protectable"/> | ||
<!-- Xalan --> | ||
<available property="xalan.available" | ||
classname="org.apache.xalan.Version"/> | ||
847 | ||
848 | ||
849 | <!-- Ant 1.6beta and later don't need or want this check --> | <target name="4jdk8clean" |
850 | <!-- | description="Removes all 4jdk8 build products"> |
851 | <fail message="Need JUnit 3.8.1 in ${ant.home}${file.separator}lib to run tests" | <delete dir="${build.4jdk8.dir}"/> |
852 | unless="junit.available"/> | </target> |
853 | ||
<fail message="Need Xalan 2.5.1 jar in ${ant.home}${file.separator}lib to run tests" | ||
unless="xalan.available"/> | ||
--> | ||
854 | ||
855 | <target name="4jdk8dist-jar" | |
856 | depends="4jdk8clean, 4jdk8jar"> | |
857 | <copy file="${4jdk8product.jar}" todir="${dist.dir}"/> | |
858 | </target> | </target> |
859 | ||
860 | ||
861 | <!-- Various demos and test programs --> | <target name="4jdk8dist-docs" |
862 | depends="4jdk8clean, 4jdk8docs"> | |
863 | <mirror-dir src="${4jdk8docs.dir}" dst="${dist.4jdk8docs.dir}"/> | |
864 | </target> | |
865 | ||
866 | ||
867 | <target name="loops" depends="init, configure-compiler" | <!-- jsr166 4jdk7 (no longer maintained) --> |
description="Benchmark from Doug Lea's AQS paper"> | ||
868 | ||
869 | <mkdir dir="${build.loops.dir}"/> | <target name="4jdk7compile" depends="configure-compiler"> |
870 | <mkdir dir="${build.4jdk7.classes.dir}"/> | |
871 | ||
872 | <javac srcdir="${loops.src.dir}" | <javac srcdir="${4jdk7src.dir}" |
873 | destdir="${build.loops.dir}" | destdir="${build.4jdk7.classes.dir}" |
874 | debug="${build.debug}" | debug="${build.debug}" |
875 | debuglevel="${build.debuglevel}" | debuglevel="${build.debuglevel}" |
876 | deprecation="${build.deprecation}" | deprecation="${build.deprecation}" |
877 | source="${build.sourcelevel}" | source="6" |
878 | fork="true"> | target="6" |
879 | classpath="" | |
880 | bootclasspath="${bootclasspath6}" | |
881 | includeAntRuntime="false" | |
882 | includeJavaRuntime="false" | |
883 | encoding="ASCII" | |
884 | executable="${javac7}" | |
885 | fork="true"> | |
886 | ||
887 | <compilerarg line="${build.args}"/> | <include name="**/*.java"/> |
888 | <classpath refid="loops.classpath"/> | <compilerarg value="-Xprefer:source"/> |
889 | <compilerarg value="-XDignore.symbol.file=true"/> | <compilerarg value="-XDignore.symbol.file=true"/> |
890 | <compilerarg value="-Xlint:all"/> | |
891 | <compilerarg value="-Werror"/> | |
892 | <compilerarg line="${build.args}"/> | |
893 | </javac> | </javac> |
<java classname="ALoops" fork="true"> | ||
<classpath refid="loops.classpath"/> | ||
</java> | ||
894 | </target> | </target> |
895 | ||
896 | <target name="4jdk7doclint" depends="configure-compiler"> | |
897 | <mkdir dir="${build.4jdk7.classes.dir}"/> | |
898 | ||
899 | <!-- jsr166x --> | <javac srcdir="${4jdk7src.dir}" |
900 | destdir="${build.4jdk7.classes.dir}" | |
901 | debug="${build.debug}" | |
902 | <target name="jsr166xcompile" | debuglevel="${build.debuglevel}" |
903 | depends="init, configure-compiler" | deprecation="${build.deprecation}" |
904 | description="Compiles jsr166x sources"> | source="6" |
905 | target="6" | |
906 | <mkdir dir="${build.jsr166x.dir}"/> | classpath="" |
907 | bootclasspath="${bootclasspath6}" | |
908 | <javac srcdir="${jsr166xsrc.dir}" | includeAntRuntime="false" |
909 | destdir="${build.jsr166x.dir}" | includeJavaRuntime="false" |
910 | debug="${build.debug}" | encoding="ASCII" |
911 | debuglevel="${build.debuglevel}" | executable="${javac8}" |
912 | deprecation="${build.deprecation}" | fork="true"> |
source="${build.sourcelevel}" | ||
fork="true"> | ||
913 | ||
914 | <include name="**/*.java"/> | <include name="**/*.java"/> |
915 | <compilerarg line="${build.args}"/> | <compilerarg value="-Xprefer:source"/> |
916 | <compilerarg value="-XDignore.symbol.file=true"/> | <compilerarg value="-XDignore.symbol.file=true"/> |
917 | <compilerarg value="-Xlint:all"/> | |
918 | <compilerarg value="-Xdoclint:all/protected"/> | |
919 | <compilerarg line="${build.args}"/> | |
920 | </javac> | </javac> |
921 | </target> | </target> |
922 | ||
923 | <target name="4jdk7jar" depends="4jdk7compile"> | |
924 | <jar destfile="${4jdk7product.jar}"> | |
925 | <target name="jsr166xjar" | <fileset dir="${build.4jdk7.classes.dir}"/> |
926 | depends="jsr166xcompile" | <manifest> |
927 | description="Builds library jar from compiled sources"> | <attribute name="Built-By" value="${user.name}"/> |
928 | <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/> | |
929 | <mkdir dir="${build.jsr166xlib.dir}"/> | </manifest> |
<jar destfile="${jsr166xproduct.jar}"> | ||
<fileset dir="${build.jsr166x.dir}"/> | ||
930 | </jar> | </jar> |
931 | </target> | |
932 | ||
933 | <target name="4jdk7-tck" depends="4jdk7jar"> | |
934 | <run-tck-tests | |
935 | target="7" | |
936 | workdir="${build.4jdk7.dir}" | |
937 | classes="${4jdk7product.jar}"> | |
938 | <javac-elements> | |
939 | <!-- JDK8+ test classes --> | |
940 | <exclude name="*8Test.java"/> | |
941 | <exclude name="*9Test.java"/> | |
942 | <exclude name="*10Test.java"/> | |
943 | <exclude name="DoubleAccumulatorTest.java"/> | |
944 | <exclude name="DoubleAdderTest.java"/> | |
945 | <exclude name="LongAccumulatorTest.java"/> | |
946 | <exclude name="LongAdderTest.java"/> | |
947 | <exclude name="CompletableFutureTest.java"/> | |
948 | <exclude name="SplittableRandomTest.java"/> | |
949 | <exclude name="StampedLockTest.java"/> | |
950 | <exclude name="SubmissionPublisherTest.java"/> | |
951 | <compilerarg value="-Werror"/> | |
952 | </javac-elements> | |
953 | </run-tck-tests> | |
954 | </target> | </target> |
955 | ||
956 | <!-- Runs tck tests for jsr166-4jdk7 via junit task (dead experiment) --> | |
957 | <target name="4jdk7-tck-junit" depends="4jdk7compile"> | |
958 | ||
959 | <junit printsummary="true" | |
960 | showoutput="true" | |
961 | errorProperty="junit.failed" | |
962 | failureProperty="junit.failed" | |
963 | includeantruntime="true" | |
964 | jvm="${java7}" | |
965 | fork="true"> | |
966 | ||
967 | <target name="jsr166xdocs" | <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/> |
968 | description="Builds javadocs with custom tags to build folder"> | <jvmarg value="-server"/> |
969 | ||
970 | <delete dir="${build.jsr166xjavadocs.dir}"/> | <classpath> |
971 | <mkdir dir="${build.jsr166xjavadocs.dir}"/> | <pathelement location="${junit.jar}"/> |
972 | <pathelement location="${build.4jdk7.tck.classes.dir}"/> | |
973 | </classpath> | |
974 | ||
975 | <javadoc destdir="${build.jsr166xjavadocs.dir}" | <formatter type="brief"/> |
packagenames="jsr166x" | ||
link="http://download.oracle.com/javase/6/docs/api/" | ||
source="${build.sourcelevel}" | ||
sourcepath="${topsrc.dir}:${jdksrc.dir}" /> | ||
976 | ||
977 | <test name="${jsr166.tckTestClass}" haltonfailure="no"> | |
978 | </test> | |
979 | </junit> | |
980 | </target> | </target> |
981 | ||
982 | <target name="4jdk7-jtreg" depends="4jdk7jar"> | |
983 | <run-jtreg-tests | |
984 | target="7" | |
985 | workdir="${build.4jdk7.dir}" | |
986 | classes="${4jdk7product.jar}"/> | |
987 | </target> | |
988 | ||
989 | <target name="jsr166xdist" | <target name="4jdk7-test" depends="4jdk7-tck, 4jdk7-jtreg"/> |
depends="jsr166xdist-clean, jsr166xdist-jar, jsr166xdist-docs" | ||
description="Puts all distributable products in single hierarchy"/> | ||
<target name="jsr166xclean" | ||
description="Removes all build products"> | ||
990 | ||
991 | <delete dir="${build.jsr166x.dir}"/> | <target name="4jdk7docs"> |
992 | <delete dir="${build.jsr166xlib.dir}"/> | <delete dir="${4jdk7docs.dir}"/> |
993 | <mkdir dir="${4jdk7docs.dir}"/> | |
994 | ||
995 | <javadoc destdir="${4jdk7docs.dir}" | |
996 | packagenames="none" | |
997 | link="${java7.api.url}" | |
998 | overview="${4jdk7src.dir}/intro.html" | |
999 | access="${build.javadoc.access}" | |
1000 | sourcepath="${4jdk7src.dir}:${jdk7.src.dir}" | |
1001 | classpath="" | |
1002 | executable="${javadoc7}" | |
1003 | failonerror = "true"> | |
1004 | <fileset dir="${4jdk7src.dir}" defaultexcludes="yes"> | |
1005 | <include name="**/*.java"/> | |
1006 | </fileset> | |
1007 | <arg line="-Xdocrootparent ${java7.docroot.url}"/> | |
1008 | <arg value="-XDignore.symbol.file=true"/> | |
1009 | </javadoc> | |
1010 | </target> | </target> |
1011 | ||
1012 | <target name="4jdk7dist" depends="4jdk7dist-jar, 4jdk7dist-docs"/> | |
1013 | ||
1014 | <target name="4jdk7clean"> | |
1015 | <delete dir="${build.4jdk7.dir}"/> | |
1016 | </target> | |
1017 | ||
1018 | <target name="jsr166xdist-clean" | <target name="4jdk7dist-jar" depends="4jdk7clean, 4jdk7jar"> |
1019 | description="Removes all build and distribution products"> | <copy file="${4jdk7product.jar}" todir="${dist.dir}"/> |
1020 | </target> | |
1021 | ||
1022 | <target name="4jdk7dist-docs" depends="4jdk7clean, 4jdk7docs"> | |
1023 | <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/> | |
1024 | </target> | </target> |
1025 | ||
1026 | ||
1027 | <!-- jsr166x (no longer maintained) --> | |
1028 | ||
1029 | <target name="jsr166xdist-docs" | <target name="jsr166xcompile" depends="configure-compiler"> |
1030 | description="Builds javadocs without custom tags to dist folder"> | <mkdir dir="${build.jsr166x.classes.dir}"/> |
1031 | ||
1032 | <delete dir="${dist.jsr166xjavadocs.dir}"/> | <javac srcdir="${topsrc.dir}" |
1033 | <mkdir dir="${dist.jsr166xjavadocs.dir}"/> | destdir="${build.jsr166x.classes.dir}" |
1034 | debug="${build.debug}" | |
1035 | debuglevel="${build.debuglevel}" | |
1036 | deprecation="${build.deprecation}" | |
1037 | classpath="" | |
1038 | bootclasspath="${bootclasspath6}" | |
1039 | source="5" | |
1040 | target="5" | |
1041 | includeAntRuntime="false" | |
1042 | includeJavaRuntime="false" | |
1043 | encoding="ASCII" | |
1044 | executable="${javac7}" | |
1045 | fork="true"> | |
1046 | <include name="jsr166x/**/*.java"/> | |
1047 | <compilerarg value="-XDignore.symbol.file=true"/> | |
1048 | <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/> | |
1049 | <compilerarg value="-Werror"/> | |
1050 | <compilerarg line="${build.args}"/> | |
1051 | </javac> | |
1052 | </target> | |
1053 | ||
1054 | <javadoc destdir="${dist.jsr166xjavadocs.dir}" | <target name="jsr166xjar" depends="jsr166xcompile"> |
1055 | packagenames="jsr166x" | <jar destfile="${jsr166x.jar}"> |
1056 | link="http://download.oracle.com/javase/6/docs/api/" | <fileset dir="${build.jsr166x.classes.dir}"/> |
1057 | source="${build.sourcelevel}" | <manifest> |
1058 | sourcepath="${topsrc.dir}:${jdksrc.dir}" /> | <attribute name="Built-By" value="${user.name}"/> |
1059 | <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/> | |
1060 | </manifest> | |
1061 | </jar> | |
1062 | </target> | |
1063 | ||
1064 | <target name="jsr166xdocs"> | |
1065 | <delete dir="${jsr166xdocs.dir}"/> | |
1066 | <mkdir dir="${jsr166xdocs.dir}"/> | |
1067 | ||
1068 | <javadoc destdir="${jsr166xdocs.dir}" | |
1069 | packagenames="jsr166x.*" | |
1070 | link="${java.api.url}" | |
1071 | access="${build.javadoc.access}" | |
1072 | sourcepath="${topsrc.dir}:${jdk6.src.dir}" | |
1073 | bootclasspath="${bootclasspath6}" | |
1074 | source="5" | |
1075 | executable="${javadoc7}" | |
1076 | failonerror = "true"> | |
1077 | <arg line="-Xdocrootparent ${java.docroot.url}"/> | |
1078 | <arg value="-XDignore.symbol.file=true"/> | |
1079 | </javadoc> | |
1080 | </target> | </target> |
1081 | ||
1082 | <target name="jsr166xdist-jar" | <target name="jsr166xdist" depends="jsr166xdist-jar, jsr166xdist-docs"/> |
depends="jsr166xclean, jsr166xjar"> | ||
1083 | ||
1084 | <copy file="${jsr166xproduct.jar}" todir="${dist.dir}"/> | <target name="jsr166xclean"> |
1085 | <delete dir="${build.jsr166x.dir}"/> | |
1086 | </target> | |
1087 | ||
1088 | <target name="jsr166xdist-jar" depends="jsr166xclean, jsr166xjar"> | |
1089 | <copy file="${jsr166x.jar}" todir="${dist.dir}"/> | |
1090 | </target> | </target> |
1091 | ||
1092 | <!-- jsr166y --> | <target name="jsr166xdist-docs" depends="jsr166xclean, jsr166xdocs"> |
1093 | <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/> | |
1094 | </target> | |
1095 | ||
1096 | ||
1097 | <target name="jsr166ycompile" | <!-- jsr166y (no longer maintained) --> |
depends="init, configure-compiler" | ||
description="Compiles jsr166y sources"> | ||
1098 | ||
1099 | <mkdir dir="${build.jsr166y.dir}"/> | <target name="jsr166ycompile" depends="configure-compiler"> |
1100 | <mkdir dir="${build.jsr166y.classes.dir}"/> | |
1101 | ||
1102 | <javac srcdir="${jsr166ysrc.dir}" | <javac srcdir="${topsrc.dir}" |
1103 | destdir="${build.jsr166y.dir}" | destdir="${build.jsr166y.classes.dir}" |
1104 | debug="${build.debug}" | debug="${build.debug}" |
1105 | debuglevel="${build.debuglevel}" | debuglevel="${build.debuglevel}" |
1106 | deprecation="${build.deprecation}" | deprecation="${build.deprecation}" |
1107 | source="${build.sourcelevel}" | source="6" |
1108 | fork="true"> | target="6" |
1109 | classpath="" | |
1110 | bootclasspath="${bootclasspath6}" | |
1111 | includeAntRuntime="false" | |
1112 | includeJavaRuntime="false" | |
1113 | encoding="ASCII" | |
1114 | executable="${javac7}" | |
1115 | fork="true"> | |
1116 | ||
1117 | <include name="**/*.java"/> | <include name="jsr166y/**/*.java"/> |
<compilerarg line="${build.args}"/> | ||
1118 | <compilerarg value="-XDignore.symbol.file=true"/> | <compilerarg value="-XDignore.symbol.file=true"/> |
1119 | <compilerarg value="${bootclasspath.args}"/> | <compilerarg value="-Xlint:all"/> |
1120 | <compilerarg value="-Werror"/> | |
1121 | <!-- <compilerarg line="-Xlint -Xmaxwarns 1000"/> --> | <compilerarg line="${build.args}"/> |
1122 | </javac> | </javac> |
1123 | </target> | </target> |
1124 | ||
1125 | <target name="jsr166yjar" depends="jsr166ycompile"> | |
1126 | <jar destfile="${jsr166y.jar}" index="true"> | |
1127 | <target name="jsr166yjar" | <fileset dir="${build.jsr166y.classes.dir}"/> |
1128 | depends="jsr166ycompile" | <manifest> |
1129 | description="Builds library jar from compiled sources"> | <attribute name="Built-By" value="${user.name}"/> |
1130 | <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/> | |
1131 | <mkdir dir="${build.jsr166ylib.dir}"/> | </manifest> |
<jar destfile="${jsr166yproduct.jar}" index="true"> | ||
<fileset dir="${build.jsr166y.dir}"/> | ||
1132 | </jar> | </jar> |
1133 | </target> | </target> |
1134 | ||
1135 | <target name="jsr166ydocs"> | |
1136 | <delete dir="${jsr166ydocs.dir}"/> | |
1137 | <mkdir dir="${jsr166ydocs.dir}"/> | |
1138 | ||
1139 | <javadoc destdir="${jsr166ydocs.dir}" | |
1140 | packagenames="jsr166y.*" | |
1141 | link="${java.api.url}" | |
1142 | access="${build.javadoc.access}" | |
1143 | sourcepath="${topsrc.dir}:${jdk6.src.dir}" | |
1144 | bootclasspath="${bootclasspath6}" | |
1145 | source="6" | |
1146 | executable="${javadoc7}" | |
1147 | failonerror = "true"> | |
1148 | <arg line="-Xdocrootparent ${java.docroot.url}"/> | |
1149 | <arg value="-XDignore.symbol.file=true"/> | |
1150 | </javadoc> | |
1151 | </target> | |
1152 | ||
1153 | <target name="jsr166ydist" depends="jsr166ydist-jar, jsr166ydist-docs"/> | |
1154 | ||
1155 | <target name="jsr166ydocs" | <target name="jsr166yclean"> |
1156 | description="Builds javadocs with custom tags to build folder"> | <delete dir="${build.jsr166y.dir}"/> |
1157 | </target> | |
<delete dir="${build.jsr166yjavadocs.dir}"/> | ||
<mkdir dir="${build.jsr166yjavadocs.dir}"/> | ||
<javadoc destdir="${build.jsr166yjavadocs.dir}" | ||
packagenames="jsr166y" | ||
link="http://download.oracle.com/javase/6/docs/api/" | ||
source="${build.sourcelevel}" | ||
sourcepath="${topsrc.dir}:${jdksrc.dir}" /> | ||
1158 | ||
1159 | <target name="jsr166ydist-jar" depends="jsr166yclean, jsr166yjar"> | |
1160 | <copy file="${jsr166y.jar}" todir="${dist.dir}"/> | |
1161 | </target> | </target> |
1162 | ||
1163 | <target name="jsr166ydist-docs" depends="jsr166yclean, jsr166ydocs"> | |
1164 | <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/> | |
1165 | </target> | |
1166 | ||
<target name="jsr166ydist" | ||
depends="jsr166ydist-clean, jsr166ydist-jar, jsr166ydist-docs" | ||
description="Puts all distributable products in single hierarchy"/> | ||
1167 | ||
1168 | <!-- extra166y (no longer maintained) --> | |
1169 | ||
1170 | <target name="extra166ycompile" depends="configure-compiler, jsr166yjar"> | |
1171 | <mkdir dir="${build.extra166y.classes.dir}"/> | |
1172 | ||
1173 | <target name="jsr166yclean" | <javac srcdir="${topsrc.dir}" |
1174 | description="Removes all build products"> | destdir="${build.extra166y.classes.dir}" |
1175 | debug="${build.debug}" | |
1176 | <delete dir="${build.jsr166y.dir}"/> | debuglevel="${build.debuglevel}" |
1177 | <delete dir="${build.jsr166ylib.dir}"/> | deprecation="${build.deprecation}" |
1178 | bootclasspath="@{jsr166y.jar}:${bootclasspath6}" | |
1179 | classpath="" | |
1180 | source="6" | |
1181 | target="6" | |
1182 | includeAntRuntime="false" | |
1183 | includeJavaRuntime="false" | |
1184 | encoding="ASCII" | |
1185 | executable="${javac7}" | |
1186 | fork="true"> | |
1187 | ||
1188 | <include name="extra166y/**/*.java"/> | |
1189 | <compilerarg value="-XDignore.symbol.file=true"/> | |
1190 | <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/> | |
1191 | <compilerarg value="-Werror"/> | |
1192 | <compilerarg line="${build.args}"/> | |
1193 | </javac> | |
1194 | </target> | </target> |
1195 | ||
1196 | <target name="extra166yjar" depends="extra166ycompile"> | |
1197 | <jar destfile="${extra166y.jar}" index="true"> | |
1198 | <target name="jsr166ydist-clean" | <fileset dir="${build.extra166y.classes.dir}"/> |
1199 | description="Removes all build and distribution products"> | <manifest> |
1200 | <attribute name="Built-By" value="${user.name}"/> | |
1201 | <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/> | |
1202 | </manifest> | |
1203 | </jar> | |
1204 | </target> | </target> |
1205 | ||
1206 | <target name="jsr166ydist-docs" | <target name="extra166ydocs"> |
1207 | description="Builds javadocs without custom tags to dist folder"> | <delete dir="${extra166ydocs.dir}"/> |
1208 | <mkdir dir="${extra166ydocs.dir}"/> | |
1209 | <delete dir="${dist.jsr166yjavadocs.dir}"/> | |
1210 | <mkdir dir="${dist.jsr166yjavadocs.dir}"/> | <javadoc destdir="${extra166ydocs.dir}" |
1211 | packagenames="extra166y.*" | |
1212 | link="${java.api.url}" | |
1213 | access="${build.javadoc.access}" | |
1214 | sourcepath="${topsrc.dir}:${jdk6.src.dir}" | |
1215 | bootclasspath="${bootclasspath6}" | |
1216 | source="6" | |
1217 | executable="${javadoc7}"> | |
1218 | <arg line="-Xdocrootparent ${java.docroot.url}"/> | |
1219 | <arg value="-XDignore.symbol.file=true"/> | |
1220 | </javadoc> | |
1221 | </target> | |
1222 | ||
1223 | <javadoc destdir="${dist.jsr166yjavadocs.dir}" | <target name="extra166ydist" depends="extra166ydist-jar, extra166ydist-docs"/> |
packagenames="jsr166y" | ||
link="http://download.oracle.com/javase/6/docs/api/" | ||
source="${build.sourcelevel}" | ||
sourcepath="${topsrc.dir}:${jdksrc.dir}" /> | ||
1224 | ||
1225 | <target name="extra166yclean"> | |
1226 | <delete dir="${build.extra166y.dir}"/> | |
1227 | </target> | </target> |
1228 | ||
1229 | <target name="jsr166ydist-jar" | <target name="extra166ydist-jar" depends="extra166yclean, extra166yjar"> |
1230 | depends="jsr166yclean, jsr166yjar"> | <copy file="${extra166y.jar}" todir="${dist.dir}"/> |
1231 | </target> | |
<copy file="${jsr166yproduct.jar}" todir="${dist.dir}"/> | ||
1232 | ||
1233 | <target name="extra166ydist-docs" depends="extra166yclean, extra166ydocs"> | |
1234 | <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/> | |
1235 | </target> | </target> |
1236 | ||
<!-- extra166y --> | ||
1237 | ||
1238 | <!-- jsr166e (no longer maintained) --> | |
1239 | ||
1240 | <target name="extra166ycompile" | <property name="build.jsr166e.java.version" value="6"/> |
1241 | depends="init, configure-compiler, jsr166ycompile" | <property name="build.jsr166e.javac" value="${javac6}"/> |
description="Compiles extra166y sources"> | ||
1242 | ||
1243 | <mkdir dir="${build.extra166y.dir}"/> | <target name="jsr166ecompile" depends="configure-compiler"> |
1244 | <mkdir dir="${build.jsr166e.classes.dir}"/> | |
1245 | ||
1246 | <javac srcdir="${extra166ysrc.dir}" | <javac srcdir="${topsrc.dir}" |
1247 | destdir="${build.extra166y.dir}" | destdir="${build.jsr166e.classes.dir}" |
1248 | debug="${build.debug}" | debug="${build.debug}" |
1249 | classpath="${jsr166yproduct.jar}" | debuglevel="${build.debuglevel}" |
1250 | debuglevel="${build.debuglevel}" | deprecation="${build.deprecation}" |
1251 | deprecation="${build.deprecation}" | source="${build.jsr166e.java.version}" |
1252 | source="${build.sourcelevel}" | target="${build.jsr166e.java.version}" |
1253 | fork="true"> | classpath="" |
1254 | includeAntRuntime="false" | |
1255 | includeJavaRuntime="false" | |
1256 | executable="${build.jsr166e.javac}" | |
1257 | fork="true"> | |
1258 | ||
1259 | <include name="**/*.java"/> | <include name="jsr166e/**/*.java"/> |
<compilerarg line="${build.args}"/> | ||
1260 | <compilerarg value="-XDignore.symbol.file=true"/> | <compilerarg value="-XDignore.symbol.file=true"/> |
1261 | <compilerarg value="${bootclasspath.args}"/> | <compilerarg value="-Xlint:all"/> |
1262 | <compilerarg value="-Werror"/> | |
1263 | <!-- <compilerarg line="-Xlint -Xmaxwarns 1000"/> --> | <compilerarg line="${build.args}"/> |
1264 | </javac> | </javac> |
1265 | </target> | </target> |
1266 | ||
1267 | <target name="jsr166edoclint"> | |
1268 | <mkdir dir="${build.jsr166e.classes.dir}"/> | |
1269 | ||
1270 | <javac srcdir="${topsrc.dir}" | |
1271 | destdir="${build.jsr166e.classes.dir}" | |
1272 | debug="${build.debug}" | |
1273 | debuglevel="${build.debuglevel}" | |
1274 | deprecation="${build.deprecation}" | |
1275 | source="${build.jsr166e.java.version}" | |
1276 | target="${build.jsr166e.java.version}" | |
1277 | classpath="" | |
1278 | bootclasspath="${bootclasspath6}" | |
1279 | includeAntRuntime="false" | |
1280 | includeJavaRuntime="false" | |
1281 | executable="${javac8}" | |
1282 | fork="true"> | |
1283 | ||
1284 | <target name="extra166yjar" | <include name="jsr166e/**/*.java"/> |
1285 | depends="extra166ycompile" | <compilerarg value="-XDignore.symbol.file=true"/> |
1286 | description="Builds library jar from compiled sources"> | <compilerarg value="-Xlint:all"/> |
1287 | <compilerarg value="-Werror"/> | |
1288 | <mkdir dir="${build.extra166ylib.dir}"/> | <compilerarg value="-Xdoclint:all/protected"/> |
1289 | </javac> | |
1290 | </target> | |
1291 | ||
1292 | <jar destfile="${extra166yproduct.jar}" index="true"> | <target name="jsr166ejar" depends="jsr166ecompile"> |
1293 | <fileset dir="${build.extra166y.dir}"/> | <jar destfile="${jsr166e.jar}" index="true"> |
1294 | <fileset dir="${build.jsr166e.classes.dir}"/> | |
1295 | <manifest> | |
1296 | <attribute name="Built-By" value="${user.name}"/> | |
1297 | <attribute name="Implementation-Vendor" value="JCP JSR-166 Expert Group."/> | |
1298 | </manifest> | |
1299 | </jar> | </jar> |
1300 | </target> | </target> |
1301 | ||
1302 | <target name="jsr166edocs"> | |
1303 | <delete dir="${jsr166edocs.dir}"/> | |
1304 | <mkdir dir="${jsr166edocs.dir}"/> | |
1305 | ||
1306 | <javadoc destdir="${jsr166edocs.dir}" | |
1307 | packagenames="jsr166e.*" | |
1308 | link="${java.api.url}" | |
1309 | access="${build.javadoc.access}" | |
1310 | sourcepath="${topsrc.dir}:${jdk6.src.dir}" | |
1311 | source="${build.jsr166e.java.version}" | |
1312 | executable="${javadoc7}" | |
1313 | failonerror = "true"> | |
1314 | <arg line="-Xdocrootparent ${java.docroot.url}"/> | |
1315 | <arg value="-XDignore.symbol.file=true"/> | |
1316 | </javadoc> | |
1317 | </target> | |
1318 | ||
1319 | <target name="jsr166e-tck-one-java-version" depends="jsr166ejar"> | |
1320 | <echo message="Testing with jdk${build.jsr166e.java.version} ..."/> | |
1321 | <run-tck-tests | |
1322 | tck.src.dir="${test.src.dir}/tck-jsr166e" | |
1323 | target="${build.jsr166e.java.version}" | |
1324 | workdir="${build.jsr166e.dir}" | |
1325 | classes="${jsr166e.jar}"/> | |
1326 | </target> | |
1327 | ||
1328 | <target name="extra166ydocs" | <target name="jsr166e-tck"> |
description="Builds javadocs with custom tags to build folder"> | ||
1329 | ||
1330 | <delete dir="${build.extra166yjavadocs.dir}"/> | <!-- <antcall target="clean"/> --> |
1331 | <mkdir dir="${build.extra166yjavadocs.dir}"/> | <!-- <antcall target="jsr166e-tck-one-java-version"> --> |
1332 | <!-- <param name="build.jsr166e.java.version" value="8"/> --> | |
1333 | <!-- <param name="build.jsr166e.javac" value="${javac8}"/> --> | |
1334 | <!-- </antcall> --> | |
1335 | ||
1336 | <javadoc destdir="${build.extra166yjavadocs.dir}" | <antcall target="clean"/> |
1337 | packagenames="extra166y" | <antcall target="jsr166e-tck-one-java-version"> |
1338 | link="http://download.oracle.com/javase/6/docs/api/" | <param name="build.jsr166e.java.version" value="7"/> |
1339 | source="${build.sourcelevel}" | <param name="build.jsr166e.javac" value="${javac7}"/> |
1340 | sourcepath="${topsrc.dir}:${jdksrc.dir}" /> | </antcall> |
1341 | ||
1342 | <antcall target="clean"/> | |
1343 | <antcall target="jsr166e-tck-one-java-version"> | |
1344 | <param name="build.jsr166e.java.version" value="6"/> | |
1345 | <param name="build.jsr166e.javac" value="${javac6}"/> | |
1346 | </antcall> | |
1347 | </target> | </target> |
1348 | ||
1349 | <target name="jsr166e-test" depends="jsr166e-tck"/> | |
1350 | ||
1351 | <target name="extra166ydist" | <target name="jsr166edist" depends="jsr166edist-jar, jsr166edist-docs"/> |
depends="extra166ydist-clean, extra166ydist-jar, extra166ydist-docs" | ||
description="Puts all distributable products in single hierarchy"/> | ||
1352 | ||
1353 | <target name="jsr166eclean"> | |
1354 | <delete dir="${build.jsr166e.dir}"/> | |
1355 | </target> | |
1356 | ||
1357 | <target name="extra166yclean" | <target name="jsr166edist-jar" |
1358 | description="Removes all build products"> | depends="jsr166eclean, jsr166ejar"> |
1359 | <copy file="${jsr166e.jar}" todir="${dist.dir}"/> | |
1360 | <delete dir="${build.extra166y.dir}"/> | </target> |
<delete dir="${build.extra166ylib.dir}"/> | ||
1361 | ||
1362 | <target name="jsr166edist-docs" depends="jsr166eclean, jsr166edocs"> | |
1363 | <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/> | |
1364 | </target> | </target> |
1365 | ||
1366 | ||
1367 | <!-- Find buglets that can be detected by static build tools --> | |
1368 | ||
1369 | <target name="extra166ydist-clean" | <!-- <target name="lint"> --> |
1370 | description="Removes all build and distribution products"> | <!-- <antcall target="dists"> --> |
1371 | <!-- <param name="build.javadoc.access" value="protected"/> --> | |
1372 | <!-- </antcall> --> | |
1373 | <!-- </target> --> | |
1374 | ||
1375 | <!-- Generates all doclint warnings, even for private methods (rarely useful) --> |