blob: 98b74c4999c27a501bfe3b60bd47fa9399d6850f [file] [log] [blame]
<!--
A p a c h e B a t i k B u i l d S y s t e m
Build Tools
..............................................................................
The Batik build system is based on Apache Ant, which is a Java building tool
used in Apache projects.
For more information refer to "http://jakarta.apache.org/ant/".
The distribution contains a precompiled version of Ant.
The only thing that you have to make sure, is the "JAVA_HOME" environment
property should be set to match the JVM you want to use.
Building Instructions
..............................................................................
First, make sure your current working directory is where this file is located.
Then type:
[unix] ./build.sh compile
[win32] .\build.bat compile
This action will compile the sources to the 'classes' directory.
You can now launch the SVG browser by typing:
[unix] ./build.sh svgbrowser
[win32] .\build.bat svgbrowser
Build Targets
..............................................................................
To display the available targets type:
[unix] ./build.sh help
[win32] .\build.bat help
$Id$
-->
<project default="help" basedir=".">
<!-- Initializations .................................................... -->
<target name="init-args" unless="args">
<property name="args" value=""/>
</target>
<target name="init" depends="init-args">
<tstamp/>
<property name="Project" value="Batik"/>
<property name="project" value="batik"/>
<property name="year" value="2001"/>
<property name="version" value="1.0beta2"/>
<property name="src" value="sources"/>
<property name="resources" value="resources"/>
<property name="testsrc" value="test-sources"/>
<property name="testresources" value="test-resources"/>
<property name="dest" value="classes"/>
<property name="build" value="${project}-${version}"/>
<property name="docs" value="${build}/docs"/>
<property name="lib" value="lib"/>
<property name="package-prefix" value="org/apache/${project}"/>
<property name="class-prefix" value="org.apache.${project}"/>
<property name="xdocs" value="xdocs"/>
<property name="skins" value="xdocs/skins"/>
<property name="stylebook-class" value="org.apache.stylebook.StyleBook"/>
<property name="site" value="../xml-site/targets/${project}"/>
<property name="site-skin" value="${skins}/xml.apache.org/"/>
<property name="print-skin" value="${skins}/printer/"/>
<property name="test-reports" value="test-reports" />
<property name="test-references" value="test-references" />
<available property="rhino.present" classname="org.mozilla.javascript.Context">
<classpath refid="libs-classpath"/>
</available>
<available property="jpython.present" classname="org.python.util.PythonInterpreter">
<classpath refid="libs-classpath"/>
</available>
<available property="jacl.present" classname="tcl.lang.Interp">
<classpath refid="libs-classpath"/>
</available>
</target>
<path id="libs-classpath">
<fileset dir="lib">
<include name="*.jar"/>
</fileset>
</path>
<path id="libs-build-classpath">
<fileset dir="lib/build">
<include name="*.jar"/>
</fileset>
</path>
<!-- Help ............................................................... -->
<target name ="help"
depends ="init"
description="Displays the usage">
<echo message=""/>
<echo message="${project} build file"/>
<echo message=""/>
<echo message=" Available targets are:"/>
<echo message=""/>
<echo message=" dist-zip --> build the zip distributions"/>
<echo message=" dist-tgz --> build the tgz distributions"/>
<echo message=" compile --> compiles the source code"/>
<echo message=" compiletest --> compiles the tests source code"/>
<echo message=" svgbrowser --> runs the SVG browser"/>
<echo message=" svgrasterizer --> runs the SVG rasterizer"/>
<echo message=" svgpp --> runs the SVG pretty-printer"/>
<echo message=" regard --> runs the regard regression utility"/>
<echo message=" runtestsuite --> runs a TestSuite, given an XML test suite document" />
<echo message=" javadoc --> generates the API documentation"/>
<echo message=" site --> generates the site documentation"/>
<echo message=" sitedoc --> generates the site documentation without"/>
<echo message=" the Javadoc"/>
<echo message=" html --> generates the site documentation in"/>
<echo message=" ${build}/docs/"/>
<echo message=" htmldoc --> generates the site documentation in"/>
<echo message=" ${build}/docs/ without the Javadoc"/>
<echo message=" printerdoc --> generates the printable documentation in"/>
<echo message=" ${build}/docs/print"/>
<echo message=" clean --> cleans up the directory"/>
<echo message=""/>
<echo message=" See the comments in the build.xml file for more details."/>
<echo message=""/>
<echo message=""/>
</target>
<!-- Build .............................................................. -->
<target name="dist-zip" depends="build"/>
<target name="build" depends="jars, html">
<delete dir="${build}/docs/images/BE"/>
<zip zipfile="${project}-docs-${version}.zip" basedir="${build}"
includes="docs/javadoc/**"/>
<delete dir="${build}/docs/javadoc"/>
<copy file="README" todir="${build}"/>
<copy file="LICENSE" todir="${build}"/>
<copy file="LICENSE.rhino" todir="${build}"/>
<copy todir="${build}/samples">
<fileset dir="samples"/>
</copy>
<zip zipfile="${build}/samples.zip" basedir="." includes="samples/**"/>
<zip zipfile="${project}-${version}.zip" basedir="." includes="${build}/**"/>
<cvs cvsRoot=":pserver:anoncvs@xml.apache.org:/home/cvspublic"
package="xml-batik"
dest="xml-${project}"/>
<zip zipfile="${project}-src-${version}.zip" basedir="." includes="xml-${project}"/>
</target>
<target name="dist-tgz" depends="build-tgz"/>
<target name="build-tgz" depends="jars, html">
<delete dir="${build}/docs/images/BE"/>
<tar tarfile="${project}-docs-${version}.tar" basedir="${build}"
includes="docs/javadoc/**"/>
<gzip zipfile="${project}-docs-${version}.tar.gz"
src="${project}-docs-${version}.tar"/>
<delete file="${project}-${version}.tar"/>
<delete dir="${build}/docs/javadoc"/>
<copy file="README" todir="${build}"/>
<copy file="LICENSE" todir="${build}"/>
<copy file="LICENSE.rhino" todir="${build}"/>
<copy todir="${build}/samples">
<fileset dir="samples"/>
</copy>
<tar tarfile="${build}/samples.tar" basedir="." includes="samples/**"/>
<gzip zipfile="${build}/samples.tar.gz" src="${build}/samples.tar"/>
<tar tarfile="${project}-${version}.tar" basedir="." includes="${build}/**"/>
<gzip zipfile="${project}-${version}.tar.gz" src="${project}-${version}.tar"/>
<delete file="${project}-docs-${version}.tar"/>
<cvs cvsRoot=":pserver:anoncvs@xml.apache.org:/home/cvspublic"
package="xml-batik"
dest="xml-${project}"/>
<tar tarfile="${project}-src-${version}.tar" basedir="." includes="xml-${project}"/>
<gzip zipfile="${project}-src-${version}.tar.gz"
src="${project}-src-${version}.tar"/>
<delete file="${project}-src-${version}.tar"/>
</target>
<!-- Compilation ........................................................ -->
<target name ="compiletest"
depends ="compile"
description="Compiles the tests infrastructure source files">
<mkdir dir="${dest}"/>
<javac srcdir="${testsrc}" destdir="${dest}" deprecation="on">
<classpath>
<pathelement location="${dest}" />
<path refid="libs-classpath"/>
<path refid="libs-build-classpath"/>
</classpath>
</javac>
</target>
<target name ="compile"
depends ="init"
description="Compiles the source files">
<mkdir dir="${dest}"/>
<javac srcdir="${src}" destdir="${dest}" deprecation="on">
<classpath refid="libs-classpath"/>
<exclude name="**/*.html"/>
<exclude name="**/rhino*" unless="rhino.present"/>
<exclude name="**/jpython*" unless="jpython.present"/>
<exclude name="**/jacl*" unless="jacl.present"/>
</javac>
</target>
<target name="clean-compile"
depends="init"
description="Cleans the files generated by compile">
<delete dir="${dest}"/>
</target>
<target name="clean-apache"
depends="init"
description="Cleans the Apache files generated by compile">
<delete dir="${dest}/org/apache"/>
</target>
<!-- Jars ............................................................... -->
<target name="prepare-build">
<mkdir dir="${build}"/>
<mkdir dir="${build}/docs"/>
<mkdir dir="${build}/lib"/>
</target>
<!-- Generates all the jars except all-jar -->
<target name="jars" depends="ext-jar,
util-jar,
awt-util-jar,
gui-util-jar,
dom-jar,
css-jar,
svg-dom-jar,
gvt-jar,
parser-jar,
script-jar,
transcoder-jar,
bridge-jar,
xml-jar,
root-jar,
svg-pp-jar,
svggen-jar,
svg-browser-jar,
rasterizer-jar">
<copy todir="${build}/lib">
<fileset dir="${lib}">
<include name="*.jar"/>
</fileset>
</copy>
</target>
<!-- All batik in a jar (dependencies: none) -->
<target name="all-jar" depends="compile, prepare-build">
<jar jarfile="${build}/lib/${project}-all.jar">
<fileset dir="${dest}">
<include name="**"/>
</fileset>
<fileset dir="${resources}">
<include name="**"/>
</fileset>
</jar>
</target>
<!-- External packages (dependencies: none) -->
<target name="ext-jar" depends="compile, prepare-build">
<jar jarfile="${build}/lib/${project}-ext.jar">
<fileset dir="${dest}">
<include name="org/w3c/**"/>
<include name="org/xml/**"/>
</fileset>
</jar>
</target>
<!-- Util, i18n (dependencies: none) -->
<target name="util-jar" depends="compile, prepare-build">
<jar jarfile="${build}/lib/${project}-util.jar">
<fileset dir="${dest}">
<include name="${package-prefix}/i18n/*.class"/>
<include name="${package-prefix}/util/*.class"/>
<include name="${package-prefix}/util/resources/*.class"/>
<include name="${package-prefix}/util/svg/*.class"/>
</fileset>
<fileset dir="${resources}">
<include name="${package-prefix}/util/resources/**"/>
<include name="${package-prefix}/util/svg/resources/**"/>
</fileset>
</jar>
</target>
<!-- AWT Util (dependencies: none) -->
<target name="awt-util-jar" depends="compile, prepare-build">
<jar jarfile="${build}/lib/${project}-awt-util.jar">
<fileset dir="${dest}">
<include name="${package-prefix}/ext/awt/**/*.class"/>
</fileset>
</jar>
</target>
<!-- SVGGraphics2D (dependencies: util) -->
<target name="svggen-jar" depends="compile, prepare-build">
<jar jarfile="${build}/lib/${project}-svggen.jar">
<fileset dir="${dest}">
<include name="${package-prefix}/svggen/**/*.class"/>
</fileset>
</jar>
</target>
<!-- GUI Util (dependencies: none) -->
<target name="gui-util-jar" depends="compile, prepare-build">
<jar jarfile="${build}/lib/${project}-gui-util.jar">
<fileset dir="${dest}">
<include name="${package-prefix}/util/gui/**/*.class"/>
</fileset>
<fileset dir="${resources}">
<include name="${package-prefix}/util/gui/**/resources/**"/>
</fileset>
</jar>
</target>
<!-- DOM Level 2 (dependencies: ext, util) -->
<target name="dom-jar" depends="compile, prepare-build">
<jar jarfile="${build}/lib/${project}-dom.jar">
<fileset dir="${dest}">
<include name="${package-prefix}/dom/*.class"/>
<include name="${package-prefix}/dom/events/*.class"/>
<include name="${package-prefix}/dom/traversal/*.class"/>
<include name="${package-prefix}/dom/util/*.class"/>
</fileset>
<fileset dir="${resources}">
<include name="${package-prefix}/dom/resources/*"/>
<include name="${package-prefix}/dom/events/resources/**"/>
<include name="${package-prefix}/dom/traversal/resources/**"/>
<include name="${package-prefix}/dom/util/resources/**"/>
</fileset>
</jar>
</target>
<!-- CSS Engine (dependencies: ext, util) -->
<target name="css-jar" depends="compile, prepare-build">
<jar jarfile="${build}/lib/${project}-css.jar">
<fileset dir="${dest}">
<include name="${package-prefix}/css/*.class"/>
<include name="${package-prefix}/css/event/*.class"/>
<include name="${package-prefix}/css/parser/*.class"/>
<include name="${package-prefix}/css/sac/*.class"/>
<include name="${package-prefix}/css/value/*.class"/>
</fileset>
<fileset dir="${resources}">
<include name="${package-prefix}/css/resources/**"/>
<include name="${package-prefix}/css/event/resources/**"/>
<include name="${package-prefix}/css/parser/resources/**"/>
<include name="${package-prefix}/css/sac/resources/**"/>
<include name="${package-prefix}/css/value/resources/**"/>
</fileset>
</jar>
</target>
<!-- SVG DOM (dependencies: ext, DOM, CSS, util) -->
<target name="svg-dom-jar" depends="compile, prepare-build">
<jar jarfile="${build}/lib/${project}-svg-dom.jar">
<fileset dir="${dest}">
<include name="${package-prefix}/dom/svg/*.class"/>
<include name="${package-prefix}/css/svg/*.class"/>
</fileset>
<fileset dir="${resources}">
<include name="${package-prefix}/dom/svg/resources/**"/>
<include name="${package-prefix}/css/svg/resources/**"/>
</fileset>
</jar>
</target>
<!-- GVT (dependencies: util, awt-util) -->
<target name="gvt-jar" depends="compile, prepare-build">
<jar jarfile="${build}/lib/${project}-gvt.jar">
<fileset dir="${dest}">
<include name="${package-prefix}/gvt/**/*.class"/>
</fileset>
<fileset dir="${resources}">
<include name="${package-prefix}/gvt/**/resources/*"/>
</fileset>
</jar>
</target>
<!-- Parser (dependencies: util) -->
<target name="parser-jar" depends="compile, prepare-build">
<jar jarfile="${build}/lib/${project}-parser.jar">
<fileset dir="${dest}">
<include name="${package-prefix}/parser/**/*.class"/>
</fileset>
<fileset dir="${resources}">
<include name="${package-prefix}/parser/**/resources/*"/>
</fileset>
</jar>
</target>
<!-- Script (dependencies: util) -->
<target name="script-jar" depends="compile, prepare-build">
<jar jarfile="${build}/lib/${project}-script.jar">
<fileset dir="${dest}">
<include name="${package-prefix}/script/**/*.class"/>
</fileset>
<fileset dir="${resources}">
<include name="${package-prefix}/script/**/resources/*"/>
</fileset>
</jar>
</target>
<!-- Transcoder (dependencies: all) -->
<target name="transcoder-jar" depends="compile, prepare-build">
<jar jarfile="${build}/lib/${project}-transcoder.jar">
<fileset dir="${dest}">
<include name="${package-prefix}/transcoder/**/*.class"/>
</fileset>
<fileset dir="${resources}">
<include name="${package-prefix}/transcoder/**/resources/*"/>
</fileset>
</jar>
</target>
<!-- XML (dependencies: util) -->
<target name="xml-jar" depends="compile, prepare-build">
<jar jarfile="${build}/lib/${project}-xml.jar">
<fileset dir="${dest}">
<include name="${package-prefix}/xml/**/*.class"/>
</fileset>
<fileset dir="${resources}">
<include name="${package-prefix}/xml/**/resources/*"/>
</fileset>
</jar>
</target>
<!-- Bridge (dependencies: all) -->
<target name="bridge-jar" depends="compile, prepare-build">
<jar jarfile="${build}/lib/${project}-bridge.jar">
<fileset dir="${dest}">
<include name="${package-prefix}/bridge/**/*.class"/>
<include name="${package-prefix}/swing/**/*.class"/>
</fileset>
<fileset dir="${resources}">
<include name="${package-prefix}/bridge/**/resources/*"/>
<include name="${package-prefix}/swing/**/resources/*"/>
</fileset>
</jar>
</target>
<!-- SVG Pretty-printer (dependencies: ???) -->
<target name="svg-pp-jar" depends="compile, prepare-build">
<jar manifest="${src}/${project}-pp.mf"
jarfile="${build}/${project}-svgpp.jar">
<fileset dir="${dest}">
<include name="${package-prefix}/apps/svgpp/**/*.class"/>
</fileset>
<fileset dir="${resources}">
<include name="${package-prefix}/apps/svgpp/**/resources/**"/>
</fileset>
</jar>
</target>
<!-- SVG Browser (dependencies: all) -->
<target name="svg-browser-jar" depends="compile, prepare-build">
<jar manifest="${src}/${project}-browser.mf"
jarfile="${build}/${project}-svgbrowser.jar">
<fileset dir="${dest}">
<include name="${package-prefix}/apps/svgbrowser/**/*.class"/>
<include name="${package-prefix}/experiment/**/*.class"/>
</fileset>
<fileset dir="${resources}">
<include name="${package-prefix}/apps/svgbrowser/**/resources/**"/>
</fileset>
</jar>
</target>
<!-- Rasterizer (dependencies: all except GUI util) -->
<target name="rasterizer-jar" depends="compile, prepare-build">
<jar manifest="${src}/${project}-rasterizer.mf"
jarfile="${build}/${project}-rasterizer.jar">
<fileset dir="${dest}">
<include name="${package-prefix}/apps/rasterizer/**/*.class"/>
</fileset>
<fileset dir="${resources}">
<include name="${package-prefix}/apps/rasterizer/**/resources/**"/>
</fileset>
</jar>
</target>
<!-- batik.jar (dependencies: all) -->
<target name="root-jar" depends="compile, prepare-build">
<jar manifest="${src}/${project}.mf"
jarfile="${build}/${project}.jar"/>
</target>
<!-- Applications ....................................................... -->
<target name="svgbrowser"
depends="compile"
description="Runs the SVG browser">
<java fork="yes"
classname="${class-prefix}.apps.svgbrowser.Main">
<classpath>
<pathelement location="${dest}" />
<path refid="libs-classpath"/>
<pathelement location="resources" />
</classpath>
<arg line="${args}"/>
</java>
</target>
<target name="svgrasterizer"
depends="compile"
description="Runs the SVG rasterizer">
<java fork="yes"
classname="${class-prefix}.apps.rasterizer.Main">
<classpath>
<pathelement location="${dest}" />
<path refid="libs-classpath"/>
<pathelement location="resources" />
</classpath>
<arg line="${args}"/>
</java>
</target>
<target name="svgpp"
depends="compile"
description="Runs the SVG pretty-printer">
<java fork="yes"
classname="${class-prefix}.apps.svgpp.Main">
<classpath>
<pathelement location="${dest}" />
<path refid="libs-classpath"/>
<pathelement location="resources" />
</classpath>
<arg line="${args}"/>
</java>
</target>
<target name="testdirs"
description="Created directories needed for test suite">
<mkdir dir="${test-reports}"/>
<mkdir dir="${test-references}/samples/accepted-variation"/>
<mkdir dir="${test-references}/samples/candidate-variation"/>
<mkdir dir="${test-references}/samples/tests/accepted-variation"/>
<mkdir dir="${test-references}/samples/tests/candidate-variation"/>
<mkdir dir="${test-references}/svgbe/accepted-variation"/>
<mkdir dir="${test-references}/svgbe/candidate-variation"/>
<mkdir dir="${test-references}/org/apache/batik/svggen/candidate-ref" />
</target>
<target name="regard"
depends="compiletest, testdirs"
description="Runs test suite whose file or uri is passed as an input">
<java fork="yes"
classname="${class-prefix}.test.xml.XMLTestSuiteRunner"
jvmargs="-DproxyHost=webcache.eng.sun.com -DproxyPort=8080">
<classpath>
<pathelement location="${dest}" />
<path refid="libs-classpath"/>
<path refid="libs-build-classpath"/>
<pathelement location="resources" />
<pathelement location="test-resources" />
</classpath>
<arg line="test-resources/org/apache/batik/test/regard.xml"/>
</java>
</target>
<target name="runtestsuite"
depends="compiletest, testdirs"
description="Runs test suite whose file or uri is passed as an input">
<mkdir dir="${test-reports}"/>
<java fork="yes"
classname="${class-prefix}.test.xml.XMLTestSuiteRunner"
jvmargs="-DproxyHost=webcache.eng.sun.com -DproxyPort=8080">
<classpath>
<pathelement location="${dest}" />
<path refid="libs-classpath"/>
<path refid="libs-build-classpath"/>
<pathelement location="resources" />
<pathelement location="test-resources" />
</classpath>
<arg line="${args}"/>
</java>
</target>
<target name="regsvggen"
depends="compile"
description="Runs the SVG generator regression utility">
<java fork="yes"
classname="${class-prefix}.apps.regsvggen.Main">
<classpath>
<path refid="libs-classpath"/>
<pathelement location="${dest}" />
<pathelement location="resources" />
<pathelement location="regsvggen/classes" />
</classpath>
<arg line="${args}"/>
</java>
</target>
<!-- Documentation ...................................................... -->
<target name="prepare-docs" depends="init">
<mkdir dir="${docs}"/>
</target>
<target name="html" depends="javadoc, htmldoc"/>
<target name="htmldoc" depends="prepare-docs">
<copy file="${xdocs}/site-book.xml"
tofile="${xdocs}/book.xml"
filtering="on"/>
<java classname="${stylebook-class}" fork="yes">
<classpath refid="libs-build-classpath"/>
<arg line="targetDirectory=${docs} ${xdocs}/book.xml ${site-skin}"/>
</java>
</target>
<target name="printerdoc" depends="prepare-docs">
<mkdir dir="${docs}/print"/>
<copy file="${xdocs}/docs-book.xml"
tofile="${xdocs}/book.xml"
filtering="on"/>
<java classname="${stylebook-class}" fork="yes">
<classpath refid="libs-build-classpath"/>
<arg line="targetDirectory=${docs}/print ${xdocs}/book.xml ${print-skin}"/>
</java>
</target>
<target name="site" depends="site-javadoc, sitedoc"/>
<target name="sitedoc" depends="init">
<copy file="${xdocs}/site-book.xml"
tofile="${xdocs}/book.xml"
filtering="on"/>
<java classname="${stylebook-class}" fork="yes">
<classpath refid="libs-build-classpath"/>
<arg line="targetDirectory=${site} ${xdocs}/book.xml ${site-skin}"/>
</java>
</target>
<target name="site-javadoc" depends="javadoc">
<mkdir dir="${site}"/>
<copy todir="${site}/javadoc">
<fileset dir="${docs}/javadoc"/>
</copy>
</target>
<target name="javadocs" depends="javadoc"/>
<target name="javadoc" depends="prepare-docs">
<mkdir dir="${docs}/javadoc"/>
<javadoc packagenames="${class-prefix}.*,
org.xml.*,
org.w3c.css.*,
org.w3c.dom.*"
sourcepath="${src}"
destdir="${docs}/javadoc"
author="false"
version="false"
use="true"
windowtitle="${Project} Javadoc"
doctitle="${Project} API Specification"
bottom="Copyright &#169; ${year} Apache Software Foundation. All Rights Reserved.">
<classpath refid="libs-classpath"/>
</javadoc>
</target>
<target name="clean-docs" depends="init">
<delete dir="${docs}"/>
</target>
<!-- Cleans everything .................................................. -->
<target name="clean"
depends="clean-compile, clean-docs"
description="Cleans everything">
<delete dir="${build}"/>
<delete file="${project}-${version}.zip"/>
<delete file="${project}-docs-${version}.zip"/>
<delete file="${project}-src-${version}.zip"/>
<delete file="${project}-${version}.tar.gz"/>
<delete file="${project}-docs-${version}.tar.gz"/>
<delete file="${project}-src-${version}.tar.gz"/>
</target>
</project>