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

View of /jsr166/build.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.150 - (download) (as text) (annotate)
Mon Jul 22 17:50:12 2013 UTC (4 years, 2 months ago) by jsr166
Branch: MAIN
Changes since 1.149: +26 -0 lines
add experimental target jsr166edoclint
<project name="jsr166" default="usage">

  <description>
------------------------------------------------------------------------------
  Build file for JSR-166

  Usage: ant [target]

  User-specific settings are read from user.properties.
  See user.properties.sample for an explanation of some useful settings.

  The repository contains all dependencies except for ant and the JDK
  itself.  Because the JDK version matters and because different
  targets require different JDKs, we assume that users have created a
  hierarchy containing:
  $HOME/jdk/jdk6
  $HOME/jdk/jdk7
  $HOME/jdk/jdk8
  where each of the above is a JDK or a symlink to same, and
  $HOME/jdk/src/jdk6
  $HOME/jdk/src/jdk7
  $HOME/jdk/src/jdk8
  where each of the above is a complete JDK source tree
  (e.g. mercurial forest) or a symlink to same.
As of 2013-02, the very latest lambda 8 jdk is needed for jdk8.
------------------------------------------------------------------------------
  </description>

  <!-- Display main targets by running 'ant -projecthelp' -->
  <target name="usage">
    <java classname="org.apache.tools.ant.Main">
      <arg value="-projecthelp" />
    </java>
  </target>


  <!-- User-specific settings -->
  <property file="user.properties"/>


  <!-- Compilation options -->
  <property name="build.sourcelevel"    value="6"/>
  <property name="build.debug"          value="true"/>
  <property name="build.debuglevel"     value="source,lines,vars"/>
  <property name="build.deprecation"    value="false"/>
  <property name="build.javadoc.access" value="protected"/>

  <!-- Tck options; see JSR166TestCase.java -->
  <!-- ant -Djsr166.profileTests=true -Djsr166.runsPerTest=100 test-tck -->
  <property name="jsr166.profileTests"     value="false"/>
  <property name="jsr166.profileThreshold" value="100"/>
  <property name="jsr166.runsPerTest"      value="1"/>
  <!-- Allow running an individual tck test class -->
  <!-- ant -Djsr166.tckTestClass=CountedCompleterTest -Djsr166.runsPerTest=100 test-tck -->
  <property name="jsr166.tckTestClass"     value="JSR166TestCase"/>

  <!-- Build locations -->
  <property name="build.dir"                   location="build"/>
  <property name="build.classes.dir"           location="${build.dir}/classes"/>
  <property name="build.testcases.dir"         location="${build.dir}/testcases"/>
  <property name="build.loops.dir"             location="${build.dir}/loops"/>
  <property name="build.reports.dir"           location="${build.dir}/reports"/>

  <property name="build.4jdk7.dir"             location="${build.dir}/jsr166-4jdk7"/>
  <property name="build.4jdk7.classes.dir"     location="${build.4jdk7.dir}/classes"/>
  <property name="build.4jdk7.tck.classes.dir" location="${build.4jdk7.dir}/tck-classes"/>
  <property name="build.4jdk7.docs.dir"        location="${build.4jdk7.dir}/docs"/>

  <property name="build.jsr166x.dir"           location="${build.dir}/jsr166x"/>
  <property name="build.jsr166y.dir"           location="${build.dir}/jsr166y"/>
  <property name="build.jsr166e.dir"           location="${build.dir}/jsr166e"/>
  <property name="build.extra166y.dir"         location="${build.dir}/extra166y"/>

  <property name="build.jsr166x.classes.dir"   location="${build.jsr166x.dir}/classes"/>
  <property name="build.jsr166y.classes.dir"   location="${build.jsr166y.dir}/classes"/>
  <property name="build.jsr166e.classes.dir"   location="${build.jsr166e.dir}/classes"/>
  <property name="build.extra166y.classes.dir" location="${build.extra166y.dir}/classes"/>

  <!-- JDK locations -->
  <property name="jdks.home"  location="${user.home}/jdk"/>

  <macrodef name="defjdklocations">
    <attribute name="v"/>
    <sequential>
    <property name="jdk@{v}.home"   location="${jdks.home}/jdk@{v}"/>
    <property name="java@{v}"       location="${jdk@{v}.home}/bin/java"/>
    <property name="javac@{v}"      location="${jdk@{v}.home}/bin/javac"/>
    <property name="javadoc@{v}"    location="${jdk@{v}.home}/bin/javadoc"/>
    <property name="jdk@{v}src.dir" location="${jdks.home}/src/jdk@{v}/jdk/src/share/classes"/>
    <local name="boot.jar.dir"/>
    <property name="boot.jar.dir"   location="${jdk@{v}.home}/jre/lib"/>
    <path id="bootclasspath@{v}">
      <pathelement path="${boot.jar.dir}/resources.jar"/>
      <pathelement path="${boot.jar.dir}/rt.jar"/>
      <pathelement path="${boot.jar.dir}/jsse.jar"/>
      <pathelement path="${boot.jar.dir}/jce.jar"/>
      <pathelement path="${boot.jar.dir}/charsets.jar"/>
    </path>
    <property name="bootclasspath@{v}" value="${toString:bootclasspath@{v}}"/>
    </sequential>
  </macrodef>

  <macrodef name="mirror-dir">
    <attribute name="src"/>
    <attribute name="dst"/>
    <sequential>
    <delete dir="@{dst}"/>
    <mkdir dir="@{dst}"/>
    <copy todir="@{dst}" preservelastmodified="true">
      <fileset dir="@{src}"/>
    </copy>
    </sequential>
  </macrodef>

  <defjdklocations v="6"/>
  <defjdklocations v="7"/>
  <defjdklocations v="8"/>

  <!-- Source locations -->
  <property name="src.dir"              location="${basedir}/src/main"/>
  <property name="test.src.dir"         location="${basedir}/src/test"/>
  <property name="loops.src.dir"        location="${basedir}/src/loops"/>
  <property name="tck.src.dir"          location="${test.src.dir}/tck"/>
  <property name="jtreg.src.dir"        location="${test.src.dir}/jtreg"/>
  <property name="lib.dir"              location="${basedir}/lib"/>
  <property name="dist.dir"             location="${basedir}/dist"/>
  <property name="topsrc.dir"           location="${basedir}/src"/>
  <property name="4jdk7src.dir"         location="${topsrc.dir}/jdk7"/>
  <property name="jsr166xsrc.dir"       location="${topsrc.dir}/jsr166x"/>
  <property name="jsr166ysrc.dir"       location="${topsrc.dir}/jsr166y"/>
  <property name="jsr166esrc.dir"       location="${topsrc.dir}/jsr166e"/>
  <property name="extra166ysrc.dir"     location="${topsrc.dir}/extra166y"/>

  <!-- Javadoc locations -->
  <property name="docs.dir"          location="${build.dir}/docs"/>
  <property name="4jdk7docs.dir"     location="${build.4jdk7.dir}/docs"/>
  <property name="jsr166xdocs.dir"   location="${build.jsr166x.dir}/docs"/>
  <property name="jsr166ydocs.dir"   location="${build.jsr166y.dir}/docs"/>
  <property name="jsr166edocs.dir"   location="${build.jsr166e.dir}/docs"/>
  <property name="extra166ydocs.dir" location="${build.extra166y.dir}/docs"/>

  <property name="dist.docs.dir"          location="${dist.dir}/docs"/>
  <property name="dist.4jdk7docs.dir"     location="${dist.dir}/jsr166-4jdk7docs"/>
  <property name="dist.jsr166xdocs.dir"   location="${dist.dir}/jsr166xdocs"/>
  <property name="dist.jsr166ydocs.dir"   location="${dist.dir}/jsr166ydocs"/>
  <property name="dist.jsr166edocs.dir"   location="${dist.dir}/jsr166edocs"/>
  <property name="dist.extra166ydocs.dir" location="${dist.dir}/extra166ydocs"/>

  <!-- Jar locations -->
  <property name="product.jar"      location="${build.dir}/jsr166.jar"/>
  <property name="4jdk7product.jar" location="${build.4jdk7.dir}/jsr166-4jdk7.jar"/>
  <property name="jsr166x.jar"      location="${build.jsr166x.dir}/jsr166x.jar"/>
  <property name="jsr166y.jar"      location="${build.jsr166y.dir}/jsr166y.jar"/>
  <property name="jsr166e.jar"      location="${build.jsr166e.dir}/jsr166e.jar"/>
  <property name="extra166y.jar"    location="${build.extra166y.dir}/extra166y.jar"/>
  <property name="junit.jar"        location="${lib.dir}/junit.jar"/>

  <!-- Canonical location of jdk API docs, to use with javadoc link attribute -->
  <property name="jdkapi5docs.url"      value="http://docs.oracle.com/javase/1.5.0/docs/api/"/>
  <property name="jdkapi6docs.url"      value="http://docs.oracle.com/javase/6/docs/api/"/>
  <property name="jdkapi7docs.url"      value="http://docs.oracle.com/javase/7/docs/api/"/>

  <property name="jdkapi8docs.url"      value="http://download.java.net/jdk8/docs/api/"/>
  <!-- The below does not yet exist as of 2013-01 -->
  <!-- <property name="jdkapi8docs.url" value="http://docs.oracle.com/javase/8/docs/api/"/> -->

  <!-- Default jdk api doc location (latest stable release seems best) -->
  <property name="jdkapidocs.url"       value="${jdkapi7docs.url}"/>

  <!-- Define the "jtreg" task -->
  <!-- See the docs in "jtreg -onlineHelp" -->
  <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"
           classpath="${lib.dir}/jtreg.jar" />

  <!-- Test classpath -->
  <path id="test.classpath">
    <pathelement location="${build.testcases.dir}"/>
    <pathelement location="${junit.jar}"/>
  </path>

  <macrodef name="run-tck-tests">
    <attribute name="tck.src.dir" default="${tck.src.dir}"/>
    <attribute name="target"/>
    <attribute name="compile-target" default="@{target}"/>
    <attribute name="workdir"/>
    <attribute name="classes"/>
    <attribute name="jvmflags" default=""/>
    <element name="javac-elements" optional="true"/>
    <sequential>

    <mkdir dir="@{workdir}/tck-classes"/>

    <javac srcdir="@{tck.src.dir}"
           destdir="@{workdir}/tck-classes"
           debug="${build.debug}"
           debuglevel="${build.debuglevel}"
           deprecation="${build.deprecation}"
           source="@{compile-target}"
           target="@{compile-target}"
           classpath="${junit.jar}"
           bootclasspath="@{classes}:${bootclasspath@{compile-target}}"
           includeAntRuntime="false"
           includeJavaRuntime="false"
           executable="${javac@{compile-target}}"
           fork="true">

      <include name="*.java"/>
      <compilerarg value="-XDignore.symbol.file=true"/>
      <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial,-deprecation"/>
      <compilerarg line="${build.args}"/>
      <javac-elements/>

    </javac>

    <java classname="${jsr166.tckTestClass}"
          failonerror="true"
          jvm="${java@{target}}"
          fork="true">
	<jvmarg value="-Xbootclasspath/p:@{classes}"/>
	<jvmarg line="@{jvmflags}"/>
        <sysproperty key="jsr166.profileTests"     value="${jsr166.profileTests}"/>
        <sysproperty key="jsr166.profileThreshold" value="${jsr166.profileThreshold}"/>
        <sysproperty key="jsr166.runsPerTest"      value="${jsr166.runsPerTest}"/>
	<classpath>
	  <pathelement location="${junit.jar}"/>
	  <pathelement location="@{workdir}/tck-classes"/>
	</classpath>
    </java>

    </sequential>
  </macrodef>

  <macrodef name="run-jtreg-tests">
    <attribute name="jtreg.src.dir" default="${jtreg.src.dir}"/>
    <attribute name="source" default="7"/>
    <attribute name="target"/>
    <attribute name="workdir"/>
    <attribute name="classes"/>
    <attribute name="jtregflags" default=""/>
    <sequential>
    <delete dir="@{workdir}/JTwork"   quiet="true"/>
    <delete dir="@{workdir}/JTreport" quiet="true"/>
    <mkdir dir="@{workdir}/JTwork/scratch"/>
    <mkdir dir="@{workdir}/JTreport"/>
    <jtreg dir="@{jtreg.src.dir}"
           jdk="${jdk@{target}.home}"
           workDir="@{workdir}/JTwork"
           reportDir="@{workdir}/JTreport">

      <arg value="-Xbootclasspath/p:@{classes}"/>
      <arg value="-agentvm"/>
      <arg value="-v:nopass,fail"/>
      <arg value="-vmoptions:-esa -ea"/>
      <arg value="-automatic"/>
      <arg value="-k:!ignore"/>
      <arg line="@{jtregflags}"/>
    </jtreg>
    </sequential>
  </macrodef>

  <!-- ALoops classpath -->
  <path id="loops.classpath">
    <pathelement location="${build.loops.dir}"/>
  </path>

  <!-- Support @jls tag, used in jdk8+ javadoc -->
  <property name="javadoc.jls.cite" value="The Java&amp;trade; Language Specification"/>
  <property name="javadoc.jls.option" value="jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"/>

  <!-- Main targets -->

  <target name="dists"
          depends="dist, 4jdk7dist, jsr166edist, jsr166ydist, extra166ydist, jsr166xdist"
          description="Builds all public jars and docs"/>

  <target name="compile"
          depends="configure-compiler"
          description="Compiles src/main sources to build dir">

    <mkdir dir="${build.classes.dir}"/>

    <javac srcdir="${src.dir}"
           destdir="${build.classes.dir}"
           debug="${build.debug}"
           debuglevel="${build.debuglevel}"
           deprecation="${build.deprecation}"
           classpath=""
           includeAntRuntime="false"
           includeJavaRuntime="false"
           executable="${javac8}"
           fork="true">

      <include name="**/*.java"/>
      <compilerarg value="-Xprefer:source"/>
      <compilerarg value="-XDignore.symbol.file=true"/>
      <compilerarg value="-Xlint:all"/>
      <compilerarg value="-Xdoclint:all/protected"/>
      <compilerarg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
      <compilerarg line="${build.args}"/>

    </javac>
  </target>


  <target name="jar"
          depends="compile"
          description="Builds library jar from compiled sources">

    <jar destfile="${product.jar}">
      <fileset dir="${build.classes.dir}"/>
    </jar>
  </target>


  <target name="docs"
          description="Builds javadocs for src/main to dist dir">

    <delete dir="${docs.dir}"/>
    <mkdir dir="${docs.dir}"/>

    <!-- the packagenames="none" hack below prevents scanning the -->
    <!-- sourcepath for packages -->

    <javadoc destdir="${docs.dir}"
             packagenames="none"
             link="${jdkapi8docs.url}"
             overview="${src.dir}/intro.html"
             access="${build.javadoc.access}"
             sourcepath="${src.dir}:${jdk8src.dir}"
             classpath=""
             executable="${javadoc8}">
      <fileset dir="${src.dir}" defaultexcludes="yes">
        <include name="**/*.java"/>
      </fileset>
      <arg line="-Xmaxerrs 1000 -Xmaxwarns 1000"/>
      <arg value="-XDignore.symbol.file=true"/>
      <arg value="-tag"/>
      <arg value="${javadoc.jls.option}"/>
      <arg value="-tag"/>
      <arg value="apiNote:a:&lt;em&gt;API Note:&lt;/em&gt;"/>
      <arg value="-tag"/>
      <arg value="implSpec:a:&lt;em&gt;Implementation Requirements:&lt;/em&gt;"/>
      <arg value="-tag"/>
      <arg value="implNote:a:&lt;em&gt;Implementation Note:&lt;/em&gt;"/>
    </javadoc>
  </target>


  <target name="dist"
          depends="dist-clean, dist-jar, dist-docs"
          description="Puts all distributable products in single hierarchy"/>


  <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>


  <target name="clean"
          description="Removes all build products">

    <delete dir="${build.dir}"/>

  </target>


  <target name="dist-clean"
          description="Removes all build and distribution products">

    <delete dir="${build.dir}"/>
    <delete dir="${dist.dir}"/>

  </target>


  <target name="dist-jar"
          depends="clean, jar">
    <copy file="${product.jar}" todir="${dist.dir}"/>
  </target>

  <target name="dist-docs"
          depends="clean, docs">
    <mirror-dir src="${docs.dir}" dst="${dist.docs.dir}"/>
  </target>


  <target name="test-tck"
	  depends="jar"
          description="Runs tck tests for main directly">

    <run-tck-tests
      target="8"
      workdir="${build.dir}"
      classes="${product.jar}"/>
  </target>

  <target name="test-jtreg"
	  depends="jar"
          description="Runs jtreg tests for main using the jtreg ant task">
    <run-jtreg-tests
       target="8"
       workdir="${build.dir}"
       classes="${product.jar}"/>
  </target>

  <target name="test"
          depends="test-tck, test-jtreg"
          description="Runs tck and jtreg tests for main">
  </target>



  <target name="configure-compiler">

    <property name="unchecked.option" value="-Xlint:unchecked"/>

    <condition property="warnunchecked.arg" value="${unchecked.option}">
      <istrue value="${build.warnunchecked}"/>
    </condition>

    <property name="warnunchecked.arg" value=""/>


    <!-- Common options in javac invocations -->
    <property name="build.args" value="${warnunchecked.arg}"/>

  </target>



  <!-- Various demos and test programs -->


  <target name="loops" depends="configure-compiler"
          description="Benchmark from Doug Lea's AQS paper">

    <mkdir dir="${build.loops.dir}"/>

    <javac srcdir="${loops.src.dir}"
          destdir="${build.loops.dir}"
            debug="${build.debug}"
       debuglevel="${build.debuglevel}"
      deprecation="${build.deprecation}"
           source="${build.sourcelevel}"
             fork="true">

      <compilerarg line="${build.args}"/>
      <classpath refid="loops.classpath"/>
      <compilerarg value="-XDignore.symbol.file=true"/>

    </javac>

    <java classname="ALoops" fork="true">
      <classpath refid="loops.classpath"/>
    </java>

  </target>


  <!-- jsr166 4jdk7 -->

  <target name="4jdk7compile"
          depends="configure-compiler"
          description="Compiles src/jdk7 sources, targeting jdk7">

    <mkdir dir="${build.4jdk7.classes.dir}"/>

    <javac srcdir="${4jdk7src.dir}"
           destdir="${build.4jdk7.classes.dir}"
           debug="${build.debug}"
           debuglevel="${build.debuglevel}"
           deprecation="${build.deprecation}"
           source="6"
           classpath=""
           bootclasspath="${bootclasspath6}"
           includeAntRuntime="false"
           includeJavaRuntime="false"
           executable="${javac7}"
           fork="true">

      <include name="**/*.java"/>
      <compilerarg value="-Xprefer:source"/>
      <compilerarg value="-XDignore.symbol.file=true"/>
      <compilerarg value="-Xlint:all"/>
      <compilerarg line="${build.args}"/>

    </javac>
  </target>

  <target name="4jdk7doclint"
          depends="configure-compiler"
          description="Finds doclint warnings">

    <mkdir dir="${build.4jdk7.classes.dir}"/>

    <javac srcdir="${4jdk7src.dir}"
           destdir="${build.4jdk7.classes.dir}"
           debug="${build.debug}"
           debuglevel="${build.debuglevel}"
           deprecation="${build.deprecation}"
           source="6"
           classpath=""
           bootclasspath="${bootclasspath7}"
           includeAntRuntime="false"
           includeJavaRuntime="false"
           executable="${javac8}"
           fork="true">

      <include name="**/*.java"/>
      <compilerarg value="-Xprefer:source"/>
      <compilerarg value="-XDignore.symbol.file=true"/>
      <compilerarg value="-Xlint:all"/>
      <compilerarg value="-Xdoclint:all/protected"/>
      <compilerarg line="${build.args}"/>

    </javac>
  </target>


  <target name="4jdk7jar"
          depends="4jdk7compile"
          description="Builds library jar from compiled sources">

    <jar destfile="${4jdk7product.jar}">
      <fileset dir="${build.4jdk7.classes.dir}"/>
    </jar>

  </target>


  <target name="4jdk7-test-tck"
	  depends="4jdk7jar"
          description="Runs tck tests for jsr166-4jdk7 directly">

    <run-tck-tests
      target="7"
      workdir="${build.4jdk7.dir}"
      classes="${4jdk7product.jar}">
      <javac-elements>
        <!-- JDK8+ test classes -->
        <exclude name="*8Test.java"/>
        <exclude name="DoubleAccumulatorTest.java"/>
        <exclude name="DoubleAdderTest.java"/>
        <exclude name="LongAccumulatorTest.java"/>
        <exclude name="LongAdderTest.java"/>
        <exclude name="CompletableFutureTest.java"/>
        <exclude name="SplittableRandomTest.java"/>
        <exclude name="StampedLockTest.java"/>
      </javac-elements>
    </run-tck-tests>
  </target>


  <target name="4jdk7-test-tck-junit"
          depends="4jdk7compile"
          description="Runs tck tests for jsr166-4jdk7 via junit task (experimental)">

    <junit printsummary="true"
           showoutput="true"
           errorProperty="junit.failed"
           failureProperty="junit.failed"
           includeantruntime="true"
           jvm="${java7}"
           fork="true">

      <jvmarg value="-Xbootclasspath/p:${4jdk7product.jar}"/>
      <jvmarg value="-server"/>

      <classpath>
        <pathelement location="${junit.jar}"/>
        <pathelement location="${build.4jdk7.tck.classes.dir}"/>
      </classpath>

      <formatter type="brief"/>

      <test name="${jsr166.tckTestClass}" haltonfailure="no">
      </test>

    </junit>
  </target>

  <target name="4jdk7-test-jtreg"
	  depends="4jdk7jar"
          description="Runs jtreg tests for jsr166-4jdk7 using the jtreg ant task">
    <run-jtreg-tests
       target="7"
       workdir="${build.4jdk7.dir}"
       classes="${4jdk7product.jar}"
       jtregflags="-exclude:${jtreg.src.dir}/jdk8tests"/>
  </target>


  <target name="4jdk7-test"
	  depends="4jdk7-test-tck, 4jdk7-test-jtreg"
          description="Runs tck and jtreg tests for jsr166-4jdk7">
  </target>


  <target name="4jdk7docs"
          description="Builds javadocs for src/jdk7 to dist dir">

    <delete dir="${4jdk7docs.dir}"/>
    <mkdir dir="${4jdk7docs.dir}"/>

    <javadoc destdir="${4jdk7docs.dir}"
             packagenames="none"
             link="${jdkapi7docs.url}"
             overview="${4jdk7src.dir}/intro.html"
             access="${build.javadoc.access}"
             sourcepath="${4jdk7src.dir}:${jdk7src.dir}"
             classpath=""
             executable="${javadoc7}">
      <fileset dir="${4jdk7src.dir}" defaultexcludes="yes">
        <include name="**/*.java"/>
      </fileset>
      <arg value="-XDignore.symbol.file=true"/>
    </javadoc>
  </target>


  <target name="4jdk7dist"
          depends="4jdk7dist-jar, 4jdk7dist-docs"
          description="Puts all distributable products in single hierarchy"/>


  <target name="4jdk7clean"
          description="Removes all 4jdk7 build products">

    <delete dir="${build.4jdk7.dir}"/>

  </target>


  <target name="4jdk7dist-jar"
          depends="4jdk7clean, 4jdk7jar">
    <copy file="${4jdk7product.jar}" todir="${dist.dir}"/>
  </target>


  <target name="4jdk7dist-docs"
          depends="4jdk7clean, 4jdk7docs">
    <mirror-dir src="${4jdk7docs.dir}" dst="${dist.4jdk7docs.dir}"/>
  </target>


  <!-- jsr166x -->

  <target name="jsr166xcompile"
          depends="configure-compiler"
          description="Compiles jsr166x sources to build dir">

    <mkdir dir="${build.jsr166x.classes.dir}"/>

    <javac srcdir="${topsrc.dir}"
           destdir="${build.jsr166x.classes.dir}"
           debug="${build.debug}"
           debuglevel="${build.debuglevel}"
           deprecation="${build.deprecation}"
           classpath=""
           bootclasspath="${bootclasspath6}"
           source="5"
           includeAntRuntime="false"
           includeJavaRuntime="false"
           executable="${javac7}"
           fork="true">

      <include name="jsr166x/**/*.java"/>
      <compilerarg value="-XDignore.symbol.file=true"/>
      <compilerarg value="-Xlint:all,-unchecked,-rawtypes"/>
      <compilerarg line="${build.args}"/>

    </javac>
  </target>


  <target name="jsr166xjar"
          depends="jsr166xcompile"
          description="Builds library jar from compiled sources">

    <jar destfile="${jsr166x.jar}">
      <fileset dir="${build.jsr166x.classes.dir}"/>
    </jar>

  </target>


  <target name="jsr166xdocs"
          description="Builds javadocs to dist dir">

    <delete dir="${jsr166xdocs.dir}"/>
    <mkdir dir="${jsr166xdocs.dir}"/>

    <javadoc destdir="${jsr166xdocs.dir}"
             packagenames="jsr166x.*"
             link="${jdkapidocs.url}"
             access="${build.javadoc.access}"
             sourcepath="${topsrc.dir}:${jdk6src.dir}"
             bootclasspath="${bootclasspath6}"
             source="5"
             executable="${javadoc7}">
      <arg value="-XDignore.symbol.file=true"/>

    </javadoc>
  </target>


  <target name="jsr166xdist"
          depends="jsr166xdist-jar, jsr166xdist-docs"
          description="Puts all distributable products in single hierarchy"/>


  <target name="jsr166xclean"
          description="Removes all jsr166x build products">

    <delete dir="${build.jsr166x.dir}"/>

  </target>


  <target name="jsr166xdist-jar"
          depends="jsr166xclean, jsr166xjar">
    <copy file="${jsr166x.jar}" todir="${dist.dir}"/>
  </target>

  <target name="jsr166xdist-docs"
          depends="jsr166xclean, jsr166xdocs">
    <mirror-dir src="${jsr166xdocs.dir}" dst="${dist.jsr166xdocs.dir}"/>
  </target>

  <!-- jsr166y -->


  <target name="jsr166ycompile"
          depends="configure-compiler"
          description="Compiles jsr166y sources">

    <mkdir dir="${build.jsr166y.classes.dir}"/>

    <javac srcdir="${topsrc.dir}"
           destdir="${build.jsr166y.classes.dir}"
           debug="${build.debug}"
           debuglevel="${build.debuglevel}"
           deprecation="${build.deprecation}"
           source="6"
           classpath=""
           bootclasspath="${bootclasspath6}"
           includeAntRuntime="false"
           includeJavaRuntime="false"
           executable="${javac7}"
           fork="true">

      <include name="jsr166y/**/*.java"/>
      <compilerarg value="-XDignore.symbol.file=true"/>
      <compilerarg value="-Xlint:all"/>
      <compilerarg line="${build.args}"/>

    </javac>
  </target>


  <target name="jsr166yjar"
          depends="jsr166ycompile"
          description="Builds library jar from compiled sources">

    <jar destfile="${jsr166y.jar}" index="true">
      <fileset dir="${build.jsr166y.classes.dir}"/>
    </jar>

  </target>


  <target name="jsr166ydocs"
          description="Builds javadocs to dist dir">

    <delete dir="${jsr166ydocs.dir}"/>
    <mkdir dir="${jsr166ydocs.dir}"/>

    <javadoc destdir="${jsr166ydocs.dir}"
             packagenames="jsr166y.*"
             link="${jdkapidocs.url}"
             access="${build.javadoc.access}"
             sourcepath="${topsrc.dir}:${jdk6src.dir}"
             bootclasspath="${bootclasspath6}"
             source="6"
             executable="${javadoc7}">
      <arg value="-XDignore.symbol.file=true"/>

    </javadoc>
  </target>


  <target name="jsr166ydist"
          depends="jsr166ydist-jar, jsr166ydist-docs"
          description="Puts all distributable products in single hierarchy"/>


  <target name="jsr166yclean"
          description="Removes all jsr166y build products">

    <delete dir="${build.jsr166y.dir}"/>

  </target>


  <target name="jsr166ydist-jar"
          depends="jsr166yclean, jsr166yjar">
    <copy file="${jsr166y.jar}" todir="${dist.dir}"/>
  </target>

  <target name="jsr166ydist-docs"
          depends="jsr166yclean, jsr166ydocs">
    <mirror-dir src="${jsr166ydocs.dir}" dst="${dist.jsr166ydocs.dir}"/>
  </target>


  <!-- extra166y -->


  <target name="extra166ycompile"
          depends="configure-compiler, jsr166yjar"
          description="Compiles extra166y sources">

    <mkdir dir="${build.extra166y.classes.dir}"/>

    <javac srcdir="${topsrc.dir}"
           destdir="${build.extra166y.classes.dir}"
           debug="${build.debug}"
           debuglevel="${build.debuglevel}"
           deprecation="${build.deprecation}"
           bootclasspath="@{jsr166y.jar}:${bootclasspath6}"
           classpath=""
           source="6"
           includeAntRuntime="false"
           includeJavaRuntime="false"
           executable="${javac7}"
           fork="true">

      <include name="extra166y/**/*.java"/>
      <compilerarg value="-XDignore.symbol.file=true"/>
      <compilerarg value="-Xlint:all,-unchecked,-rawtypes,-serial"/>
      <compilerarg line="${build.args}"/>

    </javac>
  </target>


  <target name="extra166yjar"
          depends="extra166ycompile"
          description="Builds library jar from compiled sources">

    <jar destfile="${extra166y.jar}" index="true">
      <fileset dir="${build.extra166y.classes.dir}"/>
    </jar>

  </target>


  <target name="extra166ydocs"
          description="Builds javadocs to build dir">

    <delete dir="${extra166ydocs.dir}"/>
    <mkdir dir="${extra166ydocs.dir}"/>

    <javadoc destdir="${extra166ydocs.dir}"
             packagenames="extra166y.*"
             link="${jdkapidocs.url}"
             access="${build.javadoc.access}"
             sourcepath="${topsrc.dir}:${jdk6src.dir}"
             bootclasspath="${bootclasspath6}"
             source="6"
             executable="${javadoc7}">
      <arg value="-XDignore.symbol.file=true"/>

    </javadoc>
  </target>


  <target name="extra166ydist"
          depends="extra166ydist-jar, extra166ydist-docs"
          description="Puts all distributable products in single hierarchy"/>


  <target name="extra166yclean"
          description="Removes all extra166y build products">

    <delete dir="${build.extra166y.dir}"/>

  </target>


  <target name="extra166ydist-jar"
          depends="extra166yclean, extra166yjar">
    <copy file="${extra166y.jar}" todir="${dist.dir}"/>
  </target>

  <target name="extra166ydist-docs"
          depends="extra166yclean, extra166ydocs">
    <mirror-dir src="${extra166ydocs.dir}" dst="${dist.extra166ydocs.dir}"/>
  </target>

  <!-- jsr166e -->

  <property name="build.jsr166e.java.version" value="6"/>
  <property name="build.jsr166e.javac" value="${javac6}"/>

  <target name="jsr166ecompile"
          depends="configure-compiler"
          description="Compiles jsr166e sources">

    <mkdir dir="${build.jsr166e.classes.dir}"/>

    <javac srcdir="${topsrc.dir}"
           destdir="${build.jsr166e.classes.dir}"
           debug="${build.debug}"
           debuglevel="${build.debuglevel}"
           deprecation="${build.deprecation}"
           source="${build.jsr166e.java.version}"
           classpath=""
           includeAntRuntime="false"
           includeJavaRuntime="false"
           executable="${build.jsr166e.javac}"
           fork="true">

      <include name="jsr166e/**/*.java"/>
      <compilerarg value="-XDignore.symbol.file=true"/>
      <compilerarg value="-Xlint:all"/>
      <compilerarg line="${build.args}"/>

    </javac>
  </target>

  <!-- jsr166e: find doclint errors -->
  <target name="jsr166edoclint">

    <mkdir dir="${build.jsr166e.classes.dir}"/>

    <javac srcdir="${topsrc.dir}"
           destdir="${build.jsr166e.classes.dir}"
           debug="${build.debug}"
           debuglevel="${build.debuglevel}"
           deprecation="${build.deprecation}"
           source="${build.jsr166e.java.version}"
           classpath=""
           bootclasspath="${bootclasspath7}"
           includeAntRuntime="false"
           includeJavaRuntime="false"
           executable="${javac8}"
           fork="true">

      <include name="jsr166e/**/*.java"/>
      <compilerarg value="-XDignore.symbol.file=true"/>
      <compilerarg value="-Xlint:all"/>
      <compilerarg value="-Xdoclint:all/protected"/>

    </javac>
  </target>


  <target name="jsr166ejar"
          depends="jsr166ecompile"
          description="Builds library jar from compiled sources">

    <jar destfile="${jsr166e.jar}" index="true">
      <fileset dir="${build.jsr166e.classes.dir}"/>
    </jar>

  </target>


  <target name="jsr166edocs"
          description="Builds javadocs to build dir">

    <delete dir="${jsr166edocs.dir}"/>
    <mkdir dir="${jsr166edocs.dir}"/>

    <javadoc destdir="${jsr166edocs.dir}"
             packagenames="jsr166e.*"
             link="${jdkapidocs.url}"
             access="${build.javadoc.access}"
             sourcepath="${topsrc.dir}:${jdk6src.dir}"
             source="${build.jsr166e.java.version}"
             executable="${javadoc7}">
      <arg value="-XDignore.symbol.file=true"/>

    </javadoc>
  </target>


  <target name="jsr166e-test-tck-one-java-version"
	  depends="jsr166ejar">

    <echo message="Testing with jdk${build.jsr166e.java.version} ..."/>

    <run-tck-tests
      tck.src.dir="${test.src.dir}/tck-jsr166e"
      target="${build.jsr166e.java.version}"
      workdir="${build.jsr166e.dir}"
      classes="${jsr166e.jar}"/>
  </target>

  <target name="jsr166e-test-tck"
          description="Runs tck tests for jsr166e for multiple java versions">

