<!--


              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.1"/>

    <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="stylebook*.jar"/>
      <include name="xalan*.jar"/>
      <include name="xerces*.jar"/>
      <include name="mail*.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="   ttf2svg       --> converts selected glyphs from a True Type"/>
    <echo message="                     Font file to the SVG Font format"/>
    <echo message="   regard        --> runs the regard regression utility"/>
    <echo message="   runtestsuite  --> runs a TestSuite, given an XML test suite"/>
    <echo message="                     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>
    <delete file="${build}/samples/tests/bboxOnText.svg" />
    <zip zipfile="${project}-${version}.zip" basedir="." includes="${build}/**"/> 

    <zip zipfile="${project}-src-${version}.zip" basedir=".." 
         includes="xml-${project}/**" excludes="xml-${project}/test-references/**">
        <exclude name="xml-${project}/${project}-src-${version}.zip" />
        <exclude name="xml-${project}/classes/**" />
    </zip>


  </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="${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@cvs.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,
                               extension-jar,
                               xml-jar,
                               root-jar,
                               svg-pp-jar,
                               svggen-jar,
                               svg-browser-jar,
                               rasterizer-jar,
                               ttf2svg-jar">
    <copy todir="${build}/lib">
      <fileset dir="${lib}">
        <include name="*.jar"/>
      </fileset>
    </copy>
  </target>


  <!-- All batik in a single jar (dependencies: none) -->
  <target name="all-jar" depends="compile, prepare-build">
    <jar jarfile="${build}/lib/${project}-all.jar">
      <fileset dir="${dest}" excludes="**/CVS">
        <include name="**"/>
      </fileset>
      <fileset dir="${resources}" excludes="${resources}/**/CVS">
        <include name="**"/>
      </fileset>
    </jar>
  </target>


  <!-- All batik in a single jar, without SAX and DOM bindings
       (dependencies: batik-ext.jar) -->
  <target name="libs-jar" depends="compile, prepare-build">
    <jar jarfile="${build}/lib/${project}-libs.jar">
      <fileset dir="${dest}" excludes="**/CVS">
        <include name="org/apache/batik/**"/>
        <include name="org/w3c/css/sac/**"/>
        <include name="org/w3c/dom/smil/**"/>
        <include name="org/w3c/dom/svg/**"/>
      </fileset>
      <fileset dir="${resources}" excludes="${resources}/**/CVS">
        <include name="**"/>
      </fileset>
    </jar>
  </target>


  <!-- What is needed to the JSVGCanvas bean in a jar,
       including the XML parser -->
  <target name="bean" depends="compile, prepare-build">
    <mkdir dir="${build}/tmp"/>
    <unjar src="lib/crimson-parser.jar" dest="${build}/tmp"/>
    <jar jarfile="${build}/lib/${project}-bean.jar"
         manifest="${src}/${project}-bean.mf">
      <fileset dir="${dest}">
        <include name="org/w3c/**"/>
        <include name="org/xml/**"/>
        <include name="${package-prefix}/bridge/*.class"/>
        <include name="${package-prefix}/css/**/*.class"/>
        <include name="${package-prefix}/dom/**/*.class"/>
        <include name="${package-prefix}/ext/**/*.class"/>
        <include name="${package-prefix}/gvt/**/*.class"/>
        <include name="${package-prefix}/i18n/**/*.class"/>
        <include name="${package-prefix}/parser/**/*.class"/>
        <include name="${package-prefix}/script/**/*.class"/>
        <include name="${package-prefix}/swing/**/*.class"/>
        <include name="${package-prefix}/util/*.class"/>
        <include name="${package-prefix}/xml/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="${resources}/**/CVS">
        <include name="${package-prefix}/bridge/**"/>
        <include name="${package-prefix}/css/**"/>
        <include name="${package-prefix}/dom/**"/>
        <include name="${package-prefix}/ext/**"/>
        <include name="${package-prefix}/parser/**"/>
        <include name="${package-prefix}/swing/**"/>
        <include name="${package-prefix}/util/resources/**"/>
      </fileset>
      <fileset dir="${build}/tmp">
        <include name="org/**"/>
      </fileset>
    </jar>
    <delete dir="${build}/tmp"/>
  </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}" excludes="${resources}/**/CVS">
        <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"/>
        <include name="${package-prefix}/ext/swing/**/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="${resources}/**/CVS">
        <include name="${package-prefix}/ext/awt/image/**"/>
        <include name="${package-prefix}/ext/swing/**"/>
      </fileset>
    </jar>
  </target>


  <!-- SVGGraphics2D (dependencies: util, awt-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>
      <fileset dir="${resources}" excludes="${resources}/**/CVS">
        <include name="${package-prefix}/svggen/font/resources/**"/>
      </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}" excludes="${resources}/**/CVS">
        <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}" excludes="${resources}/**/CVS">
        <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}" excludes="${resources}/**/CVS">
        <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}" excludes="${resources}/**/CVS">
        <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}" excludes="${resources}/**/CVS">
        <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}" excludes="${resources}/**/CVS">
        <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}" excludes="${resources}/**/CVS">
        <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}" excludes="${resources}/**/CVS">
        <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}" excludes="${resources}/**/CVS">
        <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}" excludes="${resources}/**/CVS">
        <include name="${package-prefix}/bridge/BrokenLink.svg"/>
        <include name="${package-prefix}/bridge/**/resources/*"/>
        <include name="${package-prefix}/swing/**/resources/*"/>
      </fileset>
    </jar>
  </target>

  <!-- Extensions (dependencies: all) -->
  <target name="extension-jar" depends="compile, prepare-build">
    <jar jarfile="${build}/lib/${project}-extension.jar">
      <fileset dir="${resources}" excludes="${resources}/**/CVS">
        <include name="META-INF/services/*"/>
      </fileset>
      <fileset dir="${dest}">
        <include name="${package-prefix}/extension/**/*.class"/>
      </fileset>
      <fileset dir="${resources}" excludes="${resources}/**/CVS">
        <include name="${package-prefix}/extension/**/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}" excludes="${resources}/**/CVS">
        <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}" excludes="${resources}/**/CVS">
        <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}" excludes="${resources}/**/CVS">
        <include name="${package-prefix}/apps/rasterizer/**/resources/**"/>
      </fileset>
    </jar>
  </target>

  <!-- batik-ttf2svg.jar (dependencies: all) -->
  <target name="ttf2svg-jar" depends="compile, prepare-build">
    <jar manifest="${src}/${project}-ttf2svg.mf"
         jarfile="${build}/${project}-ttf2svg.jar">
      <fileset dir="${dest}">
        <include name="${package-prefix}/apps/ttf2svg/**/*.class"/>
      </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}/samples/extensions/accepted-variation"/>
    <mkdir dir="${test-references}/samples/extensions/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="ttf2svg"
          depends="compile, testdirs"
          description="converts selected glyphs from a True Type Font file to the SVG Font format" >
    <java fork="yes"
          classname="${class-prefix}.apps.ttf2svg.Main">
      <classpath>
        <pathelement location="${dest}" />
        <path refid="libs-classpath"/>
        <pathelement location="resources" />
      </classpath>
      <arg line="${args}"/>
    </java>
  </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">
      <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">
      <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>

  <!-- 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>
