<?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/xsltc: use JDK 1.2.x or higher
   
Build Instructions:   
  To build, run
    build.bat (win32) or build.sh (unix) [antoptions] [targets]
  in the directory where this file is located; you should also be 
  able to use an installation of Ant v1.4.1 or later.
   
  build -projecthelp  will show a list of supported targets.
   
  Developers: include a description="" attribute in all user-callable targets.
        
  If you build a target that depends on other targets, those other 
  targets are *usually* created in the correct order; however a 
  few of the larger targets like dist do not list all dependencies.

Other Important Notes:
- 'dist' produces a .tar file that works with GNU compatible tar 
  programs, because that's what Ant does when it finds a path that's 
  longer than 100 characters (like in our docs).  Sorry!
  
- External build maintainers: look for GUMP: comments; developers 
  please use great caution when changing these lines!

- Unusual build items: the docs and xsltc.compile targets leave 
  cruft in the source areas; various clean targets get most of this.
  
Authors:
  Shane Curcuru <shane_curcuru@lotus.com>
  Don Leslie <donald_leslie@lotus.com>

Copyright:
  Copyright (c) 1999-2001 The Apache Software Foundation.
   $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"/>

  <!-- GUMP: Allows external build systems to replace .jars Xalan 
       is dependent on as needed.  Most have separate name and 
       location properties to make it simpler to reset these values; 
       please provide feedback if this is useful. 
  -->
  <property name="xmlapis.jar.name" value="xml-apis.jar"/>
  <property name="xmlapis.jar" value="${bin.dir}/${xmlapis.jar.name}"/>
  <property name="parser.jar.name" value="xercesImpl.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}"/>

  <!-- GUMP: Currently 18-Apr-01 used only for xsltc.compile -->
  <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"/><!-- Why is this here? 10-Sep-01 -sc -->
  <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="regexp.jar.name" value="regexp.jar"/>
  <property name="regexp.jar" value="${bin.dir}/${regexp.jar.name}"/>

  <!-- Defines general variables used by the other targets; name controls output xalan.jar  -->
  <property name="version.VERSION" value="2"/>
  <property name="version.RELEASE" value="4"/>
  <property name="version.DEVELOPER" value="D"/><!-- Set this to 'D' if a developer release; blank "" if maintenance release -->
  <property name="version.MINOR" value="1"/><!-- EITHER the developer release number, or a maintenance release number -->
  <property name="version" value="${version.VERSION}_${version.RELEASE}_${version.DEVELOPER}${version.MINOR}"/><!-- GUMP: version # of dist file -->
  <property name="impl.version" value="${version.VERSION}.${version.RELEASE}.${version.DEVELOPER}${version.MINOR}"/><!-- Used in jar task for filtering MANIFEST.MF file -->
  <property name="name" value="xalan"/><!-- GUMP: base name of jar target's file -->
  <property name="year" value="2001"/>
  <property name="build.debug" value="on"/>

  <!-- Relative locations of source directories -->
  <property name="manifest.mf" value="./src/MANIFEST.MF"/>
  <property name="manifest.xsltc.mf" value="./src/manifest.xsltc"/>
  <property name="src.dir" value="./src"/>
  <property name="apachexml.reldir" value="org/apache/xml"/>
  <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="generated.xpathparser" value="${src.dir}/${xsltc.reldir}/compiler/XPathParser.java"/>
  <property name="generated.xpathlexer" value="${src.dir}/${xsltc.reldir}/compiler/XPathLexer.java"/>
  <property name="generated.xpathsym" value="${src.dir}/${xsltc.reldir}/compiler/sym.java"/>
  
  <!-- Build and distribution output areas -->
  <property name="build.dir" value="./build"/><!-- GUMP: root of all normal builds output -->
  <property name="build.xalan.jar" value="${build.dir}/${name}.jar"/><!-- GUMP: actual path/name of jar target output -->
  <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}"/><!-- GUMP: actual path/name of dist target .tar.gz/.zip-->
  <property name="dist.dir" value="${build.dir}/${dist.file}"/>
  
  <!-- Xalan-J1 compatability stuff.  -->
  <!-- TO BE REMOVED: 'skipcompat' flag allows you to optionally 
       skip 1.x compat layer; default to true, so we can  
       switch to Xerces 2.x which compat won't compile with -->
  <property name="skipcompat" value="true"/>
  <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"/>        

   <!-- xml-commons sources (for Javadoc) -->                                                                        
   <property name="xml-commons-srcs.tar.gz" value="${src.dir}/xml-commons-src.tar.gz"/>                                                                         
   <property name="xml-commons-srcs.tar" value="${build.dir}/xml-commons-src.tar"/>
 
  <!-- Documentation and samples information  -->
  <property name="Name-in-docs" value="Xalan-Java"/>
  <property name="version.file" value="${xalan.reldir}/processor/XSLProcessorVersion.java"/>
  <property name="samples.dir" value="./samples"/>
  <property name="build.samples.jar" value="${build.dir}/xalansamples.jar"/>
  <property name="build.servlet.jar" value="${build.dir}/xalanservlet.jar"/>
  <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"/>
  <property name="xdocs.DONE.file" value="${xdocs.dir}/sources/xalan/DONE"/>
  <property name="xdocs.XSLTCDONE.file" value="XSLTCDONE"/>
  <property name="xdocs.XSLTCDONE.location" value="${xdocs.dir}/sources/xalan/${xdocs.XSLTCDONE.file}"/>    
  <path id="docs.class.path">
    <pathelement location="${xmlapis.jar}" />
    <pathelement location="${parser.jar}" />
    <pathelement location="${bsf.jar}" />
    <pathelement location="${stylebook.jar}" />
    <pathelement location="${doclet.jar}" />
    <pathelement location="${build.xalan.jar}" />
    <pathelement path="${java.class.path}" />
  </path>
  <path id="samples.class.path">
    <pathelement location="${xmlapis.jar}" />
    <pathelement location="${parser.jar}" />
    <pathelement location="${build.xalan.jar}" />
    <pathelement path="${java.class.path}" />
  </path>
  <path id="compile.class.path">
    <!-- Ensure the selected parser.jar file is used to compile against -->
    <pathelement location="${build.classes}" />
    <pathelement location="${xmlapis.jar}" />
    <pathelement location="${parser.jar}" />
    <pathelement path="${java.class.path}" />
  </path>
  <path id="xslt.boot.class.path">
    <!-- Put this version of xalan in front of the jdk's for JDK 1.4+ -->
    <pathelement location="${build.classes}" />
    <pathelement path="${sun.boot.class.path}" />
  </path>

  <!-- =================================================================== -->
  <!-- Creates output build directories and doc prerequistes               -->
  <!-- =================================================================== -->
  <target name="prepare">
    <echo message="Project:${Name-in-docs} version:${version} build.xml $Revision$"/>
    <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="${test.relpath}" property="tests-available" />
    <available property="xerces.present" 
      classname="org.apache.xerces.parsers.SAXParser"/>
  </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}"/>

    <!-- 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.DONE.file} -param xsltcdone ${xdocs.XSLTCDONE.file}"/>
    </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                                          -->
  <!-- =================================================================== -->
  <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 XPath engine and some common utilities -->
    <javac srcdir="${src.dir}" 
           destdir="${build.classes}"
           debug="${build.debug}" >
      <!-- Also compile version info classes here -->
      <include name="${xalan.reldir}/Version.java" />
      <include name="${xalan.reldir}/processor/XSLProcessorVersion.java" />
      <include name="${apachexml.reldir}/**/*.java" />
      <!-- But exclude unused synthetic* files; should be obsoleted from CVS -->
      <exclude name="${apachexml.reldir}/utils/synthetic/**/*.java" />
      <include name="${xpath.reldir}/**/*.java" />
      <exclude name="**/CoroutineSAXFilterTest.java" 
        unless="xerces.present"	 />
      <exclude name="**/CoroutineSAXParser_Xerces.java" 
        unless="xerces.present"	 />
      <exclude name="**/IncrementalSAXSource_Xerces.java" 
        unless="xerces.present"	 />
      <classpath refid="compile.class.path" />
      <bootclasspath refid="xslt.boot.class.path" />
    </javac>
    <!-- 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="${build.debug}" >
      <classpath refid="compile.class.path" />
      <bootclasspath refid="xslt.boot.class.path" />
    </javac>
    <!-- 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="${build.debug}" >
      <classpath refid="compile.class.path" />
      <bootclasspath refid="xslt.boot.class.path" />
    </javac>
    <!-- Copy needed properties, resource, etc. files to be put into .jar file -->
    <copy todir="${build.classes}">
      <fileset dir="${src.dir}" includes="**/*.properties,**/*.res,META-INF/services/javax.xml.transform.*"/>
    </copy>  
  </target>

  <!-- =================================================================== -->
  <!-- Compile just the XSLTC compiler portion (to be integrated soon!) -->
  <!-- =================================================================== -->
  <path id="xsltc.class.path">
    <pathelement location="${xmlapis.jar}" />
    <pathelement location="${bcel.jar}" />
    <pathelement location="${jlex.jar}" />
    <pathelement location="${java_cup.jar}" />
    <pathelement location="${runtime.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>

  <!-- Attempt to determine dependency info for generated sources -->
  <target name="xsltc.prepare" depends="prepare" >
    <!-- The first step compiles the utils directory, which includes 
         a special wrapper for the xsltc.codegen / java_cup step next. -->
    <echo message="Compiling XSLTC utilities"/>
    <javac srcdir="${src.dir}" 
           destdir="${build.classes}"
           includes="${xsltc.reldir}/util/**/*.java"
           debug="${build.debug}">
      <classpath refid="xsltc.class.path" />
      <bootclasspath refid="xslt.boot.class.path" />
    </javac>
    <!-- These tricky uptodate statements hopefully determine if we 
         actually need to generate the java_cup and jlex files 
         in the two sub-targets below
    -->
    <!-- NOTE: The two uptodate tasks below do not yet work! 28-Nov-01 -sc -->
    <uptodate property="xsltc.java_cup.needed"  >
      <srcfiles dir= "${src.dir}/${xsltc.reldir}/compiler" includes="xpath.cup"/>
      <mapper type="merge" to="${generated.xpathparser}"/>
    </uptodate>
    <uptodate property="xsltc.jlex.needed"  >
      <srcfiles dir= "${src.dir}/${xsltc.reldir}/compiler" includes="xpath.lex"/>
      <mapper type="merge" to="${generated.xpathlexer}"/>
    </uptodate>
  </target>

  <!-- Generate code sources for xsltc if needed -->
  <target name="xsltc.java_cup" depends="xsltc.prepare" > <!-- if="xsltc.java_cup.needed" -->
    <!-- The second step generates sym.java and XPathParser.java. -->
    <echo message="java_cup preparsing"/>
    <java fork="yes" 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="${generated.xpathparser}"/>
    <move file="sym.java" tofile="${generated.xpathsym}"/>

  </target>
  <target name="xsltc.jlex" depends="xsltc.java_cup" ><!--if="xsltc.jlex.needed" -->
    <!-- The third step generates XPathLexer.java. The lexiographical analyser
    has to be generated after sym.java, so order is important. -->
    <echo message="JLex preparsing"/>
    <java fork="yes" 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="${generated.xpathlexer}"/>
  </target>

  <!-- 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="xsltc.java_cup,xsltc.jlex"
    description="Compile just the XSLTC classes" >
    <echo message="Compiling remaining XSLTC classes"/>
    <javac srcdir="${src.dir}" 
           destdir="${build.classes}"
           includes="${xsltc.reldir}/**/*.java"
           debug="${build.debug}">
      <classpath refid="xsltc.class.path" />
      <bootclasspath refid="xslt.boot.class.path" />
    </javac>
  </target>

  <target name="xsltc.unbundledjar" depends="xsltc.compile"
    description="Jar just the xsltc.jar file" >
    <!-- Copy over the manifest, with filtering (for version number) -->
    <filter token="impl.version" value="${impl.version}"/>
    <copy todir="${build.dir}" file="${manifest.xsltc.mf}" filtering="true"/>
    <jar jarfile="${build.xsltc.jar}" manifest="${build.dir}/manifest.xsltc" basedir="${build.classes}" >
      <patternset><!-- relative to jar/@basedir -->
        <include name="${xsltc.reldir}/**/*" />
      </patternset>
    </jar>
  </target>


  <target name="xsltc.jar" depends="xsltc.compile"
     description="Jar xsltc, BCEL,JLex,java_cup,runtime and jakarta regexp">
    <!-- make a tmp directory to work in -->
    <delete dir="${build.dir}/xsltctmp" includeEmptyDirs="true" quiet="true"/>
    <mkdir  dir="${build.dir}/xsltctmp" />

    <!-- create jar of xsltc classes in the tmp directory -->
    <jar jarfile="${build.dir}/xsltctmp/xsltc.jar"
        basedir="${build.dir}/classes"
        includes="org/apache/xalan/xsltc/**" />

    <!-- copy the xsltc 3rd party support jar files and licenses 
         to tmp dist dir 
    -->
    <copy todir="${build.dir}/xsltctmp"
      file="${bin.dir}/BCEL.jar"/>
    <copy todir="${build.dir}/xsltctmp"
      file="${bin.dir}/BCEL.LICENSE.txt"/>
    <copy todir="${build.dir}/xsltctmp"
      file="${bin.dir}/BCEL.README.txt"/>

    <copy todir="${build.dir}/xsltctmp"
      file="${bin.dir}/JLex.jar"/>
    <copy todir="${build.dir}/xsltctmp"
      file="${bin.dir}/JLex.LICENSE.txt"/>
    <copy todir="${build.dir}/xsltctmp"
      file="${bin.dir}/JLex.README.txt"/>

    <copy todir="${build.dir}/xsltctmp"
      file="${bin.dir}/java_cup.jar"/>
    <copy todir="${build.dir}/xsltctmp"
      file="${bin.dir}/java_cup.LICENSE.txt"/>
    <copy todir="${build.dir}/xsltctmp"
      file="${bin.dir}/java_cup.README.txt"/>

    <copy todir="${build.dir}/xsltctmp"
      file="${bin.dir}/runtime.jar"/>
    <copy todir="${build.dir}/xsltctmp"
      file="${bin.dir}/runtime.LICENSE.txt"/>
    <copy todir="${build.dir}/xsltctmp"
      file="${bin.dir}/runtime.README.txt"/>

    <copy todir="${build.dir}/xsltctmp"
      file="${bin.dir}/regexp.jar"/>
    <copy todir="${build.dir}/xsltctmp"
      file="${bin.dir}/regexp.LICENSE.txt"/>
    <copy todir="${build.dir}/xsltctmp"
      file="${bin.dir}/regexp.README.txt"/>

    <!-- unjar all jars -->
    <unjar src="${build.dir}/xsltctmp/xsltc.jar"
           dest="${build.dir}/xsltctmp" />
    <unjar src="${build.dir}/xsltctmp/BCEL.jar"
           dest="${build.dir}/xsltctmp" />
    <unjar src="${build.dir}/xsltctmp/JLex.jar"
           dest="${build.dir}/xsltctmp" />
    <unjar src="${build.dir}/xsltctmp/java_cup.jar"
           dest="${build.dir}/xsltctmp" />
    <unjar src="${build.dir}/xsltctmp/runtime.jar"
           dest="${build.dir}/xsltctmp" />
    <unjar src="${build.dir}/xsltctmp/regexp.jar"
           dest="${build.dir}/xsltctmp" />

    <!-- remove jar files -->
    <delete file="${build.dir}/xsltctmp/xsltc.jar" />
    <delete file="${build.dir}/xsltctmp/BCEL.jar" />
    <delete file="${build.dir}/xsltctmp/JLex.jar" />
    <delete file="${build.dir}/xsltctmp/java_cup.jar" />
    <delete file="${build.dir}/xsltctmp/runtime.jar" />

    <!-- remove old META-INF dir -->
    <delete dir="${build.dir}/xsltctmp/META-INF"
        includeEmptyDirs="true" quiet="true"/>

    <!-- create new META-INF dir w/ transformer factory default -->
    <!-- GTM: comment this out so that bundled xsltc.jar does not have
         service provider default until further notice 2/20/2002
    <mkdir dir="${build.dir}/xsltctmp/META-INF"/>
    <mkdir dir="${build.dir}/xsltctmp/META-INF/services"/>
    <copy todir="${build.dir}/xsltctmp/META-INF/services"
      file="${src.dir}/${xsltc.reldir}/javax.xml.transform.TransformerFactory"
    />
    -->

    <!-- Copy over the manifest, with filtering (for version number) -->
    <filter token="impl.version" value="${impl.version}"/>
    <copy todir="${build.dir}" file="${manifest.xsltc.mf}" filtering="true"/>
    
    <!-- make bundled jar named xsltc.jar -->
    <jar jarfile="${build.dir}/xsltc.jar" manifest="${build.dir}/manifest.xsltc"
         basedir="${build.dir}/xsltctmp" />

    <!-- clean up tmp directory -->
    <delete dir="${build.dir}/xsltctmp" includeEmptyDirs="true" quiet="true"/>
  </target>
  
  <!-- =================================================================== -->
  <!-- Creates the xalan JAR                                               -->
  <!-- =================================================================== -->
  <target name="jar" depends="compile"
    description="Jar up xalan.jar, plus the ${xmlapis.jar.name}" >
    <!-- Copy over the manifest, with filtering (for version number) -->
    <filter token="impl.version" value="${impl.version}"/>
    <copy todir="${build.dir}" file="${manifest.mf}" filtering="true"/>
    <jar jarfile="${build.xalan.jar}" manifest="${build.dir}/MANIFEST.MF" basedir="${build.classes}" >
      <patternset><!-- relative to jar/@basedir -->
        <exclude name="${xsltc.reldir}/**/*" />
      </patternset>
    </jar>
  </target>
  
  <!-- =================================================================== -->
  <!-- Default all target simply Creates the xalan JAR                     -->
  <!-- =================================================================== -->
  <target name="all" depends="jar"><!-- 'Standardizing build.xml files' <bloritsch@apache.org> -->
    <echo message="Redirect to jar target; please provide input on desired functionality of this target"/>
  </target>
  
  <!-- =================================================================== -->
  <!-- Creates the Xalan-J1 compatability JAR: being removed               -->
  <!-- =================================================================== -->
  <target name="compat.jar" depends="jar"
    description="UNSUPPORTED:Compile and jar Xalan-J 1.x backwards compat classes" 
    unless="skipcompat" >
    <echo message="UNSUPPORTED:Compile and jar just the Xalan-J 1 compability API"/>
    <mkdir dir="${build.compat.classes}"/>
    <javac srcdir="${compat.src.dir}" 
           destdir="${build.compat.classes}"
           includes="**/*.java"
           debug="${build.debug}"
           bootclasspathref="xslt.boot.class.path" >
      <classpath refid="docs.class.path" />
    </javac>           
    <copy todir="${build.compat.classes}">
          <fileset dir="${compat.src.dir}" includes="**/*.properties,**/*.res"/>
    </copy>  
    <jar jarfile="${build.compat.jar}" manifest="${manifest.mf}" basedir="${build.compat.classes}"/>
  </target>
  
  <!-- =================================================================== -->
  <!-- Creates the Xalan-J1 compatability javadoc: being removed           -->
  <!-- =================================================================== -->
  <target name="compat.javadocs" depends="jar"
    description="UNSUPPORTED:Build javadocs for Xalan-J 1.x backwards compat classes" 
    unless="skipcompat" >
    <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="${Name-in-docs} 1 Compatability" 
         doctitle="${Name-in-docs} 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" 
           destdir="${build.samples}"  excludes="${exclude}"
           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" >
      <classpath refid="samples.class.path" />
    </javac>           
    <javac srcdir="${samples.dir}/UseStylesheetPI"   
           destdir="${build.samples}"  excludes="${exclude}"
           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" >
      <classpath refid="samples.class.path" />
    </javac>           
    <javac srcdir="${samples.dir}/UseStylesheetParam" 
           destdir="${build.samples}"  excludes="${exclude}"
           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" >
      <classpath refid="samples.class.path" />
    </javac>           
    <javac srcdir="${samples.dir}/SAX2SAX"  
           destdir="${build.samples}"  excludes="${exclude}"
           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" >
      <classpath refid="samples.class.path" />
    </javac>           
    <javac srcdir="${samples.dir}/DOM2DOM"  
           destdir="${build.samples}"  excludes="${exclude}"
           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" >
      <classpath refid="samples.class.path" />
    </javac>           
    <javac srcdir="${samples.dir}/Pipe"  
           destdir="${build.samples}"  excludes="${exclude}"
           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" >
      <classpath refid="samples.class.path" />
    </javac>           
    <javac srcdir="${samples.dir}/UseXMLFilters"  
           destdir="${build.samples}"  excludes="${exclude}"
           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" >
      <classpath refid="samples.class.path" />
    </javac>           
    <javac srcdir="${samples.dir}/Trace"   
           destdir="${build.samples}"  excludes="${exclude}"
           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" >
      <classpath refid="samples.class.path" />
    </javac>           
    <javac srcdir="${samples.dir}/ApplyXPath"  
           destdir="${build.samples}" excludes="${exclude}" 
           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" >
      <classpath refid="samples.class.path" />
    </javac>           
    <javac srcdir="${samples.dir}/trax"  
           destdir="${build.samples}" excludes="${exclude}" 
           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" >
      <classpath refid="samples.class.path" />
    </javac>           
    <javac srcdir="${samples.dir}/extensions"  
           destdir="${build.samples}" excludes="${exclude}" 
           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" >
      <classpath refid="samples.class.path" />
    </javac>           
    <javac srcdir="${samples.dir}/Validate"  
           destdir="${build.samples}" excludes="${exclude}" 
           debug="${build.debug}" bootclasspathref="xslt.boot.class.path" >
      <classpath refid="samples.class.path" />
    </javac>           
    <jar jarfile="${build.samples.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"
            destdir="${build.samples}"
            debug="${build.debug}"
            bootclasspathref="xslt.boot.class.path" >
       <classpath refid="samples.class.path" />
     </javac>           
      <copy todir="${build.samples}/servlet">
        <fileset dir="${samples.dir}/servlet" 
          includes="media.properties,default.xsl,default2.xsl"/>
      </copy>  		         
    <jar jarfile="${build.servlet.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="${build.debug}"
           bootclasspathref="xslt.boot.class.path" />
  </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 and xml-commons sources" >
    <echo message="javadocs is human-usable target with dependencies"/>  
  </target>

  <target name="autojavadocs">
    <echo message="autojavadocs is for automated build process, without dependencies"/>
    
      <!-- Expand xml-commons sources (JAXP 1.1, DOM 2, and SAX 2) into source tree for 
           inclusion in the Javadoc. -->                                            
     <gunzip src="${xml-commons-srcs.tar.gz}" dest="${build.dir}" />                                                                         
     <untar src="${xml-commons-srcs.tar}" dest="${src.dir}" /><!-- Note this is into the src area.-->                                                                         
     <delete file="${xml-commons-srcs.tar}"/>
      
    <!-- 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-in-docs} 2" 
         doctitle="${Name-in-docs} 2"
         bottom="Copyright &#169; ${year} Apache XML Project. All Rights Reserved.">
          <classpath refid="docs.class.path" />
          <doclet name="xalanjdoc.Standard" path="${doclet.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="Document Table Model (DTM)" packages="org.apache.xml.dtm*"/>          
          <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>

  <!-- =================================================================== -->
  <!-- Various targets to clean the build tree                             -->
  <!-- =================================================================== -->
  <target name="distclean" depends="clean"
    description="Clean everything, including dist/jar/docs/xsltc.*" >
    <delete dir="${dist.dir}"/>
  </target>

  <target name="clean" depends="xsltc.clean"
    description="Clean the ${build.dir} tree and doc outputs" >
    <delete dir="${build.dir}"/>
    <delete dir="${site.root}"/>
    <delete>
      <fileset dir="${xdocs.style}" excludes="${xalanonly-styledocs}"/>
    </delete>
    <delete file="${xdocs.DONE.file}"/>
    <delete file="${xdocs.XSLTCDONE.location}"/>
    <!-- Also delete files expanded from ${xml-commons-srcs.tar.gz}-->
    <delete dir="${src.dir}/javax" includeEmptyDirs="true" quiet="true"/>
    <delete dir="${src.dir}/org/xml" includeEmptyDirs="true" quiet="true"/>
    <delete dir="${src.dir}/org/w3c" includeEmptyDirs="true" quiet="true"/>
  </target>
 
  <target name="xsltc.clean"
    description="Clean miscellaneous generated sources from xsltc.compile" >
    <delete file="${generated.xpathparser}" />
    <delete file="${generated.xpathsym}" />
    <delete file="${generated.xpathlexer}" />
  </target>

  <!-- =================================================================== -->
  <!-- Install/Uninstall targets - not currently applicable                -->
  <!-- =================================================================== -->
  <target name="install"><!-- 'Standardizing build.xml files' <bloritsch@apache.org> -->
    <echo message="install target currently not supported in ${Name-in-docs}; try jar or dist instead"/>
  </target>
  <target name="uninstall"><!-- 'Standardizing build.xml files' <bloritsch@apache.org> -->
    <echo message="uninstall target currently not supported in ${Name-in-docs}; try distclean instead"/>
  </target>

  <!-- =================================================================== -->
  <!-- Creates the distribution                                            -->
  <!-- =================================================================== -->
  <target name="dist" depends="jar,docs,javadocs,samples,servlet,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}/xdocs"/>
    <mkdir dir="${dist.dir}/docs"/>
    <mkdir dir="${dist.dir}/docs/apidocs"/>
    <mkdir dir="${dist.dir}/samples"/>
        
    <!-- Copy bin directory, which includes preexisting checked-in .jar files -->
    <copy todir="${dist.dir}/bin">
      <!-- But skip copying old xerces.jar, which will be removed soon -->
      <fileset dir="${bin.dir}" excludes="xerces.jar" />
    </copy>  

    <!-- Copy sources and source documentation -->
    <copy todir="${dist.dir}/src">
      <fileset dir="${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>  
    <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 product .jars into the bin directory 
         of the distro, note that changes to what .jars we ship 
         must also be duplicated in the appropriate patternsets 
         below that actually define the contents of our two 
         *-bin.zip/tar.gz and *-src.zip/tar.gz files.
    -->
    <copy file="${build.xalan.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,xsltc_todo.xml,todo.xsl,commits.xml"/>
    </copy>
          
    <!-- Build separate -src and -bin distros for both .zip and .tar.gz -->
    <!-- Explicitly list xercesImpl.jar in patternsets since we 
         always want Xerces in distros, immaterial of parser 
         used to compile (at least for official builds) -->
    <patternset id="bin-distro" >
      <include name="${dist.file}/readme.html"/>
      <include name="${dist.file}/License"/>
      <include name="${dist.file}/KEYS"/>
      <include name="${dist.file}/bin/${name}.jar"/>
      <include name="${dist.file}/bin/${xmlapis.jar.name}"/>
      <include name="${dist.file}/bin/xsltc.jar"/>
      <include name="${dist.file}/bin/xercesImpl.jar"/>
      <include name="${dist.file}/bin/${bsf.jar.name}"/>
      <include name="${dist.file}/bin/xalansamples.jar"/>
      <include name="${dist.file}/bin/xalanservlet.jar"/>
      <include name="${dist.file}/samples/"/>
      <include name="${dist.file}/docs/"/>
    </patternset>
    <patternset id="src-distro" >
      <include name="${dist.file}/*"/>
      <include name="${dist.file}/bin/ant*"/>
      <include name="${dist.file}/bin/xercesImpl.jar"/>
      <include name="${dist.file}/bin/${xmlapis.jar.name}"/>
      <include name="${dist.file}/bin/${bsf.jar.name}"/>
      <include name="${dist.file}/bin/${stylebook.jar.name}"/>
      <include name="${dist.file}/bin/${doclet.jar.name}"/>
      <include name="${dist.file}/samples/"/>
      <include name="${dist.file}/src/"/>
      <include name="${dist.file}/xdocs/"/>
    </patternset>
    <!-- For convenience, list the assorted XSLTC engine dependency
         .jar files separately, since they go in both -bin and -src.
    -->
    <patternset id="xsltc-deps-jars" >
      <include name="${dist.file}/bin/${bcel.jar.name}"/>
      <include name="${dist.file}/bin/${java_cup.jar.name}"/>
      <include name="${dist.file}/bin/${jlex.jar.name}"/>
      <include name="${dist.file}/bin/${runtime.jar.name}"/>
      <include name="${dist.file}/bin/${regexp.jar.name}"/>
    </patternset>

    <tar tarfile="${build.dir}/${dist.file}-bin.tar" >
      <tarfileset dir="${build.dir}">
        <patternset refid="bin-distro"/>
        <patternset refid="xsltc-deps-jars"/>
      </tarfileset>
    </tar>
    <gzip src="${build.dir}/${dist.file}-bin.tar" zipfile="${build.dir}/${dist.file}-bin.tar.gz"/>
    <delete file="${build.dir}/${dist.file}-bin.tar" />

    <tar tarfile="${build.dir}/${dist.file}-src.tar" >
      <tarfileset dir="${build.dir}">
        <patternset refid="src-distro"/>
        <patternset refid="xsltc-deps-jars"/>
      </tarfileset>
    </tar>
    <gzip src="${build.dir}/${dist.file}-src.tar" zipfile="${build.dir}/${dist.file}-src.tar.gz"/>
    <delete file="${build.dir}/${dist.file}-src.tar" />

    <zip zipfile="${build.dir}/${dist.file}-bin.zip" >
      <fileset dir="${build.dir}">
        <patternset refid="bin-distro"/>
        <patternset refid="xsltc-deps-jars"/>
      </fileset>
    </zip>
    <zip zipfile="${build.dir}/${dist.file}-src.zip" >
      <fileset dir="${build.dir}">
        <patternset refid="src-distro"/>
        <patternset refid="xsltc-deps-jars"/>
      </fileset>
    </zip>
  </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}/design"/>
    <java fork="yes" 
          classname="${doc.generator}" 
          classpathref="docs.class.path" >
       <arg line="targetDirectory=${site.dir} ${site.book} ${xdocs.style}"/>
    </java>

    <!-- 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>      
  </target>
   
  <!-- =================================================================== -->
  <!-- Compiles and runs mini/smoketest from xml-xalan\test, if present    -->
  <!-- =================================================================== -->
  <property name="test.relpath" value="../test"/>

  <target name="minitest" depends="prepare,minitest-run,tests-not-available" 
    description="Run the Minitest from xml-xalan/test" >
    <!-- This target simply asks the minitest-run worker target to 
         actually have the Minitest run (by the test/build.xml file);
         we then also call the tests-not-available target in case 
         the user never checked out the tests.
    -->
  </target>
  <target name="minitest-run" if="tests-available" depends="jar" >
    <echo message=" [minitest] Calling ${test.relpath}/build.xml to run the Minitest" />
    <ant dir="${test.relpath}" antfile="build.xml" target="minitest.gump" >
    </ant>
  </target>

  <target name="smoketest" depends="prepare,smoketest-run,tests-not-available" 
    description="Run Smoketests (Minitest, conf, harness) from xml-xalan/test" >
  </target>
  <target name="smoketest-run" if="tests-available" depends="jar" >
    <echo message=" [minitest] Calling ${test.relpath}/build.xml to run the Smoketest" />
    <ant dir="${test.relpath}" antfile="build.xml" target="smoketest.dev" >
    </ant>
  </target>

  <target name="check" depends="smoketest"><!-- 'Standardizing build.xml files' <bloritsch@apache.org> -->
    <echo message="Redirect to smoketest target"/>
  </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 in ${test.relpath}" />
    <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>

  <!-- =================================================================== -->
  <!-- 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="printerdocs" depends="prepare.docs">
    <echo message="NOTICE: requires fop.jar and xml.jar 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-in-docs}      
                 -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>

 
  <!-- =================================================================== -->
  <!-- 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>	 
    <copy todir="${build.docs}/xsltc" 
	file="${xdocs.dir}/sources/xsltc/README.xslt" />
    <copy todir="${build.docs}/xsltc" 
	file="${xdocs.dir}/sources/xsltc/README.xsltc" />
 </target>
 
   <!-- pack all doc for transfer to website -->
 <target name="pack.docs">
    <!--tar tarfile="./build/xalan-j-docs.tar" basedir="./xml-site/target/xalan-j" includes="**"/>
    <gzip src="./build/xalan-j-docs.tar" zipfile="./build/xalan-j-docs.tar.gz"/-->
    <zip zipfile="./build/xalan-j-docs.zip" basedir="./xml-site/target/xalan-j" includes="**"/>
  </target>

 
</project>
