/[cvs]/jsr166/build.xml
ViewVC logotype

Diff of /jsr166/build.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.91 by jsr166, Sun Nov 18 06:21:11 2012 UTC revision 1.101 by jsr166, Sat Jan 19 17:30:36 2013 UTC
# Line 8  Line 8 
8    
9    User-specific settings are read from user.properties.    User-specific settings are read from user.properties.
10    See user.properties.sample for an explanation of some useful settings.    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, and
20      $HOME/jdk/src/jdk6
21      $HOME/jdk/src/jdk7
22      $HOME/jdk/src/jdk8
23      where each of the above is a complete JDK source tree
24      (e.g. mercurial forest) or a symlink to same.
25  ------------------------------------------------------------------------------  ------------------------------------------------------------------------------
26    </description>    </description>
27    
# Line 34  Line 48 
48    <property name="build.lib.dir"               location="${build.dir}/lib"/>    <property name="build.lib.dir"               location="${build.dir}/lib"/>
49    <property name="build.javadocs.dir"          location="${build.dir}/javadocs"/>    <property name="build.javadocs.dir"          location="${build.dir}/javadocs"/>
50    <property name="build.reports.dir"           location="${build.dir}/reports"/>    <property name="build.reports.dir"           location="${build.dir}/reports"/>
51    
52      <property name="build.4jdk7.dir"              location="${build.dir}/4jdk7"/>
53      <property name="build.4jdk7.lib.dir"          location="${build.4jdk7.dir}"/>
54      <property name="build.4jdk7.classes.dir"      location="${build.4jdk7.dir}/classes"/>
55      <property name="build.4jdk7.tck.classes.dir"  location="${build.4jdk7.dir}/tck/classes"/>
56      <property name="build.4jdk7.docs.dir"         location="${build.4jdk7.dir}/docs"/>
57    
58    <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>    <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>
59    <property name="build.jsr166xlib.dir"        location="${build.dir}/jsr166xlib"/>    <property name="build.jsr166xlib.dir"        location="${build.dir}/jsr166xlib"/>
60    <property name="build.jsr166xjavadocs.dir"   location="${build.dir}/jsr166xjavadocs"/>    <property name="build.jsr166xjavadocs.dir"   location="${build.dir}/jsr166xjavadocs"/>
# Line 50  Line 71 
71    <property name="build.extra166ylib.dir"      location="${build.dir}/extra166ylib"/>    <property name="build.extra166ylib.dir"      location="${build.dir}/extra166ylib"/>
72    <property name="build.extra166yjavadocs.dir" location="${build.dir}/extra166yjavadocs"/>    <property name="build.extra166yjavadocs.dir" location="${build.dir}/extra166yjavadocs"/>
73    
74      <!-- JDK binary locations -->
75      <property name="jdks.home"  location="${user.home}/jdk"/>
76    
77      <macrodef name="defjdklocations">
78        <attribute name="v"/>
79        <sequential>
80        <property name="jdk@{v}.home"   location="${jdks.home}/jdk@{v}"/>
81        <property name="java@{v}"       location="${jdk@{v}.home}/bin/java"/>
82        <property name="javac@{v}"      location="${jdk@{v}.home}/bin/javac"/>
83        <property name="javadoc@{v}"    location="${jdk@{v}.home}/bin/javadoc"/>
84        <property name="bootdir@{v}"    location="${jdk@{v}.home}/jre/lib"/>
85        <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/share/classes"/>
86        <property name="bootclasspath@{v}"
87         value="${bootdir@{v}}/resources.jar:${bootdir@{v}}/rt.jar:${bootdir@{v}}/jsse.jar:${bootdir@{v}}/jce.jar:${bootdir@{v}}/:${bootdir@{v}}/charsets.jar"/>
88        </sequential>
89      </macrodef>
90    
91      <defjdklocations v="6"/>
92      <defjdklocations v="7"/>
93      <defjdklocations v="8"/>
94    
95      <macrodef name="run-tck-tests">
96        <attribute name="jvm"/>
97        <attribute name="tck.classes"/>
98        <attribute name="product.jar" default="${product.jar}"/>
99        <attribute name="jvmflags" default=""/>
100        <sequential>
101        <java classname="JSR166TestCase"
102              jvm="@{jvm}" fork="true">
103            <jvmarg value="-Xbootclasspath/p:@{product.jar}"/>
104            <jvmarg line="@{jvmflags}"/>
105            <classpath>
106              <pathelement location="${junit.jar}"/>
107              <pathelement location="@{tck.classes}"/>
108            </classpath>
109        </java>
110        </sequential>
111      </macrodef>
112    
113    <!-- Source locations -->    <!-- Source locations -->
114    <property name="src.dir"              location="${basedir}/src/main"/>    <property name="src.dir"              location="${basedir}/src/main"/>
115    <property name="test.src.dir"         location="${basedir}/src/test"/>    <property name="test.src.dir"         location="${basedir}/src/test"/>
# Line 59  Line 119 
119    <property name="lib.dir"              location="${basedir}/lib"/>    <property name="lib.dir"              location="${basedir}/lib"/>
120    <property name="dist.dir"             location="${basedir}/dist"/>    <property name="dist.dir"             location="${basedir}/dist"/>
121    <property name="topsrc.dir"           location="${basedir}/src"/>    <property name="topsrc.dir"           location="${basedir}/src"/>
122    <property name="jsr166xsrc.dir"       location="${basedir}/src/jsr166x"/>    <property name="4jdk7src.dir"         location="${topsrc.dir}/jdk7"/>
123    <property name="jsr166ysrc.dir"       location="${basedir}/src/jsr166y"/>    <property name="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>
124    <property name="jsr166esrc.dir"       location="${basedir}/src/jsr166e"/>    <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>
125    <property name="extra166ysrc.dir"     location="${basedir}/src/extra166y"/>    <property name="jsr166esrc.dir"       location="${topsrc.dir}/jsr166e"/>
126      <property name="extra166ysrc.dir"     location="${topsrc.dir}/extra166y"/>
127    <property name="jdksrc.dir"           location="/home/dl/1.6.0/j2se/martin/j2se/src/share/classes"/>    <property name="jdksrc.dir"           location="/home/dl/1.6.0/j2se/martin/j2se/src/share/classes"/>
128    
129    <!-- Distribution locations -->    <!-- Distribution locations -->
130    <property name="dist.javadocs.dir"           location="${dist.dir}/docs"/>    <property name="dist.javadocs.dir"           location="${dist.dir}/docs"/>
131      <property name="dist.4jdk7.docs.dir"         location="${dist.dir}/jsr166-4jdk7docs"/>
132    <property name="dist.jsr166xjavadocs.dir"    location="${dist.dir}/jsr166xdocs"/>    <property name="dist.jsr166xjavadocs.dir"    location="${dist.dir}/jsr166xdocs"/>
133    <property name="dist.jsr166yjavadocs.dir"    location="${dist.dir}/jsr166ydocs"/>    <property name="dist.jsr166yjavadocs.dir"    location="${dist.dir}/jsr166ydocs"/>
134    <property name="dist.jsr166ejavadocs.dir"    location="${dist.dir}/jsr166edocs"/>    <property name="dist.jsr166ejavadocs.dir"    location="${dist.dir}/jsr166edocs"/>
# Line 74  Line 136 
136    
137    <!-- Jar locations -->    <!-- Jar locations -->
138    <property name="product.jar"          location="${build.lib.dir}/jsr166.jar"/>    <property name="product.jar"          location="${build.lib.dir}/jsr166.jar"/>
139      <property name="4jdk7product.jar"     location="${build.4jdk7.lib.dir}/jsr166-4jdk7.jar"/>
140    <property name="jsr166xproduct.jar"   location="${build.jsr166xlib.dir}/jsr166x.jar"/>    <property name="jsr166xproduct.jar"   location="${build.jsr166xlib.dir}/jsr166x.jar"/>
141    <property name="jsr166yproduct.jar"   location="${build.jsr166ylib.dir}/jsr166y.jar"/>    <property name="jsr166yproduct.jar"   location="${build.jsr166ylib.dir}/jsr166y.jar"/>
142    <property name="jsr166eproduct.jar"   location="${build.jsr166elib.dir}/jsr166e.jar"/>    <property name="jsr166eproduct.jar"   location="${build.jsr166elib.dir}/jsr166e.jar"/>
# Line 104  Line 167 
167      <pathelement location="${build.loops.dir}"/>      <pathelement location="${build.loops.dir}"/>
168    </path>    </path>
169    
170      <!-- Support @jls tag, used in jdk8+ javadoc -->
171      <!-- TODO: How do we get &trade to work? -->
172      <!-- TODO: Why isn't @jls a "standard" tag? -->
173      <!--   property name="javadoc.jls.cite" value="The Java&trade; Language Specification" -->
174      <property name="javadoc.jls.cite" value="The Java Language Specification"/>
175      <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>
176    
177    <!-- Main targets -->    <!-- Main targets -->
178    
# Line 112  Line 181 
181            description="Builds all public jars and docs"/>            description="Builds all public jars and docs"/>
182    
183    <target name="compile"    <target name="compile"
184            depends="init, configure-compiler"            depends="configure-compiler"
185            description="Compiles main sources to build folder">            description="Compiles src/main sources to build folder">
186    
187      <mkdir dir="${build.classes.dir}"/>      <mkdir dir="${build.classes.dir}"/>
188    
189      <javac srcdir="${src.dir}"      <javac srcdir="${src.dir}"
190            destdir="${build.classes.dir}"             destdir="${build.classes.dir}"
191              debug="${build.debug}"             debug="${build.debug}"
192         debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
193        deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
194             source="${build.sourcelevel}"             classpath=""
195               fork="true">             includeAntRuntime="false"
196               includeJavaRuntime="false"
197               executable="${javac8}"
198               fork="true">
199    
200        <include name="**/*.java"/>        <include name="**/*.java"/>
201          <compilerarg line="${build.args}"/>
202        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
203          <compilerarg value="-Xlint:all"/>
204    
205  <!--  <!--
206        <exclude name="java/lang/**"/>        <exclude name="java/lang/**"/>
# Line 161  Line 235 
235    
236    
237    <target name="docs"    <target name="docs"
238            description="Builds javadocs with custom tags to build folder">            description="Builds javadocs for src/main">
239    
240      <delete dir="${build.javadocs.dir}"/>      <delete dir="${dist.javadocs.dir}"/>
241      <mkdir dir="${build.javadocs.dir}"/>      <mkdir dir="${dist.javadocs.dir}"/>
242    
243      <!-- the packagenames="none" hack below prevents scanning the -->      <!-- the packagenames="none" hack below prevents scanning the -->
244      <!-- sourcepath for packages -->      <!-- sourcepath for packages -->
245    
246      <javadoc destdir="${build.javadocs.dir}"      <javadoc destdir="${dist.javadocs.dir}"
247               packagenames="none"               packagenames="none"
248               link="${jdkapidocs.url}"               link="${jdkapi8docs.url}"
249               overview="${src.dir}/intro.html"               overview="${src.dir}/intro.html"
250               sourcepath="${src.dir}:${jdksrc.dir}"               sourcepath="${src.dir}:${jdk8src.dir}"
251               additionalparam="-XDignore.symbol.file=true" >               classpath=""
252                 executable="${javadoc8}">
253          <arg value="-XDignore.symbol.file=true"/>
254          <arg value="-tag"/>
255          <arg value="${javadoc.jls.option}"/>
256        <fileset dir="${src.dir}" defaultexcludes="yes">        <fileset dir="${src.dir}" defaultexcludes="yes">
257        <include name="**/*.java"/>          <include name="**/*.java"/>
258        </fileset>        </fileset>
259      </javadoc>      </javadoc>
260    
# Line 185  Line 263 
263    
264    
265    <target name="dist"    <target name="dist"
266            depends="init, dist-clean, dist-jar, dist-docs"            depends="init, dist-clean, dist-jar, docs"
267            description="Puts all distributable products in single hierarchy"/>            description="Puts all distributable products in single hierarchy"/>
268    
269    
# Line 229  Line 307 
307    
308    
309    
   <target name="dist-docs"  
           description="Builds javadocs without custom tags to dist folder">  
   
     <delete dir="${dist.javadocs.dir}"/>  
     <mkdir dir="${dist.javadocs.dir}"/>  
   
     <!-- the packagenames="none" hack below prevents scanning the -->  
     <!-- sourcepath for packages -->  
   
     <javadoc destdir="${dist.javadocs.dir}"  
              packagenames="none"  
              link="${jdkapidocs.url}"  
              overview="${src.dir}/intro.html"  
              sourcepath="${src.dir}:${jdksrc.dir}"  
              additionalparam="-XDignore.symbol.file=true" >  
       <fileset dir="${src.dir}" defaultexcludes="yes">  
       <include name="**/*.java"/>  
       </fileset>  
     </javadoc>  
   
   </target>  
   
   
   
