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.89 by jsr166, Fri Jun 10 18:07:30 2011 UTC vs.
Revision 1.98 by jsr166, Wed Jan 16 07:39:51 2013 UTC

# Line 8 | Line 8
8  
9    User-specific settings are read from user.properties.
10    See user.properties.sample for an explanation of some useful settings.
11 +
12 +  The repository contains all dependencies except for ant and the JDK
13 +  itself.  Because the JDK version matters and because different
14 +  targets require different JDKs, we assume that users have created a
15 +  hierarchy containing:
16 +  $HOME/jdk/jdk6
17 +  $HOME/jdk/jdk7
18 +  $HOME/jdk/jdk8
19 +  where each of the above is a JDK or a symlink to same.
20   ------------------------------------------------------------------------------
21    </description>
22  
# Line 34 | Line 43
43    <property name="build.lib.dir"               location="${build.dir}/lib"/>
44    <property name="build.javadocs.dir"          location="${build.dir}/javadocs"/>
45    <property name="build.reports.dir"           location="${build.dir}/reports"/>
46 +
47 +  <property name="build.jdk7.dir"              location="${build.dir}/jdk7"/>
48 +  <property name="build.jdk7.lib.dir"          location="${build.jdk7.dir}"/>
49 +  <property name="build.jdk7.classes.dir"      location="${build.jdk7.dir}/classes"/>
50 +  <property name="build.jdk7.tck.classes.dir"  location="${build.jdk7.dir}/tck/classes"/>
51 +  <property name="build.jdk7.docs.dir"         location="${build.jdk7.dir}/docs"/>
52 +
53    <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>
54    <property name="build.jsr166xlib.dir"        location="${build.dir}/jsr166xlib"/>
55    <property name="build.jsr166xjavadocs.dir"   location="${build.dir}/jsr166xjavadocs"/>
# Line 42 | Line 58
58    <property name="build.jsr166ylib.dir"        location="${build.dir}/jsr166ylib"/>
59    <property name="build.jsr166yjavadocs.dir"   location="${build.dir}/jsr166yjavadocs"/>
60  
61 +  <property name="build.jsr166e.dir"           location="${build.dir}/jsr166e"/>
62 +  <property name="build.jsr166elib.dir"        location="${build.dir}/jsr166elib"/>
63 +  <property name="build.jsr166ejavadocs.dir"   location="${build.dir}/jsr166ejavadocs"/>
64 +
65    <property name="build.extra166y.dir"         location="${build.dir}/extra166y"/>
66    <property name="build.extra166ylib.dir"      location="${build.dir}/extra166ylib"/>
67    <property name="build.extra166yjavadocs.dir" location="${build.dir}/extra166yjavadocs"/>
68  
69 +  <!-- JDK binary locations -->
70 +  <property name="jdks.home"  location="${user.home}/jdk"/>
71 +
72 +  <macrodef name="defjdklocations">
73 +    <attribute name="v"/>
74 +    <sequential>
75 +    <property name="jdk@{v}.home"  location="${jdks.home}/jdk@{v}"/>
76 +    <property name="java@{v}"      location="${jdk@{v}.home}/bin/java"/>
77 +    <property name="javac@{v}"     location="${jdk@{v}.home}/bin/javac"/>
78 +    <property name="javadoc@{v}"   location="${jdk@{v}.home}/bin/javadoc"/>
79 +    <property name="bootdir@{v}"   location="${jdk@{v}.home}/jre/lib"/>
80 +    <property name="bootclasspath@{v}"
81 +     value="${bootdir@{v}}/resources.jar:${bootdir@{v}}/rt.jar:${bootdir@{v}}/jsse.jar:${bootdir@{v}}/jce.jar:${bootdir@{v}}/:${bootdir@{v}}/charsets.jar"/>
82 +    </sequential>
83 +  </macrodef>
84 +
85 +  <defjdklocations v="6"/>
86 +  <defjdklocations v="7"/>
87 +  <defjdklocations v="8"/>
88 +
89 +  <macrodef name="run-tck-tests">
90 +    <attribute name="jvm"/>
91 +    <attribute name="tck.classes"/>
92 +    <attribute name="product.jar" default="${product.jar}"/>
93 +    <attribute name="jvmflags" default=""/>
94 +    <sequential>
95 +    <java classname="JSR166TestCase"
96 +          jvm="@{jvm}" fork="true">
97 +        <jvmarg value="-Xbootclasspath/p:@{product.jar}"/>
98 +        <jvmarg line="@{jvmflags}"/>
99 +        <classpath>
100 +          <pathelement location="${junit.jar}"/>
101 +          <pathelement location="@{tck.classes}"/>
102 +        </classpath>
103 +    </java>
104 +    </sequential>
105 +  </macrodef>
106 +
107    <!-- Source locations -->
108    <property name="src.dir"              location="${basedir}/src/main"/>
109    <property name="test.src.dir"         location="${basedir}/src/test"/>
# Line 55 | Line 113
113    <property name="lib.dir"              location="${basedir}/lib"/>
114    <property name="dist.dir"             location="${basedir}/dist"/>
115    <property name="topsrc.dir"           location="${basedir}/src"/>
116 <  <property name="jsr166xsrc.dir"       location="${basedir}/src/jsr166x"/>
117 <  <property name="jsr166ysrc.dir"       location="${basedir}/src/jsr166y"/>
118 <  <property name="extra166ysrc.dir"     location="${basedir}/src/extra166y"/>
116 >  <property name="jdk7src.dir"          location="${topsrc.dir}/jdk7"/>
117 >  <property name="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>
118 >  <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>
119 >  <property name="jsr166esrc.dir"       location="${topsrc.dir}/jsr166e"/>
120 >  <property name="extra166ysrc.dir"     location="${topsrc.dir}/extra166y"/>
121    <property name="jdksrc.dir"           location="/home/dl/1.6.0/j2se/martin/j2se/src/share/classes"/>
122 +
123    <!-- Distribution locations -->
124    <property name="dist.javadocs.dir"           location="${dist.dir}/docs"/>
125 +  <property name="dist.jdk7.docs.dir"          location="${dist.dir}/jsr166-jdk7docs"/>
126    <property name="dist.jsr166xjavadocs.dir"    location="${dist.dir}/jsr166xdocs"/>
127    <property name="dist.jsr166yjavadocs.dir"    location="${dist.dir}/jsr166ydocs"/>
128 +  <property name="dist.jsr166ejavadocs.dir"    location="${dist.dir}/jsr166edocs"/>
129    <property name="dist.extra166yjavadocs.dir"  location="${dist.dir}/extra166ydocs"/>
130  
131    <!-- Jar locations -->
132    <property name="product.jar"          location="${build.lib.dir}/jsr166.jar"/>
133 +  <property name="jdk7product.jar"      location="${build.jdk7.lib.dir}/jsr166-jdk7.jar"/>
134    <property name="jsr166xproduct.jar"   location="${build.jsr166xlib.dir}/jsr166x.jar"/>
135    <property name="jsr166yproduct.jar"   location="${build.jsr166ylib.dir}/jsr166y.jar"/>
136 +  <property name="jsr166eproduct.jar"   location="${build.jsr166elib.dir}/jsr166e.jar"/>
137    <property name="extra166yproduct.jar" location="${build.extra166ylib.dir}/extra166y.jar"/>
138    <property name="junit.jar"            location="${lib.dir}/junit.jar"/>
139  
140    <!-- Bootclasspath argument -->
141    <property name="bootclasspath.args"   value="-Xbootclasspath/p:${product.jar}"/>
142  
143 +  <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
144 +  <property name="jdkapi5docs.url"      value="http://docs.oracle.com/javase/1.5.0/docs/api/"/>
145 +  <property name="jdkapi6docs.url"      value="http://docs.oracle.com/javase/6/docs/api/"/>
146 +  <property name="jdkapi7docs.url"      value="http://docs.oracle.com/javase/7/docs/api/"/>
147 +
148 +  <property name="jdkapi8docs.url"      value="http://download.java.net/jdk8/docs/api/"/>
149 +  <!-- The below does not yet exist as of 2012-11 -->
150 +  <!-- <property name="jdkapi8docs.url" value="http://docs.oracle.com/javase/8/docs/api/"/> -->
151 +  <property name="jdkapidocs.url"       value="${jdkapi7docs.url}"/>
152 +
153    <!-- Test classpath -->
154    <path id="test.classpath">
155      <pathelement location="${build.testcases.dir}"/>
# Line 90 | Line 165
165    <!-- Main targets -->
166  
167    <target name="dists"
168 <          depends="dist, jsr166xdist, jsr166ydist, extra166ydist"
168 >          depends="dist, jsr166xdist, jsr166ydist,jsr166edist,  extra166ydist"
169            description="Builds all public jars and docs"/>
170  
171    <target name="compile"
# Line 153 | Line 228
228  
229      <javadoc destdir="${build.javadocs.dir}"
230               packagenames="none"
231 <             link="http://download.oracle.com/javase/7/docs/api/"
231 >             link="${jdkapidocs.url}"
232               overview="${src.dir}/intro.html"
233               sourcepath="${src.dir}:${jdksrc.dir}"
234               additionalparam="-XDignore.symbol.file=true" >
235        <fileset dir="${src.dir}" defaultexcludes="yes">
236 <      <include name="**/*.java"/>
236 >        <include name="**/*.java"/>
237        </fileset>
238      </javadoc>
239  
# Line 222 | Line 297
297  
298      <javadoc destdir="${dist.javadocs.dir}"
299               packagenames="none"
300 <             link="http://download.oracle.com/javase/7/docs/api/"
300 >             link="${jdkapidocs.url}"
301               overview="${src.dir}/intro.html"
302               sourcepath="${src.dir}:${jdksrc.dir}"
303               additionalparam="-XDignore.symbol.file=true" >
304        <fileset dir="${src.dir}" defaultexcludes="yes">
305 <      <include name="**/*.java"/>
305 >        <include name="**/*.java"/>
306        </fileset>
307      </javadoc>
308  
# Line 458 | Line 533
533    </target>
534  
535  
536 +  <!-- jdk7 -->
537 +
538 +
539 +  <target name="jdk7compile"
540 +          depends="configure-compiler"
541 +          description="Compiles src/jdk7 sources">
542 +
543 +    <mkdir dir="${build.jdk7.classes.dir}"/>
544 +
545 +    <javac srcdir="${jdk7src.dir}"
546 +           destdir="${build.jdk7.classes.dir}"
547 +           debug="${build.debug}"
548 +           debuglevel="${build.debuglevel}"
549 +           deprecation="${build.deprecation}"
550 +           source="1.6"
551 +           classpath=""
552 +           bootclasspath="${bootclasspath6}"
553 +           includeAntRuntime="false"
554 +           includeJavaRuntime="false"
555 +           executable="${javac7}"
556 +           fork="true">
557 +
558 +      <include name="**/*.java"/>
559 +      <compilerarg line="${build.args}"/>
560 +      <compilerarg value="-XDignore.symbol.file=true"/>
561 +      <compilerarg value="-Xlint:all"/>
562 +
563 +    </javac>
564 +
565 +    <mkdir dir="${build.jdk7.lib.dir}"/>
566 +
567 +    <jar destfile="${jdk7product.jar}" index="true">
568 +      <fileset dir="${build.jdk7.classes.dir}"/>
569 +    </jar>
570 +
571 +    <mkdir dir="${build.jdk7.tck.classes.dir}"/>
572 +
573 +    <javac srcdir="${tck.src.dir}"
574 +           destdir="${build.jdk7.tck.classes.dir}"
575 +           debug="${build.debug}"
576 +           debuglevel="${build.debuglevel}"
577 +           deprecation="${build.deprecation}"
578 +           source="1.6"
579 +           classpath="${junit.jar}"
580 +           bootclasspath="${jdk7product.jar}:${bootclasspath6}"
581 +           includeAntRuntime="false"
582 +           includeJavaRuntime="false"
583 +           executable="${javac7}"
584 +           fork="true">
585 +
586 +      <include name="**/*.java"/>
587 +      <compilerarg line="${build.args}"/>
588 +      <compilerarg value="-XDignore.symbol.file=true"/>
589 +      <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
590 +
591 +    </javac>
592 +
593 +  </target>
594 +
595 +
596 +  <target name="run-jdk7-tck-tests"
597 +          depends="jdk7compile"
598 +          description="Runs tck tests for jsr166-jdk7 directly">
599 +    <run-tck-tests
600 +      jvm="${java7}"
601 +      tck.classes="${build.jdk7.tck.classes.dir}"
602 +      product.jar="${jdk7product.jar}"/>
603 +  </target>
604 +
605 +
606 +  <target name="run-jdk7-tck-tests-via-junit-task"
607 +          depends="jdk7compile">
608 +
609 +    <junit printsummary="true"
610 +           showoutput="true"
611 +           errorProperty="junit.failed"
612 +           failureProperty="junit.failed"
613 +           includeantruntime="true"
614 +           jvm="${java7}"
615 +           fork="true">
616 +
617 +      <jvmarg value="-Xbootclasspath/p:${jdk7product.jar}"/>
618 +      <jvmarg value="-server"/>
619 +
620 +      <classpath>
621 +        <pathelement location="${junit.jar}"/>
622 +        <pathelement location="${build.jdk7.tck.classes.dir}"/>
623 +      </classpath>
624 +
625 +      <formatter type="brief"/>
626 +
627 +      <test name="JSR166TestCase" haltonfailure="no">
628 +      </test>
629 +
630 +    </junit>
631 +  </target>
632 +
633 +
634 +  <target name="jdk7docs"
635 +          description="Builds javadocs with custom tags to build folder">
636 +
637 +    <delete dir="${build.jdk7.docs.dir}"/>
638 +    <mkdir dir="${build.jdk7.docs.dir}"/>
639 +
640 +    <javadoc destdir="${build.jdk7.docs.dir}"
641 +             packagenames="none"
642 +             link="${jdkapi7docs.url}"
643 +             overview="${jdk7src.dir}/intro.html"
644 +             sourcepath="${jdk7src.dir}"
645 +             bootclasspath="${bootclasspath6}"
646 +             classpath=""
647 +             source="1.6"
648 +             executable="${javadoc7}"
649 +             additionalparam="-XDignore.symbol.file=true" >
650 +      <fileset dir="${jdk7src.dir}" defaultexcludes="yes">
651 +        <include name="**/*.java"/>
652 +      </fileset>
653 +    </javadoc>
654 +
655 +  </target>
656 +
657 +
658 +  <target name="jdk7dist"
659 +          depends="jdk7dist-clean, jdk7dist-jar, jdk7dist-docs"
660 +          description="Puts all distributable products in single hierarchy"/>
661 +
662 +
663 +
664 +  <target name="jdk7clean"
665 +          description="Removes all build products">
666 +
667 +    <delete dir="${build.jdk7.dir}"/>
668 +
669 +  </target>
670 +
671 +
672 +
673 +  <target name="jdk7dist-clean"
674 +          description="Removes all build and distribution products">
675 +
676 +  </target>
677 +
678 +  <target name="jdk7dist-docs"
679 +          description="Builds javadocs without custom tags to dist folder">
680 +
681 +    <delete dir="${dist.jdk7.docs.dir}"/>
682 +    <mkdir dir="${dist.jdk7.docs.dir}"/>
683 +
684 +    <javadoc destdir="${dist.jdk7.docs.dir}"
685 +             packagenames="none"
686 +             link="${jdkapi7docs.url}"
687 +             overview="${jdk7src.dir}/intro.html"
688 +             sourcepath="${jdk7src.dir}"
689 +             classpath=""
690 +             executable="${javadoc7}"
691 +             bootclasspath="${bootclasspath6}"
692 +             source="1.6">
693 +      <arg value="-XDignore.symbol.file=true"/>
694 +      <fileset dir="${jdk7src.dir}" defaultexcludes="yes">
695 +        <include name="**/*.java"/>
696 +      </fileset>
697 +    </javadoc>
698 +
699 +  </target>
700 +
701 +  <target name="jdk7dist-jar"
702 +          depends="jdk7clean, jdk7compile">
703 +
704 +    <copy file="${jdk7product.jar}" todir="${dist.dir}"/>
705 +
706 +  </target>
707 +
708    <!-- jsr166x -->
709  
710  
# Line 507 | Line 754
754  
755      <javadoc destdir="${build.jsr166xjavadocs.dir}"
756               packagenames="jsr166x"
757 <             link="http://download.oracle.com/javase/7/docs/api/"
757 >             link="${jdkapidocs.url}"
758               source="${build.sourcelevel}"
759               sourcepath="${topsrc.dir}:${jdksrc.dir}"
760               additionalparam="-XDignore.symbol.file=true" />
# Line 546 | Line 793
793  
794      <javadoc destdir="${dist.jsr166xjavadocs.dir}"
795               packagenames="jsr166x"
796 <             link="http://download.oracle.com/javase/7/docs/api/"
796 >             link="${jdkapidocs.url}"
797               source="${build.sourcelevel}"
798               sourcepath="${topsrc.dir}:${jdksrc.dir}"
799               additionalparam="-XDignore.symbol.file=true" />
# Line 612 | Line 859
859  
860      <javadoc destdir="${build.jsr166yjavadocs.dir}"
861               packagenames="jsr166y"
862 <             link="http://download.oracle.com/javase/7/docs/api/"
862 >             link="${jdkapidocs.url}"
863               source="${build.sourcelevel}"
864               sourcepath="${topsrc.dir}:${jdksrc.dir}"
865               additionalparam="-XDignore.symbol.file=true" />
# Line 649 | Line 896
896  
897      <javadoc destdir="${dist.jsr166yjavadocs.dir}"
898               packagenames="jsr166y"
899 <             link="http://download.oracle.com/javase/7/docs/api/"
899 >             link="${jdkapidocs.url}"
900               source="${build.sourcelevel}"
901               sourcepath="${topsrc.dir}:${jdksrc.dir}"
902               additionalparam="-XDignore.symbol.file=true" />
# Line 663 | Line 910
910  
911    </target>
912  
913 +
914    <!-- extra166y -->
915  
916  
# Line 716 | Line 964
964  
965      <javadoc destdir="${build.extra166yjavadocs.dir}"
966               packagenames="extra166y"
967 <             link="http://download.oracle.com/javase/7/docs/api/"
967 >             link="${jdkapidocs.url}"
968               source="${build.sourcelevel}"
969               sourcepath="${topsrc.dir}:${jdksrc.dir}"
970               additionalparam="-XDignore.symbol.file=true" />
# Line 753 | Line 1001
1001  
1002      <javadoc destdir="${dist.extra166yjavadocs.dir}"
1003               packagenames="extra166y"
1004 <             link="http://download.oracle.com/javase/7/docs/api/"
1004 >             link="${jdkapidocs.url}"
1005               source="${build.sourcelevel}"
1006               sourcepath="${topsrc.dir}:${jdksrc.dir}"
1007               additionalparam="-XDignore.symbol.file=true" />
# Line 767 | Line 1015
1015  
1016    </target>
1017  
1018 +  <!-- jsr166e -->
1019 +
1020 +  <target name="jsr166ecompile"
1021 +          depends="configure-compiler"
1022 +          description="Compiles jsr166e sources">
1023 +
1024 +    <mkdir dir="${build.jsr166e.dir}"/>
1025 +
1026 +    <javac srcdir="${topsrc.dir}"
1027 +           destdir="${build.jsr166e.dir}"
1028 +           debug="${build.debug}"
1029 +           debuglevel="${build.debuglevel}"
1030 +           deprecation="${build.deprecation}"
1031 +           source="1.7"
1032 +           classpath=""
1033 +           includeAntRuntime="false"
1034 +           includeJavaRuntime="false"
1035 +           executable="${javac7}"
1036 +           fork="true">
1037 +
1038 +      <include name="jsr166e/**/*.java"/>
1039 +      <compilerarg line="${build.args}"/>
1040 +      <compilerarg value="-XDignore.symbol.file=true"/>
1041 +      <compilerarg value="-Xlint:all"/>
1042 +
1043 +    </javac>
1044 +
1045 +  </target>
1046 +
1047 +
1048 +
1049 +  <target name="jsr166ejar"
1050 +          depends="jsr166ecompile"
1051 +          description="Builds library jar from compiled sources">
1052 +
1053 +    <mkdir dir="${build.jsr166elib.dir}"/>
1054 +
1055 +    <jar destfile="${jsr166eproduct.jar}" index="true">
1056 +      <fileset dir="${build.jsr166e.dir}"/>
1057 +    </jar>
1058 +
1059 +  </target>
1060 +
1061 +
1062 +
1063 +  <target name="jsr166edocs"
1064 +          description="Builds javadocs with custom tags to build folder">
1065 +
1066 +    <delete dir="${build.jsr166ejavadocs.dir}"/>
1067 +    <mkdir dir="${build.jsr166ejavadocs.dir}"/>
1068 +
1069 +    <javadoc destdir="${build.jsr166ejavadocs.dir}"
1070 +             packagenames="jsr166e,jsr166e.extra"
1071 +             link="${jdkapi7docs.url}"
1072 +             source="1.7"
1073 +             sourcepath="${topsrc.dir}:${jdk7src.dir}:${jdksrc.dir}"
1074 +             executable="${javadoc7}"
1075 +             additionalparam="-XDignore.symbol.file=true" >
1076 +      <fileset dir="${topsrc.dir}" defaultexcludes="yes">
1077 +        <include name="jsr166e/**/*.java"/>
1078 +      </fileset>
1079 +    </javadoc>
1080 +
1081 +  </target>
1082 +
1083 +
1084 +  <target name="jsr166edist"
1085 +          depends="jsr166edist-clean, jsr166edist-jar, jsr166edist-docs"
1086 +          description="Puts all distributable products in single hierarchy"/>
1087 +
1088 +
1089 +
1090 +  <target name="jsr166eclean"
1091 +          description="Removes all build products">
1092 +
1093 +    <delete dir="${build.jsr166e.dir}"/>
1094 +    <delete dir="${build.jsr166elib.dir}"/>
1095 +
1096 +  </target>
1097 +
1098 +
1099 +
1100 +  <target name="jsr166edist-clean"
1101 +          description="Removes all build and distribution products">
1102 +
1103 +  </target>
1104 +
1105 +  <target name="jsr166edist-docs"
1106 +          description="Builds javadocs without custom tags to dist folder">
1107 +
1108 +    <delete dir="${dist.jsr166ejavadocs.dir}"/>
1109 +    <mkdir dir="${dist.jsr166ejavadocs.dir}"/>
1110 +
1111 +    <javadoc destdir="${dist.jsr166ejavadocs.dir}"
1112 +             packagenames="jsr166e,jsr166e.extra"
1113 +             link="${jdkapidocs.url}"
1114 +             source="1.7"
1115 +             sourcepath="${topsrc.dir}:${jdksrc.dir}"
1116 +             additionalparam="-XDignore.symbol.file=true" />
1117 +
1118 +  </target>
1119 +
1120 +  <target name="jsr166edist-jar"
1121 +          depends="jsr166eclean, jsr166ejar">
1122 +
1123 +    <copy file="${jsr166eproduct.jar}" todir="${dist.dir}"/>
1124 +
1125 +  </target>
1126 +
1127   </project>

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines