<?xml version="1.0"?>

<!--
    POI Build System.  Written by:

        Glen Stampoultzis   glens at apache.org


    This build was tested with ant 1.5.3 although it will probably work with
    other versions.  The following jar files should be installed
    into the ant lib directory:

    LIBRARY         LOCATION
    =======         ========
    junit(3.8+)     http://www.ibiblio.org/maven/junit/jars/
    xerces          http://www.ibiblio.org/maven/xerces/jars/
    jdepend         http://www.ibiblio.org/maven/jdepend/jars/
    xalan           http://www.ibiblio.org/maven/xalan/jars/

    The ant jar "optional.jar" should also be available otherwise the
    build will fail.

    To build the documentation you will need to install forrest and set
    the FORREST_HOME environment variable.


    TO BE COMPLETED:

    Convert book.xml files to a sitemap.

 -->
<project name="POI Build" default="compile" basedir=".">

    <description>
        The POI project Ant build.
    </description>

    <property environment="env"/>

    <property name="repository" value="http://www.ibiblio.org/maven"/>
    <property name="forrest.home" value="${env.FORREST_HOME}"/>

    <property name="main.src" value="src/java"/>
    <property name="main.src.test" value="src/testcases"/>
    <property name="main.documentation" value="src/documentation"/>
    <property name="main.output.dir" value="build/classes"/>
    <property name="main.output.test.dir" value="build/test-classes"/>
    <property name="main.lib" value="lib"/>
    <property name="main.reports.test" value="build/test-results"/>
    <property name="main.jar1.dir" value="${main.lib}/commons-logging-1.0.1.jar"/>
    <property name="main.jar1.url" value="${repository}/commons-logging/jars/commons-logging-1.0.1.jar"/>
    <property name="main.jar2.dir" value="${main.lib}/log4j-1.2.8.jar"/>
    <property name="main.jar2.url" value="${repository}/log4j/jars/log4j-1.2.8.jar"/>
    <property name="main.testokfile" value="build/main-testokfile.txt"/>
    <property name="scratchpad.src" value="src/scratchpad/src"/>
    <property name="scratchpad.src.test" value="src/scratchpad/testcases"/>
    <property name="scratchpad.lib" value="src/scratchpad/lib"/>
    <property name="scratchpad.reports.test" value="build/scratchpad-test-results"/>
    <property name="scratchpad.output.dir" value="build/scratchpad-classes"/>
    <property name="scratchpad.output.test.dir" value="build/scratchpad-test-classes"/>
    <property name="scratchpad.testokfile" value="build/scratchpad-testokfile.txt"/>
    <property name="contrib.src" value="src/contrib/src"/>
    <property name="contrib.src.test" value="src/contrib/testcases"/>
    <property name="contrib.lib" value="src/contrib/lib"/>
    <property name="contrib.reports.test" value="build/contrib-test-results"/>
    <property name="contrib.output.dir" value="build/contrib-classes"/>
    <property name="contrib.output.test.dir" value="build/contrib-test-classes"/>
    <property name="contrib.jar1.dir" value="${contrib.lib}/commons-beanutils-1.6.jar"/>
    <property name="contrib.jar1.url" value="${repository}/commons-beanutils/jars/commons-beanutils-1.6.jar"/>
    <property name="contrib.jar2.dir" value="${contrib.lib}/commons-collections-2.1.jar"/>
    <property name="contrib.jar2.url" value="${repository}/commons-collections/jars/commons-collections-2.1.jar"/>
    <property name="contrib.jar3.dir" value="${contrib.lib}/commons-lang-1.0-b1.jar"/>
    <property name="contrib.jar3.url" value="${repository}/commons-lang/jars/commons-lang-1.0-b1.jar"/>
    <property name="contrib.testokfile" value="build/contrib-testokfile.txt"/>
    <property name="junit.jar1.dir" value="${main.lib}/junit-3.8.1.jar"/>
    <property name="junit.jar1.url" value="${repository}/junit/jars/junit-3.8.1.jar"/>
    <property name="build.site" value="build/tmp/site/build/site"/>
    <property name="build.site.src" value="build/tmp/site"/>
    <property name="junit.report.dir" value="${build.site}/junit"/>
    <property name="jdepend.report.dir" value="${build.site}/jdepend"/>
    <property name="jdepend.report.out.dir" value="${build.site.src}/src/documentation/content/jdepend"/>
    <property name="apidocs.report.dir" value="${build.site}/apidocs"/>
    <property name="changelog.file" value="${build.site}/changelog.html"/>
    <property name="dist.dir" value="build/dist"/>
    <property name="jar.name" value="poi"/>
    <property name="version.id" value="2.0-RC1"/>
    <property name="halt.on.test.failure" value="true"/>

    <path id="main.classpath">
        <pathelement location="${main.jar1.dir}"/>
        <pathelement location="${main.jar2.dir}"/>
    </path>

    <path id="scratchpad.classpath">
        <path refid="main.classpath"/>
        <pathelement location="${main.output.dir}"/>
    </path>

    <path id="contrib.classpath">
        <path refid="main.classpath"/>
        <pathelement location="${contrib.jar1.dir}"/>
        <pathelement location="${contrib.jar2.dir}"/>
        <pathelement location="${contrib.jar3.dir}"/>
        <pathelement location="${main.output.dir}"/>
        <pathelement location="${main.output.test.dir}"/>
        <pathelement location="${scratchpad.output.dir}"/>
        <pathelement location="${scratchpad.output.test.dir}"/>
        <pathelement location="${contrib.output.dir}"/>
        <pathelement location="${contrib.output.test.dir}"/>
    </path>

    <target name="init" depends="check-jars,fetch-jars">

        <tstamp/>

        <mkdir dir="build"/>
        <mkdir dir="${main.output.dir}"/>
        <mkdir dir="${contrib.output.dir}"/>
        <mkdir dir="${scratchpad.output.dir}"/>
        <mkdir dir="${main.output.test.dir}"/>
        <mkdir dir="${contrib.output.test.dir}"/>
        <mkdir dir="${scratchpad.output.test.dir}"/>
        <mkdir dir="${main.reports.test}"/>
        <mkdir dir="${scratchpad.reports.test}"/>
        <mkdir dir="${contrib.reports.test}"/>
        <mkdir dir="${junit.report.dir}"/>
        <mkdir dir="${jdepend.report.dir}"/>
        <mkdir dir="${jdepend.report.out.dir}"/>
        <mkdir dir="${apidocs.report.dir}"/>
        <mkdir dir="${dist.dir}"/>
        <mkdir dir="${build.site.src}/${main.documentation}"/>

        <copy todir="${build.site.src}/${main.documentation}">
            <fileset dir="${main.documentation}"/>
        </copy>
        <copy file="forrest.properties" tofile="${build.site.src}/forrest.properties"/>
    </target>

    <target name="clean">
        <delete dir="build"/>
    </target>

    <target name="check-jars">
        <condition property="jars.present">
	    <or>
            <and>
                <available file="${main.jar1.dir}"/>
                <available file="${main.jar2.dir}"/>
                <available file="${contrib.jar1.dir}"/>
                <available file="${contrib.jar2.dir}"/>
              	<available file="${contrib.jar3.dir}"/>
               	<available file="${junit.jar1.dir}"/>
            </and>
			<isset property="disconnected"/>
	    </or>
        </condition>
    </target>

    <target name="fetch-jars" unless="jars.present">
        <get src="${main.jar1.url}" dest="${main.jar1.dir}"/>
        <get src="${main.jar2.url}" dest="${main.jar2.dir}"/>
        <get src="${contrib.jar1.url}" dest="${contrib.jar1.dir}"/>
        <get src="${contrib.jar2.url}" dest="${contrib.jar2.dir}"/>
        <get src="${contrib.jar3.url}" dest="${contrib.jar3.dir}"/>
        <get src="${junit.jar1.url}" dest="${junit.jar1.dir}"/>
    </target>

    <target name="compile" depends="init,compile-main,compile-scratchpad,compile-contrib">

    </target>

    <target name="compile-main" depends="init">
        <javac srcdir="${main.src}" destdir="${main.output.dir}" debug="on">
            <classpath refid="main.classpath"/>
        </javac>
        <javac srcdir="${main.src.test}" destdir="${main.output.test.dir}" debug="on">
            <classpath>
                <path refid="main.classpath"/>
                <pathelement location="${main.output.dir}"/>
                <pathelement location="${junit.jar1.dir}"/>
            </classpath>
        </javac>
    </target>

    <target name="compile-scratchpad" depends="init">
        <javac srcdir="${scratchpad.src}" destdir="${scratchpad.output.dir}" debug="on">
            <classpath refid="scratchpad.classpath"/>
        </javac>
        <javac srcdir="${scratchpad.src.test}" destdir="${scratchpad.output.test.dir}" debug="on">
            <classpath>
                <path refid="scratchpad.classpath"/>
                <pathelement location="${scratchpad.output.dir}"/>
                <pathelement location="${junit.jar1.dir}"/>
            </classpath>
        </javac>
    </target>

    <target name="compile-contrib" depends="init">
        <javac srcdir="${contrib.src}" destdir="${contrib.output.dir}" debug="on">
            <classpath refid="contrib.classpath"/>
        </javac>
        <javac srcdir="${contrib.src.test}" destdir="${contrib.output.test.dir}" debug="on">
            <classpath>
                <path refid="contrib.classpath"/>
                <pathelement location="${contrib.output.dir}"/>
                <pathelement location="${junit.jar1.dir}"/>
            </classpath>
        </javac>
    </target>

    <target name="test" depends="test-main,test-scratchpad,test-contrib"
        description="Test main, contrib and scratchpad"/>

    <target name="-test-main-check">
        <uptodate property="main.test.notRequired" targetfile="${main.testokfile}">
            <srcfiles dir="${main.src}"/>
            <srcfiles dir="${main.src.test}"/>
        </uptodate>
    </target>

	<path id="test.classpath">
                <path refid="main.classpath"/>
                <pathelement location="${main.output.dir}"/>
                <pathelement location="${main.output.test.dir}"/>
                <pathelement location="${junit.jar1.dir}"/>
         </path>
    <target name="test-main" depends="compile-main,-test-main-check" unless="main.test.notRequired">
        <junit printsummary="yes" showoutput="true" filtertrace="no" fork="no"
            haltonfailure="${halt.on.test.failure}" failureproperty="main.test.failed">
            <classpath refid="test.classpath"/>
            <sysproperty key="HSSF.testdata.path" value="${main.src.test}/org/apache/poi/hssf/data"/>
            <sysproperty key="HPSF.testdata.path" value="${main.src.test}/org/apache/poi/hpsf/data"/>
            <formatter type="plain"/>
            <formatter type="xml"/>
            <batchtest todir="${main.reports.test}">
                <fileset dir="${main.src.test}">
                    <include name="**/Test*.java"/>
                    <exclude name="**/AllTests.java"/>
                </fileset>
            </batchtest>
        </junit>
        <delete file="${main.testokfile}"/>
        <antcall target="-test-main-write-testfile"/>
    </target>

    <target name="single-test" depends="-test-property-check,compile-main">
	<junit printsummary="no" showoutput="true" filtertrace="no" haltonfailure="${halt.on.test.failure}" failureproperty="main.test.failed" >
            <classpath refid="test.classpath"/>
	    <sysproperty key="HSSF.testdata.path" value="${main.src.test}/org/apache/poi/hssf/data"/>
            <sysproperty key="HPSF.testdata.path" value="${main.src.test}/org/apache/poi/hpsf/data"/>
            <formatter type="plain" usefile="no"/>
            <formatter type="xml"/>
	    <test name="${testcase}" />
	</junit>
    </target>

    <target name="debug-test" depends="-test-property-check,compile-main">
	<junit printsummary="no" showoutput="true" filtertrace="no" fork="yes" haltonfailure="${halt.on.test.failure}" failureproperty="main.test.failed" >
	<jvmarg value="-Xdebug"/>
	<jvmarg value="-Xrunjdwp:transport=dt_socket,address=5001,server=y,suspend=y"/>
	<sysproperty key="java.compiler" value="NONE"/>
	<classpath refid="test.classpath"/>
	    <sysproperty key="HSSF.testdata.path" value="${main.src.test}/org/apache/poi/hssf/data"/>
            <sysproperty key="HPSF.testdata.path" value="${main.src.test}/org/apache/poi/hpsf/data"/>
            <formatter type="plain" usefile="no"/>
	    <test name="${testcase}" />
	</junit>
    </target>

    <target name="-test-property-check" unless="testcase">
	<echo message="Please use -Dtestcase=org.your.testcase to run a single test"/>
	<fail/>
    </target>

    <target name="-test-main-write-testfile" unless="main.test.failed">
        <echo file="${main.testokfile}" append="false" message="testok"/>
    </target>

    <target name="-test-scratchpad-check">
        <uptodate property="scratchpad.test.notRequired" targetfile="${scratchpad.testokfile}">
            <srcfiles dir="${scratchpad.src}"/>
            <srcfiles dir="${scratchpad.src.test}"/>
        </uptodate>
    </target>

    <target name="test-scratchpad" depends="compile-scratchpad,-test-scratchpad-check" unless="scratchpad.test.notRequired">
        <junit printsummary="yes" fork="no" haltonfailure="${halt.on.test.failure}">
            <classpath>
                <path refid="scratchpad.classpath"/>
                <pathelement location="${main.output.dir}"/>
                <pathelement location="${scratchpad.output.dir}"/>
                <pathelement location="${scratchpad.output.test.dir}"/>
                <pathelement location="${junit.jar1.dir}"/>
            </classpath>
            <sysproperty key="HSSF.testdata.path" value="${scratchpad.src.test}/org/apache/poi/hssf/data"/>
            <sysproperty key="HPSF.testdata.path" value="${scratchpad.src.test}/org/apache/poi/hpsf/data"/>
            <sysproperty key="HDF.testdata.path" value="${scratchpad.src.test}/org/apache/poi/hdf/data"/>
            <formatter type="xml"/>
            <batchtest todir="${scratchpad.reports.test}">
                <fileset dir="${scratchpad.src.test}">
                    <include name="**/Test*.java"/>
                    <exclude name="**/AllTests.java"/>
                </fileset>
            </batchtest>
        </junit>
        <delete file="${scratchpad.testokfile}"/>
        <antcall target="-test-scratchpad-write-testfile"/>
    </target>

    <target name="-test-scratchpad-write-testfile" unless="scratchpad.test.failed">
        <echo file="${scratchpad.testokfile}" append="false" message="testok"/>
    </target>

    <target name="-test-contrib-check">
        <uptodate property="contrib.test.notRequired" targetfile="${contrib.testokfile}">
            <srcfiles dir="${contrib.src}"/>
            <srcfiles dir="${contrib.src.test}"/>
        </uptodate>
    </target>

    <target name="test-contrib" depends="compile-contrib,-test-contrib-check" unless="contrib.test.notRequired">
        <junit printsummary="yes" fork="no" haltonfailure="${halt.on.test.failure}">
            <classpath>
                <path refid="contrib.classpath"/>
                <pathelement location="${main.output.dir}"/>
                <pathelement location="${contrib.output.dir}"/>
                <pathelement location="${contrib.output.test.dir}"/>
                <pathelement location="${junit.jar1.dir}"/>
            </classpath>
            <sysproperty key="HSSF.testdata.path" value="${contrib.src.test}/org/apache/poi/hssf/data"/>
            <sysproperty key="HPSF.testdata.path" value="${contrib.src.test}/org/apache/poi/hpsf/data"/>
            <formatter type="xml"/>
            <batchtest todir="${contrib.reports.test}">
                <fileset dir="${contrib.src.test}">
                    <include name="**/Test*.java"/>
                    <exclude name="**/AllTests.java"/>
                </fileset>
            </batchtest>
        </junit>
        <delete file="${contrib.testokfile}"/>
        <antcall target="-test-contrib-write-testfile"/>
    </target>

    <target name="-test-contrib-write-testfile" unless="contrib.test.failed">
        <echo file="${contrib.testokfile}" append="false" message="testok"/>
    </target>

    <target name="-check-docs">
        <uptodate property="main.docs.notRequired" targetfile="${build.site}/index.html">
            <srcfiles dir="${build.site.src}"/>
        </uptodate>
    </target>

    <target name="-check-forrest-installed" unless="env.FORREST_HOME">
        <echo>Please install Apache Forrest (see
&lt;http://xml.apache.org/forrest/index.html&gt;) and set the
FORREST_HOME environment variable!</echo>
        <fail message="Apache Forrest is not installed."/>
    </target>

    <!--    <target name="check-docs">-->
    <!--        <uptodate property="main.docs.notRequired" targetfile="${build.site}/index.html" >-->
    <!--            <srcfiles dir= "${build.site.src}"/>-->
    <!--        </uptodate>-->
    <!--    </target>-->

    <target name="docs" depends="init,-check-forrest-installed,-check-docs" unless="main.docs.notRequired"
        description="Builds the POI website">

        <mkdir dir="${build.site.src}/src/documentation/content/apidocs"/>
        <copy todir="${build.site.src}/src/documentation/content/apidocs">
            <fileset dir="${apidocs.report.dir}"/>
        </copy>
        <copy tofile="${build.site.src}/src/documentation/content/jdepend.ehtml" file="${jdepend.report.dir}/index.html" failonerror="false"/>
        <mkdir dir="${build.site.src}/src/documentation/content/junit"/>
        <copy todir="${build.site.src}/src/documentation/content/junit">
            <fileset dir="${junit.report.dir}"/>
        </copy>

        <move file="${build.site.src}/src/documentation/content/xdocs/status.xml" tofile="${build.site.src}/status.xml"/>


        <ant antfile="${forrest.home}/forrest.antproxy.xml" target="site">
            <property name="project.home" value="${build.site.src}"/>
        </ant>

        <echo>Broken links:</echo>
        <echo file="${build.site}/../tmp/brokenlinks.txt"/>

        <touch>
            <fileset dir="${build.site}"/>
        </touch>
    </target>

    <!-- Checks whether reports are required to be run.  If nothing has changed then they dont. -->
    <target name="-check-reports">
        <condition property="reports.notRequired">
            <and>
                <equals arg1="${main.test.notRequired}" arg2="true"/>
                <equals arg1="${scratchpad.test.notRequired}" arg2="true"/>
                <equals arg1="${contrib.test.notRequired}" arg2="true"/>
            </and>
        </condition>
    </target>

    <target name="-cvschangelog" unless="disconnected">
        <cvschangelog destfile="${changelog.file}" daysinpast="30"/>

	<style in="${changelog.file}"
            out="${build.site.src}/src/documentation/content/changelog.html"
            style="changelog.xsl">
            <param name="title" expression="POI Change Log"/>
            <param name="module" expression="jakarta-poi"/>
            <param name="cvsweb" expression="http://cvs.apache.org/viewcvs/"/>
        </style>
    </target>

    <target name="reports" depends="-check-reports" unless="reports.notRequired"
        description="Creates junit,jdepend and javadoc reports">
        <antcall target="test">
            <param name="${halt.on.test.failure}" value="false"/>
        </antcall>
        <junitreport todir="${junit.report.dir}">
            <fileset dir="${main.reports.test}">
                <include name="TEST-*.xml"/>
            </fileset>
            <fileset dir="${scratchpad.reports.test}">
                <include name="TEST-*.xml"/>
            </fileset>
            <fileset dir="${contrib.reports.test}">
                <include name="TEST-*.xml"/>
            </fileset>
            <report format="frames" todir="${junit.report.dir}"/>
        </junitreport>

        <jdepend outputfile="${jdepend.report.dir}/jdepend.xml" format="xml">
            <sourcespath>
                <pathelement location="${main.src}"/>
                <pathelement location="${contrib.src}"/>
                <pathelement location="${scratchpad.src}"/>
            </sourcespath>
            <classpath>
                <path refid="main.classpath"/>
                <path refid="contrib.classpath"/>
                <path refid="scratchpad.classpath"/>
                <pathelement location="${main.output.dir}"/>
                <pathelement location="${contrib.output.dir}"/>
                <pathelement location="${scratchpad.output.dir}"/>
            </classpath>
        </jdepend>

        <style basedir="${jdepend.report.dir}"
            in="${jdepend.report.dir}/jdepend.xml"
            out="${jdepend.report.out.dir}/index.html"
            style="jdepend.xsl"/>

	<antcall target="-cvschangelog"/>

        <javadoc
            destdir="${apidocs.report.dir}"
            author="true"
            version="true"
            use="true"
            verbose="false"
            windowtitle="POI API">

            <packageset dir="${main.src}" defaultexcludes="yes">
                <include name="org/apache/poi/**"/>
            </packageset>
            <packageset dir="${scratchpad.src}" defaultexcludes="yes">
                <include name="org/apache/poi/**"/>
            </packageset>
            <packageset dir="${contrib.src}" defaultexcludes="yes">
                <include name="org/apache/poi/**"/>
            </packageset>

            <classpath>
                <path refid="main.classpath"/>
                <path refid="scratchpad.classpath"/>
                <path refid="contrib.classpath"/>
            </classpath>

            <doctitle><![CDATA[<h1>POI Documentation</h1>]]></doctitle>
            <bottom><![CDATA[<i>Copyright &#169; 2003 Apache Software Foundation.</i>]]></bottom>
            <group title="HSSF" packages="org.apache.poi.hssf*"/>
            <group title="HPSF" packages="org.apache.poi.hpsf*"/>
            <group title="POIFS" packages="org.apache.poi.poifs*"/>
            <group title="HDF" packages="org.apache.poi.hdf*"/>
            <group title="Record Generator" packages="org.apache.poi.record*"/>
            <group title="Utils" packages="org.apache.poi.util*"/>
        </javadoc>


    </target>

    <!-- ================================== -->
    <!--       Generate records                -->
    <!-- ================================== -->

    <target name="generate-records" depends="init"
        description="generate-records">
        <java classname="org.apache.poi.dev.RecordGenerator" fork="yes">
            <arg value="src/records/definitions"/>
            <arg value="src/records/styles"/>
            <arg value="src/java"/>
            <arg value="src/testcases"/>
            <classpath>
                <path refid="scratchpad.classpath">
                </path>
                <pathelement location="${main.output.dir}"/>
                <pathelement location="${scratchpad.output.dir}"/>
            </classpath>
        </java>

    </target>

    <!-- ================================== -->
    <!--       Generate types                -->
    <!-- ================================== -->

    <target name="generate-types" depends="init"
        description="generate-types">

        <java classname="org.apache.poi.dev.RecordGenerator" fork="yes">
            <arg value="src/types/definitions"/>
            <arg value="src/types/styles"/>
            <arg value="src/scratchpad/src"/>
            <arg value="src/scratchpad/testcases"/>
            <classpath>
                <path refid="scratchpad.classpath">
                </path>
                <pathelement location="${main.output.dir}"/>
                <pathelement location="${scratchpad.output.dir}"/>
            </classpath>
        </java>

    </target>

    <target name="site" depends="reports,docs"
        description="generate the documentation and reports"/>

    <target name="jar" depends="compile" description="Creates jar files for distribution">
        <jar basedir="${main.output.dir}" destfile="${dist.dir}/${jar.name}-${version.id}-${DSTAMP}.jar"/>
        <jar basedir="${contrib.output.dir}" destfile="${dist.dir}/${jar.name}-contrib-${version.id}-${DSTAMP}.jar"/>
        <jar basedir="${scratchpad.output.dir}" destfile="${dist.dir}/${jar.name}-scratchpad-${version.id}-${DSTAMP}.jar"/>
    </target>

    <target name="dist" depends="compile,site,jar" description="Creates the entire distribution into build/dist">

        <zip destfile="${dist.dir}/${jar.name}-bin-${version.id}-${DSTAMP}.zip">
            <zipfileset dir="${build.site}" prefix="docs"/>
            <zipfileset file="${dist.dir}/${jar.name}-${version.id}-${DSTAMP}.jar"/>
            <zipfileset file="${dist.dir}/${jar.name}-contrib-${version.id}-${DSTAMP}.jar"/>
            <zipfileset file="${dist.dir}/${jar.name}-scratchpad-${version.id}-${DSTAMP}.jar"/>
            <zipfileset dir="legal" prefix="legal"/>
        </zip>

        <zip destfile="${dist.dir}/${jar.name}-src-${version.id}-${DSTAMP}.zip">
            <zipfileset dir="${build.site}" prefix="docs"/>
            <zipfileset dir=".">
                <exclude name="build/**"/>
                <exclude name="scripts/**"/>
                <exclude name="*.ipr"/>
                <exclude name="*.iml"/>
                <exclude name="*.iws"/>
            </zipfileset>
        </zip>

        <tar destfile="${dist.dir}/${jar.name}-bin-${version.id}-${DSTAMP}.tar.gz" compression="gzip">
            <tarfileset dir="${build.site}" prefix="docs"/>
            <tarfileset file="${dist.dir}/${jar.name}-${version.id}-${DSTAMP}.jar"/>
            <tarfileset file="${dist.dir}/${jar.name}-contrib-${version.id}-${DSTAMP}.jar"/>
            <tarfileset file="${dist.dir}/${jar.name}-scratchpad-${version.id}-${DSTAMP}.jar"/>
            <tarfileset dir="legal" prefix="legal"/>
        </tar>

        <tar destfile="${dist.dir}/${jar.name}-src-${version.id}-${DSTAMP}.tar.gz" compression="gzip">
            <tarfileset dir="${build.site}" prefix="docs"/>
            <tarfileset dir=".">
                <exclude name="build/**"/>
                <exclude name="scripts/**"/>
                <exclude name="*.ipr"/>
                <exclude name="*.iml"/>
                <exclude name="*.iws"/>
            </tarfileset>
        </tar>

        <echo>Distribution located in build/dist</echo>

    </target>

    <target name="clean-dist" depends="clean,dist" description="Cleans the build directory then creates a distribution"/>

    <target name="gump" depends="jar,test"/>

</project>
