<?xml version="1.0"?>

<!-- 
  =======================================================================
    Ant own build file                                                      
  ======================================================================= 
-->
<project name="Ant" default="main" basedir=".">

  <!-- Give user a chance to override without editing this file 
       (and without typing -D each time it compiles it) -->
  <property file=".ant.properties" />
  <property file="${user.home}/.ant.properties" />

  <property name="Name" value="Ant"/>
  <property name="name" value="ant"/>
  <property name="version" value="1.5alpha"/>

  <property name="debug" value="true" />
  <property name="deprecation" value="false" />
  <property name="optimize" value="true" />
  <property name="junit.fork" value="false" />

  <!-- 
       ===================================================================
         Set the properties related to the source tree
       =================================================================== 
  -->
  <property name="src.dir" value="src"/>
  <property name="java.dir" value="${src.dir}/main"/>
  <property name="script.dir" value="${src.dir}/script"/>
  <property name="lib.dir" value="lib"/>
  <property name="docs.dir" value="docs"/>
  <property name="tests.dir" value="src/testcases"/>
  <property name="tests.etc.dir" value="src/etc/testcases"/>
  
  <property name="ant.package" value="org/apache/tools/ant"/>
  <property name="optional.package" value="${ant.package}/taskdefs/optional"/>

  <property name="manifest" value="src/etc/manifest"/>


  <!-- 
       ===================================================================
         Set the properties for the build area
       =================================================================== 
  -->
  <property name="build.dir" value="build"/>
  <property name="bootstrap.dir" value="bootstrap"/>
  <property name="build.classes" value="${build.dir}/classes"/>
  <property name="build.lib" value="${build.dir}/lib"/>
  <property name="build.javadocs" value="${build.dir}/javadocs"/>
  <property name="build.tests" value="${build.dir}/testcases"/>

  <path id="classpath">
  </path>

  <path id="tests-classpath">
    <pathelement location="${build.classes}" />
    <pathelement location="${build.tests}" />
    <!--
        include the test source and test data dirs
        so that we can pick resources via getResource(AsStream)
     -->
    <pathelement location="${tests.dir}"/>
    <pathelement location="${tests.etc.dir}"/>
    <path refid="classpath" />
  </path>

 <!-- 
       ===================================================================
         Set up properties for the distribution area
       =================================================================== 
  -->
  <property name="dist.name" value="jakarta-${name}-${version}"/>
  <property name="dist.base" value="distribution"/>
  <property name="dist.dir" value="dist"/>
  <property name="dist.bin" value="${dist.dir}/bin"/>
  <property name="dist.lib" value="${dist.dir}/lib"/>
  <property name="dist.docs" value="${dist.dir}/docs"/>
  <property name="dist.javadocs" value="${dist.dir}/docs/manual/api"/>

  <property name="src.dist.dir" value="dist-src"/>
  <property name="src.dist.src" value="${src.dist.dir}/src"/>
  <property name="src.dist.docs" value="${src.dist.dir}/docs"/>
  <property name="src.dist.lib" value="${src.dist.dir}/lib"/>

  <!-- 
       ===================================================================
         Check to see what optional dependencies are available              
       =================================================================== 
  -->
  <target name="check_for_optional_packages">
    <available property="jdk1.2+" classname="java.lang.ThreadLocal" />
    <available property="jdk1.3+" classname="java.lang.StrictMath" />
    <available property="jdk1.4+" classname="java.lang.CharSequence" />
    <available property="bsf.present" 
               classname="com.ibm.bsf.BSFManager" 
               classpathref="classpath" />
    <available property="netrexx.present" 
               classname="netrexx.lang.Rexx"
               classpathref="classpath" />
    <available property="xslp.present" 
               classname="com.kvisco.xsl.XSLProcessor" 
               classpathref="classpath" />
    <available property="xalan.present" 
               classname="org.apache.xalan.xslt.XSLTProcessorFactory" 
               classpathref="classpath" />
    <available property="xalan2.present" 
               classname="org.apache.xalan.transformer.TransformerImpl" 
               classpathref="classpath" />
    <available property="ejb.ejbc.present" 
               classname="weblogic.ejbc" 
               classpathref="classpath" />
    <available property="ejb.DDCreator.present" 
               classname="weblogic.ejb.utils.DDCreator" 
               classpathref="classpath" />
    <available property="ejb.wls.present" 
               classname="weblogic.Server" 
               classpathref="classpath" />
    <available property="junit.present" 
               classname="junit.framework.TestCase" 
               classpathref="classpath" />
    <available property="netcomp.present" 
               classname="com.oroinc.net.ftp.FTPClient" 
               classpathref="classpath" />
    <available property="starteam.present" 
               classname="com.starbase.util.Platform" 
               classpathref="classpath" />
    <available property="antlr.present" 
               classname="antlr.Tool" 
               classpathref="classpath"/>
    <available property="vaj.present" 
               classname="com.ibm.ivj.util.base.Workspace"  
               classpathref="classpath"/>
    <available property="stylebook.present" 
               classname="org.apache.stylebook.Engine"  
               classpathref="classpath"/>
    <available property="jakarta.regexp.present" 
               classname="org.apache.regexp.RE"  
               classpathref="classpath"/>
    <available property="jakarta.oro.present" 
               classname="org.apache.oro.text.regex.Perl5Matcher"  
               classpathref="classpath" />
    <available property="jmf.present" 
               classname="javax.sound.sampled.Clip"  
               classpathref="classpath"/>
    <available property="icontract.present"
               classname="com.reliablesystems.iContract.IContracted"
               classpathref="classpath"/>
    <available property="jdepend.present" 
               classname="jdepend.framework.JDepend"  
               classpathref="classpath"/>
    <available property="log4j.present"
               classname="org.apache.log4j.Category"
               classpathref="classpath"/>
    <!-- this is just a way to check for a TraX implementation -->
    <available property="trax.impl.present"
               resource="META-INF/services/javax.xml.transform.TransformerFactory"
               classpathref="classpath"/>
               
    <condition property="javamail.complete">
      <and>
        <available classname="javax.activation.DataHandler"
                   classpathref="classpath"/>
        <available classname="javax.mail.Transport"
                   classpathref="classpath"/>
      </and>
    </condition>
  </target>

  <!-- 
       ===================================================================
         Prepare the build              
       =================================================================== 
  -->
  <target name="prepare">
    <tstamp>
      <format property="year" pattern="yyyy" />
    </tstamp>
  </target>

  <!-- 
       ===================================================================
         Build the code           
       =================================================================== 
  -->
  <target name="build" 
          depends="prepare, check_for_optional_packages"
          description="--> compiles the source code">
    <mkdir dir="${build.dir}"/>
    <mkdir dir="${build.classes}"/>
    <mkdir dir="${build.lib}"/>
    
    <javac srcdir="${java.dir}"
           destdir="${build.classes}"
           debug="${debug}"
           deprecation="${deprecation}"
           optimize="${optimize}" >
      <classpath refid="classpath" />
      <exclude name="${ant.package}/util/regexp/JakartaRegexpMatcher.java" 
               unless="jakarta.regexp.present" />
      <exclude name="${ant.package}/util/regexp/JakartaOroMatcher.java" 
               unless="jakarta.oro.present" />
      <exclude name="${ant.package}/util/regexp/Jdk14RegexpMatcher.java" 
               unless="jdk1.4+" />
      <exclude name="${ant.package}/AntSecurityManager.java"
               unless="jdk1.2+" />
      <exclude name="${ant.package}/listener/Log4jListener.java"
               unless="log4j.present" />

      <exclude name="${optional.package}/IContract.java" unless="icontract.present" />
      <exclude name="${optional.package}/Script.java" unless="bsf.present" />
      <exclude name="${optional.package}/StyleBook.java" unless="stylebook.present" />
      <exclude name="${optional.package}/NetRexxC.java" unless="netrexx.present" />
      <exclude name="${optional.package}/XslpLiaison.java" unless="xslp.present" />
      <exclude name="${optional.package}/XalanLiaison.java" unless="xalan.present" />
      <exclude name="${optional.package}/ejb/Ejbc*.java" unless="ejb.ejbc.present" />
      <exclude name="${optional.package}/ejb/DDCreator*.java" unless="ejb.DDCreator.present" />
      <exclude name="${optional.package}/ejb/WLRun.java" unless="ejb.wls.present" />
      <exclude name="${optional.package}/ejb/WLStop.java" unless="ejb.wls.present" />
      <exclude name="${optional.package}/ejb/EjbJar.java" unless="jdk1.2+" />
      <exclude name="${optional.package}/ejb/*DeploymentTool.java" unless="jdk1.2+" />
      <exclude name="${optional.package}/ejb/IPlanet*.java" unless="jdk1.2+" />
      <exclude name="${optional.package}/Javah.java" unless="jdk1.2+" />
      <exclude name="${optional.package}/junit/*" unless="junit.present" />
      <exclude name="${optional.package}/net/MimeMail.java" unless="javamail.complete" />
      <exclude name="${optional.package}/net/FTP.java" unless="netcomp.present" />
      <exclude name="${optional.package}/net/TelnetTask.java" unless="netcomp.present" />
      <exclude name="${optional.package}/scm/AntStarTeam*.java" unless="starteam.present" />
      <exclude name="${optional.package}/ANTLR.java" unless="antlr.present" />
      <exclude name="${optional.package}/ide/VAJ*.java" unless="vaj.present" />
      <exclude name="${optional.package}/perforce/*.java" unless="jakarta.oro.present" />
      <exclude name="${optional.package}/sound/*.java" unless="jmf.present" />
      <exclude name="${optional.package}/junit/XMLResultAggregator.java"
               unless="xalan.present" />
      <exclude name="${optional.package}/junit/AggregateTransformer.java"
               unless="xalan.present" />
      <exclude name="${optional.package}/jdepend/*" unless="jdepend.present" />
      <exclude name="${optional.package}/sitraka/**" unless="jakarta.oro.present"/>
      <exclude name="${optional.package}/metamata/MAudit*" unless="jakarta.oro.present"/>
      <exclude name="${optional.package}/metamata/**" unless="jdk1.2+" />
    </javac>
    
    <copy todir="${build.classes}">
      <fileset dir="${java.dir}">
        <include name="**/*.properties" />
      </fileset>
    </copy>

    <copy    todir="${build.classes}" 
             overwrite="true">
      <fileset dir="${java.dir}">
        <include name="**/version.txt" />
        <include name="**/defaultManifest.mf" />
      </fileset>
      <filterset>
        <filter token="VERSION" value="${version}" />
        <filter token="DATE" value="${TODAY}" />
        <filter token="TIME" value="${TSTAMP}" />
      </filterset>
      
    </copy>

    <copy todir="${build.classes}/${optional.package}/junit/xsl">
       <fileset dir="${src.dir}/etc">
         <include name="junit-frames.xsl" />
         <include name="junit-noframes.xsl" />
       </fileset>
    </copy>

  </target>
  
  <!-- 
       =================================================================== 
         Create the ant jars: ant.jar and optional.jar
       =================================================================== 
  -->
  <target name="jars" 
          depends="build" 
          description="--> creates the ant jars">

    <jar jarfile="${build.lib}/${name}.jar" 
         basedir="${build.classes}" 
         manifest="${manifest}">
      <exclude name="org/apache/tools/ant/taskdefs/optional/**" />
      <fileset dir="${build.classes}" 
               includes="org/apache/tools/ant/taskdefs/optional/TraXLiaison.class" />
    </jar>

    <jar jarfile="${build.lib}/optional.jar" 
         basedir="${build.classes}" 
         manifest="${manifest}">
      <include name="org/apache/tools/ant/taskdefs/optional/**" />
      <exclude name="org/apache/tools/ant/taskdefs/optional/TraXLiaison.class" />
    </jar>

  </target>

  <!--
       ===================================================================
         Create the essential distribution that can run ant
       ===================================================================
  -->
  <target name="dist-lite" 
          depends="jars"
          description="--> creates a minimum distribution to run ant">

    <mkdir dir="${dist.dir}"/>
    <mkdir dir="${dist.bin}"/>
    <mkdir dir="${dist.lib}"/>

    <copy todir="${dist.lib}">
      <fileset dir="${build.lib}"/>
    </copy>
    
    <copy todir="${dist.bin}">
      <fileset dir="${script.dir}/" />
    </copy>

    <fixcrlf srcdir="${dist.bin}" eol="crlf" includes="*.bat" />
    <fixcrlf srcdir="${dist.bin}" eol="lf">
      <include name="ant" />
      <include name="antRun" />
    </fixcrlf>
    <fixcrlf srcdir="${dist.bin}" includes="runant.pl" />

    <chmod perm="ugo+rx" dir="${dist.dir}" type="dir" includes="**" />
    <chmod perm="ugo+r" dir="${dist.dir}" type="file" includes="**" />
    <chmod perm="ugo+x" type="file">
       <fileset dir="${dist.bin}">
         <include name="**/ant" />
         <include name="**/antRun" />
         <include name="**/runant.pl" />
       </fileset>
    </chmod>
  </target>

 <!--
       ===================================================================
         Create the complete distribution
       ===================================================================
  -->
  <target name="dist" description="--> creates a complete distribution">
    <antcall inheritAll="false" target="internal_dist">
      <param name="dist.dir" value="${dist.name}" />
    </antcall>
  </target>  

  <target name="dist_javadocs" depends="javadocs">
    <mkdir dir="${dist.javadocs}"/>
    <copy todir="${dist.javadocs}" overwrite="true">
      <fileset dir="${build.javadocs}"/>
    </copy>
  </target>
  
  
  <target name="internal_dist" depends="dist-lite,dist_javadocs">
    <mkdir dir="${dist.docs}"/>

    <copy todir="${dist.lib}">
      <fileset dir="${lib.dir}">
        <include name="*.jar" />
        <include name="*.zip" />
      </fileset>
    </copy>

    <copy todir="${dist.lib}" file="${lib.dir}/optional/README"/>
    
    <copy todir="${dist.docs}"
          filtering="on">
      <fileset dir="${docs.dir}"/>
    </copy>

    <copy todir="${dist.dir}">
      <fileset dir=".">
        <include name="README"/>
        <include name="LICENSE"/>
        <include name="TODO"/>
        <include name="WHATSNEW"/>
        <include name="KEYS"/>
      </fileset>
    </copy>

    <chmod perm="ugo+rx" dir="${dist.dir}" type="dir" includes="**" />
    <chmod perm="ugo+r" dir="${dist.dir}" type="file" includes="**" />
    <chmod perm="ugo+x" type="file">
       <fileset dir="${dist.bin}">
         <include name="**/ant" />
         <include name="**/antRun" />
         <include name="**/runant.pl" />
       </fileset>
    </chmod>

  </target>


  <!--
       ===================================================================
         Target to create bootstrap build
       ===================================================================
  -->
  <target name="bootstrap" description="--> creates a bootstrap build">
    <antcall inheritAll="false" target="dist-lite">
      <param name="dist.dir" value="${bootstrap.dir}" />
    </antcall>
  </target>


  <!--
       ===================================================================
         Create the source distribution
       ===================================================================
  -->
  <target name="src-dist" 
          description="--> creates a source distribution">

    <mkdir dir="${src.dist.dir}" />
 
    <copy todir="${src.dist.lib}">
      <fileset dir="${lib.dir}">
        <include name="*.jar" />
        <include name="*.zip" />
        <include name="optional/README"/>
      </fileset>
    </copy>

    <copy todir="${src.dist.src}">
      <fileset dir="${src.dir}"/>
    </copy>

    <copy todir="${src.dist.docs}">
      <fileset dir="${docs.dir}">
        <exclude name="manual/api/**"/>
      </fileset>
    </copy>

    <copy todir="${src.dist.dir}">
      <fileset dir=".">
        <include name="README"/>
        <include name="LICENSE"/>
        <include name="TODO"/>
        <include name="WHATSNEW"/>
        <include name="KEYS"/>
        <include name="build.bat"/>
        <include name="build.sh"/>
        <include name="bootstrap.bat"/>
        <include name="bootstrap.sh"/>
        <include name="build.xml"/>
      </fileset>
    </copy>

    <fixcrlf srcdir="${src.dist.dir}" eol="crlf" includes="*.bat" />
    <fixcrlf srcdir="${src.dist.dir}" eol="lf">
      <include name="**/*.sh" />
      <include name="**/ant" />
      <include name="**/antRun" />
    </fixcrlf>
    <fixcrlf srcdir="${src.dist.dir}">
      <include name="**/runant.pl" />
      <include name="**/*.java" />
    </fixcrlf>

    <chmod perm="ugo+x" dir="${src.dist.dir}" type="dir"/>
    <chmod perm="ugo+r" dir="${src.dist.dir}" />
    <chmod perm="ugo+x">
       <fileset dir="${src.dist.dir}">
         <include name="**/.sh" />
         <include name="**/ant" />
         <include name="**/antRun" />
         <include name="**/runant.pl" />
       </fileset>
    </chmod>

  </target>

  <!--
       ===================================================================
         Create the binary distribution
       ===================================================================
  -->
  <target name="distribution" 
          description="--> creates a binary distribution">
    <mkdir dir="${dist.base}"/>

    <antcall inheritAll="false" target="internal_dist">
      <param name="dist.dir" value="${dist.name}" />
    </antcall>
    <zip zipfile="${dist.base}/${dist.name}-bin.zip" 
         basedir="${dist.name}/.." 
         includes="${dist.name}/**"
         excludes="${dist.name}/lib/optional.jar"/>
    <tar longfile="gnu"
         tarfile="${dist.base}/${dist.name}-bin.tar">
      <tarfileset dir="${dist.name}/.." mode="755" username="ant" group="ant">
        <include name="${dist.name}/bin/ant"/>
        <include name="${dist.name}/bin/antRun"/>
      </tarfileset> 
      <tarfileset dir="${dist.name}/.." username="ant" group="ant"> 
        <include name="${dist.name}/**"/>
        <exclude name="${dist.name}/bin/ant"/>
        <exclude name="${dist.name}/bin/antRun"/>
        <exclude name="${dist.name}/lib/optional.jar"/>
      </tarfileset> 
    </tar>
    <gzip zipfile="${dist.base}/${dist.name}-bin.tar.gz" 
          src="${dist.base}/${dist.name}-bin.tar"/>
    <delete file="${dist.base}/${dist.name}-bin.tar"/>
    <copy file="${dist.name}/lib/optional.jar" tofile="${dist.base}/${dist.name}-optional.jar"/>
    <delete dir="${dist.name}" />


    <antcall inheritAll="false" target="src-dist">
      <param name="src.dist.dir" value="${dist.name}" />
    </antcall>
    <zip zipfile="${dist.base}/${dist.name}-src.zip" 
         basedir="${dist.name}/.." 
         includes="${dist.name}/**"/>
    <tar longfile="gnu"
         tarfile="${dist.base}/${dist.name}-src.tar" >
      <tarfileset dir="${dist.name}/.." mode="755" username="ant" group="ant">
        <include name="${dist.name}/bootstrap.sh"/>
        <include name="${dist.name}/build.sh"/>
      </tarfileset> 
      <tarfileset dir="${dist.name}/.." username="ant" group="ant"> 
        <include name="${dist.name}/**"/>
        <exclude name="${dist.name}/bootstrap.sh"/>
        <exclude name="${dist.name}/build.sh"/>
      </tarfileset>
    </tar> 
    <gzip zipfile="${dist.base}/${dist.name}-src.tar.gz" 
          src="${dist.base}/${dist.name}-src.tar"/>
    <delete file="${dist.base}/${dist.name}-src.tar"/>
    <delete dir="${dist.name}" />
  </target>

  <!--
       ===================================================================
         Cleans up build and distribution directories
       ===================================================================
  -->
  <target name="clean"
          description="--> cleans up build and dist directories">
    <delete dir="${build.dir}" />
    <delete dir="${dist.base}" />
    <delete dir="${dist.dir}" />
    <delete> 
      <fileset dir="." includes="**/*~" defaultexcludes="no"/>
    </delete>
  </target> 

  <!--
       ===================================================================
         Cleans everything
       ===================================================================
  -->
  <target name="allclean" 
          depends="clean"
          description="--> cleans up everything">
    <delete file="${bootstrap.dir}/bin/antRun" />
    <delete file="${bootstrap.dir}/bin/antRun.bat" />
  </target> 

  <!--
       ===================================================================
         Installs ant
       ===================================================================
  -->
  <target name="install" if="ant.install">
    <antcall inheritAll="false" target="internal_dist">
      <param name="dist.dir" value="${ant.install}" />
    </antcall>
  </target>

  <target name="install-lite" if="ant.install">
    <antcall inheritAll="false" target="dist-lite">
      <param name="dist.dir" value="${ant.install}" />
    </antcall>
  </target>

  <!-- 
       ===================================================================
         Creates the API documentation                             
       =================================================================== 
  -->
  
  <target name="javadoc_check">
    <uptodate property="javadoc.notrequired" 
              targetfile="${build.javadocs}/packages.html" >
        <srcfiles dir= "${java.dir}" includes="**/*.java"/>
    </uptodate>
  </target>

  <target name="javadocs" depends="prepare, javadoc_check" 
          unless="javadoc.notrequired"
          description="--> creates the API documentation">
    <mkdir dir="${build.javadocs}"/>
    <javadoc packagenames="org.apache.*"
             useexternalfile="yes"
             sourcepath="${java.dir}"
             destdir="${build.javadocs}"
             author="true"
             version="true"
             windowtitle="${Name} API"
             doctitle="${Name}">
      <group title="Ant Core" packages="org.apache.tools.ant*" />
      <group title="Core Tasks" packages="org.apache.tools.ant.taskdefs*" />
      <group title="Optional Tasks" packages="org.apache.tools.ant.taskdefs.optional*" />

      <bottom>Copyright &#169; 1999-${year} Apache Software Foundation. All Rights Reserved.</bottom>
    </javadoc>
  </target>
  
  <!-- 
       =================================================================== 
         Compile testcases                                                   
       =================================================================== 
  -->
  <target name="compile-tests" depends="build" if="junit.present">
    <mkdir dir="${build.tests}"/>

    <javac srcdir="${tests.dir}"
           destdir="${build.tests}"
           debug="${debug}"
           deprecation="${deprecation}" >
      <classpath refid="tests-classpath" />

      <exclude name="org/apache/tools/ant/taskdefs/optional/ANTLRTest.java" 
               unless="antlr.present" />
      <exclude name="org/apache/tools/ant/util/regexp/JakartaRegexpMatcherTest.java" 
               unless="jakarta.regexp.present" />
      <exclude name="org/apache/tools/ant/util/regexp/JakartaOroMatcherTest.java" 
               unless="jakarta.oro.present" />
      <exclude name="org/apache/tools/ant/util/regexp/Jdk14RegexpMatcherTest.java" 
               unless="jdk1.4+" />
      <exclude name="org/apache/tools/ant/taskdefs/optional/sitraka/*.java"
      				 unless="jakarta.oro.present" />
      <exclude name="org/apache/tools/ant/taskdefs/optional/XslpLiaisonTest.java" 
               unless="xslp.present"/>
      <exclude name="org/apache/tools/ant/taskdefs/optional/XalanLiaisonTest.java" 
               unless="xalan.present"/>
    </javac>
  </target>

  <target name="dump-info">
    <echo message="java.vm.info=${java.vm.info}" />
    <echo message="java.vm.name=${java.vm.name}" />
    <echo message="java.vm.vendor=${java.vm.vendor}" />
    <echo message="java.vm.version=${java.vm.version}" />
    <echo message="os.arch=${os.arch}" />
    <echo message="os.name=${os.name}" />
    <echo message="os.version=${os.version}" />
    <echo message="file.encoding=${file.encoding}" />
    <echo message="user.language=${user.language}" />
  </target>

  <!-- 
       =================================================================== 
         Run testcase                                                        
       =================================================================== 
  -->
  <target name="test" depends="run-tests" description="--> run JUnit tests"/>

  <target name="run-tests" depends="dump-info,compile-tests" if="junit.present">


    <junit printsummary="no" haltonfailure="yes" fork="${junit.fork}">
