blob: 27e810604ece33e0db210e38c0ad6dab3baa4084 [file] [log] [blame]
<?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-2003 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="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}"/>
<!-- We don't need to package JLex in the xalan.jar, therefore the JLex license and readme files are not required -->
<!-- <property name="xsltc.deps.license" value="BCEL.LICENSE.txt,BCEL.README.txt,JLex.LICENSE.txt,JLex.README.txt,java_cup.LICENSE.txt,java_cup.README.txt,runtime.LICENSE.txt,runtime.README.txt,regexp.LICENSE.txt,regexp.README.txt"/> -->
<property name="xsltc.deps.license" value="BCEL.LICENSE.txt,BCEL.README.txt,java_cup.LICENSE.txt,java_cup.README.txt,runtime.LICENSE.txt,runtime.README.txt,regexp.LICENSE.txt,regexp.README.txt"/>
<!-- Defines general variables used by the other targets; name controls output xalan.jar -->
<property name="version.VERSION" value="2"/>
<property name="version.RELEASE" value="5"/>
<property name="version.DEVELOPER" value=""/><!-- 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="2003"/>
<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="XSLTInfo.props" value="./src/org/apache/xalan/res/XSLTInfo.properties"/>
<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="domxpath.reldir" value="org/w3c/dom/xpath"/>
<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.xalan-unbundled.jar" value="${build.dir}/${name}-unbundled.jar"/>
<property name="build.xalan-interpretive.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.servlet" value="${build.samples}/servlet"/>
<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}"/>
<!-- 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.war" value="${build.dir}/xalanservlet.war"/>
<property name="build.xsltc.applet.jar" value="${build.dir}/xsltcapplet.jar"/>
<property name="build.xsltc.brazil.jar" value="${build.dir}/xsltcbrazil.jar"/>
<property name="build.xsltc.ejb.jar" value="${build.dir}/xsltcejb.jar"/>
<property name="build.xsltc.servlet.jar"
value="${build.dir}/xsltcservlet.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="${bcel.jar}" />
<pathelement location="${runtime.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+ -->
<!-- Set build.boot.class.path to a JDK 1.1.x classes.zip file to check
compatibility with 1.1.x. If you omit this property, compatability
with 1.1.x will not be checked even though javac specifies a target of 1.1 -->
<pathelement location="${build.classes}" />
<pathelement path="${build.boot.class.path}" />
<pathelement path="${sun.boot.class.path}" />
</path>
<path id="compile.source.path">
<dirset dir="${src.dir}" includes="/org/apache/**" />
</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,prepare.docs.nojardepends"/>
<target name="prepare.docs.nojardepends">
<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 the DTM implementation and xml utilities -->
<!-- =================================================================== -->
<target name="xml.compile" depends="prepare">
<echo message="Compiling DTM implementation and utilities" />
<javac srcdir="${src.dir}"
destdir="${build.classes}"
debug="${build.debug}"
target="1.1" >
<include name="${apachexml.reldir}/**/*.java" />
<!-- But exclude unused synthetic* files; should be obsoleted from CVS -->
<exclude name="${apachexml.reldir}/utils/synthetic/**/*.java" />
<exclude name="**/IncrementalSAXSource_Xerces.java"
unless="xerces.present" />
<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="${apachexml.reldir}/**/*.properties"/>
</copy>
</target>
<!-- =================================================================== -->
<!-- Compile the Xalan interpreter source tree -->
<!-- =================================================================== -->
<target name="xalan-interpretive.compile" depends="xml.compile"
description="Compile the Xalan interpretive classes (skips XSLTC)" >
<echo message="Compiling Xalan interpretive classes" />
<javac srcdir="${src.dir}"
destdir="${build.classes}"
debug="${build.debug}"
target="1.1" >
<include name="${xpath.reldir}/**/*.java" />
<include name="${domxpath.reldir}/**/*.java" />
<include name="${xalan.reldir}/**/*.java" />
<exclude name="${xsltc.reldir}/**/*.java" />
<classpath refid="compile.class.path" />
<bootclasspath refid="xslt.boot.class.path" />
<sourcepath refid="compile.source.path" />
</javac>
<!-- Copy needed properties, resource, etc. files to be put into .jar file -->
<copy todir="${build.classes}">
<fileset dir="${src.dir}" includes="**/*.properties,META-INF/services/*" excludes="**/XSLTInfo.properties"/>
</copy>
<filter token="impl.version" value="${impl.version}"/>
<copy todir="${build.classes}/org/apache/xalan/res" file="${XSLTInfo.props}" filtering="true"/>
</target>
<!-- Compile all java sources (Xalan interpretive and XSLTC) -->
<target name="compile" depends="xalan-interpretive.compile,xsltc.compile"
description="Compile all java source files (Xalan interpretive + XSLTC)" >
</target>
<!-- =================================================================== -->
<!-- Compile just the XSLTC compiler portion -->
<!-- =================================================================== -->
<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}" />
<!-- 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
-->
<uptodate property="xsltc.java_cup.not_needed" targetfile="${generated.xpathparser}" >
<srcfiles dir="${src.dir}/${xsltc.reldir}/compiler" includes="xpath.cup" />
</uptodate>
<uptodate property="xsltc.jlex.not_needed" targetfile="${generated.xpathlexer}" >
<srcfiles dir="${src.dir}/${xsltc.reldir}/compiler" includes="xpath.lex" />
</uptodate>
<!-- Determine whether the support jars are already expanded -->
<available file="${build.classes}/org/apache/bcel" type="dir" property="xsltc.bcel_jar.not_needed" />
<available file="${build.classes}/JLex" type="dir" property="xsltc.jlex_jar.not_needed" />
<available file="${build.classes}/java_cup/Main.class" type="file" property="xsltc.java_cup_jar.not_needed" />
<available file="${build.classes}/java_cup/runtime" type="dir" property="xsltc.runtime_jar.not_needed" />
<available file="${build.classes}/org/apache/regexp" type="dir" property="xsltc.regexp_jar.not_needed" />
</target>
<!-- Generate the XPath parser sources for xsltc if needed -->
<target name="xsltc.java_cup" depends="xsltc.prepare" unless="xsltc.java_cup.not_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>
<!-- Generate the XPath lexer sources for xsltc if needed -->
<target name="xsltc.jlex" depends="xsltc.java_cup" unless="xsltc.jlex.not_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>
<!-- Compile the main XSLTC classes -->
<target name="xsltc.compile" depends="xsltc.java_cup,xsltc.jlex,xml.compile"
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>
<!-- Compile just the XSLTC classes w/o JLex, JCup recompilation -->
<target name="xsltc.fcompile" depends="xml.compile"
description="Compile just the XSLTC classes w/o JLex, JCup recompilation" >
<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>
<!-- Jar up the XSLTC classes w/o the support jars -->
<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="org/apache/xml/**" />
<include name="${xsltc.reldir}/**/*" />
</patternset>
</jar>
</target>
<!-- Copy license and readme files for XSLTC support jars -->
<target name="xsltc.copy-licenses" depends="xsltc.prepare">
<echo message="Copying license files for XSLTC support jars"/>
<copy todir="${build.classes}">
<fileset dir="${bin.dir}" casesensitive="no" includes="${xsltc.deps.license}"/>
</copy>
</target>
<!-- A parametrized target which is used to copy and expand a XSLTC support jar -->
<target name="xsltc.copy-deps-jar" unless="${param_unless}">
<!-- copy the jar file to the build/classes directory -->
<copy todir="${build.classes}" file="${bin.dir}/${param_jar_name}"/>
<!-- unjar the jar file -->
<unjar src="${build.classes}/${param_jar_name}" dest="${build.classes}" />
<!-- remove the jar file -->
<delete file="${build.classes}/${param_jar_name}" />
</target>
<!-- Copy and expand the XSLTC support jars if needed -->
<target name="xsltc.copy-deps-jars" depends="xsltc.copy-licenses">
<echo message="Copying XSLTC support jars" />
<!-- copy the 3rd party support jar files -->
<antcall target="xsltc.copy-deps-jar">
<param name="param_unless" value="xsltc.bcel_jar.not_needed" />
<param name="param_jar_name" value="${bcel.jar.name}" />
</antcall>
<!-- We don't need to package the JLex or java_cup jars in the xalan.jar.
These are only required for building XSLTC, not for using XSLTC.
<antcall target="xsltc.copy-deps-jar">
<param name="param_unless" value="xsltc.jlex_jar.not_needed" />
<param name="param_jar_name" value="${jlex.jar.name}" />
</antcall>
<antcall target="xsltc.copy-deps-jar">
<param name="param_unless" value="xsltc.java_cup_jar.not_needed" />
<param name="param_jar_name" value="${java_cup.jar.name}" />
</antcall>
-->
<antcall target="xsltc.copy-deps-jar">
<param name="param_unless" value="xsltc.runtime_jar.not_needed" />
<param name="param_jar_name" value="${runtime.jar.name}" />
</antcall>
<antcall target="xsltc.copy-deps-jar">
<param name="param_unless" value="xsltc.regexp_jar.not_needed" />
<param name="param_jar_name" value="${regexp.jar.name}" />
</antcall>
<!-- remove the old META-INF/MANIFEST.MF file -->
<delete file="${build.classes}/META-INF/MANIFEST.MF" quiet="true"/>
</target>
<!-- =================================================================== -->
<!-- Creates the xsltc jar including all support jars -->
<!-- =================================================================== -->
<target name="xsltc.jar" depends="xsltc.compile,xsltc.copy-deps-jars"
description="Jar xsltc,xml,BCEL,JLex,java_cup,runtime and jakarta regexp">
<!-- 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" >
<fileset dir="${build.classes}" includes="org/apache/xalan/xsltc/**" />
<fileset dir="${build.classes}" includes="org/apache/xml/**" />
<fileset dir="${build.classes}" includes="org/apache/bcel/**" />
<fileset dir="${build.classes}" includes="JLex/**" />
<fileset dir="${build.classes}" includes="java_cup/**" />
<fileset dir="${build.classes}" includes="org/apache/regexp/**" />
<fileset dir="${build.classes}" includes="${xsltc.deps.license}" />
</jar>
</target>
<!-- =================================================================== -->
<!-- Creates the xalan interpretive jar -->
<!-- =================================================================== -->
<target name="xalan-interpretive.jar" depends="xalan-interpretive.compile"
description="Jar up everything in Xalan interpretive (without XSLTC)" >
<!-- 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-interpretive.jar}" manifest="${build.dir}/MANIFEST.MF" basedir="${build.classes}" >
<patternset><!-- relative to jar/@basedir -->
<include name="${apachexml.reldir}/**/*" />
<include name="${xpath.reldir}/**/*" />
<include name="${xalan.reldir}/**/*" />
<include name="META-INF/services/*" />
<exclude name="${xsltc.reldir}/**/*" />
</patternset>
</jar>
</target>
<!-- =================================================================== -->
<!-- Creates the xalan unbundled jar (Xalan interpretive + XSLTC - -->
<!-- support jars -->
<!-- =================================================================== -->
<target name="unbundledjar" depends="xalan-interpretive.compile,xsltc.compile"
description="Jar up Xalan and XSLTC, without the XSLTC dependencies" >
<filter token="impl.version" value="${impl.version}"/>
<copy todir="${build.dir}" file="${manifest.mf}" filtering="true"/>
<jar jarfile="${build.xalan-unbundled.jar}" manifest="${build.dir}/MANIFEST.MF" basedir="${build.classes}" >
<patternset>
<include name="${apachexml.reldir}/**/*" />
<include name="${xpath.reldir}/**/*" />
<include name="${xalan.reldir}/**/*" />
<include name="META-INF/services/*" />
</patternset>
</jar>
</target>
<!-- =================================================================== -->
<!-- Creates one big xalan jar (Xalan interpretive + XSLTC + support jars) -->
<!-- =================================================================== -->
<target name="jar" depends="xalan-interpretive.compile,xsltc.compile,xsltc.copy-deps-jars"
description="Jar up everything (Xalan, XSLTC and XSLTC dependencies)" >
<!-- 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"/>
<!-- make bundled jar named xalan.jar -->
<jar jarfile="${build.xalan.jar}" manifest="${build.dir}/MANIFEST.MF"
basedir="${build.classes}" />
</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>
<!-- =================================================================== -->
<!-- Compiles the samples (servlet excluded) and jars the class files -->
<!-- =================================================================== -->
<target name="samples" depends="jar,samples.nojardepends,xsltc.samples"/>
<target name="samples.nojardepends" depends="xsltc.samples.nojardepends"
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}/ApplyXPathDOM"
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 all samples that require extra standard components in -->
<!-- order to compile. -->
<!-- =================================================================== -->
<target name="extra.std.samples"
depends="servlet,xsltc.applet,xsltc.ejb,xsltc.servlet"/>
<target name="extra.std.samples.nojardepends"
depends="servlet.nojardepends,xsltc.applet.nojardepends,
xsltc.ejb.nojardepends,xsltc.servlet.nojardepends"/>
<!-- =================================================================== -->
<!-- Compiles all samples that require extra non-standard components in -->
<!-- order to compile. -->
<!-- =================================================================== -->
<target name="extra.nonstd.samples" depends="xsltc.brazil"/>
<target name="extra.nonstd.samples.nojardepends" depends="xsltc.brazil.nojardepends"/>
<!-- =================================================================== -->
<!-- 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,servlet.nojardepends"/>
<target name="servlet.nojardepends"
description="Compile and jar the servlet samples in xalanservlet.war" >
<echo message="To compile the sample servlets, javax.servlet and javax.servlet.http must be on the classpath"/>
<mkdir dir="${build.servlet}"/>
<mkdir dir="${build.servlet}/WEB-INF/classes/servlet"/>
<mkdir dir="${build.servlet}/WEB-INF/lib"/>
<javac srcdir="${samples.dir}/servlet"
destdir="${build.servlet}/WEB-INF/classes"
debug="${build.debug}"
bootclasspathref="xslt.boot.class.path" >
<classpath refid="samples.class.path" />
</javac>
<copy todir="${build.servlet}/WEB-INF/classes/servlet">
<fileset dir="${samples.dir}/servlet" includes="media.properties"/>
</copy>
<copy todir="${build.servlet}/WEB-INF">
<fileset dir="${samples.dir}/servlet" includes="web.xml"/>
</copy>
<copy todir="${build.servlet}">
<fileset dir="${samples.dir}/servlet"
includes="birds.xml, birds.xsl, booklist1.xsl,
booklist2.xsl, catalog.xml, fooparam.xml, fooparam.xsl, jspSample.jsp"/>
</copy>
<copy todir="${build.servlet}/WEB-INF/lib">
<fileset dir="${bin.dir}" includes="${parser.jar.name}, ${xmlapis.jar.name}"/>
</copy>
<copy file="${build.xalan.jar}" todir="${build.servlet}/WEB-INF/lib" />
<jar jarfile="${build.servlet.war}"
basedir="${build.servlet}"
includes="**"/>
</target>
<!-- =================================================================== -->
<!-- Compiles (does not jar) the translet samples. -->
<!-- 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, CompiledEJB and -->
<!-- CompiledServlet. -->
<!-- =================================================================== -->
<target name="xsltc.samples" depends="jar,xsltc.samples.nojardepends"/>
<target name="xsltc.samples.nojardepends">
<mkdir dir="${build.samples}"/>
<javac srcdir="${samples.dir}/translets"
classpath="${java.class.path}:${build.xalan.jar}"
destdir="${build.samples}" excludes="${exclude}"
debug="${build.debug}" bootclasspathref="xslt.boot.class.path" />
<javac srcdir="${samples.dir}/CompiledJAXP"
destdir="${build.samples}" excludes="${exclude}"
debug="${build.debug}" bootclasspathref="xslt.boot.class.path" />
</target>
<!-- =================================================================== -->
<!-- Compiles the XSLTC applet example and jars the class files. -->
<!-- =================================================================== -->
<target name="xsltc.applet" depends="jar,xsltc.applet.nojardepends"/>
<target name="xsltc.applet.nojardepends">
<mkdir dir="${build.samples}/CompiledApplet"/>
<javac srcdir="${samples.dir}/CompiledApplet"
destdir="${build.samples}/CompiledApplet" excludes="${exclude}"
debug="${build.debug}" bootclasspathref="xslt.boot.class.path" />
<jar jarfile="${build.xsltc.applet.jar}"
basedir="${build.samples}/CompiledApplet"
includes="*.class"/>
</target>
<!-- =================================================================== -->
<!-- Compiles the XSLTC brazil example and jars the class files. -->
<!-- =================================================================== -->
<target name="xsltc.brazil" depends="jar,xsltc.brazil.nojardepends"/>
<target name="xsltc.brazil.nojardepends">
<mkdir dir="${build.samples}/CompiledBrazil"/>
<javac srcdir="${samples.dir}/CompiledBrazil"
destdir="${build.samples}/CompiledBrazil" excludes="${exclude}"
debug="${build.debug}" bootclasspathref="xslt.boot.class.path" />
<jar jarfile="${build.xsltc.brazil.jar}"
basedir="${build.samples}/CompiledBrazil"
includes="*.class"/>
</target>
<!-- =================================================================== -->
<!-- Compiles the XSLTC EJB example and jars the class files. -->
<!-- ejb.jar must be on the classpath to compile this sample. -->
<!-- EJB 2.0 can be found at http://java.sun.com/products/ejb/docs.html -->
<!-- =================================================================== -->
<target name="xsltc.ejb" depends="jar,xsltc.ejb.nojardepends"/>
<target name="xsltc.ejb.nojardepends">
<mkdir dir="${build.samples}/CompiledEJB"/>
<javac srcdir="${samples.dir}/CompiledEJB"
destdir="${build.samples}/CompiledEJB" excludes="${exclude}"
debug="${build.debug}" bootclasspathref="xslt.boot.class.path" />
<jar jarfile="${build.xsltc.ejb.jar}"
basedir="${build.samples}/CompiledEJB"
includes="*.class"/>
</target>
<!-- =================================================================== -->
<!-- Compiles the XSLTC servlet example and jars the class files. -->
<!-- =================================================================== -->
<target name="xsltc.servlet" depends="jar,xsltc.servlet.nojardepends" />
<target name="xsltc.servlet.nojardepends">
<mkdir dir="${build.samples}/CompiledServlet"/>
<javac srcdir="${samples.dir}/CompiledServlet"
destdir="${build.samples}/CompiledServlet" excludes="${exclude}"
debug="${build.debug}" bootclasspathref="xslt.boot.class.path" />
<jar jarfile="${build.xsltc.servlet.jar}"
basedir="${build.samples}/CompiledServlet"
includes="*.class"/>
</target>
<!-- =================================================================== -->
<!-- Generate HTML docs -->
<!-- =================================================================== -->
<target name="docs" depends="jar,docs.nojardepends"/>
<target name="docs.nojardepends" depends="prepare.docs.nojardepends,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,javadocs.nojardepends"/>
<target name="javadocs.nojardepends" depends="prepare.docs.nojardepends,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} ${impl.version}"
doctitle="${Name-in-docs} ${impl.version}"
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>
<!-- remove the xml-commons sources -->
<delete dir="${src.dir}/javax" />
<delete includeEmptyDirs="true" quiet="true">
<fileset dir="${src.dir}/org/w3c">
<exclude name="dom/xpath/**"/>
</fileset>
</delete>
<delete dir="${src.dir}/org/xml" />
<delete dir="${src.dir}/org/apache/xmlcommons" />
<delete file="${src.dir}/manifest.commons" />
</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 includeEmptyDirs="true" quiet="true">
<fileset dir="${src.dir}/org/w3c">
<exclude name="dom/xpath/**"/>
</fileset>
</delete>
</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 a distribution that depends only on standard pieces -->
<!-- =================================================================== -->
<target name="dist" depends="build.std.dist,autodist"
description="Create a .zip/.tar.gz distribution module containing
all components without dependencies on non-standard
jars that are not part of the build system." >
<echo message="dist is human-useable target for distribution, with only standard dependencies"/>
</target>
<!-- =================================================================== -->
<!-- Creates a complete distribution in which the xalan.jar contains -->
<!-- the interpretive, compiled and the common packages -->
<!-- =================================================================== -->
<target name="fulldist" depends="build.nonstd.dist,autodist"
description="Create a .zip/.tar.gz distribution module containing
all components.">
<echo message="fulldist is human-useable target for distribution, with all dependencies"/>
</target>
<!-- =================================================================== -->
<!-- Creates a complete distribution with separate xalan.jar and -->
<!-- xsltc.jar. The common packages are contained in each jar. -->
<!-- =================================================================== -->
<target name="fulldist-separatejars" depends="build.nonstd-separatejars.dist,autodist"
description="Create a .zip/.tar.gz distribution module containing
all components.">
<echo message="fulldist is human-useable target for distribution, with all dependencies"/>
</target>
<target name="build.std.dist" depends="build.std.parts">
<property name="has.nonstd.parts" value="false"/>
</target>
<target name="build.nonstd.dist" depends="build.std.parts,build.nonstd.parts">
<property name="has.nonstd.parts" value="true"/>
</target>
<target name="build.nonstd-separatejars.dist" depends="build.std-separatejars.parts,
build.nonstd-separatejars.parts">
<property name="has.nonstd.parts" value="true"/>
</target>
<target name="build.std.parts"
depends="jar,docs,javadocs,samples,extra.std.samples,xsltc.docs"/>
<target name="build.std-separatejars.parts"
depends="xalan-interpretive.jar,xsltc.jar,
docs.nojardepends,javadocs.nojardepends,
samples.nojardepends,extra.std.samples.nojardepends,
xsltc.docs"/>
<target name="build.nonstd.parts" depends="extra.nonstd.samples"/>
<target name="build.nonstd-separatejars.parts" depends="extra.nonstd.samples.nojardepends"/>
<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.war" todir="${dist.dir}/bin"/>
<copy file="${build.dir}/xsltcapplet.jar" todir="${dist.dir}/bin"/>
<copy file="${build.dir}/xsltcbrazil.jar" todir="${dist.dir}/bin"
failonerror="${has.nonstd.parts}"/>
<copy file="${build.dir}/xsltcejb.jar" todir="${dist.dir}/bin"/>
<copy file="${build.dir}/xsltcservlet.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" />
<!-- only copy the xsltc.jar file if it has been built -->
<copy todir="${dist.dir}/bin">
<fileset dir="${build.dir}" includes="xsltc.jar"/>
</copy>
<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"/>
<!-- only pick up the xsltc.jar file if it has been built -->
<include name="${dist.file}/bin/xsltc.jar"/>
<include name="${dist.file}/bin/${xmlapis.jar.name}"/>
<include name="${dist.file}/bin/${bsf.jar.name}"/>
<include name="${dist.file}/bin/${parser.jar.name}"/>
<include name="${dist.file}/bin/xalansamples.jar"/>
<include name="${dist.file}/bin/xalanservlet.war"/>
<include name="${dist.file}/bin/xsltcapplet.jar"/>
<include name="${dist.file}/bin/xsltcbrazil.jar"/>
<include name="${dist.file}/bin/xsltcejb.jar"/>
<include name="${dist.file}/bin/xsltcservlet.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.jar"/>
<include name="${dist.file}/bin/${parser.jar.name}"/>
<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}/bin/*.LICENSE.txt"/>
<include name="${dist.file}/bin/*.README.txt"/>
<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"/> --> <!-- these jars are only needed in the src pkg -->
</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"/> --> <!-- these jars are only needed in the src pkg -->
</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.nojardepends"
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.nojardepends">
<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.nojardepends">
<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>