build_srcdist_xalan.xml (1,362 lines of code) (raw):

<?xml version="1.0" encoding="utf-8"?> <!-- * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. --> <!-- =================================================================== 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> This file has been written, to enable building XalanJ from XalanJ source distribution. This file is largely, a copy of the file build.xml provided by XalanJ xalan-java git repos. $Id$ ==================================================================== --> <project name="Xalan" default="jar" basedir="."> <property name="name" value="xalan"/> <property name="year" value="2023"/> <property name="build.debug" value="on"/> <property name="compiler.target" value="1.8"/> <property name="compiler.source" value="1.8"/> <property name="compiler.nowarn" value="on"/> <!-- Xalan Java version information --> <property name="version.VERSION" value="2"/> <property name="version.RELEASE" value="7"/> <property name="version.DEVELOPER" value=""/><!-- Set this to 'D' if a developer release; blank "" if maintenance release --> <property name="version.MINOR" value="3"/><!-- 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 --> <!-- Xerces Java version information --> <property name="parser.version.VERSION" value="2"/> <property name="parser.version.RELEASE" value="12"/> <property name="parser.version.MINOR" value="2"/> <!-- Xalan Java directories --> <!-- <property name="bin.dir" value="./bin"/> --> <property name="build.dir" value="./build"/> <property name="lib.dir" value="./lib"/> <property name="endorsed.dir" value="${lib.dir}/endorsed"/> <property name="samples.dir" value="./samples"/> <property name="src.dir" value="./src"/> <property name="tools.dir" value="./tools"/> <property name="xdocs.dir" value="./xdocs"/> <property name="apachexml.reldir" value="org/apache/xml"/> <property name="serializer.reldir" value="org/apache/xml/serializer"/> <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"/> <!-- Jars to run Xalan Java (Interpretive, Compiled, or both) --> <property name="xmlapis.jar.name" value="xml-apis.jar"/> <property name="xmlapis.jar" value="${endorsed.dir}/${xmlapis.jar.name}"/> <property name="parser.jar.name" value="xercesImpl.jar"/> <property name="parser.jar" value="${endorsed.dir}/${parser.jar.name}"/> <property name="bcel.jar.name" value="bcel-6.7.0.jar"/> <property name="bcel.jar" value="${lib.dir}/${bcel.jar.name}"/> <property name="runtime.jar.name" value="runtime.jar"/> <property name="runtime.jar" value="${lib.dir}/${runtime.jar.name}"/> <property name="regexp.jar.name" value="regexp.jar"/> <property name="regexp.jar" value="${lib.dir}/${regexp.jar.name}"/> <!-- Jars to build Xalan Java (Interpretive, Compiled, or both) or build the docs --> <property name="java_cup.jar.name" value="java_cup.jar"/> <property name="java_cup.jar" value="${tools.dir}/${java_cup.jar.name}"/> <property name="jlex.jar.name" value="JLex.jar"/> <property name="jlex.jar" value="${tools.dir}/${jlex.jar.name}"/> <property name="stylebook.jar.name" value="stylebook-1.0-b3_xalan-2.jar"/> <property name="stylebook.jar" value="${tools.dir}/${stylebook.jar.name}"/> <property name="doclet.jar.name" value="xalan2jdoc.jar"/> <property name="doclet.jar" value="${tools.dir}/${doclet.jar.name}"/> <property name="taglet.jar.name" value="xalan2jtaglet.jar"/> <property name="taglet.jar" value="${tools.dir}/${taglet.jar.name}"/> <!-- Jars to build Xalan Java samples --> <property name="servlet-api.jar.name" value="servlet-api-2.5.jar"/> <property name="servlet-api.jar" value="${lib.dir}/${servlet-api.jar.name}"/> <property name="javaee-api.jar.name" value="javaee-api-5.0-2.jar"/> <property name="javaee-api.jar" value="${lib.dir}/${javaee-api.jar.name}"/> <property name="brazil.jar.name" value="brazil-2.1.jar"/> <property name="brazil.jar" value="${lib.dir}/${brazil.jar.name}"/> <!-- Relative locations of source directories --> <property name="manifest.mf" value="./src/MANIFEST.MF"/> <property name="manifest.xsltc.mf" value="./src/manifest.xsltc"/> <property name="manifest.xalan-interpretive.mf" value="./src/manifest.xalan-interpretive"/> <property name="XSLTInfo.props" value="./src/org/apache/xalan/res/XSLTInfo.properties"/> <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.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.pkg" value="${name}-j_${version}"/><!-- GUMP: actual path/name of dist target .tar.gz/.zip--> <property name="dist.file" value="${dist.pkg}"/> <property name="dist.dir" value="${build.dir}/${dist.pkg}"/> <!-- xml-commons sources (for Javadoc) --> <property name="xml-commons-srcs.tar.gz" value="${src.dir}/xml-commons-external-1.3.02-src.tar.gz"/> <property name="xml-commons-srcs.tar" value="${build.dir}/xml-commons-external-1.3.02-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="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.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="xalan.apache.org.site.root" value="./xalan-apache-org-site"/> <property name="xalan.apache.org.site.dir" value="${xalan.apache.org.site.root}/target/xalan-apache-org"/> <property name="xalan.apache.org.site.book" value="${xdocs.dir}/sources/xalan-apache-org-site.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}"/> <!-- PROPERTIES TO COMPILE THE SERIALIZER ======================================= --> <property name="serializer.src.dir" value="./src"/> <property name="serializer.build.dir" value="./build"/> <property name="serializer.build.classes" value="${serializer.build.dir}/serializer"/> <!-- PROPERTIES TO MAKE THE SERIALIZER JAR ======================================= --> <property name="serializer.manifest.basename" value="MANIFEST.SERIALIZER"/> <property name="serializer.manifest" value="${serializer.src.dir}/${serializer.manifest.basename}"/> <property name="serializer.impl.version" value="${impl.version}"/> <property name="serializer.java.version" value="${java.version}"/> <property name="serializer.java.vendor" value="${java.vendor}"/> <property name="serializer.jar.name" value="serializer.jar"/> <property name="build.serializer.jar" value="${serializer.build.dir}/${serializer.jar.name}"/> <property name="lib.serializer.jar" value="./lib/${serializer.jar.name}"/> <!-- Class paths used in various targets --> <path id="docs.class.path"> <pathelement location="${xmlapis.jar}" /> <pathelement location="${parser.jar}" /> <pathelement location="${bcel.jar}" /> <pathelement location="${runtime.jar}" /> <pathelement location="${stylebook.jar}" /> <pathelement location="${doclet.jar}" /> <pathelement location="${taglet.jar}" /> <pathelement location="${build.serializer.jar}" /> <pathelement location="${build.xalan.jar}" /> <pathelement path="${java.class.path}" /> </path> <path id="samples.class.path"> <pathelement location="${xmlapis.jar}" /> <pathelement location="${build.serializer.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="${serializer.build.classes}" /> <pathelement location="${xmlapis.jar}" /> <pathelement location="${build.serializer.jar}" /> <pathelement location="${parser.jar}" /> <pathelement path="${java.class.path}" /> </path> <path id="xslt.boot.class.path"> <!-- Put this version of xalan in front of the jdk's for JDK 1.4+ --> <pathelement location="${xmlapis.jar}" /> <pathelement location="${build.serializer.jar}" /> <pathelement location="${parser.jar}" /> <pathelement path="${sun.boot.class.path}" /> </path> <path id="compile.source.path"> <dirset dir="${src.dir}" includes="/org/apache/**" /> </path> <!-- patternsets for source and binary distribution packages --> <patternset id="bin-distro"> <include name="${dist.file}/LICENSE.txt"/> <include name="${dist.file}/NOTICE.txt"/> <include name="${dist.file}/readme.html"/> <include name="${dist.file}/xalan.jar"/> <!-- xsltc.jar will only be picked up if it has been built --> <include name="${dist.file}/xsltc.jar"/> <include name="${dist.file}/${xmlapis.jar.name}"/> <include name="${dist.file}/${parser.jar.name}"/> <include name="${dist.file}/${serializer.jar.name}"/> <include name="${dist.file}/samples/"/> <include name="${dist.file}/samples/xalansamples.jar"/> <include name="${dist.file}/samples/xalanservlet.war"/> <include name="${dist.file}/samples/xsltcapplet.jar"/> <include name="${dist.file}/samples/xsltcbrazil.jar"/> <include name="${dist.file}/samples/xsltcejb.jar"/> <include name="${dist.file}/samples/xsltcservlet.jar"/> <include name="${dist.file}/docs/"/> </patternset> <patternset id="bin-distro-nodocs"> <include name="${dist.file}/LICENSE.txt"/> <include name="${dist.file}/NOTICE.txt"/> <include name="${dist.file}/readme.html"/> <include name="${dist.file}/xalan.jar"/> <!-- xsltc.jar will only be picked up if it has been built --> <include name="${dist.file}/xsltc.jar"/> <include name="${dist.file}/${xmlapis.jar.name}"/> <include name="${dist.file}/${parser.jar.name}"/> <include name="${dist.file}/${serializer.jar.name}"/> <include name="${dist.file}/samples/"/> <include name="${dist.file}/samples/xalansamples.jar"/> <include name="${dist.file}/samples/xalanservlet.war"/> <include name="${dist.file}/samples/xsltcapplet.jar"/> <include name="${dist.file}/samples/xsltcbrazil.jar"/> <include name="${dist.file}/samples/xsltcejb.jar"/> <include name="${dist.file}/samples/xsltcservlet.jar"/> </patternset> <patternset id="src-distro"> <include name="${dist.file}/LICENSE.txt"/> <include name="${dist.file}/NOTICE.txt"/> <include name="${dist.file}/*build.*"/> <include name="${dist.file}/commits.xml"/> <include name="${dist.file}/KEYS"/> <include name="${dist.file}/readme.html"/> <include name="${dist.file}/README"/> <include name="${dist.file}/lib/"/> <include name="${dist.file}/tools/"/> <include name="${dist.file}/samples/"/> <exclude name="${dist.file}/samples/xalansamples.jar"/> <exclude name="${dist.file}/samples/xalanservlet.war"/> <exclude name="${dist.file}/samples/xsltcapplet.jar"/> <exclude name="${dist.file}/samples/xsltcbrazil.jar"/> <exclude name="${dist.file}/samples/xsltcejb.jar"/> <exclude name="${dist.file}/samples/xsltcservlet.jar"/> <include name="${dist.file}/src/"/> <include name="${dist.file}/xdocs/"/> <include name="${dist.file}/build_srcdist_xalan.xml"/> <include name="${dist.file}/build_srcdist_xalan_tests.xml"/> <include name="${dist.file}/xalan-test/"/> </patternset> <!-- XSLTC engine dependency .jar files --> <patternset id="xsltc-deps-jars"> <include name="${dist.file}/lib/${bcel.jar.name}"/> <include name="${dist.file}/tools/${java_cup.jar.name}"/> <include name="${dist.file}/tools/${jlex.jar.name}"/> <include name="${dist.file}/lib/${runtime.jar.name}"/> <include name="${dist.file}/lib/${regexp.jar.name}"/> </patternset> <!-- =================================================================== --> <!-- 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"/> <!-- Update version information. This copies the Version.src file into Version.java, while replacing the following tokens --> <filter token="version.VERSION" value="${version.VERSION}"/> <filter token="version.RELEASE" value="${version.RELEASE}"/> <filter token="version.MINOR" value="${version.MINOR}"/> <filter token="version.DEVELOPER" value="${version.DEVELOPER}"/> <filter token="parser.version.VERSION" value="${parser.version.VERSION}"/> <filter token="parser.version.RELEASE" value="${parser.version.RELEASE}"/> <filter token="parser.version.MINOR" value="${parser.version.MINOR}"/> <copy tofile="${src.dir}/${xalan.reldir}/Version.java" file="${src.dir}/${xalan.reldir}/Version.src" filtering="true"/> <copy tofile="${src.dir}/${xalan.reldir}/processor/XSLProcessorVersion.java" file="${src.dir}/${xalan.reldir}/processor/XSLProcessorVersion.src" filtering="true"/> <copy tofile="${src.dir}/${serializer.reldir}/Version.java" file="${src.dir}/${serializer.reldir}/Version.src" filtering="true"/> <copy tofile="${xdocs.dir}/sources/entities.ent" file="${xdocs.dir}/sources/entities.src" filtering="true"/> </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 sed script to extract Xalan-Java 2 commits from the repository 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,serializer.jar"> <echo message="Compiling DTM implementation and utilities" /> <javac srcdir="${src.dir}" destdir="${build.classes}" debug="${build.debug}" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"> <include name="${apachexml.reldir}/**/*.java" /> <!-- exclude the serializer --> <exclude name="${serializer.reldir}/**/*.java" /> <!-- Exclude file that depends upon presence of Xerces in build path --> <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" excludes="${serializer.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="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"> <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="${build.serializer.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}" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"> <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" /> <!-- need to bootclasspath java_cup for JDKs that include JavaCupRedirect --> <jvmarg value="-Xbootclasspath/p:${java_cup.jar}${path.separator}${runtime.jar}"/> <!-- 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" excludes="${serializer.reldir}/**/*.java" debug="${build.debug}" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"> <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}" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"> <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}"/> <filter token="java.version" value="${java.version}"/> <filter token="java.vendor" value="${java.vendor}"/> <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}/**/*" /> <exclude name="org/apache/xalan/xsltc/util/JavaCupRedirect*" /> </patternset> </jar> </target> <!-- Copy license and readme files for XSLTC support jars --> <target name="xsltc.copy-licenses" depends="xsltc.prepare"> </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="${lib.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}"/> <filter token="java.version" value="${java.version}"/> <filter token="java.vendor" value="${java.vendor}"/> <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}"> <include name="org/apache/xalan/xsltc/**"/> <exclude name="org/apache/xalan/xsltc/util/JavaCupRedirect*" /> </fileset> <fileset dir="${build.classes}" includes="org/apache/xml/**" excludes="${serializer.reldir}/**" /> <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/**" /> </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}"/> <filter token="java.version" value="${java.version}"/> <filter token="java.vendor" value="${java.vendor}"/> <copy todir="${build.dir}" file="${manifest.xalan-interpretive.mf}" filtering="true"/> <jar jarfile="${build.xalan-interpretive.jar}" manifest="${build.dir}/manifest.xalan-interpretive" basedir="${build.classes}" > <patternset><!-- relative to jar/@basedir --> <include name="${apachexml.reldir}/**/*" /> <include name="${xpath.reldir}/**/*" /> <include name="${xalan.reldir}/**/*" /> <include name="${domxpath.reldir}/**/*" /> <include name="META-INF/services/*" /> <exclude name="${xsltc.reldir}/**/*" /> <exclude name="${serializer.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}"/> <filter token="java.version" value="${java.version}"/> <filter token="java.vendor" value="${java.vendor}"/> <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/*" /> <exclude name="${xsltc.reldir}/util/JavaCupRedirect*" /> <exclude name="${serializer.reldir}/**/*.*" /> </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}"/> <filter token="java.version" value="${java.version}"/> <filter token="java.vendor" value="${java.vendor}"/> <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}" > <patternset> <exclude name="${xsltc.reldir}/util/JavaCupRedirect*" /> <exclude name="${serializer.reldir}/**/*" /> </patternset> </jar> </target> <!-- =================================================================== --> <!-- Default all target simply Creates the xalan JAR --> <!-- =================================================================== --> <target name="all" depends="serializer.jar,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" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"> <classpath refid="samples.class.path" /> </javac> <javac srcdir="${samples.dir}/UseStylesheetPI" destdir="${build.samples}" excludes="${exclude}" debug="${build.debug}" bootclasspathref="xslt.boot.class.path" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"> <classpath refid="samples.class.path" /> </javac> <javac srcdir="${samples.dir}/UseStylesheetParam" destdir="${build.samples}" excludes="${exclude}" debug="${build.debug}" bootclasspathref="xslt.boot.class.path" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"> <classpath refid="samples.class.path" /> </javac> <javac srcdir="${samples.dir}/SAX2SAX" destdir="${build.samples}" excludes="${exclude}" debug="${build.debug}" bootclasspathref="xslt.boot.class.path" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"> <classpath refid="samples.class.path" /> </javac> <javac srcdir="${samples.dir}/DOM2DOM" destdir="${build.samples}" excludes="${exclude}" debug="${build.debug}" bootclasspathref="xslt.boot.class.path" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"> <classpath refid="samples.class.path" /> </javac> <javac srcdir="${samples.dir}/Pipe" destdir="${build.samples}" excludes="${exclude}" debug="${build.debug}" bootclasspathref="xslt.boot.class.path" nowarn="${compiler.nowarn}"> <classpath refid="samples.class.path" /> </javac> <javac srcdir="${samples.dir}/UseXMLFilters" destdir="${build.samples}" excludes="${exclude}" debug="${build.debug}" bootclasspathref="xslt.boot.class.path" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"> <classpath refid="samples.class.path" /> </javac> <javac srcdir="${samples.dir}/Trace" destdir="${build.samples}" excludes="${exclude}" debug="${build.debug}" bootclasspathref="xslt.boot.class.path" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"> <classpath refid="samples.class.path" /> </javac> <javac srcdir="${samples.dir}/ApplyXPath" destdir="${build.samples}" excludes="${exclude}" debug="${build.debug}" bootclasspathref="xslt.boot.class.path" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"> <classpath refid="samples.class.path" /> </javac> <javac srcdir="${samples.dir}/ApplyXPathDOM" destdir="${build.samples}" excludes="${exclude}" debug="${build.debug}" bootclasspathref="xslt.boot.class.path" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"> <classpath refid="samples.class.path" /> </javac> <javac srcdir="${samples.dir}/trax" destdir="${build.samples}" excludes="${exclude}" debug="${build.debug}" bootclasspathref="xslt.boot.class.path" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"> <classpath refid="samples.class.path" /> </javac> <javac srcdir="${samples.dir}/extensions" destdir="${build.samples}" excludes="${exclude}" debug="${build.debug}" bootclasspathref="xslt.boot.class.path" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"> <classpath refid="samples.class.path" /> </javac> <javac srcdir="${samples.dir}/Validate" destdir="${build.samples}" excludes="${exclude}" debug="${build.debug}" bootclasspathref="xslt.boot.class.path" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"> <classpath refid="samples.class.path" /> </javac> <javac srcdir="${samples.dir}/TransformThread" destdir="${build.samples}" excludes="${exclude}" debug="${build.debug}" bootclasspathref="xslt.boot.class.path" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"> <classpath refid="samples.class.path" /> </javac> <javac srcdir="${samples.dir}/XPathAPI" destdir="${build.samples}" excludes="${exclude}" debug="${build.debug}" bootclasspathref="xslt.boot.class.path" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"> <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.jardepends,xsltc.applet.nojardepends, xsltc.ejb.jardepends,xsltc.servlet.jardepends"/> <!-- =================================================================== --> <!-- 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.jardepends"/> <!-- =================================================================== --> <!-- 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.jardepends"/> <target name="servlet.jardepends" 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" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"> <classpath refid="samples.class.path" /> <classpath location="${servlet-api.jar}" /> </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="${lib.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" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"/> <javac srcdir="${samples.dir}/CompiledJAXP" destdir="${build.samples}" excludes="${exclude}" debug="${build.debug}" bootclasspathref="xslt.boot.class.path" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"/> </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" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"/> <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.jardepends"/> <target name="xsltc.brazil.jardepends"> <mkdir dir="${build.samples}/CompiledBrazil"/> <javac srcdir="${samples.dir}/CompiledBrazil" destdir="${build.samples}/CompiledBrazil" excludes="${exclude}" debug="${build.debug}" bootclasspathref="xslt.boot.class.path" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"> <classpath location="${brazil.jar}"/> </javac> <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.jardepends"/> <target name="xsltc.ejb.jardepends"> <mkdir dir="${build.samples}/CompiledEJB"/> <javac srcdir="${samples.dir}/CompiledEJB" destdir="${build.samples}/CompiledEJB" excludes="${exclude}" debug="${build.debug}" bootclasspathref="xslt.boot.class.path" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"> <classpath location="${javaee-api.jar}"/> </javac> <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.jardepends" /> <target name="xsltc.servlet.jardepends"> <mkdir dir="${build.samples}/CompiledServlet"/> <javac srcdir="${samples.dir}/CompiledServlet" destdir="${build.samples}/CompiledServlet" excludes="${exclude}" debug="${build.debug}" bootclasspathref="xslt.boot.class.path" target="${compiler.target}" source="${compiler.source}" classpath="${build.xalan.jar}:${servlet-api.jar}" nowarn="${compiler.nowarn}"> </javac> <jar jarfile="${build.xsltc.servlet.jar}" basedir="${build.samples}/CompiledServlet" includes="*.class"/> </target> <!-- =================================================================== --> <!-- Generate HTML docs --> <!-- =================================================================== --> <target name="docs" depends="jar,docs.nojardepends,xsltc.docs"/> <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 jaxp sources" > <echo message="javadocs is human-usable target with dependencies"/> <!-- Expand jaxp sources (JAXP 1.1, DOM 2, and SAX 2) into source tree for inclusion in the Javadoc. --> <!-- Note this is into the src area.--> <gunzip src="${xml-commons-srcs.tar.gz}" dest="${build.dir}" /> <untar src="${xml-commons-srcs.tar}" dest="${src.dir}"> <patternset> <include name="**.java"/> </patternset> </untar> <delete file="${xml-commons-srcs.tar}"/> <antcall target="autojavadocs"/> <!-- remove the jaxp sources --> <delete dir="${src.dir}/javax" /> <delete dir="${src.dir}/org/w3c" /> <delete dir="${src.dir}/org/xml" /> <delete dir="${src.dir}/org/apache/xmlcommons" /> <delete file="${src.dir}/manifest.commons" /> </target> <target name="autojavadocs" depends="autojavadocs-1.4-or-higher-if,autojavadocs-non1.4-or-higher-if"> <echo message="autojavadocs is for automated build process, without dependencies"/> </target> <target name="check-using-java-1.4-or-higher"> <condition property="using-java-1.4-or-higher"> <not> <or> <equals arg1="${ant.java.version}" arg2="1.1"/> <equals arg1="${ant.java.version}" arg2="1.2"/> <equals arg1="${ant.java.version}" arg2="1.3"/> </or> </not> </condition> </target> <target name="autojavadocs-1.4-or-higher-if" if="using-java-1.4-or-higher" depends="check-using-java-1.4-or-higher"> <antcall target="autojavadocs-1.4-or-higher"/> </target> <target name="autojavadocs-non1.4-or-higher-if" unless="using-java-1.4-or-higher" depends="check-using-java-1.4-or-higher"> <antcall target="autojavadocs-non1.4-or-higher"/> </target> <target name="autojavadocs-1.4-or-higher"> <!-- Ant ignores destdir arg if doclet is set, so must send to doclet in doclet subelement--> <javadoc additionalparam="-breakiterator" destdir="${build.apidocs}" 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" /> <taglet name="xalan2jtaglet.XSLUsageTag" path="${taglet.jar}"/> <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.xml.serialize*, 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> <target name="autojavadocs-non1.4-or-higher"> <!-- 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.xml.serialize*, org.apache.xalan.serialize"/> <group title="SAX 2" packages="org.xml.sax*"/> <group title="DOM 2" packages="org.w3c.dom*"/> <group title="XSLTC Core" packages="org.apache.xalan.xsltc*"/> </javadoc> </target> <!-- =================================================================== --> <!-- Various targets to clean the build tree --> <!-- =================================================================== --> <target name="distclean" depends="clean" description="Clean everything, including dist/jar/docs/xsltc.*" > <delete dir="${dist.dir}"/> </target> <target name="clean" depends="xsltc.clean" description="Clean the ${build.dir} tree and doc outputs" > <delete dir="${build.dir}"/> <delete dir="${site.root}"/> <delete dir="${xalan.apache.org.site.root}"/> <delete quiet="true"> <fileset dir="${xdocs.style}" excludes="${xalanonly-styledocs}"/> </delete> <delete file="${xdocs.DONE.file}"/> <delete file="${xdocs.XSLTCDONE.location}"/> <delete file="${src.dir}/${xalan.reldir}/Version.java"/> <delete file="${src.dir}/${serializer.reldir}/Version.java"/> <delete file="${src.dir}/${xalan.reldir}/processor/XSLProcessorVersion.java"/> <delete file="${xdocs.dir}/sources/entities.ent"/> <!-- Also delete files expanded from ${xml-commons-srcs.tar.gz}--> <delete dir="${src.dir}/javax" includeEmptyDirs="true" quiet="true"/> <delete dir="${src.dir}/org/xml" includeEmptyDirs="true" quiet="true"/> <delete dir="${src.dir}/org/w3c" includeEmptyDirs="true" quiet="true"/> <delete dir="${src.dir}/xdocs/style/graphics" includeEmptyDirs="true" quiet="true"/> <delete dir="${src.dir}/xdocs/style/resources" includeEmptyDirs="true" quiet="true"/> </target> <target name="xsltc.clean" description="Clean miscellaneous generated sources from xsltc.compile" > <delete file="${generated.xpathparser}" /> <delete file="${generated.xpathsym}" /> <delete file="${generated.xpathlexer}" /> </target> <!-- =================================================================== --> <!-- Install/Uninstall targets - not currently applicable --> <!-- =================================================================== --> <target name="install"><!-- 'Standardizing build.xml files' <bloritsch@apache.org> --> <echo message="install target currently not supported in ${Name-in-docs}; try jar or dist instead"/> </target> <target name="uninstall"><!-- 'Standardizing build.xml files' <bloritsch@apache.org> --> <echo message="uninstall target currently not supported in ${Name-in-docs}; try distclean instead"/> </target> <!-- =================================================================== --> <!-- Creates 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> <target name="dist-nodocs" depends="build.std.dist-nodocs,autodist-nodocs" 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-nodocs is human-useable target for distribution, with only standard dependencies and no documentation "/> </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> <target name="fulldist-nodocs" depends="build.nonstd.dist-nodocs,autodist-nodocs" description="Create a .zip/.tar.gz distribution module containing all components."> <echo message="fulldist-nodocs is human-useable target for distribution, with all dependencies and no documentation"/> </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="fulldist-separatejars-nodocs" depends="build.nonstd-separatejars.dist-nodocs,autodist-nodocs" description="Create a .zip/.tar.gz distribution module containing all components."> <echo message="fulldist-separatejars-nodocs is human-useable target for distribution, with all dependencies and no documentation"/> </target> <target name="build.std.dist" depends="build.std.parts"> <property name="has.nonstd.parts" value="false"/> </target> <target name="build.std.dist-nodocs" depends="build.std.parts-nodocs"> <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.dist-nodocs" depends="build.std.parts-nodocs,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.nonstd-separatejars.dist-nodocs" depends="build.std-separatejars.parts-nodocs, 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.parts-nodocs" depends="jar,samples,extra.std.samples"/> <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.std-separatejars.parts-nodocs" depends="xalan-interpretive.jar,xsltc.jar, samples.nojardepends,extra.std.samples.nojardepends"/> <target name="build.nonstd.parts" depends="extra.nonstd.samples"/> <target name="build.nonstd-separatejars.parts" depends="extra.nonstd.samples.nojardepends"/> <!-- =================================================================== --> <!-- Autodist targets. Used by the distribution targets. --> <!-- =================================================================== --> <target name="autodist-mkdirs"> <mkdir dir="${dist.dir}"/> <mkdir dir="${dist.dir}/lib"/> <mkdir dir="${dist.dir}/lib/endorsed"/> <mkdir dir="${dist.dir}/samples"/> <mkdir dir="${dist.dir}/src"/> <mkdir dir="${dist.dir}/tools"/> <mkdir dir="${dist.dir}/xdocs"/> </target> <target name="autodist-mkdirs-docs"> <mkdir dir="${dist.dir}/docs"/> <mkdir dir="${dist.dir}/docs/apidocs"/> </target> <target name="autodist-copy-files"> <!-- Copy license files to distribution root --> <copy todir="${dist.dir}"> <fileset dir="."> <include name="LICENSE.txt,NOTICE.txt"/> </fileset> </copy> <!-- Copy sources and source documentation --> <copy todir="${dist.dir}/src"> <fileset dir="${src.dir}" excludes="javax/**,org/xml/**,org/w3c/**"/><!-- exclude jaxp, sax, dom --> </copy> <copy todir="${dist.dir}/xdocs"> <fileset dir="${xdocs.dir}"/> </copy> <!-- Copy samples --> <copy todir="${dist.dir}/samples"> <fileset dir="${samples.dir}"/> </copy> <!-- Copy tools; used for source distribution --> <copy todir="${dist.dir}/tools"> <fileset dir="${tools.dir}"> <include name="*.*"/> </fileset> </copy> <!-- 1) Copy runtime libs; used for source distribution --> <copy todir="${dist.dir}/lib"> <fileset dir="${lib.dir}"> <include name="*.*"/> </fileset> </copy> <!-- 2) Copy runtime libs; used for source distribution --> <copy todir="${dist.dir}/lib/endorsed"> <fileset dir="${endorsed.dir}"> <include name="*.*"/> </fileset> </copy> <!-- Copy built jars --> <copy file="${build.dir}/xalansamples.jar" todir="${dist.dir}/samples"/> <copy file="${build.dir}/xalanservlet.war" todir="${dist.dir}/samples"/> <copy file="${build.dir}/xsltcapplet.jar" todir="${dist.dir}/samples"/> <copy file="${build.dir}/xsltcbrazil.jar" todir="${dist.dir}/samples" failonerror="${has.nonstd.parts}"/> <copy file="${build.dir}/xsltcejb.jar" todir="${dist.dir}/samples"/> <copy file="${build.dir}/xsltcservlet.jar" todir="${dist.dir}/samples"/> <copy file="${build.xalan.jar}" todir="${dist.dir}" /> <!-- only copy the xsltc.jar file if it has been built --> <copy todir="${dist.dir}"> <fileset dir="${build.dir}" includes="xsltc.jar"/> </copy> <copy file="${build.serializer.jar}" todir="${dist.dir}" /> <copy file="${xmlapis.jar}" todir="${dist.dir}" /> <copy file="${parser.jar}" todir="${dist.dir}" /> <antcall target="xalan-transform-build-file-for-src-distro"/> <antcall target="xalan-tests-create-for-src-distro"/> <copy todir="${dist.dir}"> <fileset dir="." includes="readme.html,KEYS,build.xml,build.sh,deprecated_build.sh,build.bat, commits.xml,LICENSE.txt,NOTICE.txt"/> </copy> </target> <target name="xalan-transform-build-file-for-src-distro"> <copy file="./build_srcdist_xalan.xml" todir="${dist.dir}"/> <copy file="./build_srcdist_xalan.xml" tofile="${dist.dir}/build.xml"/> </target> <target name="xalan-tests-create-for-src-distro"> <mkdir dir="${dist.dir}/xalan-test"/> <copy todir="${dist.dir}/xalan-test"> <fileset dir="${test.relpath}"> <exclude name="build.xml"/> </fileset> </copy> <copy file="./build_srcdist_xalan_tests.xml" todir="${dist.dir}"/> <copy file="./build_srcdist_xalan_tests.xml" tofile="${dist.dir}/xalan-test/build.xml"/> <delete dir="${dist.dir}/xalan-test/.git" /> </target> <target name="autodist-copy-files-docs"> <!-- Copy built documentation and javadoc --> <copy todir="${dist.dir}/docs"> <fileset dir="${build.docs}"/> </copy> </target> <target name="autodist-create-bin-packages"> <tar tarfile="${build.dir}/${dist.pkg}-bin.tar" > <tarfileset dir="${build.dir}"> <patternset refid="bin-distro"/> </tarfileset> </tar> <gzip src="${build.dir}/${dist.pkg}-bin.tar" zipfile="${build.dir}/${dist.pkg}-bin.tar.gz"/> <delete file="${build.dir}/${dist.pkg}-bin.tar" /> <zip zipfile="${build.dir}/${dist.pkg}-bin.zip" > <fileset dir="${build.dir}"> <patternset refid="bin-distro"/> </fileset> </zip> </target> <target name="autodist-create-bin-packages-nodocs"> <tar tarfile="${build.dir}/${dist.pkg}-bin-nodocs.tar" > <tarfileset dir="${build.dir}"> <patternset refid="bin-distro-nodocs"/> </tarfileset> </tar> <gzip src="${build.dir}/${dist.pkg}-bin-nodocs.tar" zipfile="${build.dir}/${dist.pkg}-bin-nodocs.tar.gz"/> <delete file="${build.dir}/${dist.pkg}-bin-nodocs.tar" /> <zip zipfile="${build.dir}/${dist.pkg}-bin-nodocs.zip" > <fileset dir="${build.dir}"> <patternset refid="bin-distro-nodocs"/> </fileset> </zip> </target> <target name="autodist-create-src-packages"> <tar tarfile="${build.dir}/${dist.pkg}-src.tar" > <tarfileset dir="${build.dir}"> <patternset refid="src-distro"/> <patternset refid="xsltc-deps-jars"/> </tarfileset> </tar> <gzip src="${build.dir}/${dist.pkg}-src.tar" zipfile="${build.dir}/${dist.pkg}-src.tar.gz"/> <delete file="${build.dir}/${dist.pkg}-src.tar" /> <zip zipfile="${build.dir}/${dist.pkg}-src.zip" > <fileset dir="${build.dir}"> <patternset refid="src-distro"/> <patternset refid="xsltc-deps-jars"/> </fileset> </zip> </target> <target name="autodist"> <echo message="autodist is for automated build processes, without dependencies"/> <antcall target="autodist-mkdirs"/> <antcall target="autodist-mkdirs-docs"/> <antcall target="autodist-copy-files"/> <antcall target="autodist-copy-files-docs"/> <antcall target="autodist-create-bin-packages"/> <antcall target="autodist-create-src-packages"/> </target> <target name="autodist-nodocs"> <echo message="autodist-nodocs is for automated build processes, without dependencies"/> <antcall target="autodist-mkdirs"/> <antcall target="autodist-copy-files"/> <antcall target="autodist-create-bin-packages-nodocs"/> <antcall target="autodist-create-src-packages"/> </target> <!-- =================================================================== --> <!-- Creates the documentation tree for the xml.apache.org/xalan-j --> <!-- website --> <!-- =================================================================== --> <target name="site" depends="prepare.docs,javadocs,xsltc.docs" description="Build documentation for posting to the website" > <mkdir dir="${site.dir}/apidocs"/> <mkdir dir="${site.dir}/design"/> <mkdir dir="${site.dir}/xsltc"/> <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> <!-- =================================================================== --> <!-- Creates the documentation tree for the xalan.apache.org website --> <!-- =================================================================== --> <target name="xalan.apache.org.site" description="Build documentation for posting to the website" > <mkdir dir="${xalan.apache.org.site.dir}"/> <java fork="yes" classname="${doc.generator}" classpathref="docs.class.path" > <arg line="targetDirectory=${xalan.apache.org.site.dir} ${xalan.apache.org.site.book} ${xdocs.style}"/> </java> </target> <!-- =================================================================== --> <!-- Compiles and runs mini/smoketest from xml-xalan\xalan-test, if present. --> <!-- xml-xalan is a representative folder, that can contain folders xalan-java and xalan-test --> <!-- =================================================================== --> <property name="test.relpath" value="xalan-test"/> <target name="minitest" depends="prepare,minitest-run,tests-not-available" description="Run the Minitest from xml-xalan/xalan-test" > <!-- This target simply asks the minitest-run worker target to actually have the Minitest run (by the xalan-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/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="smoketest.xsltc" depends="prepare,smoketest.xsltc-run,tests-not-available" description="Run smoketest.xsltc from xml-xalan/xalan-test"> </target> <target name="smoketest.xsltc-run" if="tests-available" depends="jar"> <echo message="Calling ${test.relpath}/build.xml to run the smoketest.xsltc" /> <ant dir="${test.relpath}" antfile="build.xml" target="smoketest.xsltc"> </ant> </target> <target name="check" depends="smoketest"><!-- 'Standardizing build.xml files' <bloritsch@apache.org> --> <echo message="Redirect to smoketest target"/> </target> <!-- Called from various testing targets if the test dir doesn't exist. --> <target name="tests-not-available" unless="tests-available" > <echo message=" [tests] The tests do not seem to be present in ${test.relpath}" /> <echo message=" [tests] You must have checked out from CVS to run the tests," /> <echo message=" [tests] it is not included in binary distributions." /> <echo message=" [tests] See http://xml.apache.org/xalan-j/test/ for more info." /> </target> <!-- =================================================================== --> <!-- Creates the xalan design document --> <!-- =================================================================== --> <target name="xalan-j2-design"> <java fork="yes" classname="${doc.generator}" classpathref="docs.class.path" > <arg line="loaderConfig=sbk:/style/loaderdesign.xml targetDirectory=${build.dir}/docs/design/ ${xdocs.dir}/sources/xalandesign.xml ${xdocs.style}"/> </java> </target> <!-- =================================================================== --> <!-- Use FOP to create preliminary print (pdf) doc --> <!-- Note: fop.jar and xml.jar (from xml-fop) must be on classpath --> <!-- This is VERY preliminary, not yet for inclusion in distribution --> <!-- =================================================================== --> <!--Collate the xml sources into a single xml source with a litle extra structure --> <target name="printerdocs" depends="prepare.docs"> <echo message="NOTICE: requires fop.jar and xml.jar on the classpath"/> <java fork="yes" classname="${xalan.cmdline.class}" classpathref="docs.class.path" > <arg line="-xsl ${xdocs.dir}/sources/xalan-collate.xsl -out xdocs/sources/xalan/xalan-collate.xml"/> </java> <!-- Transform collation into Formatting Objects (with a little work on links along the way) --> <java fork="yes" classname="${xalan.cmdline.class}" classpathref="docs.class.path" > <arg line="-in ${xdocs.dir}/sources/xalan/xalan-collate.xml -param resourceFile '../../sources/xalan/resources.xml' -param project ${Name-in-docs} -xsl ${xdocs.style}/stylesheets/xml2fo.xsl -out build/docs/xalan-collate.fo"/> </java> <!-- Use FOP to generate a pdf file (classpath may need updating! -sc 18-Apr-01)--> <java fork="yes" classname="org.apache.fop.apps.CommandLine" classpath="${java.class.path}:${build.xalan.jar}:${bin.dir}/fop.jar:${bin.dir}/w3c.jar"> <arg line="${build.docs}/xalan-collate.fo build/docs/xalan.pdf"/> </java> </target> <!-- =================================================================== --> <!-- Build XSLTC design documentation. Eventually intend to incorporate --> <!-- XSLTC into the Xalan book. --> <!-- =================================================================== --> <target name="xsltc.prepare.docs" depends="prepare.docs.nojardepends"> <mkdir dir="${build.docs}/xsltc"/> <!-- <echo message="Transform xsltc_todo.xml and put the result in ${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> <!-- #################################################### # START OF SECTION TO BUILD STAND-ALONE SERIALIZER # #################################################### --> <!-- try not to use other properties directly when building the serializer --> <!-- either create new values, or copy, just in case we separate into --> <!-- a totally new build.xml file --> <property name="serializer.build.debug" value="${build.debug}" /> <!-- PROPERTIES TO MAKE THE SOURCE DISTRIBUTION ========================== --> <property name="serializer.name" value="serializer" /> <property name="serializer.version" value="${version}" /> <property name="serializer.dist.file" value="${serializer.name}-j_${serializer.version}"/> <property name="serializer.dist.dir" value="${serializer.build.dir}/${serializer.dist.file}"/> <!-- patternset for source distribution packages --> <patternset id="serializer-src-distro" > <!-- some license and legal stuff --> <include name="${serializer.dist.file}/LICENSE.txt"/> <include name="${serializer.dist.file}/NOTICE.txt"/> <include name="${serializer.dist.file}/KEYS"/> <!-- The build stuff that uses Ant and this file itself, build.xml this is getting into a strange loop but the source distribution needs to build, and it uses this file, build.xml to do so ... --> <include name="${serializer.dist.file}/build.bat"/> <include name="${serializer.dist.file}/build.sh"/> <include name="${serializer.dist.file}/build.xml"/> <!-- The source code that the source distribution would build --> <include name="${serializer.dist.file}/src/${serializer.reldir}/**/*.java" /> <include name="${serializer.dist.file}/src/${serializer.reldir}/**/*.properties" /> <include name="${serializer.dist.file}/src/${serializer.manifest.basename}" /> <!-- We need Ant in order to run build.xml in the source distribution --> <include name="${serializer.dist.file}/tools/ant.jar"/> <include name="${serializer.dist.file}/tools/antRun"/> <include name="${serializer.dist.file}/tools/antRun.bat"/> <!-- The serializer needs this jar in order to build --> <include name="${serializer.dist.file}/xml-apis.jar"/> <!-- Ant needs an XML parser in order to read in the build.xml, so it can even do the build ... this is a strange loop ... --> <include name="${serializer.dist.file}/xercesImpl.jar"/> </patternset> <!-- patternset for binary distribution packages ... if needed <patternset id="serializer-bin-distro" > <include name="${serializer.dist.file}/LICENSE.txt"/> <include name="${serializer.dist.file}/NOTICE.txt"/> <include name="${serializer.dist.file}/KEYS"/> <include name="${serializer.dist.file}/${serializer.name}.jar"/> <include name="${serializer.dist.file}/${xmlapis.jar.name}"/> <include name="${serializer.dist.file}/${parser.jar.name}"/> </patternset> --> <!-- =================================================================== --> <!-- Creates the Serializer jar --> <!-- =================================================================== --> <target name="serializer.jar" depends="serializer.prepare,serializer.compile" description="Build the serializer and created serializer.jar" > <!-- Copy over the manifest, with filtering (for version number) --> <filter token="impl.version" value="${serializer.impl.version}"/> <filter token="java.version" value="${serializer.java.version}"/> <filter token="java.vendor" value="${serializer.java.vendor}"/> <copy todir="${serializer.build.dir}" file="${serializer.manifest}" filtering="true"/> <jar jarfile="${build.serializer.jar}" manifest="${serializer.build.dir}/${serializer.manifest.basename}" basedir="${serializer.build.classes}" > <patternset><!-- relative to jar/@basedir --> <include name="${serializer.reldir}/**/*" /> </patternset> </jar> </target> <target name="serializer.prepare"> <mkdir dir="${serializer.build.dir}"/> <mkdir dir="${serializer.build.classes}"/> </target> <target name="serializer.compile"> <echo message="Compiling the Serializer" /> <javac srcdir="${serializer.src.dir}" destdir="${serializer.build.classes}" debug="${serializer.build.debug}" target="${compiler.target}" source="${compiler.source}" nowarn="${compiler.nowarn}"> <include name="${serializer.reldir}/**/*.java" /> <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="${serializer.build.classes}"> <fileset dir="${serializer.src.dir}" includes="${serializer.reldir}/**/*.properties"/> </copy> </target> <!-- =================================================================== --> <!-- Creates the API documentation --> <!-- =================================================================== --> <target name="serializer.javadocs" description="Build the Javadocs for the Serializer" > <echo message="javadocs is human-usable target with dependencies"/> <mkdir dir="${build.docs}"/> <mkdir dir="${build.apidocs}"/> <antcall target="serializer.autojavadocs"/> </target> <target name="serializer.autojavadocs" depends="serializer.autojavadocs-1.4-or-higher-if,serializer.autojavadocs-non1.4-or-higher-if"> <echo message="serializer.autojavadocs is for automated build process, without dependencies"/> </target> <target name="serializer.autojavadocs-1.4-or-higher-if" if="using-java-1.4-or-higher" depends="check-using-java-1.4-or-higher"> <antcall target="serializer.autojavadocs-1.4-or-higher"/> </target> <target name="serializer.autojavadocs-non1.4-or-higher-if" unless="using-java-1.4-or-higher" depends="check-using-java-1.4-or-higher"> <antcall target="serializer.autojavadocs-non1.4-or-higher"/> </target> <target name="serializer.autojavadocs-1.4-or-higher"> <!-- Ant ignores destdir arg if doclet is set, so must send to doclet in doclet subelement--> <javadoc additionalparam="-breakiterator" destdir="${build.apidocs}" public="true" sourcepath="${src.dir}" packagenames="org.apache.*" author="true" version="true" use="true" windowtitle="${Name-in-docs} Serializer ${impl.version}" doctitle="${Name-in-docs} Serializer ${impl.version}" bottom="Copyright &#169; ${year} Apache XML Project. All Rights Reserved."> <classpath refid="docs.class.path" /> <taglet name="xalan2jtaglet.XSLUsageTag" path="${taglet.jar}"/> <group title="Serializer" packages="org.apache.xml.serialize*"/> </javadoc> </target> <target name="serializer.autojavadocs-non1.4-or-higher"> <!-- Ant ignores destdir arg if doclet is set, so must send to doclet in doclet subelement--> <javadoc public="true" sourcepath="${src.dir}" packagenames="org.apache.*" author="true" version="true" use="true" windowtitle="${Name-in-docs} Serializer ${impl.version}" doctitle="${Name-in-docs} Serializer ${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="Serializer" packages="org.apache.xml.serialize*"/> </javadoc> </target> <!-- =================================================================== --> <!-- Create the serializer source distribution --> <!-- =================================================================== --> <target name="serializer-dist" depends="serializer.jar" description="Build the serializer source distribution .tar and .zip"> <antcall target="serializer-autodist-mkdirs"/> <antcall target="serializer-autodist-copy-files"/> <!-- <antcall target="serializer-autodist-create-bin-packages"/> --> <antcall target="serializer-autodist-create-src-packages"/> </target> <target name="serializer-autodist-mkdirs"> <echo message="Serializer: making distribution directories" /> <mkdir dir="${serializer.dist.dir}"/> <mkdir dir="${serializer.dist.dir}/src"/> <mkdir dir="${serializer.dist.dir}/tools"/> </target> <target name="serializer-autodist-copy-files"> <!-- Copy bin directory, which includes preexisting checked-in .jar files --> <!-- <copy todir="${serializer.dist.dir}/bin"> <fileset dir="${serializer.bin.dir}" /> </copy> --> <echo message="Serializer: copy source files to ${serializer.dist.dir}/src" /> <echo message=" ... from ${serializer.src.dir}/${serializer.reldir}" /> <!-- Copy sources --> <copy todir="${serializer.dist.dir}/src/${serializer.reldir}"> <fileset dir="${serializer.src.dir}/${serializer.reldir}"/> </copy> <!-- Copy the manifest --> <copy file="${serializer.src.dir}/${serializer.manifest.basename}" todir="${serializer.dist.dir}/src" /> <!-- Copy built jars --> <copy file="${build.serializer.jar}" todir="${serializer.dist.dir}" /> <!-- Copy runtime jars --> <copy file="${lib.dir}/${xmlapis.jar.name}" todir="${serializer.dist.dir}" /> <copy file="${lib.dir}/${parser.jar.name}" todir="${serializer.dist.dir}" /> <!-- Copy licenses --> <copy todir="${serializer.dist.dir}"> <fileset dir="." includes="LICENSE.txt,NOTICE.txt"/> </copy> <!-- Copy tools --> <copy todir="${serializer.dist.dir}/tools"> <fileset dir="./tools" includes="ant*"/> </copy> <copy todir="${serializer.dist.dir}"> <fileset dir="." includes="KEYS,build.xml,build.sh,build.bat"/> </copy> </target> <target name="serializer-autodist-create-bin-packages"> <tar tarfile="${serializer.build.dir}/${serializer.dist.file}-bin.tar" > <tarfileset dir="${serializer.build.dir}"> <patternset refid="serializer-bin-distro"/> </tarfileset> </tar> <gzip src="${serializer.build.dir}/${serializer.dist.file}-bin.tar" zipfile="${serializer.build.dir}/${serializer.dist.file}-bin.tar.gz"/> <!-- <delete file="${serializer.build.dir}/${serializer.dist.file}-bin.tar" /> --> <zip zipfile="${serializer.build.dir}/${serializer.dist.file}-bin.zip" > <fileset dir="${serializer.build.dir}"> <patternset refid="serializer-bin-distro"/> </fileset> </zip> </target> <target name="serializer-autodist-create-src-packages"> <tar tarfile="${serializer.build.dir}/${serializer.dist.file}-src.tar" > <tarfileset dir="${serializer.build.dir}"> <patternset refid="serializer-src-distro"/> </tarfileset> </tar> <gzip src="${serializer.build.dir}/${serializer.dist.file}-src.tar" zipfile="${serializer.build.dir}/${serializer.dist.file}-src.tar.gz"/> <delete file="${serializer.build.dir}/${serializer.dist.file}-src.tar" /> <zip zipfile="${serializer.build.dir}/${serializer.dist.file}-src.zip" > <fileset dir="${serializer.build.dir}"> <patternset refid="serializer-src-distro"/> </fileset> </zip> </target> <!-- ################################################## # END OF SECTION TO BUILD STAND-ALONE SERIALIZER # ################################################## --> </project>