<!--     <antcall target="clean"/> -->
<!--     <antcall target="jsr166e-test-tck-one-java-version"> -->
<!--       <param name="build.jsr166e.java.version" value="8"/> -->
<!--       <param name="build.jsr166e.javac" value="${javac8}"/> -->
<!--     </antcall> -->

    <antcall target="clean"/>
    <antcall target="jsr166e-test-tck-one-java-version">
      <param name="build.jsr166e.java.version" value="7"/>
      <param name="build.jsr166e.javac" value="${javac7}"/>
    </antcall>

    <antcall target="clean"/>
    <antcall target="jsr166e-test-tck-one-java-version">
      <param name="build.jsr166e.java.version" value="6"/>
      <param name="build.jsr166e.javac" value="${javac6}"/>
    </antcall>
  </target>


  <target name="jsr166e-test"
	  depends="jsr166e-test-tck"
          description="Runs all tests for jsr166e">
  </target>

  <target name="jsr166edist"
          depends="jsr166edist-jar, jsr166edist-docs"
          description="Puts all distributable products in single hierarchy"/>


  <target name="jsr166eclean"
          description="Removes all jsr166e build products">
    <delete dir="${build.jsr166e.dir}"/>
  </target>


  <target name="jsr166edist-jar"
          depends="jsr166eclean, jsr166ejar">
    <copy file="${jsr166e.jar}" todir="${dist.dir}"/>
  </target>

  <target name="jsr166edist-docs"
          depends="jsr166eclean, jsr166edocs">
    <mirror-dir src="${jsr166edocs.dir}" dst="${dist.jsr166edocs.dir}"/>
  </target>


<!-- Find buglets that can be detected by static build tools -->

  <target name="lint">
    <antcall target="dists">
      <param name="build.javadoc.access" value="private"/>
    </antcall>
  </target>


</project>

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8