310    <!-- Internal targets -->    <!-- Internal targets -->
311    
312    
# Line 476  Line 530 
530    </target>    </target>
531    
532    
533      <!-- jsr166 4jdk7 -->
534    
535    
536      <target name="4jdk7compile"
537              depends="configure-compiler"
538              description="Compiles src/jdk7 sources, targeting jdk7">
539    
540        <mkdir dir="${build.4jdk7.classes.dir}"/>
541    
542        <javac srcdir="${4jdk7src.dir}"
543               destdir="${build.4jdk7.classes.dir}"
544               debug="${build.debug}"
545               debuglevel="${build.debuglevel}"
546               deprecation="${build.deprecation}"
547               source="1.6"
548               classpath=""
549               bootclasspath="${bootclasspath6}"
550               includeAntRuntime="false"
551               includeJavaRuntime="false"
552               executable="${javac7}"
553               fork="true">
554    
555          <include name="**/*.java"/>
556          <compilerarg line="${build.args}"/>
557          <compilerarg value="-XDignore.symbol.file=true"/>
558          <compilerarg value="-Xlint:all"/>
559    
560        </javac>
561    
562        <mkdir dir="${build.4jdk7.lib.dir}"/>
563    
564        <jar destfile="${4jdk7product.jar}" index="true">
565          <fileset dir="${build.4jdk7.classes.dir}"/>
566        </jar>
567    
568        <mkdir dir="${build.4jdk7.tck.classes.dir}"/>
569    
570        <javac srcdir="${tck.src.dir}"
571               destdir="${build.4jdk7.tck.classes.dir}"
572               debug="${build.debug}"
573               debuglevel="${build.debuglevel}"
574               deprecation="${build.deprecation}"
575               source="1.6"
576               classpath="${junit.jar}"
577               bootclasspath="${4jdk7product.jar}:${bootclasspath6}"
578               includeAntRuntime="false"
579               includeJavaRuntime="false"
580               executable="${javac7}"
581               fork="true">
582    
583          <include name="**/*.java"/>
584          <compilerarg line="${build.args}"/>
585          <compilerarg value="-XDignore.symbol.file=true"/>
586          <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
587    
588        </javac>
589    
590      </target>
591    
592    
593      <target name="4jdk7-test-tck"
594              depends="4jdk7compile"
595              description="Runs tck tests for jsr166-4jdk7 directly">
596        <run-tck-tests
597          jvm="${java7}"
598          tck.classes="${build.4jdk7.tck.classes.dir}"
599          product.jar="${4jdk7product.jar}"/>
600      </target>
601    
602    
603      <target name="4jdk7-test-tck-junit"
604              depends="4jdk7compile"
605              description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">
606    
607        <junit printsummary="true"
608               showoutput="true"
609               errorProperty="junit.failed"
610               failureProperty="junit.failed"
611               includeantruntime="true"
612               jvm="${java7}"
613               fork="true">
614    
615          <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
616          <jvmarg value="-server"/>
617    
618          <classpath>
619            <pathelement location="${junit.jar}"/>
620            <pathelement location="${build.4jdk7.tck.classes.dir}"/>
621          </classpath>
622    
623          <formatter type="brief"/>
624    
625          <test name="JSR166TestCase" haltonfailure="no">
626          </test>
627    
628        </junit>
629      </target>
630    
631    
632      <target name="4jdk7docs"
633              description="Builds javadocs with custom tags to build folder">
634    
635        <delete dir="${build.4jdk7.docs.dir}"/>
636        <mkdir dir="${build.4jdk7.docs.dir}"/>
637    
638        <javadoc destdir="${build.4jdk7.docs.dir}"
639                 packagenames="none"
640                 link="${jdkapi7docs.url}"
641                 overview="${4jdk7src.dir}/intro.html"
642                 sourcepath="${4jdk7src.dir}:${jdk7src.dir}"
643                 classpath=""
644                 executable="${javadoc7}">
645          <arg value="-XDignore.symbol.file=true"/>
646          <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
647            <include name="**/*.java"/>
648          </fileset>
649        </javadoc>
650    
651      </target>
652    
653    
654      <target name="4jdk7dist"
655              depends="4jdk7dist-clean, 4jdk7dist-jar, 4jdk7dist-docs"
656              description="Puts all distributable products in single hierarchy"/>
657    
658    
659    
660      <target name="4jdk7clean"
661              description="Removes all build products">
662    
663        <delete dir="${build.4jdk7.dir}"/>
664    
665      </target>
666    
667    
668    
669      <target name="4jdk7dist-clean"
670              description="Removes all build and distribution products">
671    
672      </target>
673    
674      <target name="4jdk7dist-docs"
675              description="Builds javadocs without custom tags to dist folder">
676    
677        <delete dir="${dist.4jdk7.docs.dir}"/>
678        <mkdir dir="${dist.4jdk7.docs.dir}"/>
679    
680        <javadoc destdir="${dist.4jdk7.docs.dir}"
681                 packagenames="none"
682                 link="${jdkapi7docs.url}"
683                 overview="${4jdk7src.dir}/intro.html"
684                 sourcepath="${4jdk7src.dir}:${jdk7src.dir}"
685                 classpath=""
686                 executable="${javadoc7}">
687          <arg value="-XDignore.symbol.file=true"/>
688          <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
689            <include name="**/*.java"/>
690          </fileset>
691        </javadoc>
692    
693      </target>
694    
695      <target name="4jdk7dist-jar"
696              depends="4jdk7clean, 4jdk7compile">
697    
698        <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
699    
700      </target>
701    
702    <!-- jsr166x -->    <!-- jsr166x -->
703    
704    
# Line 788  Line 1011 
1011    
1012    <!-- jsr166e -->    <!-- jsr166e -->
1013    
   
