Jskad/build.xml
dchandler 5cfd45cf32 Formatted to 80 columns in honor of the punch card.
Added BinaryFileGenerator to the DictionarySearchStandalone JAR at
Andres' request.
2002-10-12 03:11:51 +00:00

709 lines
26 KiB
XML

<!-- @author David Chandler -->
<!--
Quick start: This buildfile looks for the following, which are not in
the CVS repository:
extensions/jdom.jar
extensions/xalan.jar
extensions/xercesImpl.jar
extensions/xml-apis.jar
extensions/jmf.jar
See the developers site, linked to from http://thdltools.sf.net/, for
info on where to find these.
-->
<project name="THDLTools" default="dist" basedir=".">
<description>
This Jakarta Ant buildfile is used to build Jskad, Savant,
QuillDriver, and the Translation Tool. The docs at
http://thdltools.sf.net/api are created using this buildfile, for
example. Read the comments of this buildfile to learn more.
</description>
<!-- set global properties for this build -->
<property name="javacdashg" value="yes"/>
<property name="source" location="source"/>
<property name="license" location="license"/>
<property name="bin" location="bin"/>
<property name="jskadbin" location="bin/jskad"/>
<property name="qdbin" location="bin/qd"/>
<property name="ttstandalonebin" location="bin/tt-standalone"/>
<property name="ttappletjwsbin" location="bin/tt-applet-and-java-web-start"/>
<property name="tthandheldbin" location="bin/tt-handheld"/>
<property name="ttservletbin" location="bin/tt-servlet"/>
<property name="savantbin" location="bin/savant"/>
<property name="docs" location="docs"/>
<property name="dist" location="dist"/>
<property name="ext" location="extensions"/>
<property name="publicjavadocs" location="${docs}/public-javadocs"/>
<property name="privatejavadocs" location="${docs}/private-javadocs"/>
<property name="j2ee.sdk.home" location="F:\Program Files\j2sdkee1.3.1\lib"/>
<!-- Set to false for less output when running the tools: -->
<property name="thdl.debug" value="true"/>
<!-- Set to true if you want the code to abort when it reaches
poorly thought-out control flow paths (i.e., iffy code). -->
<property name="thdl.die.on.iffy" value="true"/>
<!-- Set to the name of the dictionary used by the Translation Tool: -->
<property name="arch.dict" value="architecture_dictionary"/>
<!-- Set this to 1.2 if you want J2SDK 1.4's default. 1.1 gives us
more compatibility, but maybe there will be a performance hit
or something. -->
<property name="target.jvm" value="1.1"/>
<!-- To easily add a jar to the CLASSPATH, just drop it into
'extensions/drop-ins/'. -->
<path id="entire.class.path">
<pathelement location="${ext}/"/> <!-- for netscape.javascript -->
<!-- Developers: although these JARs are not yet in CVS, you're
responsible for finding them and putting them into
'extensions/': -->
<pathelement location="${ext}/jdom.jar"/>
<pathelement location="${ext}/xalan.jar"/>
<pathelement location="${ext}/xercesImpl.jar"/>
<pathelement location="${ext}/xml-apis.jar"/>
<pathelement location="${ext}/jmf.jar"/>
<fileset dir="${j2ee.sdk.home}">
<include name="j2ee.jar"/>
</fileset>
<!-- this gets Ant's jars, so leave it out:
<pathelement path="${java.class.path}/"/> -->
<fileset dir="${ext}/drop-ins">
<include name="*.jar"/>
<include name="*.JAR"/>
</fileset>
<!-- Developers: set this on the ant command line if you need to
with 'ant -Dadditional.class.path="c:\foo"': -->
<pathelement path="${additional.class.path}"/>
</path>
<target name="init">
<!-- Create the time stamp -->
<tstamp/>
<!-- Create the build directory structure used by compile -->
<mkdir dir="${dist}"/>
<mkdir dir="${dist}/lib"/>
<mkdir dir="${dist}/source"/>
<mkdir dir="${bin}"/>
<mkdir dir="${jskadbin}"/>
<mkdir dir="${qdbin}"/>
<mkdir dir="${ttstandalonebin}"/>
<mkdir dir="${tthandheldbin}"/>
<mkdir dir="${ttservletbin}"/>
<mkdir dir="${ttappletjwsbin}"/>
<mkdir dir="${savantbin}"/>
<mkdir dir="${publicjavadocs}"/>
<mkdir dir="${privatejavadocs}"/>
</target>
<target name="test-all"
depends="clean,distclean,compile,dist,src-dist,self-contained-dist,public-javadocs-dist,private-javadocs-dist,releases"
description="runs every target in this buildfile in a smart order; useful for testing the buildfile and your build environment" />
<!-- DLC FIXME: generate as-nearly-self-contained-as-possible Savant
and QuillDriver -->
<target name="self-contained-dist"
depends="jskad-all-in-one-dist"
description="JARs up everything into self-contained JARs for double-click, classpath-worry-free joy" />
<target name="dist"
depends="jskad-dist,savant-dist,qd-dist,tt-handheld-dist,tt-standalone-dist,tt-applet-plus-jws-dist"
description="JARs up everything" />
<!-- Don't compile tt-servlet by default, since not everyone has the
J2EE SDK installed: -->
<target name="compile"
depends="jskad-compile,savant-compile,qd-compile,tt-standalone-compile,tt-handheld-compile,tt-applet-plus-jws-compile"
description="compiles all programs except for those that are for J2EE (rather than J2SE)" />
<target name="jskad-compile" depends="init"
description="compiles Jskad" >
<antcall target="our-internal-javac-task">
<param name="mybin" value="${jskadbin}"/>
<param name="my.included.source.file"
value="org/thdl/tib/input/Jskad.java"/>
</antcall>
<antcall target="copy-ini-files-to-bin-dir-for-jarring">
<param name="mybin" value="${jskadbin}"/>
</antcall>
<antcall target="copy-license-to-bin-dir-for-jarring">
<param name="mybin" value="${jskadbin}"/>
</antcall>
</target>
<target name="savant-compile" depends="init"
description="compiles Savant" >
<antcall target="our-internal-javac-task">
<param name="mybin" value="${savantbin}"/>
<param name="my.included.source.file"
value="org/thdl/savant/SavantShell.java"/>
</antcall>
<!-- Copy the .rtf files; they're needed resources: -->
<copy todir="${savantbin}/org/thdl/savant">
<fileset dir="${source}">
<include name="*savant*"/>
</fileset>
</copy>
<antcall target="copy-ini-files-to-bin-dir-for-jarring">
<param name="mybin" value="${savantbin}"/>
</antcall>
<antcall target="copy-license-to-bin-dir-for-jarring">
<param name="mybin" value="${savantbin}"/>
</antcall>
</target>
<!-- Builds the standalone translation tool: -->
<target name="tt-standalone-compile" depends="init"
description="compiles the standalone Translation Tool" >
<antcall target="our-internal-javac-task">
<param name="mybin" value="${ttstandalonebin}"/>
<param name="my.included.source.file"
value="org/thdl/tib/scanner/BinaryFileGenerator.java"/>
</antcall>
<antcall target="our-internal-javac-task">
<param name="mybin" value="${ttstandalonebin}"/>
<param name="my.included.source.file"
value="org/thdl/tib/scanner/WindowScannerFilter.java"/>
</antcall>
<antcall target="copy-ini-files-to-bin-dir-for-jarring">
<param name="mybin" value="${ttstandalonebin}"/>
</antcall>
<antcall target="copy-license-to-bin-dir-for-jarring">
<param name="mybin" value="${ttstandalonebin}"/>
</antcall>
</target>
<!-- Builds the translation tool for handhelds. This tells J2SDK
1.4 to compile for handhelds (-target 1.1 does the trick).
Compiling with J2SDK 1.3 does so by default, by the way. -->
<target name="tt-handheld-compile" depends="init"
description="compiles the handheld Translation Tool" >
<antcall target="our-internal-javac-task">
<param name="target.jvm" value="1.1"/>
<param name="mybin" value="${tthandheldbin}"/>
<param name="my.included.source.file"
value="org/thdl/tib/scanner/WindowScannerFilter.java"/>
</antcall>
<antcall target="copy-license-to-bin-dir-for-jarring">
<param name="mybin" value="${tthandheldbin}"/>
</antcall>
</target>
<!-- Builds the applet + the Java Web Start translation tool: -->
<target name="tt-applet-plus-jws-compile" depends="init"
description="compiles the applet + Java Web Start forms of the Translation Tool" >
<antcall target="our-internal-javac-task">
<param name="mybin" value="${ttappletjwsbin}"/>
<param name="my.included.source.file"
value="org/thdl/tib/scanner/AppletScannerFilter.java"/>
</antcall>
<antcall target="our-internal-javac-task">
<param name="mybin" value="${ttappletjwsbin}"/>
<param name="my.included.source.file"
value="org/thdl/tib/scanner/WindowScannerFilter.java"/>
</antcall>
<antcall target="copy-ini-files-to-bin-dir-for-jarring">
<param name="mybin" value="${ttappletjwsbin}"/>
</antcall>
<antcall target="copy-license-to-bin-dir-for-jarring">
<param name="mybin" value="${ttappletjwsbin}"/>
</antcall>
</target>
<target name="tt-servlet-compile" depends="init"
description="compiles the servlet form of the Translation Tool. You'd better set the j2ee.sdk.home property first or have j2ee.jar on your CLASSPATH, because this is a J2EE program." >
<antcall target="our-internal-javac-task">
<param name="mybin" value="${ttservletbin}"/>
<param name="my.included.source.file"
value="org/thdl/tib/scanner/ConsoleScannerFilter.java"/>
</antcall>
<antcall target="copy-license-to-bin-dir-for-jarring">
<param name="mybin" value="${ttbin}"/>
</antcall>
</target>
<target name="qd-compile" depends="init"
description="compiles QuillDriver" >
<!-- Compile the java code from ${source} into ${qdbin} -->
<antcall target="our-internal-javac-task">
<param name="mybin" value="${qdbin}"/>
<param name="my.included.source.file"
value="org/thdl/quilldriver/QDShell.java"/>
</antcall>
<!-- Copy over QuillDriver-specific resources: -->
<copy todir="${qdbin}">
<fileset dir="${source}">
<include name="MessageBundle*"/>
<include name="**/*.gif"/>
<include name="**/*.jpg"/>
</fileset>
</copy>
<antcall target="copy-ini-files-to-bin-dir-for-jarring">
<param name="mybin" value="${qdbin}"/>
</antcall>
<antcall target="copy-license-to-bin-dir-for-jarring">
<param name="mybin" value="${qdbin}"/>
</antcall>
</target>
<target name="src-dist" depends="init"
description="generates the full Jskad+Savant+QuillDriver+Translation Tool source distribution" >
<!-- Put everything necessary into the zip file -->
<zip destfile="${dist}/source/THDL-Tools-src-${DSTAMP}.zip">
<zipfileset dir="${source}"
includes="**"
prefix="source"/>
<zipfileset dir="${license}"
includes="*"
prefix="."/>
<zipfileset dir="."
includes="build.xml"
prefix="."/>
<zipfileset dir="."
includes="docs/*package-list/**"
prefix="."/>
</zip>
</target>
<target name="jskad-dist" depends="jskad-compile"
description="generates the bare Jskad binary distribution" >
<!-- Put everything in ${jskadbin} into the JAR file -->
<jar jarfile="${dist}/lib/Jskad-${DSTAMP}.jar"
basedir="${jskadbin}">
<manifest>
<attribute name="Main-Class" value="org.thdl.tib.input.Jskad"/>
</manifest>
</jar>
</target>
<!-- FIXME: generate translation tool servlet distribution -->
<target name="tt-standalone-dist" depends="tt-standalone-compile"
description="generates the standalone translation tool's binary distribution." >
<!-- Put everything in ${ttstandalonebin} into the JAR file -->
<jar jarfile="${dist}/lib/DictionarySearchStandalone-${DSTAMP}.jar"
basedir="${ttstandalonebin}">
<manifest>
<attribute name="Main-Class"
value="org.thdl.tib.scanner.WindowScannerFilter"/>
</manifest>
</jar>
</target>
<target name="tt-handheld-dist" depends="tt-handheld-compile"
description="generates the handheld translation tool's binary distribution." >
<!-- Put everything in ${tthandheldbin} into the JAR file -->
<jar jarfile="${dist}/lib/DictionarySearchHandheld-${DSTAMP}.jar"
basedir="${tthandheldbin}">
<manifest>
<attribute name="Main-Class"
value="org.thdl.tib.scanner.WindowScannerFilter"/>
</manifest>
</jar>
</target>
<target name="tt-applet-plus-jws-dist" depends="tt-applet-plus-jws-compile"
description="generates the applet-plus-jws translation tool's binary distribution." >
<!-- Put everything in ${ttappletjwsbin} into the JAR file -->
<jar jarfile="${dist}/lib/DictionarySearchAppletAndJavaWebStart-${DSTAMP}.jar"
basedir="${ttappletjwsbin}">
<!-- We have two choices here, but the web page will call for
AppletScannerFilter, so the double-click should open the
standalone version, WindowScannerFilter: -->
<manifest>
<attribute name="Main-Class"
value="org.thdl.tib.scanner.WindowScannerFilter"/>
</manifest>
</jar>
</target>
<target name="tt-servlet-dist" depends="tt-servlet-compile"
description="generates the servlet translation tool's binary distribution." >
<!-- Put everything in ${ttservletbin} into the JAR file -->
<jar jarfile="${dist}/lib/DictionarySearchServlet-${DSTAMP}.jar"
basedir="${ttservletbin}">
<!-- I don't think this'll work (I don't know servlets, mind
you), but the main class is the following, so why not: -->
<manifest>
<attribute name="Main-Class"
value="org.thdl.tib.scanner.ConsoleScannerFilter"/>
</manifest>
</jar>
</target>
<target name="savant-dist" depends="savant-compile"
description="generates the bare Savant binary distribution" >
<!-- Put everything in ${savantbin} into the JAR file -->
<jar jarfile="${dist}/lib/Savant-${DSTAMP}.jar"
basedir="${savantbin}">
<manifest>
<attribute name="Main-Class" value="org.thdl.savant.SavantShell"/>
</manifest>
</jar>
</target>
<target name="qd-dist" depends="qd-compile"
description="generates the bare QuillDriver binary distribution" >
<!-- Put everything in ${qdbin} into the JAR file -->
<jar jarfile="${dist}/lib/QuillDriver-${DSTAMP}.jar"
basedir="${qdbin}">
<manifest>
<attribute name="Main-Class" value="org.thdl.quilldriver.QDShell"/>
</manifest>
</jar>
</target>
<!-- DLC FIXME: This used to inlude Jskad2Javascript.class, etc. But it no longer does. Compile those extra files! -->
<target name="jskad-all-in-one-dist" depends="jskad-compile"
description="generates the self-contained binary distribution for Jskad" >
<!-- Now put everything in ${bin} and ${ext}/netscape, plus
the .ini files, into the JAR file
-->
<copy todir="${jskadbin}/netscape">
<fileset dir="${ext}/netscape"/>
</copy>
<jar jarfile="${dist}/lib/Jskad-self-contained-${DSTAMP}.jar"
basedir="${jskadbin}"
includes="org/thdl/tib/**,org/thdl/util/**,netscape/**"
index="true"
update="no">
<manifest>
<attribute name="Main-Class" value="org.thdl.tib.input.Jskad"/>
</manifest>
</jar>
</target>
<target name="clean"
description="cleans up a few things, but not all (not the Javadocs, e.g.)" >
<!-- Delete the ${bin} and ${dist} directory trees -->
<delete dir="${bin}"/>
<delete dir="${dist}"/>
</target>
<!-- Automake build systems use a 'make distclean' target, hence the
admittedly rather confusing name. Trust the description. -->
<target name="distclean"
description="cleans up so your directory once again looks like the source distribution"
depends="clean" >
<!-- Delete the API docs -->
<delete dir="${publicjavadocs}"/>
<delete dir="${privatejavadocs}"/>
</target>
<!--
HEY PROJECT MANAGER:
http://thdltools.sf.net/api lives at
/home/groups/t/th/thdltools/htdocs/api. To update it, simply run
'ant private-javadocs-dist', which creates
dist/docs/private-javadocs-DSTAMP.zip. Then scp that file over
with the command
scp dist/docs/private-javadocs-WHATEVER.zip \
yourUserId@thdltools.sf.net/home/groups/t/th/thdltools/
or use PuTTY's scp to do something equivalent.
Now, shell in to thdltools.sf.net with 'ssh -l yourUserId
thdltools.sf.net' or with PuTTY.
Change directory (cd) to /home/groups/t/th/thdltools/htdocs/.
While you're here, do a 'cvs update' - just in case some developer
made changes to the web pages but forgot to update.
Anyway, now run 'rm -fr api' (from the htdocs/ directory).
Now run 'mkdir api'.
Now 'cd api'.
Now run 'unzip ../../private-javadocs-WHATEVER.zip'.
See if http://thdltools.sf.net/api/ looks up to date. If so,
delete ../../private-javadocs-WHATEVER.zip and log out.
UPDATE THESE INSTRUCTIONS if something above is wrong or unclear.
-->
<target name="public-javadocs-dist" depends="public-javadocs"
description="makes zip file of Javadoc documentation for public/protected classes, methods, and fields" >
<mkdir dir="${dist}/docs"/>
<tstamp/>
<zip destfile="${dist}/docs/public-javadocs-${DSTAMP}.zip"
basedir="${publicjavadocs}"/>
</target>
<target name="private-javadocs-dist" depends="private-javadocs"
description="makes zip file of Javadoc documentation for ALL classes, methods, and fields" >
<mkdir dir="${dist}/docs"/>
<tstamp/>
<zip destfile="${dist}/docs/private-javadocs-${DSTAMP}.zip"
basedir="${privatejavadocs}"/>
</target>
<target name="public-javadocs"
description="makes Javadoc documentation for public/protected classes, methods, and fields"
depends="init" >
<antcall target="our-javadocs">
<param name="access" value="protected"/>
<param name="our-javadocs-destdir" value="${publicjavadocs}"/>
</antcall>
</target>
<target name="private-javadocs"
description="makes Javadoc documentation for all classes, methods, and fields, regardless of their protection level (public, private, etc.)"
depends="init" >
<antcall target="our-javadocs">
<param name="access" value="private"/>
<param name="our-javadocs-destdir" value="${privatejavadocs}"/>
</antcall>
</target>
<target name="qd-run" depends="qd-dist" description="runs QuillDriver">
<java classname="org.thdl.quilldriver.QDShell" fork="yes">
<classpath>
<pathelement location="${dist}/lib/QuillDriver-${DSTAMP}.jar"/>
<path refid="entire.class.path"/>
</classpath>
<jvmarg value="-DTHDL_DEBUG=${thdl.debug}"/>
<jvmarg value="-DTHDL_DIE_ON_IFFY_CODE=${thdl.die.on.iffy}"/>
</java>
</target>
<target name="savant-run" depends="savant-dist" description="runs Savant">
<java classname="org.thdl.savant.SavantShell" fork="yes">
<classpath>
<pathelement location="${dist}/lib/Savant-${DSTAMP}.jar"/>
<path refid="entire.class.path"/>
</classpath>
<jvmarg value="-DTHDL_DEBUG=${thdl.debug}"/>
<jvmarg value="-DTHDL_DIE_ON_IFFY_CODE=${thdl.die.on.iffy}"/>
</java>
</target>
<target name="jskad-run" depends="jskad-dist" description="runs Jskad">
<java classname="org.thdl.tib.input.Jskad" fork="yes">
<classpath>
<pathelement location="${dist}/lib/Jskad-${DSTAMP}.jar"/>
<path refid="entire.class.path"/>
</classpath>
<jvmarg value="-DTHDL_DEBUG=${thdl.debug}"/>
<jvmarg value="-DTHDL_DIE_ON_IFFY_CODE=${thdl.die.on.iffy}"/>
</java>
</target>
<target name="tt-run" depends="tt-standalone-dist" description="runs the standalone translation tool">
<java classname="org.thdl.tib.scanner.WindowScannerFilter" fork="yes">
<classpath>
<pathelement
location="${dist}/lib/DictionarySearchStandalone-${DSTAMP}.jar"/>
<path refid="entire.class.path"/>
</classpath>
<jvmarg value="-DTHDL_DEBUG=${thdl.debug}"/>
<jvmarg value="-DTHDL_DIE_ON_IFFY_CODE=${thdl.die.on.iffy}"/>
<!-- For non-swing version: <arg value="-simple"/> -->
<arg value="${arch.dict}"/>
</java>
</target>
<!-- See http://thdltools.sf.net/CuttingReleases.html for info on
how to use this target. Note that we must do a distclean
because Ant doesn't always recompile when it should. -->
<target name="releases"
description="builds the releases under 'dist/releases/' after doing a distclean"
depends="distclean">
<mkdir dir="${dist}/releases"/>
<antcall target="dist">
<param name="javacdashg" value="no"/>
<param name="dist" value="${dist}/releases"/>
</antcall>
<antcall target="src-dist">
<param name="dist" value="${dist}/releases"/>
</antcall>
<antcall target="public-javadocs-dist">
<param name="dist" value="${dist}/releases"/>
</antcall>
<antcall target="private-javadocs-dist">
<param name="dist" value="${dist}/releases"/>
</antcall>
</target>
<!-- -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* -->
<!-- UTILITY TARGETS - targets of antcalls, targets not usually
directly called. -->
<!-- -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* -->
<!-- Utility target called by private-javadocs and public-javadocs -->
<target name="our-javadocs" depends="init"
description="INTERNAL TASK: makes Javadoc documentation; usually not called directly" >
<!-- See http://jakarta.apache.org/ant/manual/CoreTasks/javadoc.html
to learn more about the Javadoc task.
-->
<tstamp>
<format property="javadoc.creation.time" pattern="MM/dd/yyyy hh:mm aa"/>
</tstamp>
<!-- We don't really use @version correctly, do we? So version="false". -->
<javadoc destdir="${our-javadocs-destdir}"
author="true"
access="${access}"
version="false"
use="true"
classpathref="entire.class.path"
windowtitle="THDL Tools APIs"
Overview="${source}/overview.html">
<fileset dir="${source}" defaultexcludes="yes">
<include name="org/thdl/**" />
<!-- Exclude JUnit tests: -->
<exclude name="**/*Test.java"/>
<exclude name="**/*AllTests.java"/>
<exclude name="**/*.ini"/>
<exclude name="**/*.html"/>
<exclude name="**/*.gif"/>
<exclude name="**/*.jpg"/>
</fileset>
<doctitle><![CDATA[<h1>THDL Tools</h1>]]></doctitle>
<!-- Note: We must show the SF.net logo in order to get hit counts. -->
<bottom>These API docs were created ${javadoc.creation.time}.<![CDATA[<br><i>Copyright &#169; 2001-2002 Tibetan and Himalayan Digital Library. All Rights Reserved.</i><br>Hosted by <a href="http://sourceforge.net/"><img src="http://sourceforge.net/sflogo.php?group_id=61934&amp;type=1" width="88" height="31" border="0" alt="SourceForge_Logo"></a>]]></bottom>
<group title="Tibetan Text Packages" packages="org.thdl.tib.text.**"/>
<group title="Tibetan Input Packages" packages="org.thdl.tib.input.**"/>
<!-- Have our API docs link to Sun's, JDOM's, etc. -->
<link offline="true"
href="http://java.sun.com/j2se/1.4/docs/api/"
packagelistLoc="${docs}/j2sdk1.4-package-list"/>
<link offline="true"
href="http://www.jdom.org/docs/apidocs/"
packagelistLoc="${docs}/jdom-package-list"/>
</javadoc>
</target>
<target name="copy-license-to-bin-dir-for-jarring"
depends="init"
description="INTERNAL TASK: Copies the license documents to the bin directory. Usually not called directly.">
<copy todir="${mybin}">
<fileset dir="${license}"/>
</copy>
</target>
<target name="copy-ini-files-to-bin-dir-for-jarring"
depends="init"
description="INTERNAL TASK: Copies the *.ini files to the bin directory. Usually not called directly.">
<copy todir="${mybin}">
<fileset dir="${source}">
<include name="org/thdl/tib/**/*.ini"/>
</fileset>
</copy>
</target>
<!-- To avoid duplicating very similar compilation tasks, we antcall
this task. We do this once per class we want, and javac is
smart enough to find dependent classes and compile them. -->
<target name="our-internal-javac-task"
depends="init"
description="INTERNAL TASK: Compiles according to Ant properties. Usually not called directly.">
<!-- Be sure we're going to be able to compile something: -->
<available file="${source}/${my.included.source.file}"
property="found.file.to.compile"/>
<fail message="Can't find the file '${source}/${my.included.source.file}' to compile it! Don't worry about forward vs. backward slashes, by the way--Ant is smart about those."
unless="found.file.to.compile"/>
<javac destdir="${mybin}" debug="${javacdashg}" target="${target.jvm}">
<classpath refid="entire.class.path"/>
<src path="${source}"/>
<include name="${my.included.source.file}" />
<!-- Exclude JUnit tests: -->
<exclude name="**/*Test.java" />
<exclude name="**/*AllTests.java" />
<!-- Don't compile these resources (we could leave this out, but
Ant's debugging output would confuse us, and having this
explicit is a Good Thing: -->
<exclude name="**/*.properties" />
<exclude name="**/*.rtf" />
<exclude name="**/*.txt" />
<exclude name="**/*.ini" />
<exclude name="**/*.html" />
<exclude name="**/*.gif" />
<exclude name="**/*.jpg" />
</javac>
</target>
</project>
<!-- My TO-DO list: -->
<!-- DLC FIXME: we need a compile-all that uses if="" and <available>. -->
<!-- DLC FIXME: Now that we use javac -target 1.1, do we need a
separate tt-handheld and tt-standalone? -->