blob: 2160c3a10407f5f8decf2d344c86008eaf8a4b8d [file] [log] [blame]
<?xml version="1.0"?>
<!-- ===========================================================================
* ================== *
| FOP build system |
* ================== *
Building instructions
=====================
First, make sure your current working directory is where this very file is
located. Then type
./build.sh (on unixes)
build (on Windows)
If everything is right and all the required packages are visible, this action
will generate a file called "fop.jar" in the "./build" directory.
If you experience any problems with the build please visit the FOP website for
more information: http://xml.apache.org/fop
Build targets
=============
The build system is not only responsible of compiling Fop into a jar file,
but is also responsible for creating the HTML documentation, javadocs,
distributions and web site. In fact, the file you have here is _exactly_ what
is used by fop maintainers to take care of everything in the Fop
project, no less and no more.
Call the build script (see above) with the parameter "-projecthelp" to get a
list of possible build targets.
============================================================================ -->
<project default="all" basedir=".">
<!-- used to set values for testing etc. -->
<!-- build-local.properties is not stored in CVS and overrides values from build.properties -->
<property file="build-local.properties"/>
<property file="build.properties"/>
<fileset dir="${basedir}" id="dist.bin">
<include name="conf/**"/>
<include name="docs/**"/>
<include name="CHANGES"/>
<include name="LICENSE"/>
<include name="README"/>
<include name="STATUS"/>
<include name="fop.bat"/>
<include name="fop.sh"/>
<exclude name="src/**"/>
<exclude name="dist/**"/>
<exclude name="build/**"/>
<exclude name="lib/**"/>
</fileset>
<fileset dir="${basedir}" id="dist.bin.lib">
<include name="lib/xercesImpl-2.2.1.jar"/>
<include name="lib/xalan-2.4.1.jar"/>
<include name="lib/xml-apis.jar"/>
<include name="lib/batik.jar"/>
<include name="lib/avalon-framework*.jar"/>
<include name="lib/jimi*"/>
<include name="lib/jfor*.jar"/>
</fileset>
<fileset dir="${basedir}" id="dist.src">
<exclude name="lib/classes/**"/>
<exclude name="lib/org/**"/>
<exclude name="lib/src/**"/>
<exclude name="build/**"/>
<include name="src/**"/>
<include name="conf/**"/>
<include name="docs/**"/>
<include name="lib/**"/>
<include name="CHANGES"/>
<include name="LICENSE"/>
<include name="README"/>
<include name="STATUS"/>
<include name="build*"/>
<include name="fop.bat"/>
<include name="fop.sh"/>
</fileset>
<path id="libs-build-classpath">
<fileset dir="lib">
<include name="*.jar"/>
</fileset>
</path>
<path id="libs-run-classpath">
<fileset dir="lib">
<include name="*.jar"/>
<exclude name="ant.jar"/>
</fileset>
<fileset dir="build">
<include name="fop.jar"/>
</fileset>
</path>
<path id="checkstylepath">
<fileset dir="lib">
<include name="checkstyle-all-*.jar"/>
</fileset>
</path>
<patternset id="exclude-jimi">
<exclude name="org/apache/fop/image/JimiImage.java"/>
</patternset>
<patternset id="exclude-jai">
<exclude name="org/apache/fop/image/JAIImage.java"/>
</patternset>
<patternset id="exclude-jce-dependencies">
<exclude name="org/apache/fop/pdf/PDFEncryptionJCE.java"/>
</patternset>
<patternset id="base-sources">
<include name="**/*.java"/>
<exclude name="**/*${ignore_this}"/>
<patternset refid="exclude-jimi"/>
<patternset refid="exclude-jai"/>
<patternset refid="exclude-jce-dependencies"/>
</patternset>
<!-- =================================================================== -->
<!-- Initialization target -->
<!-- =================================================================== -->
<target name="init" depends="init-avail, init-filters-jdk14, init-filters-jdk13">
<tstamp/>
<property name="Name" value="Fop"/>
<property name="name" value="fop"/>
<property name="version" value="1.0dev"/>
<filter token="version" value="${version}"/>
<property name="year" value="1999-2003"/>
<echo message="------------------- ${Name} ${version} [${year}] ----------------"/>
<echo message="See build.properties and build-local.properties for additional build settings"/>
<property name="build.compiler" value="classic"/>
<property name="debug" value="on"/>
<property name="optimize" value="off"/>
<property name="deprecation" value="on"/>
<property name="textfontencoding" value="WinAnsiEncoding"/>
<property name="src.dir" value="./src"/>
<property name="src.java" value="${src.dir}/java"/>
<property name="src.codegen" value="${src.dir}/codegen"/>
<property name="docs.dir" value="./docs"/>
<property name="xdocs.dir" value="${src.dir}/documentation/content/xdocs"/>
<property name="fo.examples.dir" value="./examples/fo/basic"/>
<property name="lib.dir" value="./lib"/>
<property name="hyph.dir" value="${src.dir}/hyph"/>
<property name="conf.dir" value="./conf"/>
<property name="packages" value="org.apache.fop.*"/>
<property name="viewer.resources.src.dir" value="${src.java}/org/apache/fop/viewer/resources"/>
<property name="viewer.images.src.dir" value="${src.java}/org/apache/fop/viewer/images"/>
<property name="build.dir" value="./build"/>
<property name="build.src" value="./build/src"/>
<property name="build.gensrc" value="./build/gensrc"/>
<property name="build.docsrc" value="./build/docsrc"/>
<property name="build.codegen" value="./build/src/codegen"/>
<property name="build.dest" value="./build/classes"/>
<property name="build.docs" value="./build/docs"/>
<property name="build.javadocs" value="./build/javadocs"/>
<property name="build.examples.dir" value="${build.dir}/examples"/>
<property name="viewer.resources.dest.dir" value="${build.dest}/org/apache/fop/viewer/resources"/>
<property name="viewer.images.dest.dir" value="${build.dest}/org/apache/fop/viewer/Images"/>
<property name="dist.bin.dir" value="./dist-bin"/>
<property name="dist.src.dir" value="./dist-src"/>
<property name="dist.bin.result.dir" value="${dist.bin.dir}/${Name}-${version}"/>
<property name="dist.src.result.dir" value="${dist.src.dir}/${Name}-${version}"/>
<property name="properties.dir" value="org/apache/fop/fo/properties"/>
<property name="fonts.dir" value="org/apache/fop/fonts/base14"/>
<property name="replacestring" value="org/apache/fop"/>
<property name="ignore_this" value="ignore_this.dummy"/>
<property name="jimi" value="JimiImage.java"/>
<property name="jai" value="JAIImage.java"/>
<property name="xslt" value="org.apache.xalan.xslt.Process"/>
<property name="src.properties.xsl" value="${src.codegen}/properties.xsl"/>
<property name="src.propmaker.xsl" value="${src.codegen}/propmaker.xsl"/>
<property name="foproperties.xml" value="${build.codegen}/foproperties.xml"/>
<property name="colorkw.xml" value="${build.codegen}/colorkw.xml"/>
<property name="allprops.xml" value="${build.codegen}/allprops.xml"/>
<property name="properties.xsl" value="${build.codegen}/properties.xsl"/>
<property name="propmap.xsl" value="${build.codegen}/propmap.xsl"/>
<property name="enumgen.xsl" value="${build.codegen}/enumgen.xsl"/>
<property name="propinc.xsl" value="${build.codegen}/propinc.xsl"/>
<property name="genconst.xsl" value="${build.codegen}/genconst.xsl"/>
<property name="src.charlist.xsl" value="${src.codegen}/code-point-mapping.xsl"/>
<property name="encodings.xml" value="${build.codegen}/encodings.xml"/>
<property name="charlist.xsl" value="${build.codegen}/code-point-mapping.xsl"/>
<property name="fontfile.xsl" value="${build.codegen}/font-file.xsl"/>
<property name="t1fontfile.xsl" value="${build.codegen}/t1font-file.xsl"/>
<property name="ttffontfile.xsl" value="${build.codegen}/ttffontfile.xsl"/>
<property name="Courier.xml" value="${build.codegen}/Courier.xml"/>
<property name="Courier-Oblique.xml" value="${build.codegen}/CourierOblique.xml"/>
<property name="Courier-Bold.xml" value="${build.codegen}/CourierBold.xml"/>
<property name="Courier-BoldOblique.xml" value="${build.codegen}/CourierBoldOblique.xml"/>
<property name="Helvetica.xml" value="${build.codegen}/Helvetica.xml"/>
<property name="Helvetica-Oblique.xml" value="${build.codegen}/HelveticaOblique.xml"/>
<property name="Helvetica-Bold.xml" value="${build.codegen}/HelveticaBold.xml"/>
<property name="Helvetica-BoldOblique.xml" value="${build.codegen}/HelveticaBoldOblique.xml"/>
<property name="Times-Roman.xml" value="${build.codegen}/TimesRoman.xml"/>
<property name="Times-Italic.xml" value="${build.codegen}/TimesItalic.xml"/>
<property name="Times-Bold.xml" value="${build.codegen}/TimesBold.xml"/>
<property name="Times-BoldItalic.xml" value="${build.codegen}/TimesBoldItalic.xml"/>
<property name="ZapfDingbats.xml" value="${build.codegen}/ZapfDingbats.xml"/>
<property name="Symbol.xml" value="${build.codegen}/Symbol.xml"/>
<property name="trax" value="TraxTransform.java"/>
<property name="xsltransform" value="XSLTransform.java"/>
<property name="tools.pkg" value="org/apache/fop/tools"/>
<property name="main.class" value="org.apache.fop.apps.Fop"/>
<filter filtersfile="${build.codegen}/filter" />
</target>
<target name="init-avail">
<available property="jimi.present" classname="com.sun.jimi.core.Jimi" classpathref="libs-build-classpath"/>
<available property="jai.present" classname="javax.media.jai.JAI" classpathref="libs-build-classpath"/>
<available property="jce.present" classname="javax.crypto.Cipher" classpathref="libs-build-classpath"/>
<available property="jdk14.present" classname="java.lang.CharSequence"/>
</target>
<target name="init-filters-jdk13" depends="init-avail" unless="jdk14.present">
<echo message="JDK 1.3 or earlier present."/>
<copy file="src/codegen/jdk13.filter" toFile="build/src/codegen/filter"/>
</target>
<target name="init-filters-jdk14" depends="init-avail" if="jdk14.present">
<echo message="JDK 1.4 present."/>
<copy file="src/codegen/jdk14.filter" toFile="build/src/codegen/filter"/>
</target>
<!-- =================================================================== -->
<!-- Help on usage -->
<!-- =================================================================== -->
<target name="usage">
<echo message="Use the -projecthelp option instead"/>
</target>
<!-- =================================================================== -->
<!-- Prepares the build directory -->
<!-- =================================================================== -->
<target name="prepare" depends="init">
<!-- create directories -->
<echo message="Preparing the build directories"/>
<mkdir dir="${build.src}"/>
<mkdir dir="${build.gensrc}"/>
<mkdir dir="${build.gensrc}/${properties.dir}"/>
<mkdir dir="${build.gensrc}/${fonts.dir}"/>
<mkdir dir="${build.dest}/hyph"/>
</target>
<!-- =================================================================== -->
<!-- Generate the source code -->
<!-- =================================================================== -->
<target name="codegen" depends="prepare" description="Generates the java files from the xml resources">
<!-- resetting codegen directory -->
<echo message="Resetting codegen directory"/>
<!-- copy codegen directory -->
<copy todir="${build.codegen}" filtering="on">
<fileset dir="${src.codegen}"/>
</copy>
<!-- generate the java files from xml resources -->
<echo message="Generating the java files from xml resources"/>
<dependset>
<srcfilelist dir="./" files="${foproperties.xml},${colorkw.xml}"/>
<targetfilelist dir="./" files="${build.gensrc}/${replacestring}/fo/properties/Constants.java,${build.gensrc}/${replacestring}/fo/properties/fo_${ignore_this}"/>
</dependset>
<dependset>
<srcfilelist dir="./" files="${propinc.xsl}"/>
<targetfilelist dir="./" files="${build.gensrc}/${replacestring}/fo/properties/fo_${ignore_this},${build.gensrc}/${replacestring}/fo/properties/FOPropertyMapping.java,${build.gensrc}/${replacestring}/fo/properties/foenums_${ignore_this}"/>
</dependset>
<style in="${allprops.xml}" style="${genconst.xsl}"
out="${build.gensrc}/${replacestring}/fo/properties/Constants.java"/>
<style in="${foproperties.xml}" style="${properties.xsl}"
out="${build.gensrc}/${replacestring}/fo/properties/fo_${ignore_this}"/>
<style in="${foproperties.xml}" style="${propmap.xsl}"
out="${build.gensrc}/${replacestring}/fo/properties/FOPropertyMapping.java"/>
<style in="${foproperties.xml}" style="${enumgen.xsl}"
out="${build.gensrc}/${replacestring}/fo/properties/foenums_${ignore_this}"/>
<style in="${encodings.xml}" style="${charlist.xsl}"
out="${build.gensrc}/${replacestring}/fonts//CodePointMapping.java"/>
<!--
<style basedir="src/codegen" includes="Helvetica*.xml,Times*.xml,Courier*.xml"
style="${fontfile.xsl}"
destdir="${build.gensrc}/${replacestring}/fonts/base14" extension=".java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
-->
<style in="${Courier.xml}" style="${fontfile.xsl}"
destdir="${build.gensrc}/${replacestring}/fonts/base14"
out="${build.gensrc}/${replacestring}/fonts/base14/Courier.java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
<style in="${Courier-Oblique.xml}" style="${fontfile.xsl}"
destdir="${build.gensrc}/${replacestring}/fonts/base14"
out="${build.gensrc}/${replacestring}/fonts/base14/CourierOblique.java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
<style in="${Courier-Bold.xml}" style="${fontfile.xsl}"
destdir="${build.gensrc}/${replacestring}/fonts/base14"
out="${build.gensrc}/${replacestring}/fonts/base14/CourierBold.java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
<style in="${Courier-BoldOblique.xml}" style="${fontfile.xsl}"
destdir="${build.gensrc}/${replacestring}/fonts/base14"
out="${build.gensrc}/${replacestring}/fonts/base14/CourierBoldOblique.java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
<style in="${Helvetica.xml}" style="${fontfile.xsl}"
destdir="${build.gensrc}/${replacestring}/fonts/base14"
out="${build.gensrc}/${replacestring}/fonts/base14/Helvetica.java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
<style in="${Helvetica-Bold.xml}" style="${fontfile.xsl}"
destdir="${build.gensrc}/${replacestring}/fonts/base14"
out="${build.gensrc}/${replacestring}/fonts/base14/HelveticaBold.java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
<style in="${Helvetica-Oblique.xml}" style="${fontfile.xsl}"
destdir="${build.gensrc}/${replacestring}/fonts/base14"
out="${build.gensrc}/${replacestring}/fonts/base14/HelveticaOblique.java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
<style in="${Helvetica-BoldOblique.xml}" style="${fontfile.xsl}"
destdir="${build.gensrc}/${replacestring}/fonts/base14"
out="${build.gensrc}/${replacestring}/fonts/base14/HelveticaBoldOblique.java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
<style in="${Times-Roman.xml}" style="${fontfile.xsl}"
destdir="${build.gensrc}/${replacestring}/fonts/base14"
out="${build.gensrc}/${replacestring}/fonts/base14/TimesRoman.java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
<style in="${Times-Italic.xml}" style="${fontfile.xsl}"
destdir="${build.gensrc}/${replacestring}/fonts/base14"
out="${build.gensrc}/${replacestring}/fonts/base14/TimesItalic.java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
<style in="${Times-Bold.xml}" style="${fontfile.xsl}"
out="${build.gensrc}/${replacestring}/fonts/base14/TimesBold.java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
<style in="${Times-BoldItalic.xml}" style="${fontfile.xsl}"
out="${build.gensrc}/${replacestring}/fonts/base14/TimesBoldItalic.java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
<style in="${Symbol.xml}" style="${fontfile.xsl}"
out="${build.gensrc}/${replacestring}/fonts/base14/Symbol.java"/>
<style in="${ZapfDingbats.xml}" style="${fontfile.xsl}"
out="${build.gensrc}/${replacestring}/fonts/base14/ZapfDingbats.java"/>
<!-- prepare JDK dependant files -->
<copy todir="${build.gensrc}" filtering="on">
<mapper type="glob" from="*.javat" to="*.java"/>
<fileset dir="${src.java}">
<include name="**/*.javat"/>
</fileset>
</copy>
</target>
<!-- =================================================================== -->
<!-- Compiles the source directory -->
<!-- =================================================================== -->
<target name="compile-src" depends="codegen, prepare">
<echo message="Compiling the sources "/>
<!-- create directories -->
<mkdir dir="${build.dest}"/>
<mkdir dir="${viewer.resources.dest.dir}"/>
<copy todir="${viewer.resources.dest.dir}">
<fileset dir="${viewer.resources.src.dir}"/>
</copy>
<mkdir dir="${viewer.images.dest.dir}"/>
<copy todir="${viewer.images.dest.dir}">
<fileset dir="${viewer.images.src.dir}"/>
</copy>
<javac destdir="${build.dest}" debug="${debug}" deprecation="${deprecation}" optimize="${optimize}">
<src path="${build.gensrc}"/>
<src path="${src.java}"/>
<classpath refid="libs-build-classpath"/>
<patternset refid="base-sources"/>
</javac>
</target>
<target name="compile-jimi" depends="compile-src" if="jimi.present">
<echo message="Jimi library is present. Fop installs jimi support."/>
<javac destdir="${build.dest}" debug="${debug}" deprecation="${deprecation}" optimize="${optimize}">
<src path="${src.java}"/>
<classpath refid="libs-build-classpath"/>
<include name="**/${jimi}"/>
</javac>
</target>
<target name="compile-jai" depends="compile-src" if="jai.present">
<echo message="JAI library is present. Fop installs JAI support."/>
<javac destdir="${build.dest}" debug="${debug}" deprecation="${deprecation}" optimize="${optimize}">
<src path="${src.java}"/>
<classpath refid="libs-build-classpath"/>
<include name="**/${jai}"/>
</javac>
</target>
<target name="compile-jce" depends="compile-src" if="jce.present">
<echo message="JCE is present. Fop installs JCE-dependent classes (for PDF encryption)."/>
<javac destdir="${build.dest}" debug="${debug}" deprecation="${deprecation}" optimize="${optimize}">
<src path="${src.java}"/>
<classpath refid="libs-build-classpath"/>
<include name="**/pdf/PDFEncryptionJCE.java"/>
</javac>
</target>
<target name="compile" depends="compile-src,compile-jimi,compile-jai,compile-jce" description="Compiles the source code"/>
<!-- =================================================================== -->
<!-- compiles hyphenation patterns -->
<!-- =================================================================== -->
<target name="hyphenation" depends="prepare">
<path id="hyph-classpath">
<path refid="libs-build-classpath"/>
<pathelement location="${build.dir}/classes"/>
</path>
<taskdef name="serHyph" classname="org.apache.fop.tools.anttasks.SerializeHyphPattern" classpathref="hyph-classpath"/>
<serHyph includes="*.xml"
sourceDir="${hyph.dir}"
targetDir="${build.dest}/hyph"/>
</target>
<!-- =================================================================== -->
<!-- Creates the class package -->
<!-- =================================================================== -->
<target name="package" depends="compile,hyphenation" description="Generates the jar files">
<echo message="Creating the jar file ${build.dir}/${name}.jar"/>
<tstamp>
<format property="ts" pattern="yyyyMMdd-HHmmss-z"/>
</tstamp>
<pathconvert property="manifest-classpath" dirsep="/" pathsep=" " refid="libs-run-classpath">
<map from="${basedir}${file.separator}lib${file.separator}" to=""/>
<map from="${basedir}${file.separator}build${file.separator}fop.jar" to=""/>
</pathconvert>
<jar jarfile="${build.dir}/${name}.jar" basedir="${build.dest}" includes="org/**,hyph/**">
<manifest>
<attribute name="Main-Class" value="${main.class}"/>
<attribute name="Class-Path" value="${manifest-classpath}"/>
<attribute name="Implementation-Title" value="${Name}"/>
<attribute name="Implementation-Version" value="${version}"/>
<attribute name="Implementation-Vendor" value="Apache Software Foundation (http://xml.apache.org/fop/)"/>
<attribute name="Build-Id" value="${ts} (${user.name} [${os.name} ${os.version} ${os.arch}, Java ${java.runtime.version}])"/>
</manifest>
</jar>
</target>
<target name="servlet" depends="package" description="Generates the WAR with the sample FOP servlet">
<echo message="Creating the WAR file"/>
<war warfile="${build.dir}/fop.war" webxml="${src.dir}/conf/web.xml">
<lib dir="${lib.dir}">
<include name="avalon-framework*.jar"/>
<include name="batik*.jar"/>
</lib>
<lib dir="${build.dir}">
<include name="fop.jar"/>
</lib>
</war>
</target>
<target name="pdf-transcoder" depends="compile" description="Generates the jar for the pdf transcoder for Batik">
<echo message="Creating the jar file ${build.dir}/pdf-transcoder.jar"/>
<property name="pdf-transcoder.name" value="FOP PDF Transcoder"/>
<property name="pdf-transcoder.version" value="1.0beta2"/>
<tstamp>
<format property="ts" pattern="yyyyMMdd-HHmmss-z"/>
</tstamp>
<jar jarfile="${build.dir}/pdf-transcoder.jar">
<fileset dir="${build.dest}" includes="org/apache/fop/pdf/**"/>
<fileset dir="${build.dest}" includes="org/apache/fop/svg/**"/>
<fileset dir="${build.dest}">
<include name="org/apache/fop/render/pdf/**"/>
<exclude name="org/apache/fop/render/pdf/PDFRenderer.class"/>
<exclude name="org/apache/fop/render/pdf/PDFXMLHandler*"/>
</fileset>
<fileset dir="${build.dest}">
<include name="org/apache/fop/fonts/**"/>
<include name="org/apache/fop/layout/Font*.class"/>
<include name="org/apache/fop/image/FopImag*.class"/>
<include name="org/apache/fop/image/Jpeg*"/>
<include name="org/apache/fop/image/Abstract*"/>
<include name="org/apache/fop/util/StreamUtilities.class"/>
</fileset>
<manifest>
<attribute name="Implementation-Title" value="${pdf-transcoder.name}"/>
<attribute name="Implementation-Version" value="${pdf-transcoder.version}"/>
<attribute name="Implementation-Vendor" value="Apache Software Foundation (http://xml.apache.org/fop/)"/>
<attribute name="Build-Id" value="${ts} (${user.name} [${os.name} ${os.version} ${os.arch}, Java ${java.runtime.version}])"/>
</manifest>
</jar>
</target>
<target name="all" depends="package, servlet, pdf-transcoder"/> <!-- "all" target for us Makefile converts ;-) -->
<!-- =================================================================== -->
<!-- Testing -->
<!-- =================================================================== -->
<target name="test" depends="package" description="Runs the test suite">
<echo message="Testing build in jar file ${build.dir}/${name}.jar against reference"/>
<property name="ref-version" value="FOP 1.0dev"/>
<path id="testtask-classpath">
<path refid="libs-build-classpath"/>
<pathelement location="${build.dir}/classes"/>
</path>
<taskdef name="runTest" classname="org.apache.fop.tools.anttasks.RunTest" classpathref="testtask-classpath"/>
<runTest testSuite="basictests.xml" basedir="test/" reference="test/reference/fop.jar"
refVersion="${ref-version}"/>
<runTest testSuite="bugtests.xml" basedir="test/" reference="test/reference/fop.jar"
refVersion="${ref-version}"/>
<!--
<runTest testSuite="testsuite.xml" basedir="TestSuite/NIST/" reference="test/reference/fop.jar"
refVersion="${ref-version}"/>
<runTest testSuite="testsuite.xml" basedir="TestSuite/contrib/IBM/" reference="test/reference/fop.jar"
refVersion="${ref-version}"/>
<runTest testSuite="testsuite.xml" basedir="TestSuite/contrib/FOP/" reference="test/reference/fop.jar"
refVersion="${ref-version}"/>
<runTest testSuite="testsuite.xml" basedir="TestSuite/contrib/XEP/" reference="test/reference/fop.jar"
refVersion="${ref-version}"/>
<runTest testSuite="testsuite.xml" basedir="TestSuite/contrib/XSLFormatter/" reference="test/reference/fop.jar"
refVersion="${ref-version}"/>
-->
</target>
<!-- =================================================================== -->
<!-- Prepares the docs -->
<!-- =================================================================== -->
<target name="prepare-docs" depends="init">
<mkdir dir="${build.docs}"/>
</target>
<!-- =================================================================== -->
<!-- Creates the API documentation -->
<!-- =================================================================== -->
<target name="javadocs" depends="prepare" description="Generates javadocs">
<echo message="Producing the javadoc files "/>
<mkdir dir="${build.javadocs}"/>
<javadoc
packagenames="${packages}"
destdir="${build.javadocs}"
classpathref="libs-build-classpath"
author="true"
version="true"
windowtitle="${Name} API"
doctitle="${Name}"
bottom="Copyright &#169; ${year} Apache Software Foundation. All Rights Reserved."
overview="${src.dir}/overview.html"
failonerror="true">
<sourcepath>
<pathelement path="${src.java}"/>
<pathelement path="${build.gensrc}"/>
</sourcepath>
</javadoc>
</target>
<target name="html" depends="javadocs, htmldoc" description="Generates javadocs and documentation in html format"/>
<target name="htmldoc" depends="html-fop, html-design" description="Generates documentation in html format"/>
<target name="html-fop" depends="prepare">
<copy file="${xdocs}/fop.xml" tofile="${xdocs}/book.xml" filtering="on"/>
<java classname="${doc.generator}" fork="yes">
<classpath refid="libs-build-classpath"/>
<arg line="targetDirectory=${docs} ${xdocs}/book.xml ${skins}"/>
</java>
</target>
<target name="html-design" depends="prepare, html-newdesign,
html-altdesign, html-understanding"/>
<target name="html-newdesign" depends="prepare">
<java classname="${doc.generator}" fork="yes">
<classpath refid="libs-build-classpath"/>
<arg line="targetDirectory=${docs}/design/ docs/design/book.xml ${skins}"/>
</java>
</target>
<target name="html-altdesign" depends="prepare">
<java classname="${doc.generator}" fork="yes">
<classpath refid="libs-build-classpath"/>
<arg line="targetDirectory=${docs}/design/alt.design/ docs/design/alt.design/book.xml ${skins}"/>
</java>
</target>
<target name="html-understanding" depends="prepare">
<java classname="${doc.generator}" fork="yes">
<classpath refid="libs-build-classpath"/>
<arg line="targetDirectory=${docs}/design/understanding docs/design/understanding/book.xml ${skins}"/>
</java>
</target>
<target name="pdfdoc" depends="package" description="Generates the documentation in pdf format">
<copy file="${xdocs}/fop.xml" tofile="${xdocs}/book.xml" filtering="on"/>
<style in="${xdocs}/fop.xml" style="${xdocs}/xml2xml.xsl" out="${xdocs}/fop-doc.xml"/>
<style in="${xdocs}/fop-doc.xml" style="${xdocs}/xml2pdf.xsl" out="${xdocs}/fop.fo"/>
<java classname="org.apache.fop.apps.Fop" fork="yes">
<classpath refid="libs-run-classpath"/>
<arg line="-fo ${xdocs}/fop.fo -pdf ${xdocs}/fop.pdf"/>
</java>
</target>
<!-- =================================================================== -->
<!-- Checkstyle -->
<!-- =================================================================== -->
<target name="checkstyle" depends="prepare" description="Runs Checkstyle for a code quality report">
<available property="checkstyle.available" classname="com.puppycrawl.tools.checkstyle.CheckStyleTask" classpathref="checkstylepath"/>
<fail message="Please put checkstyle-all-*.jar in the lib directory. Get it from http://checkstyle.sourceforge.net" unless="checkstyle.available"/>
<taskdef name="checkstyle" classname="com.puppycrawl.tools.checkstyle.CheckStyleTask" classpathref="checkstylepath"/>
<checkstyle properties="checkstyle.cfg" failonviolation="false">
<fileset dir="${src.java}" includes="org/apache/fop/**/*.java"/>
<formatter type="plain" toFile="${build.dir}/checkstyle_report.txt"/>
<formatter type="xml" toFile="${build.dir}/checkstyle_report.xml"/>
</checkstyle>
<available property="checkstyle.stylesheet.available" file="checkstyle-noframes.xsl"/>
<antcall target="checkstyle-html"/>
</target>
<target name="checkstyle-html" if="checkstyle.stylesheet.available">
<style in="${build.dir}/checkstyle_report.xml" out="${build.dir}/checkstyle_report.html" style="checkstyle-noframes.xsl"/>
</target>
<!-- =================================================================== -->
<!-- Creates the distribution -->
<!-- =================================================================== -->
<target name="dist" depends="dist-src,dist-bin" description="Generates the distribution package"/>
<target name="dist-bin" depends="all">
<echo message="Building the binary distribution files (zip,tar)"/>
<mkdir dir="${dist.bin.result.dir}"/>
<copy todir="${dist.bin.result.dir}">
<fileset refid="dist.bin"/>
<fileset refid="dist.bin.lib"/>
</copy>
<mkdir dir="${dist.bin.result.dir}/build"/>
<copy todir="${dist.bin.result.dir}/build" file="build/fop.jar"/>
<chmod file="${dist.bin.result.dir}/fop.sh" perm="ugo+rx"/>
<zip zipfile="${Name}-${version}-bin.zip" basedir="${dist.bin.dir}" includes="**"/>
<tar tarfile="${Name}-${version}-bin.tar" basedir="${dist.bin.dir}" includes="**"/>
<gzip zipfile="${Name}-${version}-bin.tar.gz" src="${Name}-${version}-bin.tar"/>
<delete file="${Name}-${version}-bin.tar"/>
</target>
<target name="dist-src" depends="all, javadocs">
<echo message="Building the source distribution files (zip,tar)"/>
<mkdir dir="${dist.src.result.dir}"/>
<copy todir="${dist.src.result.dir}">
<fileset refid="dist.src"/>
</copy>
<copy todir="${dist.src.result.dir}/javadocs">
<fileset dir="${build.javadocs}"/>
</copy>
<mkdir dir="${dist.src.result.dir}/build"/>
<copy todir="${dist.src.result.dir}/build" file="build/fop.jar"/>
<chmod file="${dist.src.result.dir}/build.sh" perm="ugo+rx"/>
<chmod file="${dist.src.result.dir}/fop.sh" perm="ugo+rx"/>
<zip zipfile="${Name}-${version}-src.zip" basedir="${dist.src.dir}" includes="**"/>
<tar tarfile="${Name}-${version}-src.tar" basedir="${dist.src.dir}" includes="**"/>
<gzip zipfile="${Name}-${version}-src.tar.gz" src="${Name}-${version}-src.tar"/>
<delete file="${Name}-${version}-src.tar"/>
</target>
<!-- =================================================================== -->
<!-- Generate example PDFs -->
<!-- =================================================================== -->
<target name="examples" depends="package" description="Generates example PDF files">
<taskdef name="fop" classname="org.apache.fop.tools.anttasks.Fop"
classpathref="libs-run-classpath"/>
<mkdir dir="${build.examples.dir}"/>
<fop format="${build.property.examples.mime.type}" outdir="${build.examples.dir}"
messagelevel="debug" basedir="${fo.examples.dir}">
<fileset dir="${fo.examples.dir}">
<include name="**/*.fo"/>
</fileset>
</fop>
</target>
<!-- =================================================================== -->
<!-- Special target for Gump -->
<!-- =================================================================== -->
<target name="gump" depends="all, javadocs"/>
<!-- =================================================================== -->
<!-- Clean targets -->
<!-- =================================================================== -->
<target name="clean" depends="init" description="Cleans the build directory">
<delete dir="${build.dir}"/>
</target>
<target name="distclean" depends="clean" description="Cleans the distribution target directories">
<delete dir="${dist.src.dir}"/>
<delete dir="${dist.bin.dir}"/>
<delete>
<fileset dir="${basedir}" includes="${Name}-*.tar.gz"/>
<fileset dir="${basedir}" includes="${Name}-*.zip"/>
</delete>
</target>
<target name="validate-xdocs" depends="init" description="Validate the
xdocs. Point schemas.dir to Forrest's 'schemas' directory.">
<property name="schemas.dir" value="../xml-forrest/src/resources/schema"/>
<xmlvalidate failonerror="no">
<fileset dir="${xdocs.dir}" includes="**.xml"/>
<xmlcatalog>
<entity publicId="-//APACHE//DTD Compliance V1.0//EN"
location="src/documentation/resources/schema/dtd/compliance-v10.dtd"/>
<entity publicId="-//APACHE//DTD Documentation V1.1//EN"
location="${schemas.dir}/dtd/document-v11.dtd"/>
<entity publicId="-//APACHE//DTD Specification V1.1//EN"
location="${schemas.dir}/dtd/specification-v11.dtd"/>
<entity publicId="-//APACHE//DTD FAQ V1.1//EN"
location="${schemas.dir}/dtd/faq-v11.dtd"/>
<entity publicId="-//APACHE//DTD Changes V1.1//EN"
location="${schemas.dir}/dtd/changes-v11.dtd"/>
<entity publicId="-//APACHE//DTD Todo V1.1//EN"
location="${schemas.dir}/dtd/todo-v11.dtd"/>
<entity publicId="-//APACHE//DTD Cocoon Documentation Book V1.0//EN"
location="${schemas.dir}/dtd/book-cocoon-v10.dtd"/>
<entity publicId="-//APACHE//DTD Cocoon Documentation Tab V1.0//EN"
location="${schemas.dir}/dtd/tab-cocoon-v10.dtd"/>
<entity publicId="-//APACHE//DTD How-to V1.0//EN"
location="${schemas.dir}/dtd/howto-v10.dtd"/>
<entity publicId="-//APACHE//DTD Gump Descriptor V1.0//EN"
location="${schemas.dir}/dtd/xgump-draft.dtd"/>
<entity publicId="-//APACHE//DTD JavaDoc V1.0//EN"
location="${schemas.dir}/dtd/javadoc-v04draft.dtd"/>
<entity publicId="-//APACHE//DTD Contributors V1.0//EN"
location="${schemas.dir}/dtd/contributors-v10.dtd"/>
<entity publicId="-//Outerthought//DTD Libre Configuration V0.1//EN"
location="${schemas.dir}/dtd/libre-v01.dtd"/>
<entity publicId="-//APACHE//ENTITIES Documentation V1.1//EN"
location="${schemas.dir}/dtd/document-v11.mod"/>
<entity publicId="-//APACHE//ENTITIES FAQ V1.1//EN"
location="${schemas.dir}/dtd/faq-v11.mod"/>
<entity publicId="-//APACHE//ENTITIES Todo V1.1//EN"
location="${schemas.dir}/dtd/todo-v11.mod"/>
<entity publicId="-//APACHE//ENTITIES Common Elements V1.0//EN"
location="${schemas.dir}/dtd/common-elems-v10.mod"/>
<entity publicId="-//APACHE//ENTITIES Common Character Entity Sets V1.0//EN"
location="${schemas.dir}/dtd/common-charents-v10.mod"/>
<entity publicId="ISO 8879-1986//ENTITIES Added Latin 1//EN//XML"
location="${schemas.dir}/entity/ISOlat1.pen"/>
<entity publicId="ISO 9573-15:1993//ENTITIES Greek Letters//EN//XML"
location="${schemas.dir}/entity/ISOgrk1.pen"/>
<entity publicId="ISO 8879:1986//ENTITIES Publishing//EN//XML"
location="${schemas.dir}/entity/ISOpub.pen"/>
<entity publicId="ISO 8879:1986//ENTITIES General Technical//EN//XML"
location="${schemas.dir}/entity/ISOtech.pen"/>
<entity publicId="ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
location="${schemas.dir}/entity/ISOnum.pen"/>
<entity publicId="ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML"
location="${schemas.dir}/entity/ISOdia.pen"/>
<entity publicId="ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
location="${schemas.dir}/entity/ISOlat1.pen"/>
</xmlcatalog>
</xmlvalidate>
</target>
</project>