1014    <target name="jsr166ecompile"    <target name="jsr166ecompile"
1015            depends="init, configure-compiler"            depends="configure-compiler"
1016            description="Compiles jsr166e sources">            description="Compiles jsr166e sources">
1017    
1018      <mkdir dir="${build.jsr166e.dir}"/>      <mkdir dir="${build.jsr166e.dir}"/>
1019    
1020      <javac srcdir="${jsr166esrc.dir}"      <javac srcdir="${topsrc.dir}"
1021            destdir="${build.jsr166e.dir}"             destdir="${build.jsr166e.dir}"
1022              debug="${build.debug}"             debug="${build.debug}"
1023         debuglevel="${build.debuglevel}"             debuglevel="${build.debuglevel}"
1024        deprecation="${build.deprecation}"             deprecation="${build.deprecation}"
1025             source="1.7"             source="1.7"
1026               fork="true">             classpath=""
1027               includeAntRuntime="false"
1028               includeJavaRuntime="false"
1029               executable="${javac7}"
1030               fork="true">
1031    
1032        <include name="**/*.java"/>        <include name="jsr166e/**/*.java"/>
1033        <compilerarg line="${build.args}"/>        <compilerarg line="${build.args}"/>
1034        <compilerarg value="-XDignore.symbol.file=true"/>        <compilerarg value="-XDignore.symbol.file=true"/>
1035        <compilerarg value="${bootclasspath.args}"/>        <compilerarg value="-Xlint:all"/>
   
 <!--       <compilerarg line="-Xlint -Xmaxwarns 1000"/> -->  
1036    
1037      </javac>      </javac>
1038    
# Line 838  Line 1062 
1062    
1063      <javadoc destdir="${build.jsr166ejavadocs.dir}"      <javadoc destdir="${build.jsr166ejavadocs.dir}"
1064               packagenames="jsr166e,jsr166e.extra"               packagenames="jsr166e,jsr166e.extra"
1065               link="${jdkapidocs.url}"               link="${jdkapi7docs.url}"
1066               source="1.7"               source="1.7"
1067               sourcepath="${topsrc.dir}:${jdksrc.dir}"               sourcepath="${topsrc.dir}:${jdk7src.dir}"
1068               additionalparam="-XDignore.symbol.file=true" />               executable="${javadoc7}"
1069                 additionalparam="-XDignore.symbol.file=true" >
1070          <fileset dir="${topsrc.dir}" defaultexcludes="yes">
1071            <include name="jsr166e/**/*.java"/>
1072          </fileset>
1073        </javadoc>
1074    
1075    </target>    </target>
1076    

Legend:
Removed from v.1.91  
changed lines
  Added in v.1.101

dl@cs.oswego.edu
ViewVC Help
Powered by ViewVC 1.1.27