ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
(Generate patch)

Comparing jsr166/build.xml (file contents):
Revision 1.117 by jsr166, Sun Jan 20 07:43:30 2013 UTC vs.
Revision 1.123 by jsr166, Tue Jan 22 20:22:00 2013 UTC

# Line 62 | Line 62
62    <property name="build.jsr166e.classes.dir"    location="${build.jsr166e.dir}/classes"/>
63    <property name="build.extra166y.classes.dir"  location="${build.extra166y.dir}/classes"/>
64  
65 <  <!-- JDK binary locations -->
65 >  <!-- JDK locations -->
66    <property name="jdks.home"  location="${user.home}/jdk"/>
67  
68    <macrodef name="defjdklocations">
# Line 72 | Line 72
72      <property name="java@{v}"       location="${jdk@{v}.home}/bin/java"/>
73      <property name="javac@{v}"      location="${jdk@{v}.home}/bin/javac"/>
74      <property name="javadoc@{v}"    location="${jdk@{v}.home}/bin/javadoc"/>
75    <property name="bootdir@{v}"    location="${jdk@{v}.home}/jre/lib"/>
75      <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/share/classes"/>
76 <    <property name="bootclasspath@{v}"
77 <     value="${bootdir@{v}}/resources.jar:${bootdir@{v}}/rt.jar:${bootdir@{v}}/jsse.jar:${bootdir@{v}}/jce.jar:${bootdir@{v}}/:${bootdir@{v}}/charsets.jar"/>
76 >    <local name="boot.jar.dir"/>
77 >    <property name="boot.jar.dir"   location="${jdk@{v}.home}/jre/lib"/>
78 >    <path id="bootclasspath@{v}">
79 >      <pathelement path="${boot.jar.dir}/resources.jar"/>
80 >      <pathelement path="${boot.jar.dir}/rt.jar"/>
81 >      <pathelement path="${boot.jar.dir}/jsse.jar"/>
82 >      <pathelement path="${boot.jar.dir}/jce.jar"/>
83 >      <pathelement path="${boot.jar.dir}/charsets.jar"/>
84 >    </path>
85 >    <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}"/>
86      </sequential>
87    </macrodef>
88  
# Line 83 | Line 90
90    <defjdklocations v="7"/>
91    <defjdklocations v="8"/>
92  
86  <macrodef name="run-tck-tests">
87    <attribute name="target"/>
88    <attribute name="workdir"/>
89    <attribute name="product.jar" default="${product.jar}"/>
90    <attribute name="jvmflags" default=""/>
91    <sequential>
92
93    <mkdir dir="@{workdir}/tck-classes"/>
94
95    <javac srcdir="${tck.src.dir}"
96           destdir="@{workdir}/tck-classes"
97           debug="${build.debug}"
98           debuglevel="${build.debuglevel}"
99           deprecation="${build.deprecation}"
100           source="6"
101           classpath="${junit.jar}"
102           bootclasspath="@{product.jar}:${bootclasspath6}"
103           includeAntRuntime="false"
104           includeJavaRuntime="false"
105           executable="${javac@{target}}"
106           fork="true">
107
108      <include name="**/*.java"/>
109      <compilerarg value="-XDignore.symbol.file=true"/>
110      <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
111      <compilerarg line="${build.args}"/>
112    </javac>
113
114    <java classname="JSR166TestCase"
115          failonerror="true"
116          jvm="${java@{target}}"
117          fork="true">
118        <jvmarg value="-Xbootclasspath/p:@{product.jar}"/>
119        <jvmarg line="@{jvmflags}"/>
120        <classpath>
121          <pathelement location="${junit.jar}"/>
122          <pathelement location="@{workdir}/tck-classes"/>
123        </classpath>
124    </java>
125
126    </sequential>
127  </macrodef>
128
93    <!-- Source locations -->
94    <property name="src.dir"              location="${basedir}/src/main"/>
95    <property name="test.src.dir"         location="${basedir}/src/test"/>
# Line 158 | Line 122
122    <property name="extra166y.jar"    location="${build.extra166y.dir}/extra166y.jar"/>
123    <property name="junit.jar"        location="${lib.dir}/junit.jar"/>
124  
161  <!-- Bootclasspath argument -->
162  <property name="bootclasspath.args"   value="-Xbootclasspath/p:${product.jar}"/>
163
125    <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
126    <property name="jdkapi5docs.url"      value="http://docs.oracle.com/javase/1.5.0/docs/api/"/>
127    <property name="jdkapi6docs.url"      value="http://docs.oracle.com/javase/6/docs/api/"/>
128    <property name="jdkapi7docs.url"      value="http://docs.oracle.com/javase/7/docs/api/"/>
129  
130    <property name="jdkapi8docs.url"      value="http://download.java.net/jdk8/docs/api/"/>
131 <  <!-- The below does not yet exist as of 2012-11 -->
131 >  <!-- The below does not yet exist as of 2013-01 -->
132    <!-- <property name="jdkapi8docs.url" value="http://docs.oracle.com/javase/8/docs/api/"/> -->
133  
134    <!-- Default jdk api doc location (latest stable release seems best) -->
# Line 184 | Line 145
145      <pathelement location="${junit.jar}"/>
146    </path>
147  
148 +  <macrodef name="run-tck-tests">
149 +    <attribute name="tck.src.dir" default="${tck.src.dir}"/>
150 +    <attribute name="source" default="6"/>
151 +    <attribute name="target"/>
152 +    <attribute name="workdir"/>
153 +    <attribute name="classes"/>
154 +    <attribute name="jvmflags" default=""/>
155 +    <sequential>
156 +
157 +    <mkdir dir="@{workdir}/tck-classes"/>
158 +
159 +    <javac srcdir="@{tck.src.dir}"
160 +           destdir="@{workdir}/tck-classes"
161 +           debug="${build.debug}"
162 +           debuglevel="${build.debuglevel}"
163 +           deprecation="${build.deprecation}"
164 +           source="@{source}"
165 +           classpath="${junit.jar}"
166 +           bootclasspath="@{classes}:${bootclasspath@{source}}"
167 +           includeAntRuntime="false"
168 +           includeJavaRuntime="false"
169 +           executable="${javac@{target}}"
170 +           fork="true">
171 +
172 +      <include name="*.java"/>
173 +      <compilerarg value="-XDignore.symbol.file=true"/>
174 +      <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
175 +      <compilerarg line="${build.args}"/>
176 +
177 +    </javac>
178 +
179 +    <java classname="JSR166TestCase"
180 +          failonerror="true"
181 +          jvm="${java@{target}}"
182 +          fork="true">
183 +        <jvmarg value="-Xbootclasspath/p:@{classes}"/>
184 +        <jvmarg line="@{jvmflags}"/>
185 +        <classpath>
186 +          <pathelement location="${junit.jar}"/>
187 +          <pathelement location="@{workdir}/tck-classes"/>
188 +        </classpath>
189 +    </java>
190 +
191 +    </sequential>
192 +  </macrodef>
193 +
194    <!-- ALoops classpath -->
195    <path id="loops.classpath">
196      <pathelement location="${build.loops.dir}"/>
197    </path>
198  
199    <!-- Support @jls tag, used in jdk8+ javadoc -->
200 <  <!-- TODO: How do we get &trade to work? -->
194 <  <!-- TODO: Why isn't @jls a "standard" tag? -->
195 <  <!--   property name="javadoc.jls.cite" value="The Java&trade; Language Specification" -->
196 <  <property name="javadoc.jls.cite" value="The Java Language Specification"/>
200 >  <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
201    <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
202  
203    <!-- Main targets -->
# Line 220 | Line 224
224             fork="true">
225  
226        <include name="**/*.java"/>
223      <compilerarg line="${build.args}"/>
227        <compilerarg value="-XDignore.symbol.file=true"/>
228        <compilerarg value="-Xlint:all"/>
226
227 <!--
228      <exclude name="java/lang/**"/>
229        <compilerarg line="${build.args}"/>
230      <compilerarg line="-Xlint -Xmaxwarns 1000"/>
231 -->
230  
231      </javac>
234
232    </target>
233  
234  
238
235    <target name="jar"
236            depends="compile"
237            description="Builds library jar from compiled sources">
# Line 243 | Line 239
239      <jar destfile="${product.jar}">
240        <fileset dir="${build.classes.dir}"/>
241      </jar>
246
242    </target>
243  
244  
250
245    <target name="test"
246            depends="configure-tests, report-tests"
247            description="Runs all tests (requires JUnit 3.8.1 in ${ant.home}/lib)" />
248  
249  
256
250    <target name="docs"
251            description="Builds javadocs for src/main to dist dir">
252  
# Line 270 | Line 263
263               sourcepath="${src.dir}:${jdk8src.dir}"
264               classpath=""
265               executable="${javadoc8}">
273      <arg value="-XDignore.symbol.file=true"/>
274      <arg value="-tag"/>
275      <arg value="${javadoc.jls.option}"/>
266        <fileset dir="${src.dir}" defaultexcludes="yes">
267          <include name="**/*.java"/>
268        </fileset>
269 +      <arg value="-XDignore.symbol.file=true"/>
270 +      <arg value="-tag"/>
271 +      <arg value="${javadoc.jls.option}"/>
272      </javadoc>
280
273    </target>
274  
275  
284
276    <target name="dist"
277            depends="dist-clean, dist-jar, docs"
278            description="Puts all distributable products in single hierarchy"/>
# Line 302 | Line 293
293        <exclude name="**/SyntaxTest.java"/>
294        <exclude name="**/SuperfluousAbstract.java"/>
295      </jar>
305
296    </target>
297  
298  
309
299    <target name="clean"
300            description="Removes all build products">
301  
# Line 315 | Line 304
304    </target>
305  
306  
318
307    <target name="dist-clean"
308            description="Removes all build and distribution products">
309  
# Line 324 | Line 312
312    </target>
313  
314  
327
315    <!-- Internal targets -->
316  
317  
# Line 348 | Line 335
335             deprecation="${build.deprecation}"
336             source="6"
337             classpath="${junit.jar}"
338 <           bootclasspath="${product.jar}:${bootclasspath6}"
338 >           bootclasspath="@{product.jar}:${bootclasspath6}"
339             includeAntRuntime="false"
340             includeJavaRuntime="false"
341             executable="${javac8}"
342             fork="true">
343  
344        <include name="**/*.java"/>
358      <compilerarg line="${build.args}"/>
345        <compilerarg value="-XDignore.symbol.file=true"/>
346        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
347 +      <compilerarg line="${build.args}"/>
348  
349      </javac>
350  
# Line 368 | Line 355
355             deprecation="${build.deprecation}"
356             source="6"
357             classpath=""
358 <           bootclasspath="${product.jar}:${bootclasspath6}"
358 >           bootclasspath="@{product.jar}:${bootclasspath6}"
359             includeAntRuntime="false"
360             includeJavaRuntime="false"
361             executable="${javac8}"
362             fork="true">
363  
364        <include name="jsr166/test/**/*.java"/>
378
379      <compilerarg line="${build.args}"/>
365        <compilerarg value="-XDignore.symbol.file=true"/>
366        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
367 +      <compilerarg line="${build.args}"/>
368  
369      </javac>
370  
# Line 391 | Line 377
377             source="${build.sourcelevel}"
378               fork="true">
379  
380 <      <compilerarg value="${bootclasspath.args}"/>
395 <      <compilerarg line="${build.args}"/>
380 >      <compilerarg value="-Xbootclasspath/p:${product.jar}"/>
381        <compilerarg value="-XDignore.symbol.file=true"/>
382 +      <compilerarg line="${build.args}"/>
383  
384      </javac>
385   -->
# Line 546 | Line 532
532  
533    <!-- jsr166 4jdk7 -->
534  
549
535    <target name="4jdk7compile"
536            depends="configure-compiler"
537            description="Compiles src/jdk7 sources, targeting jdk7">
# Line 567 | Line 552
552             fork="true">
553  
554        <include name="**/*.java"/>
570      <compilerarg line="${build.args}"/>
555        <compilerarg value="-XDignore.symbol.file=true"/>
556        <compilerarg value="-Xlint:all"/>
557 +      <compilerarg line="${build.args}"/>
558  
559      </javac>
575
560    </target>
561  
562 +
563    <target name="4jdk7-jar"
564            depends="4jdk7compile"
565            description="Builds library jar from compiled sources">
# Line 593 | Line 578
578      <run-tck-tests
579        target="7"
580        workdir="${build.4jdk7.dir}"
581 <      product.jar="${4jdk7product.jar}"/>
581 >      classes="${4jdk7product.jar}"/>
582    </target>
583  
584  
# Line 666 | Line 651
651               sourcepath="${4jdk7src.dir}:${jdk7src.dir}"
652               classpath=""
653               executable="${javadoc7}">
669      <arg value="-XDignore.symbol.file=true"/>
654        <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
655          <include name="**/*.java"/>
656        </fileset>
657 +      <arg value="-XDignore.symbol.file=true"/>
658      </javadoc>
674
659    </target>
660  
661  
# Line 680 | Line 664
664            description="Puts all distributable products in single hierarchy"/>
665  
666  
683
667    <target name="4jdk7clean"
668            description="Removes all 4jdk7 build products">
669  
# Line 689 | Line 672
672    </target>
673  
674  
692
675    <target name="4jdk7dist-clean"
676            description="Removes all build and distribution products">
677  
678    </target>
679  
680    <target name="4jdk7dist-jar"
681 <          depends="4jdk7clean, 4jdk7compile">
681 >          depends="4jdk7clean, 4jdk7-jar">
682  
683      <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
684  
# Line 717 | Line 699
699             debuglevel="${build.debuglevel}"
700             deprecation="${build.deprecation}"
701             classpath=""
720           source="5"
702             bootclasspath="${bootclasspath6}"
703 +           source="5"
704             includeAntRuntime="false"
705             includeJavaRuntime="false"
706             executable="${javac7}"
707             fork="true">
708  
709        <include name="jsr166x/**/*.java"/>
728      <compilerarg line="${build.args}"/>
710        <compilerarg value="-XDignore.symbol.file=true"/>
711        <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
712 +      <compilerarg line="${build.args}"/>
713  
714      </javac>
733
715    </target>
716  
717  
718 <
738 <  <target name="jsr166xjar"
718 >  <target name="jsr166x-jar"
719            depends="jsr166xcompile"
720            description="Builds library jar from compiled sources">
721  
# Line 746 | Line 726
726    </target>
727  
728  
749
729    <target name="jsr166xdocs"
730            description="Builds javadocs to dist dir">
731  
# Line 756 | Line 735
735      <javadoc destdir="${dist.jsr166xjavadocs.dir}"
736               packagenames="jsr166x.*"
737               link="${jdkapidocs.url}"
759             source="5"
760             bootclasspath="${bootclasspath6}"
738               sourcepath="${topsrc.dir}:${jdk6src.dir}"
739 <             executable="${javadoc7}"
740 <             additionalparam="-XDignore.symbol.file=true"/>
739 >             bootclasspath="${bootclasspath6}"
740 >             source="5"
741 >             executable="${javadoc7}">
742 >      <arg value="-XDignore.symbol.file=true"/>
743  
744 +    </javadoc>
745    </target>
746  
747  
# Line 770 | Line 750
750            description="Puts all distributable products in single hierarchy"/>
751  
752  
773
753    <target name="jsr166xclean"
754            description="Removes all jsr166x build products">
755  
# Line 779 | Line 758
758    </target>
759  
760  
782
761    <target name="jsr166xdist-clean"
762            description="Removes all build and distribution products">
763  
# Line 787 | Line 765
765  
766  
767    <target name="jsr166xdist-jar"
768 <          depends="jsr166xclean, jsr166xjar">
768 >          depends="jsr166xclean, jsr166x-jar">
769  
770      <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
771  
# Line 816 | Line 794
794             fork="true">
795  
796        <include name="jsr166y/**/*.java"/>
819      <compilerarg line="${build.args}"/>
797        <compilerarg value="-XDignore.symbol.file=true"/>
798        <compilerarg value="-Xlint:all"/>
799 +      <compilerarg line="${build.args}"/>
800 +
801      </javac>
802    </target>
803  
804  
805 <  <target name="jsr166yjar"
805 >  <target name="jsr166y-jar"
806            depends="jsr166ycompile"
807            description="Builds library jar from compiled sources">
808  
# Line 834 | Line 813
813    </target>
814  
815  
837
816    <target name="jsr166ydocs"
817            description="Builds javadocs to dist dir">
818  
# Line 844 | Line 822
822      <javadoc destdir="${dist.jsr166yjavadocs.dir}"
823               packagenames="jsr166y.*"
824               link="${jdkapidocs.url}"
847             source="6"
848             bootclasspath="${bootclasspath6}"
825               sourcepath="${topsrc.dir}:${jdk6src.dir}"
826 <             executable="${javadoc7}"
827 <             additionalparam="-XDignore.symbol.file=true"/>
826 >             bootclasspath="${bootclasspath6}"
827 >             source="6"
828 >             executable="${javadoc7}">
829 >      <arg value="-XDignore.symbol.file=true"/>
830  
831 +    </javadoc>
832    </target>
833  
834  
# Line 858 | Line 837
837            description="Puts all distributable products in single hierarchy"/>
838  
839  
861
840    <target name="jsr166yclean"
841            description="Removes all jsr166y build products">
842  
# Line 867 | Line 845
845    </target>
846  
847  
870
848    <target name="jsr166ydist-clean"
849            description="Removes all build and distribution products">
850  
851    </target>
852  
853    <target name="jsr166ydist-jar"
854 <          depends="jsr166yclean, jsr166yjar">
854 >          depends="jsr166yclean, jsr166y-jar">
855  
856      <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
857  
# Line 885 | Line 862
862  
863  
864    <target name="extra166ycompile"
865 <          depends="configure-compiler, jsr166yjar"
865 >          depends="configure-compiler, jsr166y-jar"
866            description="Compiles extra166y sources">
867  
868      <mkdir dir="${build.extra166y.classes.dir}"/>
# Line 895 | Line 872
872             debug="${build.debug}"
873             debuglevel="${build.debuglevel}"
874             deprecation="${build.deprecation}"
875 +           bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
876             classpath=""
877             source="6"
900           bootclasspath="${jsr166y.jar}:${bootclasspath6}"
878             includeAntRuntime="false"
879             includeJavaRuntime="false"
880             executable="${javac7}"
881             fork="true">
882  
883        <include name="extra166y/**/*.java"/>
907      <compilerarg line="${build.args}"/>
884        <compilerarg value="-XDignore.symbol.file=true"/>
885        <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
886 +      <compilerarg line="${build.args}"/>
887  
888      </javac>
912
889    </target>
890  
891  
892 <
917 <  <target name="extra166yjar"
892 >  <target name="extra166y-jar"
893            depends="extra166ycompile"
894            description="Builds library jar from compiled sources">
895  
# Line 925 | Line 900
900    </target>
901  
902  
928
903    <target name="extra166ydocs"
904            description="Builds javadocs to build dir">
905  
# Line 935 | Line 909
909      <javadoc destdir="${dist.extra166yjavadocs.dir}"
910               packagenames="extra166y.*"
911               link="${jdkapidocs.url}"
938             source="6"
939             bootclasspath="${bootclasspath6}"
912               sourcepath="${topsrc.dir}:${jdk6src.dir}"
913 <             executable="${javadoc7}"
914 <             additionalparam="-XDignore.symbol.file=true"/>
913 >             bootclasspath="${bootclasspath6}"
914 >             source="6"
915 >             executable="${javadoc7}">
916 >      <arg value="-XDignore.symbol.file=true"/>
917  
918 +    </javadoc>
919    </target>
920  
921  
# Line 949 | Line 924
924            description="Puts all distributable products in single hierarchy"/>
925  
926  
952
927    <target name="extra166yclean"
928            description="Removes all extra166y build products">
929  
# Line 958 | Line 932
932    </target>
933  
934  
961
935    <target name="extra166ydist-clean"
936            description="Removes all build and distribution products">
937  
938    </target>
939  
940    <target name="extra166ydist-jar"
941 <          depends="extra166yclean, extra166yjar">
941 >          depends="extra166yclean, extra166y-jar">
942  
943      <copy file="${extra166y.jar}" todir="${dist.dir}"/>
944  
# Line 992 | Line 965
965             fork="true">
966  
967        <include name="jsr166e/**/*.java"/>
995      <compilerarg line="${build.args}"/>
968        <compilerarg value="-XDignore.symbol.file=true"/>
969        <compilerarg value="-Xlint:all"/>
970 +      <compilerarg line="${build.args}"/>
971  
972      </javac>
1000
973    </target>
974  
975  
976 <
1005 <  <target name="jsr166ejar"
976 >  <target name="jsr166e-jar"
977            depends="jsr166ecompile"
978            description="Builds library jar from compiled sources">
979  
# Line 1013 | Line 984
984    </target>
985  
986  
1016
987    <target name="jsr166edocs"
988            description="Builds javadocs to build dir">
989  
# Line 1023 | Line 993
993      <javadoc destdir="${dist.jsr166ejavadocs.dir}"
994               packagenames="jsr166e.*"
995               link="${jdkapidocs.url}"
1026             source="7"
996               sourcepath="${topsrc.dir}:${jdk7src.dir}"
997 <             executable="${javadoc7}"
998 <             additionalparam="-XDignore.symbol.file=true" >
997 >             source="7"
998 >             executable="${javadoc7}">
999 >      <arg value="-XDignore.symbol.file=true"/>
1000 >
1001      </javadoc>
1002 +  </target>
1003 +
1004 +
1005 +  <target name="jsr166e-test-tck"
1006 +          depends="jsr166e-jar"
1007 +          description="Runs tck tests for jsr166e">
1008  
1009 +    <run-tck-tests
1010 +      tck.src.dir="${test.src.dir}/tck-jsr166e"
1011 +      source="7"
1012 +      target="8"
1013 +      workdir="${build.jsr166e.dir}"
1014 +      classes="${jsr166e.jar}"/>
1015    </target>
1016  
1017  
# Line 1037 | Line 1020
1020            description="Puts all distributable products in single hierarchy"/>
1021  
1022  
1040
1023    <target name="jsr166eclean"
1024            description="Removes all jsr166e build products">
1025  
# Line 1052 | Line 1034
1034    </target>
1035  
1036    <target name="jsr166edist-jar"
1037 <          depends="jsr166eclean, jsr166ejar">
1037 >          depends="jsr166eclean, jsr166e-jar">
1038  
1039      <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
1040  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines