<?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_1_0"/>
  <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>
