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.91 by jsr166, Sun Nov 18 06:21:11 2012 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 50 | Line 66
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 59 | 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="jsr166esrc.dir"       location="${basedir}/src/jsr166e"/>
119 <  <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"/>
# Line 74 | Line 130
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"/>
# Line 176 | Line 233
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 245 | Line 302
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 476 | 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 788 | Line 1017
1017  
1018    <!-- jsr166e -->
1019  
791
1020    <target name="jsr166ecompile"
1021 <          depends="init, configure-compiler"
1021 >          depends="configure-compiler"
1022            description="Compiles jsr166e sources">
1023  
1024      <mkdir dir="${build.jsr166e.dir}"/>
1025  
1026 <    <javac srcdir="${jsr166esrc.dir}"
1027 <          destdir="${build.jsr166e.dir}"
1028 <            debug="${build.debug}"
1029 <       debuglevel="${build.debuglevel}"
1030 <      deprecation="${build.deprecation}"
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 <             fork="true">
1032 >           classpath=""
1033 >           includeAntRuntime="false"
1034 >           includeJavaRuntime="false"
1035 >           executable="${javac7}"
1036 >           fork="true">
1037  
1038 <      <include name="**/*.java"/>
1038 >      <include name="jsr166e/**/*.java"/>
1039        <compilerarg line="${build.args}"/>
1040        <compilerarg value="-XDignore.symbol.file=true"/>
1041 <      <compilerarg value="${bootclasspath.args}"/>
810 <
811 < <!--       <compilerarg line="-Xlint -Xmaxwarns 1000"/> -->
1041 >      <compilerarg value="-Xlint:all"/>
1042  
1043      </javac>
1044  
# Line 838 | Line 1068
1068  
1069      <javadoc destdir="${build.jsr166ejavadocs.dir}"
1070               packagenames="jsr166e,jsr166e.extra"
1071 <             link="${jdkapidocs.url}"
1071 >             link="${jdkapi7docs.url}"
1072               source="1.7"
1073 <             sourcepath="${topsrc.dir}:${jdksrc.dir}"
1074 <             additionalparam="-XDignore.symbol.file=true" />
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  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines