<?xml version="1.0" encoding="utf-8"?>
<!-- ===================================================================

   Build file for Xalan-J 2.x - for use with the Jakarta Ant java build tool
   
Setup instructions: 
   Before running an Ant build, you must
   
     - set the JAVA_HOME environment variable to the JDK root directory
     - To build 'servlet' sample: Include Servlet SDK in your classpath
     - To build docs/javadocs: use JDK 1.2.x or higher
     
   
Build Instructions:   
   To build, run
     build.bat (win32) or build.sh (unix) - optionally with a target arg as indicated below -
   in the directory where this file is located.
   
   The batch/shell file sets up your classpath and calls java org.apache.tools.ant.Main
   
Build targets
    This build file supports the following targets:
    - compile  compiles Xalan-J in ./build/classes.
    - jar      creates ./build/xalan.jar [the default target]
    - samples  compiles samples and puts classes in ./build/xalanxamples.jar
    - servlet compiles sample servlets and puts classes in ./build/xalanservlet.jar
    - docs     generates the human-written documentation in ./build/docs
    - javadocs [or apidocs] generates the API documentation in ./build/docs/apidocs
    - compat.jar compiles compatibility tree and creates ./build/xalanj1compat.jar
    - compat.apidocs generates javadoc for the compatibility jar
    - xsltc.jar creates just the xsltc.jar
    - xsltc.docs creates the XSLTC design documentation.
    - clean    purges the build tree.
    - dist     creates a complete distribution in ./xalan-j_x_x_x
    - auto*    targets used by automated build programs, without dependencies
    - minitest compiles and runs the minitest in xml-xalan\test
    - conftest compiles and runs the conftest in xml-xalan\test
    - smoketest runs a pre-checkin smoketest (5 to 10 minutes).
    - print.docs creates PDF documentation (requires fop.jar and w3c.jar).
        
If you build a target that depends on other targets, those other targets are created in 
the correct order.

Authors:
  Shane Curcuru <shane_curcuru@lotus.com>
  Don Leslie <donald_leslie@lotus.com>

Copyright:
  Copyright (c) 1999-2000 The Apache Software Foundation.
  
  - Much of this file stolen from Stefano's xml-xerces build.xml  
  
   $Id$
   
==================================================================== -->