<!--      <jvmarg value="-classic"/> -->
      <classpath refid="tests-classpath"/>

      <sysproperty key="build.tests" value="${build.tests}"/>

      <formatter type="brief" usefile="false" />

      <batchtest>
        <fileset dir="${tests.dir}">
          <include name="**/*Test*" />
          <!-- abstract class, not a testcase -->
          <exclude name="org/apache/tools/ant/taskdefs/TaskdefsTest.java" />
          <exclude name="org/apache/tools/ant/util/regexp/RegexpMatcherTest.java" />

          <!-- helper classes, not testcases -->
          <exclude name="org/apache/tools/ant/taskdefs/TaskdefTest*Task.java" />

          <!-- these tests need to be localised before being ran???? -->
          <exclude name="org/apache/tools/ant/taskdefs/optional/PvcsTest.java" />

          <!-- these depend on order -->
          <exclude name="org/apache/tools/ant/taskdefs/GUnzipTest.java" />
          <exclude name="org/apache/tools/ant/taskdefs/GzipTest.java" />

          <!-- only run these tests if their required libraries are installed -->
          <exclude name="org/apache/tools/ant/taskdefs/optional/ANTLRTest.java" 
                   unless="antlr.present" />
          <exclude name="org/apache/tools/ant/util/regexp/JakartaRegexpMatcherTest.java" 
                   unless="jakarta.regexp.present" />
          <exclude name="org/apache/tools/ant/util/regexp/JakartaOroMatcherTest.java" 
                   unless="jakarta.oro.present" />
          <exclude name="org/apache/tools/ant/util/regexp/Jdk14RegexpMatcherTest.java" 
                   unless="jdk1.4+" />
          <exclude name="${optional.package}/ide/VAJExportTest.java" unless="vaj.present" />
          <exclude name="${optional.package}/sitraka/*.java" unless="jakarta.oro.present" />
                   
           <!-- run when you have the environment setup to support them -->
          <exclude name="org/apache/tools/ant/taskdefs/optional/net/FtpTest.java" />

          <!-- it's an abstract class, not a test -->
          <exclude name="org/apache/tools/ant/taskdefs/optional/AbstractXSLTLiaisonTest.java" />
          <exclude name="org/apache/tools/ant/taskdefs/optional/XslpLiaisonTest.java" unless="xslp.present"/>
          <exclude name="org/apache/tools/ant/taskdefs/optional/XalanLiaisonTest.java" unless="xalan.present"/>
          
          <!-- ehm, this is not really a TraX test but rather a xalan2 test..-->
          <exclude name="org/apache/tools/ant/taskdefs/optional/TraXLiaisonTest.java" unless="xalan2.present"/>

        </fileset>
      </batchtest>

      <test name="org.apache.tools.ant.taskdefs.GzipTest" />
      <test name="org.apache.tools.ant.taskdefs.GUnzipTest" />
    </junit>

    <!-- clean up again -->
    <delete dir="${tests.etc.dir}/taskdefs/optional/antlr/antlr.tmp" />
    <delete dir="${tests.etc.dir}/taskdefs/taskdefs.tmp" />
    <delete dir="${tests.etc.dir}/taskdefs.tmp" />
    <delete file="${tests.etc.dir}/taskdefs/tmp.jar" />
    <delete dir="${tests.etc.dir}/types/copytest" />
    <!-- generated by testcases in jvm dir -->
    <delete file="${user.dir}/xalan1-redirect-out.tmp" />
    <delete file="${user.dir}/xalan2-redirect-out.tmp" />
  </target>

  <target name="run-single-test" if="testcase" depends="compile-tests">

    <junit printsummary="no" haltonfailure="yes" fork="${junit.fork}">
<!--      <jvmarg value="-classic"/> -->
      <sysproperty key="build.tests" value="${build.tests}"/>
      <classpath location="${java.home}/lib/classes.zip" />
      <classpath refid="tests-classpath"/>
      <formatter type="plain" usefile="false" />
      <test name="${testcase}" />
    </junit>
  </target>

  <!-- 
       =================================================================== 
         Main target - runs dist-lite by default
       =================================================================== 
  -->
  <target name="main" 
          description="--> creates a minimum distribution in ./dist">
    <antcall inheritAll="false" target="dist-lite"/>
  </target>
  
</project>