<project name="Xalan" default="jar" basedir=".">
  <!-- =================================================================== -->
  <!-- Defines paths/names of prerequisite jar files we compile against    -->
  <!-- =================================================================== -->
  <!-- We keep checked-in known-good .jars here -->
  <property name="bin.dir" value="./bin"/>

  <!-- Allows external users/GUMP/Alexandria systems to replace .jars as needed -->
  <property name="parser.jar.name" value="xerces.jar"/>
  <property name="parser.jar" value="${bin.dir}/${parser.jar.name}"/>
  <property name="bsf.jar.name" value="bsf.jar"/>
  <property name="bsf.jar" value="${bin.dir}/${bsf.jar.name}"/>
  <property name="stylebook.jar.name" value="stylebook-1.0-b3_xalan-2.jar"/>
  <property name="stylebook.jar" value="${bin.dir}/${stylebook.jar.name}"/>
  <property name="doclet.jar.name" value="xalan2jdoc.jar"/>
  <property name="doclet.jar" value="${bin.dir}/${doclet.jar.name}"/>

  <!-- Currently 18-Apr-01 used only for org.apache.xalan.xsltc -->
  <property name="BCEL.jar.name" value="BCEL.jar"/>
  <property name="BCEL.jar" value="${bin.dir}/${BCEL.jar.name}"/>
  <property name="crimson.jar.name" value="crimson.jar"/>
  <property name="crimson.jar" value="${bin.dir}/${crimson.jar.name}"/>
  <property name="java_cup.jar.name" value="java_cup.jar"/>
  <property name="java_cup.jar" value="${bin.dir}/${java_cup.jar.name}"/>
  <property name="JLex.jar.name" value="JLex.jar"/>
  <property name="JLex.jar" value="${bin.dir}/${JLex.jar.name}"/>
  <property name="runtime.jar.name" value="runtime.jar"/>
  <property name="runtime.jar" value="${bin.dir}/${runtime.jar.name}"/>
  <property name="xml.jar.name" value="xml.jar"/>
  <property name="xml.jar" value="${bin.dir}/${xml.jar.name}"/>

  <!-- Defines general variables used by the other targets; name controls output xalan.jar  -->
  <property name="version" value="2_2_D2"/>
  <property name="name" value="xalan"/>
  <property name="Name" value="Xalan-Java"/>
  <property name="year" value="2000"/>
  <property name="build.compiler" value="classic"/>
  <property name="debug" value="off"/>

  <!-- Relative locations of source directories -->
  <property name="metainf.dir" value="./src/META-INF"/>
  <property name="src.dir" value="./src"/>
  <property name="xpath.reldir" value="org/apache/xpath"/>
  <property name="xalan.reldir" value="org/apache/xalan"/>
  <property name="xsltc.reldir" value="${xalan.reldir}/xsltc"/>
  <property name="trax.reldir" value="javax/xml/transform"/>
  <property name="serialize.reldir" value="org/apache/serialize"/>
  <property name="serializer.reldir" value="org/apache/xalan/serialize"/>
  <property name="jaxp.reldir" value="javax/xml/parsers"/>
  <property name="sax.reldir" value="org/xml/sax"/>
  <property name="w3c.reldir" value="org/w3c"/>    

  <!-- Build and distribution output areas -->
  <property name="build.dir" value="./build"/>
  <property name="build.xalan.jar" value="${build.dir}/${name}.jar"/>
  <property name="build.xsltc.jar" value="${build.dir}/xsltc.jar"/>
  <property name="build.classes" value="${build.dir}/classes"/>
  <property name="build.docs" value="${build.dir}/docs"/>
  <property name="build.samples" value="${build.dir}/samples"/>
  <property name="build.apidocs" value="${build.docs}/apidocs"/>
  <property name="dist.file" value="${name}-j_${version}"/>
  <property name="dist.dir" value="${build.dir}/${dist.file}"/>
  
  <!-- Xalan-J1 compatability stuff.  -->
  <property name="compat.jar" value="xalanj1compat.jar"/>
  <property name="compat.src.dir" value="./compat_src"/>
  <property name="build.compat.classes" value="${build.dir}/compat_classes"/>
  <property name="build.compat.jar" value="${build.dir}/${compat.jar}"/>
  <property name="build.compat.apidocs" value="${build.docs}/compat_apidocs"/>        

  <!-- Documentation and samples information  -->
  <property name="version.file" value="${xalan.reldir}/processor/XSLProcessorVersion.java"/>
  <property name="samples.dir" value="./samples"/>
  <property name="xdocs.dir" value="./xdocs"/>
  <property name="xdocs.book" value="${xdocs.dir}/sources/xalan-jlocal.xml"/>
  <property name="xdocs.style" value="${xdocs.dir}/style"/>
  <property name="xalanonly-styledocs"
            value="dtd/xsl-html40s.dtd,dtd/spec.dtd,stylesheets/patterns.xsl,stylesheets/notice.xsl,stylesheets/spec.xsl,stylesheets/done.xsl,loaderdesign.xml,stylesheets/design2project.xsl,stylesheets/designdoc2html.xsl,stylesheets/xml2fo.xsl"/>
  <property name="xalan.cmdline.class" value="org.apache.xalan.xslt.Process"/>
  <property name="doc.generator" value="org.apache.stylebook.StyleBook"/>
  <property name="doc.generator.styletargz" value="${xdocs.dir}/xml-site-style.tar.gz"/>
  <property name="doc.generator.styletar" value="${xdocs.dir}/xml-site-style.tar"/>
  <property name="site.root" value="./xml-site"/>
  <property name="site.dir" value="${site.root}/target/xalan-j"/>
  <property name="site.book" value="${xdocs.dir}/sources/xalan-jsite.xml"/>
  <path id="docs.class.path">
    <pathelement location="${bsf.jar}" />
    <pathelement location="${stylebook.jar}" />
    <pathelement location="${doclet.jar}" />
    <pathelement location="${build.xalan.jar}" />
    <pathelement path="${java.class.path}" />
  </path>

  <!-- References to various automated test locations/parameters -->
  <property name="tests.dir" value="../test/java/"/>
  <property name="test.loggingLevel" value="5"/>
  <!-- The excluded lre tests are at issue or are new bugs, and should be 
       included as soon as they are resolved.  -->
  <property name="test.excludes" value="impincl18.xsl;impincl12.xsl;lre02.xsl;lre03.xsl;lre07.xsl;lre10.xsl;lre12.xsl;lre21.xsl"/>
  <property name="test.embedded" value="embed01.xsl;embed02.xsl;embed07.xsl"/>

  <!-- =================================================================== -->
  <!-- Creates output build directories and doc prerequistes               -->
  <!-- =================================================================== -->
  <target name="prepare">
    <mkdir dir="${build.dir}"/>
    <mkdir dir="${build.classes}"/>
    <!-- Note that all testing-related targets *must* depend on 
         this target, either directly or indirectly, to get 
         the tests-available property set for them.
    -->
    <available file="${tests.dir}" property="tests-available" />
  </target>

  <!-- Must depend on jar since we use Xalan to process xml files -->
  <target name="prepare.docs" depends="jar">
    <mkdir dir="${build.docs}"/> 
    <mkdir dir="${build.apidocs}"/>

    <gunzip src="${doc.generator.styletargz}"/>
    <untar src="${doc.generator.styletar}" dest="${xdocs.dir}"/>
    <delete file="${doc.generator.styletar}"/>
    
    <echo message="Transform todo.xml and put the result in ${build.docs}"/>
    <java fork="yes" classname="${xalan.cmdline.class}">
      <classpath refid="docs.class.path" />
      <arg line="-in todo.xml -xsl todo.xsl -out build/docs/todo.html"/>
    </java> 
    <!-- We use a Notes agent to periodically extract Xalan-Java 2 commits from our team database into commits.xml.  The following operation 
    transforms commits.xml (just including source code commits) and puts the result in xdocs/sources/xalan for inclusion in the 
    readme.xml -->      
    <echo message="Transform commits.xml and put the result in ${xdocs.dir}"/>
    <java fork="yes" classname="${xalan.cmdline.class}" >
      <classpath refid="docs.class.path" />
      <arg line="-in commits.xml -xsl ${xdocs.style}/stylesheets/done.xsl -out xdocs/sources/xalan/DONE"/>
    </java>
    <echo message="Generate Xalan-J 2.x design document"/>
    <java fork="yes" classname="${doc.generator}" >
      <classpath refid="docs.class.path" />
      <arg line="loaderConfig=sbk:/style/loaderdesign.xml targetDirectory=./build/docs/design/
                 ./xdocs/sources/xalandesign.xml ./xdocs/style"/>
    </java>
  </target>


  <!-- =================================================================== -->
  <!-- Compile entire source tree - except Xalan-J 1 compatability classes -->
  <!-- =================================================================== -->
  <target name="compile" depends="prepare"
    description="Compile Xalan-J 2.x (skips 1.x compat and XSLTC)" >
    <echo message="compile entire source tree and copy .properties and .res files to build tree."/>
    <!-- Note: split compile into separate javac steps to avoid JDK 1.1.8 bug reported at:
         http://developer.java.sun.com/developer/bugParade/bugs/4043508.html
         which causes an error like:
         [javac] E:\builds\xml-xalan\java\src\org\apache\xalan\templates\ElemTemplate.java:108: Cyclic class inheritance or scoping.
    --> 
    <!-- Compile our copy of JAXP 1.1 classes -->
    <javac srcdir="${src.dir}" 
           destdir="${build.classes}"
           includes="javax/**/*.java"
           debug="${debug}"/>
    <!-- Compile our copy of DOM Level 2 final draft, SAX 2.0 classes -->
    <javac srcdir="${src.dir}" 
           destdir="${build.classes}"
           includes="org/w3c/**/*.java,org/xml/**/*.java"
           debug="${debug}"/>
    <!-- Compile XPath engine and some common utilities -->
    <javac srcdir="${src.dir}" 
           destdir="${build.classes}"
           includes="org/apache/xml/**/*.java,${xpath.reldir}/**/*.java"
           debug="${debug}"/>
    <!-- Compile Xalan main engine (but not xsltc package yet) -->
    <javac srcdir="${src.dir}" 
           destdir="${build.classes}"
           includes="${xalan.reldir}/**/*.java"
           excludes="${xsltc.reldir}/**/*.java,${xalan.reldir}/lib/**/*.java,${xalan.reldir}/xslt/**/*.java"
           debug="${debug}"/>
    <!-- Compile various Xalan-specific extensions and command line class -->
    <javac srcdir="${src.dir}" 
           destdir="${build.classes}"
           includes="${xalan.reldir}/lib/**/*.java,${xalan.reldir}/xslt/**/*.java"
           debug="${debug}"/>
    <!-- Copy needed properties, resource, etc. files to be put into .jar file -->
    <copy todir="${build.classes}">
          <fileset dir="${src.dir}" includes="**/*.properties,**/*.res,**/javax.xml.parsers.*,**/javax.xml.transform.*"/>
        </copy>  
  </target>

  <!-- =================================================================== -->
  <!-- Compile just the XSLTC compiler portion (to be integrated soon!) -->
  <!-- =================================================================== -->
  <path id="xsltc.class.path">
    <pathelement location="${BCEL.jar}" />
    <pathelement location="${JLex.jar}" />
    <pathelement location="${java_cup.jar}" />
    <pathelement location="${runtime.jar}" />
    <pathelement location="${xml.jar}" />
    <pathelement location="${crimson.jar}" />
    <!-- build.classes needed for 
         org.apache.xalan.xsltc.util.JavaCupRedirect -->
    <pathelement location="${build.classes}" />
    <pathelement path="${java.class.path}" />
  </path>
  <!-- The xsltc.compile target should be rewritten to properly 
       do dependencies on the generated sources: right now, it 
       will always regenerate the sources, even if it's not needed
       (which forces all later steps to re-run as well) -->
  <target name="xsltc.compile" depends="prepare"
    description="Compile just the XSLTC classes" >

    <!-- The first step compiles the utils directpry, which includes 
         a special wrapper for the java_cup step next. -->
    <echo message="Compiling XSLTC utilities"/>
    <javac srcdir="${src.dir}" 
           destdir="${build.classes}"
           includes="${xsltc.reldir}/util/**/*.java"
           debug="${debug}">
      <classpath refid="xsltc.class.path" />
    </javac>
    <!-- The second step generates sym.java and XPathParser.java, and the
    last one generates XPathLexer.java. The lexiographical analyser
    has to be generated after sym.java, so order is important. -->
    <echo message="java_cup preparsing"/>
    <java fork="no" failonerror="true" classname="org.apache.xalan.xsltc.util.JavaCupRedirect" >
      <classpath refid="xsltc.class.path" />
      <!-- We're using JavaCupRedirect to call the java_cup application -->
      <arg line="-parser XPathParser -expect 0 -stdin ${src.dir}/${xsltc.reldir}/compiler/xpath.cup"/>
    </java>
    <echo message="java_cup move output files"/>
    <move file="XPathParser.java" tofile="${src.dir}/${xsltc.reldir}/compiler/XPathParser.java"/>
    <move file="sym.java" tofile="${src.dir}/${xsltc.reldir}/compiler/sym.java"/>

    <echo message="JLex preparsing"/>
    <java fork="no" failonerror="true" classname="JLex.Main" >
      <classpath refid="xsltc.class.path" />
      <arg line="-static ${src.dir}/${xsltc.reldir}/compiler/xpath.lex"/>
    </java>
    <echo message="JLex move output file"/>
    <move file="${src.dir}/${xsltc.reldir}/compiler/xpath.lex.java" tofile="${src.dir}/${xsltc.reldir}/compiler/XPathLexer.java"/>

    <echo message="Compiling remaining XSLTC classes"/>
    <javac srcdir="${src.dir}" 
           destdir="${build.classes}"
           includes="${xsltc.reldir}/**/*.java"
           debug="${debug}">
      <classpath refid="xsltc.class.path" />
    </javac>
  </target>
  <target name="xsltc.jar" depends="xsltc.compile"
    description="Jar just the xsltc.jar file" >
    <jar jarfile="${build.xsltc.jar}" basedir="${build.classes}" >
      <patternset><!-- relative to jar/@basedir -->
        <include name="${xsltc.reldir}/**/*" />
      </patternset>
    </jar>
  </target>
  
  <!-- =================================================================== -->
  <!-- Creates the xalan JAR                                               -->
  <!-- =================================================================== -->
  <target name="jar" depends="compile"
    description="Jar up xalan.jar" >
    <jar jarfile="${build.xalan.jar}" manifest="src\MANIFEST.MF" basedir="${build.classes}" >
      <patternset><!-- relative to jar/@basedir -->
        <exclude name="${xsltc.reldir}/**/*" />
        <exclude name="javax/xml/parsers/**" />
        <exclude name="META-INF/services/javax.xml.parsers*" />
      </patternset>
    </jar>
  </target>
  
  <!-- =================================================================== -->
  <!-- Creates the Xalan-J1 compatability JAR                              -->
  <!-- =================================================================== -->
  <target name="compat.jar" depends="jar"
    description="Compile and jar Xalan-J 1.x backwards compat classes" >
    <echo message="Compile and jar just the Xalan-J 1 compability API"/>
    <mkdir dir="${build.compat.classes}"/>
    <javac srcdir="${compat.src.dir}" classpath="${java.class.path}:${build.xalan.jar}" 
           destdir="${build.compat.classes}"
           includes="**/*.java"
           debug="${debug}"/>
    <copy todir="${build.compat.classes}">
          <fileset dir="${compat.src.dir}" includes="**/*.properties,**/*.res"/>
    </copy>  
    <jar jarfile="${build.compat.jar}" manifest="src\MANIFEST.MF" basedir="${build.compat.classes}"/>
  </target>
  
  <!-- =================================================================== -->
  <!-- Creates the Xalan-J1 compatability javadoc                          -->
  <!-- =================================================================== -->
  <target name="compat.javadocs" depends="jar"
    description="Build javadocs for Xalan-J 1.x backwards compat classes" >
    <mkdir dir="${build.compat.apidocs}"/>
    <javadoc
         public="true"
         sourcepath="${compat.src.dir}"
         overview="${compat.src.dir}/compatOverview.html"         
         packagenames="org.apache.xalan.xslt,org.apache.xalan.xpath,org.apache.xalan.xpath.xml"
         author="true"
         version="true"
         use="true"
         destdir="${build.compat.apidocs}"
         windowtitle="Xalan-Java 1 Compatability" 
         doctitle="Xalan-Java 1 Compatability"
         bottom="Copyright &#169; ${year} Apache XML Project. All Rights Reserved.">
      <classpath refid="docs.class.path" />
    </javadoc>
  </target>
    

  <!-- =================================================================== -->
  <!-- Compiles the samples (servlet excluded) and jars the class files    -->  
  <!-- =================================================================== -->
  <target name="samples" depends="jar"
    description="Compile and jar the samples (except servlet)" >
    <property name="exclude" value="*.xml,*.xsl,*.txt,*.html,*.properties,*.out"/>
    <mkdir dir="${build.samples}"/>
    <!-- Since the samples are packageless, they must be compiled separately. -->   
    <javac srcdir="${samples.dir}/SimpleTransform" classpath="${java.class.path}:${build.xalan.jar}" 
           destdir="${build.samples}"  excludes="${exclude}"
           debug="${debug}"/>
    <javac srcdir="${samples.dir}/UseStylesheetPI" classpath="${java.class.path}:${build.xalan.jar}"  
           destdir="${build.samples}"  excludes="${exclude}"
           debug="${debug}"/>
    <javac srcdir="${samples.dir}/UseStylesheetParam" classpath="${java.class.path}:${build.xalan.jar}"
           destdir="${build.samples}"  excludes="${exclude}"
           debug="${debug}"/>           
    <javac srcdir="${samples.dir}/SAX2SAX" classpath="${java.class.path}:${build.xalan.jar}" 
           destdir="${build.samples}"  excludes="${exclude}"
           debug="${debug}"/>           
    <javac srcdir="${samples.dir}/DOM2DOM" classpath="${java.class.path}:${build.xalan.jar}" 
           destdir="${build.samples}"  excludes="${exclude}"
           debug="${debug}"/>
    <javac srcdir="${samples.dir}/Pipe" classpath="${java.class.path}:${build.xalan.jar}" 
           destdir="${build.samples}"  excludes="${exclude}"
           debug="${debug}"/>           
    <javac srcdir="${samples.dir}/UseXMLFilters" classpath="${java.class.path}:${build.xalan.jar}" 
           destdir="${build.samples}"  excludes="${exclude}"
           debug="${debug}"/>
    <javac srcdir="${samples.dir}/Trace" classpath="${java.class.path}:${build.xalan.jar}"  
           destdir="${build.samples}"  excludes="${exclude}"
           debug="${debug}"/>
   <javac srcdir="${samples.dir}/ApplyXPath" classpath="${java.class.path}:${build.xalan.jar}" 
           destdir="${build.samples}" excludes="${exclude}" 
           debug="${debug}"/>
   <javac srcdir="${samples.dir}/trax" classpath="${java.class.path}:${build.xalan.jar}" 
           destdir="${build.samples}" excludes="${exclude}" 
           debug="${debug}"/>
   <javac srcdir="${samples.dir}/extensions" classpath="${java.class.path}:${build.xalan.jar}" 
           destdir="${build.samples}" excludes="${exclude}" 
           debug="${debug}"/> 
    <jar jarfile="${build.dir}/xalansamples.jar" basedir="${build.samples}"
         includes="*.class"/>                   
  </target>
   
  <!-- =================================================================== -->
  <!-- Compiles the sample servlet and jars the class files.                -->  
  <!-- The javax.servlet and javax.servlet.http packages                    -->
  <!-- must be on the classpath                                             -->
  <!-- =================================================================== -->
 <target name="servlet" depends="jar"
    description="Compile and jar the servlet samples" >
     <echo message="To compile the sample servlets, javax.servlet and javax.servlet.http must be on the classpath"/>   
     <mkdir dir="${build.samples}/servlet"/>
     <javac srcdir="${samples.dir}/servlet" classpath="${java.class.path}:${build.xalan.jar}" 
           destdir="${build.samples}"
           debug="${debug}"/>
      <copy todir="${build.samples}/servlet">
          <fileset dir="${samples.dir}/servlet" 
                includes="media.properties,default.xsl,default2.xsl"/>
        </copy>  		         
    <jar jarfile="${build.dir}/xalanservlet.jar" 
         basedir="${build.samples}" 
         includes="servlet/**"/>
 </target>
 
  <!-- =================================================================== -->
  <!-- Compiles (does not jar) the translet samples in translets.          -->
  <!-- For time being, classes are generated in place.                     -->
  <!-- To run these samples, add xsltc.jar, runtime.jar, BCEL.jar,         -->
  <!-- and java_cup.jar (all in the bin directory) to the classpath        --> 
  <!--                                                                     -->
  <!-- When we have straightened out classpath issues,                     -->
  <!-- add samples in CompiledApplet, CompiledBrazil, and CompiledServlet  -->
  <!-- =================================================================== -->
  <target name="xsltc.samples" depends="jar,xsltc.jar">
    <javac srcdir="${samples.dir}/translets" classpath="${java.class.path}:${build.xsltc.jar}" 
           destdir="${samples.dir}/translets" excludes="${exclude}" 
           debug="${debug}"/>  
  </target>
 
 
  <!-- =================================================================== -->
  <!-- Generate HTML docs                                                  -->
  <!-- =================================================================== -->
  <target name="docs" depends="jar,prepare.docs,autodocs"
    description="Build the documentation (overview, readme, etc.)" >
    <echo message="docs is human-usable target with dependencies"/>  
  </target>
  
  <target name="autodocs">
    <echo message="autodocs is for automated build process, without dependencies"/>   
    <java fork="yes" 
          classname="${doc.generator}" 
          classpathref="docs.class.path" >
       <arg line="targetDirectory=${build.docs} ${xdocs.book} ${xdocs.style}"/>
    </java>	 
  </target>
  
  <!-- =================================================================== -->
  <!-- Creates the API documentation                                       -->
  <!-- =================================================================== -->
  <target name="javadocs" depends="jar,prepare.docs,autojavadocs"
    description="Build the Javadocs for Xalan 2.x sources" >
    <echo message="javadocs is human-usable target with dependencies"/>  
  </target>

  <target name="autojavadocs">
    <echo message="autojavadocs is for automated build process, without dependencies"/>    
    
    <!-- Ant ignores destdir arg if doclet is set, so must send to doclet in doclet subelement-->
    <javadoc
         public="true"
         sourcepath="${src.dir}"
         overview="${src.dir}/javadocOverview.html"
         packagenames="org.apache.*,org.xml.*,org.w3c.*,javax.xml.*"
         author="true"
         version="true"
         use="true"
         windowtitle="${Name} 2" 
         doctitle="${Name} 2"
         bottom="Copyright &#169; ${year} Apache XML Project. All Rights Reserved.">
          <classpath refid="docs.class.path" />
          <doclet name="xalanjdoc.Standard" path="${bin.dir}/xalan2jdoc.jar">
            <param name="-d" value="${build.apidocs}"/>
          </doclet>
          <group title="Transformations API for XML (TrAX)" packages="javax.xml.transform*"/>
          <group title="Java API for XML Parsing" packages="javax.xml.parsers"/>
          <group title="Xalan Core"
                 packages="org.apache.xalan.processor:org.apache.xalan.templates:org.apache.xalan.transformer"/>
          <group title="XPath" packages="org.apache.xpath*"/>
          <group title="Utilities" packages="org.apache.xml.utils*"/>
          <group title="Xalan Other" packages="org.apache.xalan.client:org:org.apache.xalan.extensions:org.apache.xalan.res:org.apache.xalan.stree:org.apache.xalan.trace:org.apache.xalan.xslt"/>
          <group title="Xalan Extensions" packages="org.apache.xalan.lib*"/>
          <group title="Serializers" packages="org.apache.xalan.serialize"/>
          <group title="SAX 2" packages="org.xml.sax*"/>
          <group title="DOM 2" packages="org.w3c.dom*"/>
          <group title="XSLTC Core"
                 packages="org.apache.xalan.xsltc*"/>
    </javadoc>
    
  </target>

  <!-- =================================================================== -->
  <!-- Cleans everything: build tree, site tree, style docs in             -->
  <!--         - build tree                                                -->
  <!--         - distribution tree                                         -->
  <!--         - site tree                                                 -->
  <!--         - style docs expanded from xml-site-style.tar.gz.           -->
  <!--           (MUST update contents of ${xalanonly-styledocs}           -->
  <!--            if change contents of xml-site-style.tar.gz)             -->
  <!--         - Javadoc overview and packqage-level html docs placed      -->
  <!--           in the source tree                                        -->
  <!-- =================================================================== -->
  <target name="clean" depends="xsltc.clean"
    description="Clean up the build tree and any outputs" >
    <delete dir="${build.dir}"/>
    <delete dir="${site.root}"/>
    <delete>
      <fileset dir="${xdocs.style}" excludes="${xalanonly-styledocs}"/>
    </delete>
  </target>
 
  <!-- Cleans just the generated sources from xsltc.compile -->
  <target name="xsltc.clean"
    description="Clean up the XSLTC generated sources" >
    <delete file="${src.dir}/${xsltc.reldir}/compiler/XPathParser.java" />
    <delete file="${src.dir}/${xsltc.reldir}/compiler/sym.java" />
    <delete file="${src.dir}/${xsltc.reldir}/compiler/XPathLexer.java" />
  </target>
  <!-- =================================================================== -->
  <!-- Creates the distribution                                            -->
  <!-- =================================================================== -->
  <target name="dist" depends="jar,docs,javadocs,samples,servlet,compat.jar,compat.javadocs,xsltc.jar,xsltc.docs,autodist"
    description="Create a .zip/.tar.gz distribution module" >
    <echo message="dist is human-useable target for distribution, with all dependencies"/>
  </target>
  <target name="autodist">
    <echo message="autodist is for automated build processes, without dependencies"/>
    <mkdir dir="${dist.dir}"/>
    <mkdir dir="${dist.dir}/bin"/>    
    <mkdir dir="${dist.dir}/src"/>
    <mkdir dir="${dist.dir}/compat_src"/>    
    <mkdir dir="${dist.dir}/xdocs"/>
    <mkdir dir="${dist.dir}/docs"/>
    <mkdir dir="${dist.dir}/docs/apidocs"/>
    <mkdir dir="${dist.dir}/docs/compat_apidocs"/>    
    <mkdir dir="${dist.dir}/samples"/>
        
        <!-- Copy bin directory -->
    <copy todir="${dist.dir}/bin">
          <fileset dir="${bin.dir}"/>
        </copy>  

    <!-- Copy sources and source documentation -->
    <copy todir="${dist.dir}/src">
      <fileset dir="${src.dir}"/>
    </copy>
    <copy todir="${dist.dir}/compat_src">
      <fileset dir="${compat.src.dir}"/>
    </copy>    
    <copy todir="${dist.dir}/xdocs">
      <fileset dir="${xdocs.dir}"/>
    </copy>
    
    <!-- Copy built documentation and javadoc, and samples src and jars -->
    <copy todir="${dist.dir}/docs">
      <fileset dir="${build.docs}"/>
    </copy>  
    <!-- HACK! delete 3 files longer than 100 chars to get around 
         tar problems with long filenames -sc 23-May-01
    -->
    <delete file="${dist.dir}/docs/apidocs/org/apache/xalan/transformer/class-use/TransformerImpl.ThreadControler.html"/>
    <delete file="${dist.dir}/docs/apidocs/org/apache/xalan/xsltc/compiler/util/class-use/AttributeSetMethodGenerator.html"/>
    <delete file="${dist.dir}/docs/apidocs/org/apache/xalan/xsltc/compiler/util/class-use/NodeSortRecordGenerator.html"/>

    <copy todir="${dist.dir}/samples">
      <fileset dir="${samples.dir}"/>
    </copy>   
    <copy file="${build.dir}/xalansamples.jar" todir="${dist.dir}/bin"/>
    <copy file="${build.dir}/xalanservlet.jar" todir="${dist.dir}/bin"/>

    <!-- Copy various built .jar files into the bin directory (subject to change) -->
    <copy file="${build.xalan.jar}" todir="${dist.dir}/bin"/>
    <copy file="${build.compat.jar}" todir="${dist.dir}/bin"/>    
    <copy file="${build.xsltc.jar}" todir="${dist.dir}/bin"/>

    <copy todir="${dist.dir}">
      <fileset dir="." includes="readme.html,KEYS,License,build.xml,build.sh,build.bat,todo.xml,xsltc_todo.xml,todo.xsl,commits.xml"/>
    </copy>
          
    <zip zipfile="${build.dir}/${dist.file}.zip" basedir="${build.dir}" includes="${dist.file}/**"/>
    <tar tarfile="${build.dir}/${dist.file}.tar" basedir="${build.dir}" includes="${dist.file}/**"/>
    <gzip src="${build.dir}/${dist.file}.tar" zipfile="${build.dir}/${dist.file}.tar.gz"/>
  </target>
  
  <!-- =================================================================== -->
  <!-- Creates the documentation tree for the org.apache.xml website       -->
  <!-- =================================================================== -->
  <target name="site" depends="prepare.docs"
    description="Build documentation for posting to the website" >
 
    <mkdir dir="${site.dir}/apidocs"/>
    <mkdir dir="${site.dir}/compat_apidocs"/>
    <mkdir dir="${site.dir}/design"/>
    <java fork="yes" 
          classname="${doc.generator}" 
          classpathref="docs.class.path" >
       <arg line="targetDirectory=${site.dir} ${site.book} ${xdocs.style}"/>
    </java>

    <!-- put todo.html in the site directory -->     
    <copy file="${build.docs}/todo.html" todir="${site.dir}"/>
    <!-- put xalan design doc in the site design subdir -->
    <copy todir="${site.dir}/design">
      <fileset dir="${build.docs}/design"/>
    </copy>
    <!-- put xsltc design doc in the site xsltc subdir -->
    <copy todir="${site.dir}/xsltc">
      <fileset dir="${build.docs}/xsltc"/>
    </copy>  
    
    <!-- put in the javadoc -->
    <copy todir="${site.dir}/apidocs">
      <fileset dir="${build.apidocs}"/>
    </copy>
    <copy todir="${site.dir}/compat_apidocs">
      <fileset dir="${build.compat.apidocs}"/>
    </copy>  
      
  </target>
   
  <!-- =================================================================== -->
  <!-- Compiles and runs the minitest from xml-xalan\test, if present      -->
  <!-- =================================================================== -->
  <path id="minitest.class.path">
    <pathelement location="${parser.jar}" />
    <pathelement location="${build.xalan.jar}" />
    <pathelement location="${bsf.jar}" />
    <pathelement path="${java.class.path}" />
  </path>

  <!-- Reference from the testing directory back to our directory, 
       used when calling testing targets to set the classpath for 
       the tests to include jars we just compiled.
  -->
  <property name="tests.backref" value="../../java/"/>

  <target name="minitest" depends="prepare,jar,minitest-run,tests-not-available" 
    description="Run the Minitest from xml-xalan/test/java" >
    <!-- This target explicitly depends on the jar target, since 
         without xalan.jar the tests won't compile/run.
         We then call the worker target minitest-run to do 
         the work of running the minitest.
         We finally call a helper target tests-not-available 
         to notify users that they need to checkout the tests 
         explicitly from CVS - but this only runs if needed.
    -->
  </target>
  <target name="minitest-run" if="tests-available" depends="prepare" >
    <echo message=" [minitest] Calling ${tests.dir}build.xml now to run minitest.xalan2" />
    <ant dir="${tests.dir}" antfile="build.xml" target="minitest.xalan2" >
      <!-- Set the below testxsl.jar.name so that it will create 
           minitest.jar instead of testxsl.jar; we only do this here 
           since this is a commonly-called developer target, and it's 
           good to differentiate this jar from the regular testing jar 
           (which has many more test classes in it).
      -->
      <property name="testxsl.jar.name" value="minitest.jar" />
      <property name="prepend.class.path"
                value="${tests.backref}${parser.jar}:${tests.backref}${build.xalan.jar}:${tests.backref}${bsf.jar}" />
    <!-- Why doesn't the following refid work? I get an error referencing it.
      <property name="prepend.class.path" refid="minitest.class.path" />
    -->
    </ant>
  </target>

  <!-- Called from various testing targets if the test dir doesn't exist. -->
  <target name="tests-not-available" unless="tests-available" >
    <echo message=" [tests] The tests do not seem to be present!" />
    <echo message=" [tests] You must have checked out from CVS to run the tests," />
    <echo message=" [tests]   it is not included in binary distributions." />
    <echo message=" [tests] See http://xml.apache.org/xalan-j/test/ for more info." />
  </target>
  
  <!-- =================================================================== -->
  <!-- Compiles and runs the conformance test from xml-xalan\test, if present      -->
  <!-- =================================================================== -->
  <!-- We should have a duplicate of minitest.class.path that
       in the future this may need to include references to dirs 
       where Java-based extension tests keep their .classes.
  -->

  <target name="conftest" depends="prepare,jar,conftest-run,tests-not-available" 
    description="Run the ConformanceTest from xml-xalan/test/java" >
  </target>
  <target name="conftest-run" if="tests-available" depends="prepare" >
    <echo message=" [conftest] Calling ${tests.dir}build.xml now to run conftest.xalan2" />
    <ant dir="${tests.dir}" antfile="build.xml" target="conftest.xalan2" >
      <property name="testxsl.jar.name" value="conftest.jar" /> 
      <!-- Set name above so that it will create conftest.jar instead 
           of testxsl.jar - but, since the "ConformanceTest" depends 
           on so many testing classes, it may not be worth calling 
           this a different name from the default 'testxsl.jar'.  It 
           does reduce confusion, however, for people who build and 
           run the tests directly from the testing directory, instead 
           of doing it from this directory.
      -->
      <property name="prepend.class.path"
                value="${tests.backref}${parser.jar}:${tests.backref}${build.xalan.jar}:${tests.backref}${bsf.jar}" />
    </ant>
  </target>
  
  <!-- =================================================================== -->
  <!-- Compiles and runs the smoke test from xml-xalan\test, if present      -->
  <!-- =================================================================== -->
  <target name="smoketest" depends="prepare,jar,smoketest-run,tests-not-available" 
    description="Run the SmokeTest (includes API tests and ConformanceTest)" >
  </target>
  <target name="smoketest-run" if="tests-available" depends="prepare" >
    <ant dir="${tests.dir}" antfile="build.xml" target="smoketest-xalan2" >
      <property name="prepend.class.path"
                value="${tests.backref}${parser.jar}:${tests.backref}${build.xalan.jar}:${tests.backref}${bsf.jar}" />
    </ant>
  </target>
  
  <!-- =================================================================== -->
  <!-- Creates the todo list for the org.apache.xml website                -->
  <!-- =================================================================== -->
  <target name="todo">
    <java fork="yes" 
          classname="${xalan.cmdline.class}" 
          classpathref="docs.class.path" >
      <arg line="-in todo.xml -xsl todo.xsl -out todo.html"/>
    </java>   
  </target>  

  <!-- =================================================================== -->
  <!-- Creates the xalan design document                                   -->
  <!-- =================================================================== -->
    <target name="xalan-j2-design">
    <java fork="yes" 
          classname="${doc.generator}" 
          classpathref="docs.class.path" >
      <arg line="loaderConfig=sbk:/style/loaderdesign.xml targetDirectory=${build.dir}/docs/design/
      ${xdocs.dir}/sources/xalandesign.xml ${xdocs.style}"/>
    </java>
  </target>
  
  <!-- =================================================================== -->
  <!-- Use FOP to create preliminary print (pdf) doc                       -->
  <!-- Note: fop.jar and xml.jar (from xml-fop) must be on classpath       -->
  <!-- This is VERY preliminary, not yet for inclusion in distribution     -->
  <!-- =================================================================== -->

  <!--Collate the xml sources into a single xml source with a litle extra structure -->
  <target name="print.docs" depends="prepare.docs">
    <echo message="fop.jar and xml.jar must be on the classpath"/>
    <java fork="yes" 
          classname="${xalan.cmdline.class}"
          classpathref="docs.class.path" >
      <arg line="-xsl ${xdocs.dir}/sources/xalan-collate.xsl 
                 -out xdocs/sources/xalan/xalan-collate.xml"/>
    </java>
    
    <!-- Transform collation into Formatting Objects 
         (with a little work on links along the way) -->    
    <java fork="yes" 
          classname="${xalan.cmdline.class}"
          classpathref="docs.class.path" >
      <arg line="-in  ${xdocs.dir}/sources/xalan/xalan-collate.xml
                 -param resourceFile '../../sources/xalan/resources.xml'
                 -param project ${Name}      
                 -xsl ${xdocs.style}/stylesheets/xml2fo.xsl 
                 -out build/docs/xalan-collate.fo"/>
    </java>
    
    <!-- Use FOP to generate a pdf file (classpath may need updating! -sc 18-Apr-01)-->
    <java fork="yes" 
          classname="org.apache.fop.apps.CommandLine"
      classpath="${java.class.path}:${build.xalan.jar}:${bin.dir}/fop.jar:${bin.dir}/w3c.jar">
      <arg line="${build.docs}/xalan-collate.fo build/docs/xalan.pdf"/>
    </java>
  </target>

  <!-- =================================================================== -->  
   <!-- for developers only; compiles xalan-j1 samples with compat jar and xalan-j2 xalan.jar-->
   <target name="compat.samples" depends="jar,compat.jar" 
    description="Compile and jar Xalan-J 1.x backwards compat samples" >
     <property name="exclude" value="*.xml,*.xsl,*.txt,*.html.*.properties"/>
     <property name="samplesj1.dir" value="/xml-xalan/samples"/>
     <property name="build.compat.samples" value="./build/compat_samples"/>
     <mkdir dir="${build.compat.samples}"/>     

    <!--need to use the XalanJ2 XPathAPI, so cannot compile ApplyXPath as is -->   
    <javac srcdir="${samplesj1.dir}/Pipe" classpath="${build.compat.jar}:${build.xalan.jar}:${java.class.path}" 
           destdir="${build.compat.samples}"  excludes="${exclude}"
           debug="${debug}"/> 
    <javac srcdir="${samplesj1.dir}/SimpleTransform" classpath="${build.compat.jar}:${build.xalan.jar}:${java.class.path}" 
           destdir="${build.compat.samples}"  excludes="${exclude}"
           debug="${debug}"/>
    <javac srcdir="${samplesj1.dir}/TransformToDom" classpath="${build.compat.jar}:${build.xalan.jar}:${java.class.path}" 
           destdir="${build.compat.samples}"  excludes="${exclude}"
           debug="${debug}"/>
    <javac srcdir="${samplesj1.dir}/PureSAX" classpath="${build.compat.jar}:${build.xalan.jar}:${java.class.path}" 
           destdir="${build.compat.samples}"  excludes="${exclude}"
           debug="${debug}"/>          
    <javac srcdir="${samplesj1.dir}/UseStylesheetParam" classpath="${build.compat.jar}:${build.xalan.jar}:${java.class.path}" 
           destdir="${build.compat.samples}"  excludes="${exclude}"
           debug="${debug}"/>
    <javac srcdir="${samplesj1.dir}/Servlet" classpath="${build.compat.jar}:${build.xalan.jar}:${java.class.path}" 
           destdir="${build.compat.samples}" excludes="${exclude}"
           debug="${debug}"/>
    <jar   jarfile="${build.compat.samples}/xalanjcompatsamples.jar" basedir="${build.compat.samples}"
            includes="*.class"/> 
     <!--put the servlet in a separate jar -->
     <javac srcdir="${samplesj1.dir}/Servlet" classpath="${build.compat.jar}:${build.xalan.jar}:${java.class.path}" 
           destdir="${build.compat.samples}"
           debug="${debug}"/>
      <copy todir="${build.compat.samples}/servlet">
          <fileset dir="${samplesj1.dir}/Servlet" 
                includes="media.properties,default.xsl,default2.xsl"/>
        </copy>  		         
    <jar jarfile="${build.compat.samples}/xalancompatservlet.jar" basedir="${build.compat.samples}"
         includes="servlet/**"/>
 </target>
 
  <!-- =================================================================== -->
  <!-- Build XSLTC design documentation. Eventually intend to incorporate -->
  <!-- XSLTC into the Xalan book.                                         -->
  <!-- =================================================================== -->


  <target name="xsltc.prepare.docs" depends="prepare.docs">
      <echo message="Transform xsltc_todo.xml and put the result in ${build.docs}/xsltc"/>
   <mkdir dir="${build.docs}/xsltc"/>
    <java fork="yes" classname="${xalan.cmdline.class}">
      <classpath refid="docs.class.path" />
      <arg line="-in xsltc_todo.xml -xsl todo.xsl -out build/docs/xsltc/todo.html"/>
    </java>
  </target>  
 
 <target name="xsltc.docs" depends="xsltc.prepare.docs">
   <echo message="Build the XSLTC Architectural documentation"/>
   <java fork="yes" 
         classname="${doc.generator}" 
         classpathref="docs.class.path" >
      <arg line="targetDirectory=${build.docs}/xsltc ${xdocs.dir}/sources/xsltc.xml ${xdocs.style}"/>
    </java>	 
 </target>
 
</project>
