2002-10-23 01:08:52 +00:00
<!-- @author David Chandler, dchandler@users.sourceforge.net
2002-10-10 06:00:32 +00:00
2002-11-18 16:12:25 +00:00
FIXME
Right now, the web-start-releases and self-contained-dist
targets hard-code the paths of the JARs/ZIPs they need. Be
sure you have yours in the right place.
FIXME
2002-10-20 22:40:49 +00:00
We have a document,
http://thdltools.sourceforge.net/BuildSystems.html, that
2003-03-22 02:48:21 +00:00
describes how to use this file to build Jskad, Tibbibl, and the
translation tool.
2002-10-10 06:00:32 +00:00
2002-10-25 11:04:24 +00:00
This build file is the main one, and it uses jwsbuild.xml for
building Java Web Start (JWS) releases. See the comments in that
file to learn why.
2002-10-20 22:40:49 +00:00
Quick start for the impatient: This buildfile looks for the
following, which are not in the CVS repository:
2002-10-10 06:00:32 +00:00
2002-10-20 22:40:49 +00:00
extensions/jdom.jar
You may no longer put xml-apis.jar, xercesImpl.jar, or xalan.jar in
Jskad/extensions. If you're lazy, you can move them to
extensions/drop-ins, but the correct thing to do is to move x*.jar to
$ANT_HOME/lib [next to vamp.jar, if you're already set up for Java Web
Start builds]. This is a side effect of improving the nightly builds.
Nightly builds now feature an HTML summary of the JUnit test results,
a datestamp, and full API docs in two flavors.
If you use a patched vamp.jar [e-mail me] that can run when an X11
display is not available (there is not an analogous problem for
Windows servers, I suspect), all you have to do to put up a nightly
builds site is to set up CVS access so that no password is requires
using SSH public-key crypto (sf.net documents how to do so well) and
then use the following daily cron job on your Unix box:
#! /bin/sh
renice +19 -p $$ >/dev/null 2>&1
su -l joe-user /bin/sh -c /var/www/thdl/nightly/doTheBuild.sh
where joe-user is an unprivileged user who has installed Ant properly
(see the updated BuildSystems.html on the developer's site off of
thdltools.sf.net) and set himself up a Jskad sandbox with a Fonts
sandbox underneath it in, e.g., /var/www/thdl/nightly/Jskad. Here's
doTheBuild.sh:
#! /bin/sh
JSKAD=/var/www/thdl/nightly/Jskad
DEST=/var/www/thdl/nightly/builds
HISTORY=/var/www/thdl/nightly/history
DATE=`date`
if test ! -d $DEST; then \
echo "$DEST does not exist ($DATE)." >> history; exit 1; fi
(cd $JSKAD && ant dc-nightly-build \
&& rm -fr ${DEST}/* \
&& cp dist/nightlyBuild.zip $DEST \
&& cd $DEST \
&& unzip nightlyBuild.zip)
if test $? != 0; then echo "NIGHTLY BUILDS FAILED on $DATE" >> $HISTORY; exit 2; fi
DDDATE=`date`
echo "Success on start=$DATE end=$DDDATE" >> $HISTORY
exit 0
2003-02-10 04:22:38 +00:00
$ANT_HOME/lib/xalan.jar
$ANT_HOME/lib/xercesImpl.jar
$ANT_HOME/lib/xml-apis.jar
2002-10-10 06:00:32 +00:00
2002-10-20 22:40:49 +00:00
See the developers site, linked to from http://thdltools.sf.net/,
2003-01-12 20:24:01 +00:00
for info on where to find these. (You may be able to use Ant's
copies of some of them, if you really can't wait to get started.
Examine the contents of '$ANT_HOME/lib'.)
2002-10-10 06:00:32 +00:00
-->
2002-10-03 02:55:19 +00:00
<project name= "THDLTools" default= "dist" basedir= "." >
2002-09-30 02:28:17 +00:00
<description >
2003-03-22 02:48:21 +00:00
This Jakarta Ant buildfile is used to build Jskad, Tibbibl, 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, or see
http://thdltools.sourceforge.net/BuildSystems.html.
2002-09-30 02:28:17 +00:00
</description>
<!-- set global properties for this build -->
2002-11-16 18:04:47 +00:00
<property name= "my.jar.suffix" value= "" />
2002-10-04 04:24:45 +00:00
<property name= "javacdashg" value= "yes" />
2002-09-30 02:28:17 +00:00
<property name= "source" location= "source" />
2002-10-10 06:00:32 +00:00
<property name= "license" location= "license" />
2003-02-03 08:21:37 +00:00
<!-- 'ant clean' won't work well if ${jskadbin} and the other *bin aren't
subdirectories of ${bin}. -->
2002-09-30 02:28:17 +00:00
<property name= "bin" location= "bin" />
<property name= "jskadbin" location= "bin/jskad" />
2003-06-24 03:02:29 +00:00
<property name= "converterguibin" location= "bin/convertergui" />
2003-02-01 05:08:02 +00:00
<property name= "tibbiblbin" location= "bin/tibbibl" />
2003-01-12 20:24:01 +00:00
<property name= "junitbin" location= "bin/for-junit" />
2002-10-10 06:00:32 +00:00
<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" />
2003-02-03 08:21:37 +00:00
2002-09-30 02:28:17 +00:00
<property name= "docs" location= "docs" />
<property name= "dist" location= "dist" />
2002-11-16 18:04:47 +00:00
<property name= "vanillalib" location= "${dist}/lib-vanilla" />
<property name= "jwslib" location= "${dist}/lib-jws" />
<property name= "lib" location= "${vanillalib}" />
2002-09-30 02:28:17 +00:00
<property name= "ext" location= "extensions" />
<property name= "publicjavadocs" location= "${docs}/public-javadocs" />
<property name= "privatejavadocs" location= "${docs}/private-javadocs" />
2002-10-23 01:08:52 +00:00
You may no longer put xml-apis.jar, xercesImpl.jar, or xalan.jar in
Jskad/extensions. If you're lazy, you can move them to
extensions/drop-ins, but the correct thing to do is to move x*.jar to
$ANT_HOME/lib [next to vamp.jar, if you're already set up for Java Web
Start builds]. This is a side effect of improving the nightly builds.
Nightly builds now feature an HTML summary of the JUnit test results,
a datestamp, and full API docs in two flavors.
If you use a patched vamp.jar [e-mail me] that can run when an X11
display is not available (there is not an analogous problem for
Windows servers, I suspect), all you have to do to put up a nightly
builds site is to set up CVS access so that no password is requires
using SSH public-key crypto (sf.net documents how to do so well) and
then use the following daily cron job on your Unix box:
#! /bin/sh
renice +19 -p $$ >/dev/null 2>&1
su -l joe-user /bin/sh -c /var/www/thdl/nightly/doTheBuild.sh
where joe-user is an unprivileged user who has installed Ant properly
(see the updated BuildSystems.html on the developer's site off of
thdltools.sf.net) and set himself up a Jskad sandbox with a Fonts
sandbox underneath it in, e.g., /var/www/thdl/nightly/Jskad. Here's
doTheBuild.sh:
#! /bin/sh
JSKAD=/var/www/thdl/nightly/Jskad
DEST=/var/www/thdl/nightly/builds
HISTORY=/var/www/thdl/nightly/history
DATE=`date`
if test ! -d $DEST; then \
echo "$DEST does not exist ($DATE)." >> history; exit 1; fi
(cd $JSKAD && ant dc-nightly-build \
&& rm -fr ${DEST}/* \
&& cp dist/nightlyBuild.zip $DEST \
&& cd $DEST \
&& unzip nightlyBuild.zip)
if test $? != 0; then echo "NIGHTLY BUILDS FAILED on $DATE" >> $HISTORY; exit 2; fi
DDDATE=`date`
echo "Success on start=$DATE end=$DDDATE" >> $HISTORY
exit 0
2003-02-10 04:22:38 +00:00
<!-- Getting your nightly builds set up can take a long time.
Changing this to "jskad-jws" tests that you've got Vamp and your
keystore set up correctly if you use the dc-nightly-build
target. -->
<property name= "dcnbt" value= "nightly-build" />
2002-12-01 18:53:09 +00:00
<!-- If you wish to have your Javadocs link to someplace other than
Sun's web site, maybe just changing these two, link.offline and
java.api.loc.url, will do the trick: -->
<property name= "link.offline" value= "false" />
<property name= "java.api.loc.url"
2002-12-09 02:18:03 +00:00
value="http://java.sun.com/j2se/1.4/docs/api/"/>
2002-12-01 18:53:09 +00:00
2002-10-25 11:56:05 +00:00
<property name= "jnlp.codebase"
value="http://iris.lib.virginia.edu/tibet/tools"/>
2002-10-25 11:04:24 +00:00
<property name= "key.alias" value= "David Germano" />
<property name= "keystore" value= "file:///f:/thdl/Jskad/thawte/keystore" />
2002-10-23 01:08:52 +00:00
<!-- If you have installed the J2EE SDK, then you can compile servlets.
Set this property to the directory containing j2ee.jar:
-->
2002-10-05 06:36:23 +00:00
<property name= "j2ee.sdk.home" location= "F:\Program Files\j2sdkee1.3.1\lib" />
2002-10-24 13:53:27 +00:00
<property name= "tomcat.servlet.jar"
location="d:\lenguaje\jakarta-tomcat-3.2.1\lib\servlet.jar"/>
2002-09-30 02:28:17 +00:00
Added a flexible mechanism for persistent boolean-, integer-, and
string-valued preferences built atop java.util.Properties.
How it works: the jvm is asked first, and then the user's prefs file, if it exists,
then the system-wide prefs file, and then the built-in preferences. Finally, for
robustness, a default may be optionally hard-coded in the source.
I made several things configurable, too:
the default Tibetan keyboard
the default font sizes and faces
whether you want developer-only features enabled
Savant's file extension (.savant)
etc.
The only known problems are the following:
The default location for the user's preferences file is windows-specific,
arbitrary, and not in the user documentation. Likewise for the location of the
system-wide preferences file. You can change them using 'java -D', though.
There is no "Save preferences" option yet, and closing the program does
not save preferences either.
2002-10-14 04:06:05 +00:00
<!-- Set to true for more output when running the tools and if you
want the code to abort when it reaches poorly thought-out
control flow paths (i.e., iffy code).
-->
Now copies over everything necessary to the bin directories.
Added a 'releases' target that builds Javadocs, binary JARs, and a source
zipfile. It generates double-clickable Jskad and translation tool JARs, but it
does NOT generate double-clickable Savant or QuillDriver jars because
that would require putting jdom/xalan/xml-apis/xercesImpl/jmf JARs onto
the Class-path attribute in the manifest files. That would be a relative path,
though, and until we have an installer, I don't know what to put in there.
That means that, for now, you invoke Savant with
'java -cp jdom.jar;jmf.jar;....;Savant-2002XXXX.jar
org.thdl.savant.SavantShell'
BUT, I've added targets to run all four programs: savant-run, qd-run, tt-run,
and jskad-run.
No longer uses manifests/*. Ant has a <manifest> task that we use instead.
Now uses the source/overview.html file in Javadoc builds.
2002-10-06 17:54:01 +00:00
<property name= "thdl.debug" value= "true" />
You may no longer put xml-apis.jar, xercesImpl.jar, or xalan.jar in
Jskad/extensions. If you're lazy, you can move them to
extensions/drop-ins, but the correct thing to do is to move x*.jar to
$ANT_HOME/lib [next to vamp.jar, if you're already set up for Java Web
Start builds]. This is a side effect of improving the nightly builds.
Nightly builds now feature an HTML summary of the JUnit test results,
a datestamp, and full API docs in two flavors.
If you use a patched vamp.jar [e-mail me] that can run when an X11
display is not available (there is not an analogous problem for
Windows servers, I suspect), all you have to do to put up a nightly
builds site is to set up CVS access so that no password is requires
using SSH public-key crypto (sf.net documents how to do so well) and
then use the following daily cron job on your Unix box:
#! /bin/sh
renice +19 -p $$ >/dev/null 2>&1
su -l joe-user /bin/sh -c /var/www/thdl/nightly/doTheBuild.sh
where joe-user is an unprivileged user who has installed Ant properly
(see the updated BuildSystems.html on the developer's site off of
thdltools.sf.net) and set himself up a Jskad sandbox with a Fonts
sandbox underneath it in, e.g., /var/www/thdl/nightly/Jskad. Here's
doTheBuild.sh:
#! /bin/sh
JSKAD=/var/www/thdl/nightly/Jskad
DEST=/var/www/thdl/nightly/builds
HISTORY=/var/www/thdl/nightly/history
DATE=`date`
if test ! -d $DEST; then \
echo "$DEST does not exist ($DATE)." >> history; exit 1; fi
(cd $JSKAD && ant dc-nightly-build \
&& rm -fr ${DEST}/* \
&& cp dist/nightlyBuild.zip $DEST \
&& cd $DEST \
&& unzip nightlyBuild.zip)
if test $? != 0; then echo "NIGHTLY BUILDS FAILED on $DATE" >> $HISTORY; exit 2; fi
DDDATE=`date`
echo "Success on start=$DATE end=$DDDATE" >> $HISTORY
exit 0
2003-02-10 04:22:38 +00:00
<!-- Compress nightlyBuild.zip? -->
<property name= "compress.nightly.build" value= "false" />
Now copies over everything necessary to the bin directories.
Added a 'releases' target that builds Javadocs, binary JARs, and a source
zipfile. It generates double-clickable Jskad and translation tool JARs, but it
does NOT generate double-clickable Savant or QuillDriver jars because
that would require putting jdom/xalan/xml-apis/xercesImpl/jmf JARs onto
the Class-path attribute in the manifest files. That would be a relative path,
though, and until we have an installer, I don't know what to put in there.
That means that, for now, you invoke Savant with
'java -cp jdom.jar;jmf.jar;....;Savant-2002XXXX.jar
org.thdl.savant.SavantShell'
BUT, I've added targets to run all four programs: savant-run, qd-run, tt-run,
and jskad-run.
No longer uses manifests/*. Ant has a <manifest> task that we use instead.
Now uses the source/overview.html file in Javadoc builds.
2002-10-06 17:54:01 +00:00
<!-- Set to the name of the dictionary used by the Translation Tool: -->
<property name= "arch.dict" value= "architecture_dictionary" />
2002-10-10 06:00:32 +00:00
<!-- 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" />
2002-10-23 01:08:52 +00:00
<!-- Only the tt - servlet - compile target changes this. Humans
shouldn't mess with this. -->
<property name= "our.javac.classpathref" value= "entire.class.path" />
2002-10-10 06:00:32 +00:00
2002-10-25 10:58:44 +00:00
<!-- Javadoc needs to find all classes, so you have to give it a megaclasspath: -->
<property name= "javadocs.class.path.ref" value= "all.extras.class.path" />
Now copies over everything necessary to the bin directories.
Added a 'releases' target that builds Javadocs, binary JARs, and a source
zipfile. It generates double-clickable Jskad and translation tool JARs, but it
does NOT generate double-clickable Savant or QuillDriver jars because
that would require putting jdom/xalan/xml-apis/xercesImpl/jmf JARs onto
the Class-path attribute in the manifest files. That would be a relative path,
though, and until we have an installer, I don't know what to put in there.
That means that, for now, you invoke Savant with
'java -cp jdom.jar;jmf.jar;....;Savant-2002XXXX.jar
org.thdl.savant.SavantShell'
BUT, I've added targets to run all four programs: savant-run, qd-run, tt-run,
and jskad-run.
No longer uses manifests/*. Ant has a <manifest> task that we use instead.
Now uses the source/overview.html file in Javadoc builds.
2002-10-06 17:54:01 +00:00
<!-- To easily add a jar to the CLASSPATH, just drop it into
'extensions/drop-ins/'. -->
2002-09-30 02:28:17 +00:00
<path id= "entire.class.path" >
<pathelement location= "${ext}/" /> <!-- for netscape.javascript -->
Now copies over everything necessary to the bin directories.
Added a 'releases' target that builds Javadocs, binary JARs, and a source
zipfile. It generates double-clickable Jskad and translation tool JARs, but it
does NOT generate double-clickable Savant or QuillDriver jars because
that would require putting jdom/xalan/xml-apis/xercesImpl/jmf JARs onto
the Class-path attribute in the manifest files. That would be a relative path,
though, and until we have an installer, I don't know what to put in there.
That means that, for now, you invoke Savant with
'java -cp jdom.jar;jmf.jar;....;Savant-2002XXXX.jar
org.thdl.savant.SavantShell'
BUT, I've added targets to run all four programs: savant-run, qd-run, tt-run,
and jskad-run.
No longer uses manifests/*. Ant has a <manifest> task that we use instead.
Now uses the source/overview.html file in Javadoc builds.
2002-10-06 17:54:01 +00:00
<!-- 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" />
2002-10-05 06:36:23 +00:00
2002-10-10 06:00:32 +00:00
<!-- this gets Ant's jars, so leave it out:
<pathelement path= "${java.class.path}/" /> -->
2002-09-30 02:28:17 +00:00
Now copies over everything necessary to the bin directories.
Added a 'releases' target that builds Javadocs, binary JARs, and a source
zipfile. It generates double-clickable Jskad and translation tool JARs, but it
does NOT generate double-clickable Savant or QuillDriver jars because
that would require putting jdom/xalan/xml-apis/xercesImpl/jmf JARs onto
the Class-path attribute in the manifest files. That would be a relative path,
though, and until we have an installer, I don't know what to put in there.
That means that, for now, you invoke Savant with
'java -cp jdom.jar;jmf.jar;....;Savant-2002XXXX.jar
org.thdl.savant.SavantShell'
BUT, I've added targets to run all four programs: savant-run, qd-run, tt-run,
and jskad-run.
No longer uses manifests/*. Ant has a <manifest> task that we use instead.
Now uses the source/overview.html file in Javadoc builds.
2002-10-06 17:54:01 +00:00
<fileset dir= "${ext}/drop-ins" >
<include name= "*.jar" />
<include name= "*.JAR" />
2002-10-18 02:57:57 +00:00
<include name= "*.zip" />
<include name= "*.ZIP" />
Now copies over everything necessary to the bin directories.
Added a 'releases' target that builds Javadocs, binary JARs, and a source
zipfile. It generates double-clickable Jskad and translation tool JARs, but it
does NOT generate double-clickable Savant or QuillDriver jars because
that would require putting jdom/xalan/xml-apis/xercesImpl/jmf JARs onto
the Class-path attribute in the manifest files. That would be a relative path,
though, and until we have an installer, I don't know what to put in there.
That means that, for now, you invoke Savant with
'java -cp jdom.jar;jmf.jar;....;Savant-2002XXXX.jar
org.thdl.savant.SavantShell'
BUT, I've added targets to run all four programs: savant-run, qd-run, tt-run,
and jskad-run.
No longer uses manifests/*. Ant has a <manifest> task that we use instead.
Now uses the source/overview.html file in Javadoc builds.
2002-10-06 17:54:01 +00:00
</fileset>
<!-- Developers: set this on the ant command line if you need to
2002-10-10 06:00:32 +00:00
with 'ant -Dadditional.class.path="c:\foo"': -->
2002-09-30 02:28:17 +00:00
<pathelement path= "${additional.class.path}" />
Now copies over everything necessary to the bin directories.
Added a 'releases' target that builds Javadocs, binary JARs, and a source
zipfile. It generates double-clickable Jskad and translation tool JARs, but it
does NOT generate double-clickable Savant or QuillDriver jars because
that would require putting jdom/xalan/xml-apis/xercesImpl/jmf JARs onto
the Class-path attribute in the manifest files. That would be a relative path,
though, and until we have an installer, I don't know what to put in there.
That means that, for now, you invoke Savant with
'java -cp jdom.jar;jmf.jar;....;Savant-2002XXXX.jar
org.thdl.savant.SavantShell'
BUT, I've added targets to run all four programs: savant-run, qd-run, tt-run,
and jskad-run.
No longer uses manifests/*. Ant has a <manifest> task that we use instead.
Now uses the source/overview.html file in Javadoc builds.
2002-10-06 17:54:01 +00:00
2002-09-30 02:28:17 +00:00
</path>
2002-10-25 10:58:44 +00:00
<path id= "all.extras.class.path" >
<pathelement location= "${j2ee.sdk.home}/j2ee.jar" />
<pathelement location= "${tomcat.servlet.jar}" />
<path refid= "entire.class.path" />
</path>
2002-09-30 02:28:17 +00:00
<target name= "init" >
<!-- Create the time stamp -->
<tstamp />
<!-- Create the build directory structure used by compile -->
2002-10-12 18:30:14 +00:00
<mkdir dir= "${dist}/releases" />
<mkdir dir= "${dist}/docs" />
2002-11-16 18:04:47 +00:00
<mkdir dir= "${vanillalib}" />
<mkdir dir= "${jwslib}" />
<mkdir dir= "${lib}" />
2002-10-12 18:30:14 +00:00
<mkdir dir= "${dist}/java-web-start" />
Now copies over everything necessary to the bin directories.
Added a 'releases' target that builds Javadocs, binary JARs, and a source
zipfile. It generates double-clickable Jskad and translation tool JARs, but it
does NOT generate double-clickable Savant or QuillDriver jars because
that would require putting jdom/xalan/xml-apis/xercesImpl/jmf JARs onto
the Class-path attribute in the manifest files. That would be a relative path,
though, and until we have an installer, I don't know what to put in there.
That means that, for now, you invoke Savant with
'java -cp jdom.jar;jmf.jar;....;Savant-2002XXXX.jar
org.thdl.savant.SavantShell'
BUT, I've added targets to run all four programs: savant-run, qd-run, tt-run,
and jskad-run.
No longer uses manifests/*. Ant has a <manifest> task that we use instead.
Now uses the source/overview.html file in Javadoc builds.
2002-10-06 17:54:01 +00:00
<mkdir dir= "${dist}/source" />
2002-09-30 02:28:17 +00:00
<mkdir dir= "${publicjavadocs}" />
<mkdir dir= "${privatejavadocs}" />
</target>
2003-01-12 20:24:01 +00:00
<!--
See http://thdltools.sourceforge.net/BuildSystems.html for full
details on unit testing our software. If you're eager enough
to get started, just read
extensions/to-be-installed-with-ant/README.TXT.
Just as with 'ant dist', it is wise to 'ant clean' before
running 'ant check'.
-->
<target name= "check"
description="Compiles and runs all JUnit tests (that can be run given the present extension JARs) for the entire project. Our coverage is currently quite low."
depends="compile-junit-tests">
<ant antfile= "junitbuild.xml" target= "run-all-junit-tests"
inheritAll="false" inheritRefs="false">
<reference refid= "entire.class.path" />
<property name= "junitbin" value= "${junitbin}" />
</ant>
<echo message= "" />
<echo message= "You may now examine the files TEST-* for more details." />
</target>
<!-- Use 'ant check' for testing the software, and this merely for putting the build system through its paces: -->
<target name= "test-all-ant-targets"
depends="clean,distclean,compile,dist,src-dist,self-contained-dist,public-javadocs-dist,private-javadocs-dist,releases,web-start-releases,check,nightly-build"
2002-09-30 02:28:17 +00:00
description="runs every target in this buildfile in a smart order; useful for testing the buildfile and your build environment" />
2002-11-18 22:16:07 +00:00
<target name= "nightly-build"
depends="distclean"
description="Creates ${dist}/nightlyBuild.zip" >
<!-- I believe that this order might actually matter, because some
targets execute 'ant clean' (though they only do so because I
You may no longer put xml-apis.jar, xercesImpl.jar, or xalan.jar in
Jskad/extensions. If you're lazy, you can move them to
extensions/drop-ins, but the correct thing to do is to move x*.jar to
$ANT_HOME/lib [next to vamp.jar, if you're already set up for Java Web
Start builds]. This is a side effect of improving the nightly builds.
Nightly builds now feature an HTML summary of the JUnit test results,
a datestamp, and full API docs in two flavors.
If you use a patched vamp.jar [e-mail me] that can run when an X11
display is not available (there is not an analogous problem for
Windows servers, I suspect), all you have to do to put up a nightly
builds site is to set up CVS access so that no password is requires
using SSH public-key crypto (sf.net documents how to do so well) and
then use the following daily cron job on your Unix box:
#! /bin/sh
renice +19 -p $$ >/dev/null 2>&1
su -l joe-user /bin/sh -c /var/www/thdl/nightly/doTheBuild.sh
where joe-user is an unprivileged user who has installed Ant properly
(see the updated BuildSystems.html on the developer's site off of
thdltools.sf.net) and set himself up a Jskad sandbox with a Fonts
sandbox underneath it in, e.g., /var/www/thdl/nightly/Jskad. Here's
doTheBuild.sh:
#! /bin/sh
JSKAD=/var/www/thdl/nightly/Jskad
DEST=/var/www/thdl/nightly/builds
HISTORY=/var/www/thdl/nightly/history
DATE=`date`
if test ! -d $DEST; then \
echo "$DEST does not exist ($DATE)." >> history; exit 1; fi
(cd $JSKAD && ant dc-nightly-build \
&& rm -fr ${DEST}/* \
&& cp dist/nightlyBuild.zip $DEST \
&& cd $DEST \
&& unzip nightlyBuild.zip)
if test $? != 0; then echo "NIGHTLY BUILDS FAILED on $DATE" >> $HISTORY; exit 2; fi
DDDATE=`date`
echo "Success on start=$DATE end=$DDDATE" >> $HISTORY
exit 0
2003-02-10 04:22:38 +00:00
am lazy). I stopped a couple from so doing, but I'm not sure
if I got them all. -->
2002-11-18 22:16:07 +00:00
2003-06-19 01:11:33 +00:00
<!-- If you change *build.xml, then 'ant dc - nightly - build' will be
using the OLD build.xml, not the new one, if it were to
execute the 'cvs-update' target itself. You should update
and then use a new ant process to read the potentially
revised buildfiles; e.g., ant distclean cvs-update & & ant
dc-nightly-build. -->
2003-02-10 04:37:04 +00:00
2002-11-18 22:16:07 +00:00
<antcall target= "web-start-releases" />
2003-02-10 04:37:04 +00:00
2002-11-18 22:16:07 +00:00
<antcall target= "self-contained-dist" />
2003-02-10 04:37:04 +00:00
<!-- vanilla JARs: -->
2002-11-18 22:16:07 +00:00
<antcall target= "dist" />
2003-02-10 04:37:04 +00:00
You may no longer put xml-apis.jar, xercesImpl.jar, or xalan.jar in
Jskad/extensions. If you're lazy, you can move them to
extensions/drop-ins, but the correct thing to do is to move x*.jar to
$ANT_HOME/lib [next to vamp.jar, if you're already set up for Java Web
Start builds]. This is a side effect of improving the nightly builds.
Nightly builds now feature an HTML summary of the JUnit test results,
a datestamp, and full API docs in two flavors.
If you use a patched vamp.jar [e-mail me] that can run when an X11
display is not available (there is not an analogous problem for
Windows servers, I suspect), all you have to do to put up a nightly
builds site is to set up CVS access so that no password is requires
using SSH public-key crypto (sf.net documents how to do so well) and
then use the following daily cron job on your Unix box:
#! /bin/sh
renice +19 -p $$ >/dev/null 2>&1
su -l joe-user /bin/sh -c /var/www/thdl/nightly/doTheBuild.sh
where joe-user is an unprivileged user who has installed Ant properly
(see the updated BuildSystems.html on the developer's site off of
thdltools.sf.net) and set himself up a Jskad sandbox with a Fonts
sandbox underneath it in, e.g., /var/www/thdl/nightly/Jskad. Here's
doTheBuild.sh:
#! /bin/sh
JSKAD=/var/www/thdl/nightly/Jskad
DEST=/var/www/thdl/nightly/builds
HISTORY=/var/www/thdl/nightly/history
DATE=`date`
if test ! -d $DEST; then \
echo "$DEST does not exist ($DATE)." >> history; exit 1; fi
(cd $JSKAD && ant dc-nightly-build \
&& rm -fr ${DEST}/* \
&& cp dist/nightlyBuild.zip $DEST \
&& cd $DEST \
&& unzip nightlyBuild.zip)
if test $? != 0; then echo "NIGHTLY BUILDS FAILED on $DATE" >> $HISTORY; exit 2; fi
DDDATE=`date`
echo "Success on start=$DATE end=$DDDATE" >> $HISTORY
exit 0
2003-02-10 04:22:38 +00:00
<antcall target= "public-javadocs-dist" >
<param name= "DSTAMP" value= "today" />
</antcall>
<unzip src= "${dist}/docs/public-javadocs-today.zip" dest= "${dist}/docs/public" />
2003-02-10 04:37:04 +00:00
You may no longer put xml-apis.jar, xercesImpl.jar, or xalan.jar in
Jskad/extensions. If you're lazy, you can move them to
extensions/drop-ins, but the correct thing to do is to move x*.jar to
$ANT_HOME/lib [next to vamp.jar, if you're already set up for Java Web
Start builds]. This is a side effect of improving the nightly builds.
Nightly builds now feature an HTML summary of the JUnit test results,
a datestamp, and full API docs in two flavors.
If you use a patched vamp.jar [e-mail me] that can run when an X11
display is not available (there is not an analogous problem for
Windows servers, I suspect), all you have to do to put up a nightly
builds site is to set up CVS access so that no password is requires
using SSH public-key crypto (sf.net documents how to do so well) and
then use the following daily cron job on your Unix box:
#! /bin/sh
renice +19 -p $$ >/dev/null 2>&1
su -l joe-user /bin/sh -c /var/www/thdl/nightly/doTheBuild.sh
where joe-user is an unprivileged user who has installed Ant properly
(see the updated BuildSystems.html on the developer's site off of
thdltools.sf.net) and set himself up a Jskad sandbox with a Fonts
sandbox underneath it in, e.g., /var/www/thdl/nightly/Jskad. Here's
doTheBuild.sh:
#! /bin/sh
JSKAD=/var/www/thdl/nightly/Jskad
DEST=/var/www/thdl/nightly/builds
HISTORY=/var/www/thdl/nightly/history
DATE=`date`
if test ! -d $DEST; then \
echo "$DEST does not exist ($DATE)." >> history; exit 1; fi
(cd $JSKAD && ant dc-nightly-build \
&& rm -fr ${DEST}/* \
&& cp dist/nightlyBuild.zip $DEST \
&& cd $DEST \
&& unzip nightlyBuild.zip)
if test $? != 0; then echo "NIGHTLY BUILDS FAILED on $DATE" >> $HISTORY; exit 2; fi
DDDATE=`date`
echo "Success on start=$DATE end=$DDDATE" >> $HISTORY
exit 0
2003-02-10 04:22:38 +00:00
<antcall target= "private-javadocs-dist" >
<param name= "DSTAMP" value= "today" />
</antcall>
<unzip src= "${dist}/docs/private-javadocs-today.zip" dest= "${dist}/docs/private" />
2003-02-10 04:37:04 +00:00
You may no longer put xml-apis.jar, xercesImpl.jar, or xalan.jar in
Jskad/extensions. If you're lazy, you can move them to
extensions/drop-ins, but the correct thing to do is to move x*.jar to
$ANT_HOME/lib [next to vamp.jar, if you're already set up for Java Web
Start builds]. This is a side effect of improving the nightly builds.
Nightly builds now feature an HTML summary of the JUnit test results,
a datestamp, and full API docs in two flavors.
If you use a patched vamp.jar [e-mail me] that can run when an X11
display is not available (there is not an analogous problem for
Windows servers, I suspect), all you have to do to put up a nightly
builds site is to set up CVS access so that no password is requires
using SSH public-key crypto (sf.net documents how to do so well) and
then use the following daily cron job on your Unix box:
#! /bin/sh
renice +19 -p $$ >/dev/null 2>&1
su -l joe-user /bin/sh -c /var/www/thdl/nightly/doTheBuild.sh
where joe-user is an unprivileged user who has installed Ant properly
(see the updated BuildSystems.html on the developer's site off of
thdltools.sf.net) and set himself up a Jskad sandbox with a Fonts
sandbox underneath it in, e.g., /var/www/thdl/nightly/Jskad. Here's
doTheBuild.sh:
#! /bin/sh
JSKAD=/var/www/thdl/nightly/Jskad
DEST=/var/www/thdl/nightly/builds
HISTORY=/var/www/thdl/nightly/history
DATE=`date`
if test ! -d $DEST; then \
echo "$DEST does not exist ($DATE)." >> history; exit 1; fi
(cd $JSKAD && ant dc-nightly-build \
&& rm -fr ${DEST}/* \
&& cp dist/nightlyBuild.zip $DEST \
&& cd $DEST \
&& unzip nightlyBuild.zip)
if test $? != 0; then echo "NIGHTLY BUILDS FAILED on $DATE" >> $HISTORY; exit 2; fi
DDDATE=`date`
echo "Success on start=$DATE end=$DDDATE" >> $HISTORY
exit 0
2003-02-10 04:22:38 +00:00
<antcall target= "src-dist" >
<param name= "DSTAMP" value= "today" />
</antcall>
2003-02-10 04:37:04 +00:00
<antcall target= "check-report" />
You may no longer put xml-apis.jar, xercesImpl.jar, or xalan.jar in
Jskad/extensions. If you're lazy, you can move them to
extensions/drop-ins, but the correct thing to do is to move x*.jar to
$ANT_HOME/lib [next to vamp.jar, if you're already set up for Java Web
Start builds]. This is a side effect of improving the nightly builds.
Nightly builds now feature an HTML summary of the JUnit test results,
a datestamp, and full API docs in two flavors.
If you use a patched vamp.jar [e-mail me] that can run when an X11
display is not available (there is not an analogous problem for
Windows servers, I suspect), all you have to do to put up a nightly
builds site is to set up CVS access so that no password is requires
using SSH public-key crypto (sf.net documents how to do so well) and
then use the following daily cron job on your Unix box:
#! /bin/sh
renice +19 -p $$ >/dev/null 2>&1
su -l joe-user /bin/sh -c /var/www/thdl/nightly/doTheBuild.sh
where joe-user is an unprivileged user who has installed Ant properly
(see the updated BuildSystems.html on the developer's site off of
thdltools.sf.net) and set himself up a Jskad sandbox with a Fonts
sandbox underneath it in, e.g., /var/www/thdl/nightly/Jskad. Here's
doTheBuild.sh:
#! /bin/sh
JSKAD=/var/www/thdl/nightly/Jskad
DEST=/var/www/thdl/nightly/builds
HISTORY=/var/www/thdl/nightly/history
DATE=`date`
if test ! -d $DEST; then \
echo "$DEST does not exist ($DATE)." >> history; exit 1; fi
(cd $JSKAD && ant dc-nightly-build \
&& rm -fr ${DEST}/* \
&& cp dist/nightlyBuild.zip $DEST \
&& cd $DEST \
&& unzip nightlyBuild.zip)
if test $? != 0; then echo "NIGHTLY BUILDS FAILED on $DATE" >> $HISTORY; exit 2; fi
DDDATE=`date`
echo "Success on start=$DATE end=$DDDATE" >> $HISTORY
exit 0
2003-02-10 04:22:38 +00:00
<echo file= "${dist}/DateStampForNightlyBuilds.html"
append="false"><![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html >
<head >
<title > Nightly Build Timestamp</title>
</head>
<body >
<h1 > THDL Tools Nightly Build Timestamp</h1>
<p >
These nightly builds were made at ]]></echo>
<tstamp >
<format property= "nb.creation.time" pattern= "MM/dd/yyyy hh:mm aa" />
</tstamp>
<echo file= "${dist}/DateStampForNightlyBuilds.html" append= "true" > ${nb.creation.time}</echo>
<echo file= "${dist}/DateStampForNightlyBuilds.html" append= "true" > < ![CDATA[.
</p>
</body>
</html>
]]></echo>
<zip destfile= "${dist}/nightlyBuild.zip"
compress="${compress.nightly.builds}">
2002-11-18 22:16:07 +00:00
<zipfileset dir= "${dist}"
2003-02-03 06:24:52 +00:00
excludes="nightlyBuild.zip,lib-jws/**,*.jnlp,README.TXT,releases"
2002-11-18 22:16:07 +00:00
prefix="."/>
</zip>
You may no longer put xml-apis.jar, xercesImpl.jar, or xalan.jar in
Jskad/extensions. If you're lazy, you can move them to
extensions/drop-ins, but the correct thing to do is to move x*.jar to
$ANT_HOME/lib [next to vamp.jar, if you're already set up for Java Web
Start builds]. This is a side effect of improving the nightly builds.
Nightly builds now feature an HTML summary of the JUnit test results,
a datestamp, and full API docs in two flavors.
If you use a patched vamp.jar [e-mail me] that can run when an X11
display is not available (there is not an analogous problem for
Windows servers, I suspect), all you have to do to put up a nightly
builds site is to set up CVS access so that no password is requires
using SSH public-key crypto (sf.net documents how to do so well) and
then use the following daily cron job on your Unix box:
#! /bin/sh
renice +19 -p $$ >/dev/null 2>&1
su -l joe-user /bin/sh -c /var/www/thdl/nightly/doTheBuild.sh
where joe-user is an unprivileged user who has installed Ant properly
(see the updated BuildSystems.html on the developer's site off of
thdltools.sf.net) and set himself up a Jskad sandbox with a Fonts
sandbox underneath it in, e.g., /var/www/thdl/nightly/Jskad. Here's
doTheBuild.sh:
#! /bin/sh
JSKAD=/var/www/thdl/nightly/Jskad
DEST=/var/www/thdl/nightly/builds
HISTORY=/var/www/thdl/nightly/history
DATE=`date`
if test ! -d $DEST; then \
echo "$DEST does not exist ($DATE)." >> history; exit 1; fi
(cd $JSKAD && ant dc-nightly-build \
&& rm -fr ${DEST}/* \
&& cp dist/nightlyBuild.zip $DEST \
&& cd $DEST \
&& unzip nightlyBuild.zip)
if test $? != 0; then echo "NIGHTLY BUILDS FAILED on $DATE" >> $HISTORY; exit 2; fi
DDDATE=`date`
echo "Success on start=$DATE end=$DDDATE" >> $HISTORY
exit 0
2003-02-10 04:22:38 +00:00
<delete file= "${dist}/DateStampForNightlyBuilds.html" />
2002-11-18 22:16:07 +00:00
</target>
2003-02-01 05:08:02 +00:00
<!-- DLC FIXME: add tibbibl - all - in - one - dist -->
2002-09-30 02:28:17 +00:00
<target name= "self-contained-dist"
2003-03-14 00:31:45 +00:00
depends="jskad-all-in-one-dist"
2002-09-30 02:28:17 +00:00
description="JARs up everything into self-contained JARs for double-click, classpath-worry-free joy" />
<target name= "dist"
2003-06-24 03:02:29 +00:00
depends="jskad-dist,tt-handheld-dist,tt-standalone-dist,tt-applet-plus-jws-dist,tt-servlet-dist,tibbibl-dist,convertergui-dist"
2002-09-30 02:28:17 +00:00
description="JARs up everything" />
<target name= "compile"
2003-06-24 03:02:29 +00:00
depends="jskad-compile,tt-standalone-compile,tt-handheld-compile,tt-applet-plus-jws-compile,tt-servlet-compile,tibbibl-compile,convertergui-compile"
2002-10-23 01:08:52 +00:00
description="compiles all programs" />
2002-09-30 02:28:17 +00:00
<target name= "jskad-compile" depends= "init"
description="compiles Jskad" >
2003-02-03 08:21:37 +00:00
<mkdir dir= "${jskadbin}" />
2002-11-18 16:12:25 +00:00
<antcall target= "copy-tmw-fonts-to-bin-dir" >
<param name= "my.bin" value= "${jskadbin}" />
</antcall>
2003-06-22 22:11:40 +00:00
<!-- DLC FIMXE: put these in Jskad
<antcall target= "copy-tm-fonts-to-bin-dir" >
<param name= "my.bin" value= "${jskadbin}" />
</antcall>
-->
2002-11-18 16:12:25 +00:00
<antcall target= "create-timestamp-source-code" /> <!-- DLC NOW! The - run targets are mucking with this! It isn't fatal, but it should be fixed. -->
2002-10-10 06:00:32 +00:00
<antcall target= "our-internal-javac-task" >
<param name= "mybin" value= "${jskadbin}" />
2002-10-12 03:11:51 +00:00
<param name= "my.included.source.file"
value="org/thdl/tib/input/Jskad.java"/>
2002-10-10 06:00:32 +00:00
</antcall>
2002-10-15 21:14:31 +00:00
<antcall target= "our-internal-javac-task" >
<param name= "mybin" value= "${jskadbin}" />
<param name= "my.included.source.file"
value="org/thdl/tib/text/TibetanHTML.java"/>
</antcall>
2003-06-15 19:19:23 +00:00
<!-- Put TibetanConverter in Jskad's jar for those who want
2003-05-18 14:14:47 +00:00
to use it. -->
<antcall target= "our-internal-javac-task" >
<param name= "mybin" value= "${jskadbin}" />
<param name= "my.included.source.file"
2003-06-15 19:19:23 +00:00
value="org/thdl/tib/input/TibetanConverter.java"/>
2003-05-18 14:14:47 +00:00
</antcall>
2003-06-24 03:02:29 +00:00
<antcall target= "our-internal-javac-task" >
<param name= "mybin" value= "${jskadbin}" />
<param name= "my.included.source.file"
value="org/thdl/tib/input/ConverterGUI.java"/>
</antcall>
2002-10-10 06:00:32 +00:00
<antcall target= "copy-ini-files-to-bin-dir-for-jarring" >
<param name= "mybin" value= "${jskadbin}" />
</antcall>
Added a flexible mechanism for persistent boolean-, integer-, and
string-valued preferences built atop java.util.Properties.
How it works: the jvm is asked first, and then the user's prefs file, if it exists,
then the system-wide prefs file, and then the built-in preferences. Finally, for
robustness, a default may be optionally hard-coded in the source.
I made several things configurable, too:
the default Tibetan keyboard
the default font sizes and faces
whether you want developer-only features enabled
Savant's file extension (.savant)
etc.
The only known problems are the following:
The default location for the user's preferences file is windows-specific,
arbitrary, and not in the user documentation. Likewise for the location of the
system-wide preferences file. You can change them using 'java -D', though.
There is no "Save preferences" option yet, and closing the program does
not save preferences either.
2002-10-14 04:06:05 +00:00
<antcall target= "copy-license-etc-to-bin-dir-for-jarring" >
2002-10-10 06:00:32 +00:00
<param name= "mybin" value= "${jskadbin}" />
</antcall>
2002-12-07 17:53:24 +00:00
<copy todir= "${jskadbin}" >
<fileset dir= "${source}" >
<include name= "org/thdl/tib/input/jskad_doc.html" />
</fileset>
</copy>
2002-10-13 20:44:31 +00:00
<copy todir= "${jskadbin}/org/thdl/tib/input" >
<fileset dir= "${source}" >
2003-05-15 00:57:34 +00:00
<include name= "*.rtf" />
2002-12-07 17:53:24 +00:00
<!-- We don't have ACIP_keyboard.rtf yet, but creating such a
thing manually is just one option. We could easily
generate all the keyboard descriptions
2003-05-15 00:57:34 +00:00
programmatically. (FIXME) -->
2002-10-13 20:44:31 +00:00
</fileset>
</copy>
2002-09-30 02:28:17 +00:00
</target>
2003-06-24 03:02:29 +00:00
<target name= "convertergui-compile" depends= "init"
description="compiles Convertergui" >
<mkdir dir= "${converterguibin}" />
<antcall target= "create-timestamp-source-code" /> <!-- DLC NOW! The - run targets are mucking with this! It isn't fatal, but it should be fixed. -->
<antcall target= "our-internal-javac-task" >
<param name= "mybin" value= "${converterguibin}" />
<param name= "my.included.source.file"
value="org/thdl/tib/input/ConverterGUI.java"/>
</antcall>
<!-- Put TibetanConverter in this jar for those who want
to use it. -->
<antcall target= "our-internal-javac-task" >
<param name= "mybin" value= "${converterguibin}" />
<param name= "my.included.source.file"
value="org/thdl/tib/input/TibetanConverter.java"/>
</antcall>
<antcall target= "copy-ini-files-to-bin-dir-for-jarring" >
<param name= "mybin" value= "${converterguibin}" />
</antcall>
<antcall target= "copy-license-etc-to-bin-dir-for-jarring" >
<param name= "mybin" value= "${converterguibin}" />
</antcall>
</target>
2003-02-01 05:08:02 +00:00
<target name= "tibbibl-compile" depends= "init"
description="compiles Tibbibl" >
2003-02-03 08:21:37 +00:00
<mkdir dir= "${tibbiblbin}" />
2003-02-01 05:08:02 +00:00
<antcall target= "copy-tmw-fonts-to-bin-dir" >
<param name= "my.bin" value= "${tibbiblbin}" />
</antcall>
<antcall target= "create-timestamp-source-code" /> <!-- DLC NOW! The - run targets are mucking with this! It isn't fatal, but it should be fixed. -->
<antcall target= "our-internal-javac-task" >
<param name= "mybin" value= "${tibbiblbin}" />
<param name= "my.included.source.file"
value="org/thdl/tib/bibl/TiblEdit.java"/>
</antcall>
<antcall target= "copy-ini-files-to-bin-dir-for-jarring" >
<param name= "mybin" value= "${tibbiblbin}" />
</antcall>
<antcall target= "copy-license-etc-to-bin-dir-for-jarring" >
<param name= "mybin" value= "${tibbiblbin}" />
</antcall>
</target>
2003-01-12 20:24:01 +00:00
<target name= "compile-junit-tests" depends= "init"
2003-03-22 03:24:56 +00:00
description="compiles all JUnit test cases that can be compiled in the present CLASSPATH (NB that this distinction is just wishful thinking for now because we have such weak test coverage at this point)" >
2003-02-03 08:21:37 +00:00
<mkdir dir= "${junitbin}" />
2003-05-31 23:18:17 +00:00
<antcall target= "create-timestamp-source-code" /> <!-- DLC NOW! The - run targets are mucking with this! It isn't fatal, but it should be fixed. -->
2003-01-12 20:24:01 +00:00
<antcall target= "our-internal-javac-task" >
<param name= "mybin" value= "${junitbin}" />
<param name= "my.included.source.file"
value="org/thdl/util/ThdlLazyExceptionTest.java"/>
</antcall>
<antcall target= "our-internal-javac-task" >
<param name= "mybin" value= "${junitbin}" />
<param name= "my.included.source.file"
value="org/thdl/util/TrieTest.java"/>
</antcall>
2003-03-22 03:24:56 +00:00
<antcall target= "our-internal-javac-task" >
<param name= "mybin" value= "${junitbin}" />
<param name= "my.included.source.file"
value="org/thdl/tib/text/tshegbar/UnicodeUtilsTest.java"/>
</antcall>
2003-03-22 03:46:32 +00:00
<antcall target= "our-internal-javac-task" >
<param name= "mybin" value= "${junitbin}" />
<param name= "my.included.source.file"
value="org/thdl/tib/text/tshegbar/LegalTshegBarTest.java"/>
2003-05-18 17:17:52 +00:00
</antcall>
<antcall target= "our-internal-javac-task" >
<param name= "mybin" value= "${junitbin}" />
<param name= "my.included.source.file"
value="org/thdl/tib/input/TMW_RTF_TO_THDL_WYLIETest.java"/>
2003-03-22 03:46:32 +00:00
</antcall>
2003-04-14 05:22:27 +00:00
2003-04-14 23:55:00 +00:00
<antcall target= "create-timestamp-source-code" >
<param name= "mybin" value= "${junitbin}" />
</antcall>
2003-04-14 05:22:27 +00:00
<antcall target= "our-internal-javac-task" >
<param name= "mybin" value= "${junitbin}" />
<param name= "my.included.source.file"
value="org/thdl/tib/input/DuffPaneTest.java"/>
</antcall>
<antcall target= "copy-ini-files-to-bin-dir-for-jarring" >
<param name= "mybin" value= "${junitbin}" />
</antcall>
2003-03-22 03:55:39 +00:00
<antcall target= "our-internal-javac-task" >
<param name= "mybin" value= "${junitbin}" />
<param name= "my.included.source.file"
value="org/thdl/tib/text/tshegbar/UnicodeGraphemeClusterTest.java"/>
</antcall>
2003-03-22 04:55:17 +00:00
<antcall target= "our-internal-javac-task" >
<param name= "mybin" value= "${junitbin}" />
<param name= "my.included.source.file"
value="org/thdl/tib/text/tshegbar/UnicodeCodepointToThdlWylieTest.java"/>
</antcall>
2003-06-29 02:30:08 +00:00
<antcall target= "our-internal-javac-task" >
<param name= "mybin" value= "${junitbin}" />
<param name= "my.included.source.file"
value="org/thdl/util/RTFFixerInputStreamTest.java"/>
</antcall>
2003-01-12 20:24:01 +00:00
</target>
2002-10-10 06:00:32 +00:00
<!-- Builds the standalone translation tool: -->
<target name= "tt-standalone-compile" depends= "init"
description="compiles the standalone Translation Tool" >
2003-02-03 08:21:37 +00:00
<mkdir dir= "${ttstandalonebin}" />
2002-11-18 16:12:25 +00:00
<antcall target= "copy-tmw-fonts-to-bin-dir" >
<param name= "my.bin" value= "${ttstandalonebin}" />
</antcall>
<antcall target= "create-timestamp-source-code" />
2002-10-10 06:00:32 +00:00
<antcall target= "our-internal-javac-task" >
<param name= "mybin" value= "${ttstandalonebin}" />
2002-10-12 03:11:51 +00:00
<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"/>
2002-10-10 06:00:32 +00:00
</antcall>
2002-11-28 02:51:29 +00:00
<antcall target= "our-internal-javac-task" >
<param name= "mybin" value= "${ttstandalonebin}" />
<param name= "my.included.source.file"
value="org/thdl/tib/scanner/ConsoleScannerFilter.java"/>
</antcall>
2002-11-02 17:09:36 +00:00
<antcall target= "our-internal-javac-task" >
<param name= "mybin" value= "${ttstandalonebin}" />
<param name= "my.included.source.file"
value="org/thdl/tib/scanner/AcipToWylie.java"/>
</antcall>
2002-10-10 06:00:32 +00:00
<antcall target= "copy-ini-files-to-bin-dir-for-jarring" >
<param name= "mybin" value= "${ttstandalonebin}" />
</antcall>
Added a flexible mechanism for persistent boolean-, integer-, and
string-valued preferences built atop java.util.Properties.
How it works: the jvm is asked first, and then the user's prefs file, if it exists,
then the system-wide prefs file, and then the built-in preferences. Finally, for
robustness, a default may be optionally hard-coded in the source.
I made several things configurable, too:
the default Tibetan keyboard
the default font sizes and faces
whether you want developer-only features enabled
Savant's file extension (.savant)
etc.
The only known problems are the following:
The default location for the user's preferences file is windows-specific,
arbitrary, and not in the user documentation. Likewise for the location of the
system-wide preferences file. You can change them using 'java -D', though.
There is no "Save preferences" option yet, and closing the program does
not save preferences either.
2002-10-14 04:06:05 +00:00
<antcall target= "copy-license-etc-to-bin-dir-for-jarring" >
2002-10-10 06:00:32 +00:00
<param name= "mybin" value= "${ttstandalonebin}" />
</antcall>
2002-10-05 06:36:23 +00:00
</target>
2002-10-10 06:00:32 +00:00
<!-- 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" >
2003-02-03 08:21:37 +00:00
<mkdir dir= "${tthandheldbin}" />
2002-11-18 16:12:25 +00:00
<antcall target= "create-timestamp-source-code" />
2002-10-10 06:00:32 +00:00
<antcall target= "our-internal-javac-task" >
<param name= "target.jvm" value= "1.1" />
<param name= "mybin" value= "${tthandheldbin}" />
2002-10-12 03:11:51 +00:00
<param name= "my.included.source.file"
value="org/thdl/tib/scanner/WindowScannerFilter.java"/>
2002-10-10 06:00:32 +00:00
</antcall>
2002-11-28 02:51:29 +00:00
<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/ConsoleScannerFilter.java"/>
</antcall>
Added a flexible mechanism for persistent boolean-, integer-, and
string-valued preferences built atop java.util.Properties.
How it works: the jvm is asked first, and then the user's prefs file, if it exists,
then the system-wide prefs file, and then the built-in preferences. Finally, for
robustness, a default may be optionally hard-coded in the source.
I made several things configurable, too:
the default Tibetan keyboard
the default font sizes and faces
whether you want developer-only features enabled
Savant's file extension (.savant)
etc.
The only known problems are the following:
The default location for the user's preferences file is windows-specific,
arbitrary, and not in the user documentation. Likewise for the location of the
system-wide preferences file. You can change them using 'java -D', though.
There is no "Save preferences" option yet, and closing the program does
not save preferences either.
2002-10-14 04:06:05 +00:00
<antcall target= "copy-license-etc-to-bin-dir-for-jarring" >
2002-10-10 06:00:32 +00:00
<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" >
2003-02-03 08:21:37 +00:00
<mkdir dir= "${ttappletjwsbin}" />
2002-11-18 16:12:25 +00:00
<antcall target= "copy-tmw-fonts-to-bin-dir" >
<param name= "my.bin" value= "${ttappletjwsbin}" />
</antcall>
<antcall target= "create-timestamp-source-code" />
2002-10-10 06:00:32 +00:00
<antcall target= "our-internal-javac-task" >
<param name= "mybin" value= "${ttappletjwsbin}" />
2002-10-12 03:11:51 +00:00
<param name= "my.included.source.file"
value="org/thdl/tib/scanner/AppletScannerFilter.java"/>
2002-10-10 06:00:32 +00:00
</antcall>
<antcall target= "our-internal-javac-task" >
<param name= "mybin" value= "${ttappletjwsbin}" />
2002-10-12 03:11:51 +00:00
<param name= "my.included.source.file"
value="org/thdl/tib/scanner/WindowScannerFilter.java"/>
2002-10-10 06:00:32 +00:00
</antcall>
<antcall target= "copy-ini-files-to-bin-dir-for-jarring" >
<param name= "mybin" value= "${ttappletjwsbin}" />
</antcall>
Added a flexible mechanism for persistent boolean-, integer-, and
string-valued preferences built atop java.util.Properties.
How it works: the jvm is asked first, and then the user's prefs file, if it exists,
then the system-wide prefs file, and then the built-in preferences. Finally, for
robustness, a default may be optionally hard-coded in the source.
I made several things configurable, too:
the default Tibetan keyboard
the default font sizes and faces
whether you want developer-only features enabled
Savant's file extension (.savant)
etc.
The only known problems are the following:
The default location for the user's preferences file is windows-specific,
arbitrary, and not in the user documentation. Likewise for the location of the
system-wide preferences file. You can change them using 'java -D', though.
There is no "Save preferences" option yet, and closing the program does
not save preferences either.
2002-10-14 04:06:05 +00:00
<antcall target= "copy-license-etc-to-bin-dir-for-jarring" >
2002-10-10 06:00:32 +00:00
<param name= "mybin" value= "${ttappletjwsbin}" />
</antcall>
</target>
2002-10-23 01:08:52 +00:00
<target name= "tt-servlet-compile"
depends="ttsc-init"
2002-10-24 13:53:27 +00:00
if="found.servlet.classes"
2002-10-23 01:08:52 +00:00
description="compiles the servlet form of the Translation Tool if you've set the j2ee.sdk.home property correctly" >
2003-02-03 08:21:37 +00:00
<mkdir dir= "${ttservletbin}" />
2002-11-18 16:12:25 +00:00
<antcall target= "copy-tmw-fonts-to-bin-dir" >
<param name= "my.bin" value= "${ttservletbin}" />
</antcall>
<antcall target= "create-timestamp-source-code" />
2002-10-25 10:58:44 +00:00
<!-- For now, these two paths are identical: -->
2002-10-23 01:08:52 +00:00
<path id= "ttsc.class.path" >
2002-10-25 10:58:44 +00:00
<path refid= "all.extras.class.path" />
2002-10-23 01:08:52 +00:00
</path>
2002-10-10 06:00:32 +00:00
<antcall target= "our-internal-javac-task" >
2002-10-23 01:08:52 +00:00
<reference torefid= "ttsc.class.path" refid= "ttsc.class.path" />
<param name= "our.javac.classpathref" value= "ttsc.class.path" />
2002-10-10 06:00:32 +00:00
<param name= "mybin" value= "${ttservletbin}" />
2002-10-12 03:11:51 +00:00
<param name= "my.included.source.file"
value="org/thdl/tib/scanner/ConsoleScannerFilter.java"/>
2002-10-10 06:00:32 +00:00
</antcall>
2002-10-25 00:21:34 +00:00
<antcall target= "our-internal-javac-task" >
<reference torefid= "ttsc.class.path" refid= "ttsc.class.path" />
<param name= "our.javac.classpathref" value= "ttsc.class.path" />
<param name= "mybin" value= "${ttservletbin}" />
<param name= "my.included.source.file"
value="org/thdl/tib/scanner/OnLineScannerFilter.java"/>
</antcall>
<antcall target= "our-internal-javac-task" >
<reference torefid= "ttsc.class.path" refid= "ttsc.class.path" />
<param name= "our.javac.classpathref" value= "ttsc.class.path" />
<param name= "mybin" value= "${ttservletbin}" />
<param name= "my.included.source.file"
value="org/thdl/tib/scanner/RemoteScannerFilter.java"/>
</antcall>
<antcall target= "copy-ini-files-to-bin-dir-for-jarring" >
<param name= "mybin" value= "${ttservletbin}" />
</antcall>
Added a flexible mechanism for persistent boolean-, integer-, and
string-valued preferences built atop java.util.Properties.
How it works: the jvm is asked first, and then the user's prefs file, if it exists,
then the system-wide prefs file, and then the built-in preferences. Finally, for
robustness, a default may be optionally hard-coded in the source.
I made several things configurable, too:
the default Tibetan keyboard
the default font sizes and faces
whether you want developer-only features enabled
Savant's file extension (.savant)
etc.
The only known problems are the following:
The default location for the user's preferences file is windows-specific,
arbitrary, and not in the user documentation. Likewise for the location of the
system-wide preferences file. You can change them using 'java -D', though.
There is no "Save preferences" option yet, and closing the program does
not save preferences either.
2002-10-14 04:06:05 +00:00
<antcall target= "copy-license-etc-to-bin-dir-for-jarring" >
2002-10-23 01:08:52 +00:00
<param name= "mybin" value= "${ttservletbin}" />
2002-10-10 06:00:32 +00:00
</antcall>
2002-09-30 02:28:17 +00:00
</target>
2003-02-01 05:08:02 +00:00
<!-- DLC FIXME: add tibbibl - jws -->
2003-03-22 02:48:21 +00:00
<!--
Note that jardiffs for the JWS stuff are done by the JWS system
itself when appropriate and when the server is configured
correctly. We have no work to do on that front.
-->
2002-10-25 11:04:24 +00:00
<target name= "web-start-releases"
2003-03-14 00:31:45 +00:00
depends="jskad-jws,tt-jws"
2002-10-25 11:04:24 +00:00
description="Builds the Java Web Start versions of all applications"/>
<target name= "jskad-jws"
depends="init"
description="Builds the Java Web Start version of Jskad">
<antcall target= "compile-from-scratch-and-call-jws-subbuild" >
<param name= "my.app" value= "Jskad" />
2002-11-18 16:12:25 +00:00
<param name= "jwsjarsuffix" value= "-self-contained" />
<param name= "my.prereq" value= "jskad-all-in-one-dist" />
2002-11-16 18:04:47 +00:00
<param name= "lib" value= "${jwslib}" />
2002-10-25 11:04:24 +00:00
</antcall>
</target>
<target name= "tt-jws"
depends="init"
description="Builds the Java Web Start version of the translation tool">
<antcall target= "compile-from-scratch-and-call-jws-subbuild" >
<param name= "my.app" value= "DictionarySearchAppletAndJavaWebStart" />
2002-11-18 16:12:25 +00:00
<param name= "jwsjarsuffix" value= "" />
2002-10-25 11:04:24 +00:00
<param name= "my.prereq" value= "tt-applet-plus-jws-dist" />
2002-11-16 18:04:47 +00:00
<param name= "lib" value= "${jwslib}" />
2002-10-25 11:04:24 +00:00
</antcall>
</target>
2002-10-06 20:42:02 +00:00
<target name= "src-dist" depends= "init"
2003-03-22 02:48:21 +00:00
description="generates the full Jskad+Tibbibl+Translation Tool source distribution" >
2002-10-03 02:55:19 +00:00
<!-- Put everything necessary into the zip file -->
2002-09-30 02:28:17 +00:00
<zip destfile= "${dist}/source/THDL-Tools-src-${DSTAMP}.zip" >
<zipfileset dir= "${source}"
includes="**"
prefix="source"/>
2002-10-10 06:00:32 +00:00
<zipfileset dir= "${license}"
includes="*"
2002-09-30 02:28:17 +00:00
prefix="."/>
<zipfileset dir= "."
2003-01-12 20:24:01 +00:00
includes="*build.xml"
2002-09-30 02:28:17 +00:00
prefix="."/>
2002-10-06 20:42:02 +00:00
<zipfileset dir= "."
includes="docs/*package-list/**"
prefix="."/>
2002-09-30 02:28:17 +00:00
</zip>
</target>
<target name= "jskad-dist" depends= "jskad-compile"
description="generates the bare Jskad binary distribution" >
2002-10-05 06:36:23 +00:00
<!-- Put everything in ${jskadbin} into the JAR file -->
2002-11-16 18:04:47 +00:00
<jar jarfile= "${lib}/Jskad${my.jar.suffix}.jar"
Now copies over everything necessary to the bin directories.
Added a 'releases' target that builds Javadocs, binary JARs, and a source
zipfile. It generates double-clickable Jskad and translation tool JARs, but it
does NOT generate double-clickable Savant or QuillDriver jars because
that would require putting jdom/xalan/xml-apis/xercesImpl/jmf JARs onto
the Class-path attribute in the manifest files. That would be a relative path,
though, and until we have an installer, I don't know what to put in there.
That means that, for now, you invoke Savant with
'java -cp jdom.jar;jmf.jar;....;Savant-2002XXXX.jar
org.thdl.savant.SavantShell'
BUT, I've added targets to run all four programs: savant-run, qd-run, tt-run,
and jskad-run.
No longer uses manifests/*. Ant has a <manifest> task that we use instead.
Now uses the source/overview.html file in Javadoc builds.
2002-10-06 17:54:01 +00:00
basedir="${jskadbin}">
<manifest >
<attribute name= "Main-Class" value= "org.thdl.tib.input.Jskad" />
</manifest>
</jar>
2002-10-05 06:36:23 +00:00
</target>
2003-06-24 03:02:29 +00:00
<target name= "convertergui-dist" depends= "convertergui-compile"
description="generates the bare ConverterGUI binary distribution" >
<!-- Put everything in ${converterguibin} into the JAR file -->
<jar jarfile= "${lib}/TibetanConverterGUI${my.jar.suffix}.jar"
basedir="${converterguibin}">
<manifest >
<attribute name= "Main-Class" value= "org.thdl.tib.input.ConverterGUI" />
</manifest>
</jar>
</target>
2003-02-01 05:08:02 +00:00
<target name= "tibbibl-dist" depends= "tibbibl-compile"
description="generates the bare Tibbibl binary distribution" >
<!-- Put everything in ${tibbiblbin} into the JAR file -->
<jar jarfile= "${lib}/Tibbibl${my.jar.suffix}.jar"
basedir="${tibbiblbin}">
<manifest >
<attribute name= "Main-Class" value= "org.thdl.tib.bibl.TiblEdit" />
</manifest>
</jar>
</target>
2002-10-10 06:00:32 +00:00
<!-- 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 -->
2002-11-16 18:04:47 +00:00
<jar jarfile= "${lib}/DictionarySearchStandalone${my.jar.suffix}.jar"
2002-10-10 06:00:32 +00:00
basedir="${ttstandalonebin}">
<manifest >
2002-10-12 03:11:51 +00:00
<attribute name= "Main-Class"
value="org.thdl.tib.scanner.WindowScannerFilter"/>
2002-10-10 06:00:32 +00:00
</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 -->
2002-11-16 18:04:47 +00:00
<jar jarfile= "${lib}/DictionarySearchHandheld${my.jar.suffix}.jar"
2002-10-10 06:00:32 +00:00
basedir="${tthandheldbin}">
Now copies over everything necessary to the bin directories.
Added a 'releases' target that builds Javadocs, binary JARs, and a source
zipfile. It generates double-clickable Jskad and translation tool JARs, but it
does NOT generate double-clickable Savant or QuillDriver jars because
that would require putting jdom/xalan/xml-apis/xercesImpl/jmf JARs onto
the Class-path attribute in the manifest files. That would be a relative path,
though, and until we have an installer, I don't know what to put in there.
That means that, for now, you invoke Savant with
'java -cp jdom.jar;jmf.jar;....;Savant-2002XXXX.jar
org.thdl.savant.SavantShell'
BUT, I've added targets to run all four programs: savant-run, qd-run, tt-run,
and jskad-run.
No longer uses manifests/*. Ant has a <manifest> task that we use instead.
Now uses the source/overview.html file in Javadoc builds.
2002-10-06 17:54:01 +00:00
<manifest >
2002-10-12 03:11:51 +00:00
<attribute name= "Main-Class"
value="org.thdl.tib.scanner.WindowScannerFilter"/>
Now copies over everything necessary to the bin directories.
Added a 'releases' target that builds Javadocs, binary JARs, and a source
zipfile. It generates double-clickable Jskad and translation tool JARs, but it
does NOT generate double-clickable Savant or QuillDriver jars because
that would require putting jdom/xalan/xml-apis/xercesImpl/jmf JARs onto
the Class-path attribute in the manifest files. That would be a relative path,
though, and until we have an installer, I don't know what to put in there.
That means that, for now, you invoke Savant with
'java -cp jdom.jar;jmf.jar;....;Savant-2002XXXX.jar
org.thdl.savant.SavantShell'
BUT, I've added targets to run all four programs: savant-run, qd-run, tt-run,
and jskad-run.
No longer uses manifests/*. Ant has a <manifest> task that we use instead.
Now uses the source/overview.html file in Javadoc builds.
2002-10-06 17:54:01 +00:00
</manifest>
</jar>
2002-09-30 02:28:17 +00:00
</target>
2002-10-10 06:00:32 +00:00
<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 -->
2002-11-16 18:04:47 +00:00
<jar jarfile= "${lib}/DictionarySearchAppletAndJavaWebStart${my.jar.suffix}.jar"
2002-10-10 06:00:32 +00:00
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 >
2002-10-12 03:11:51 +00:00
<attribute name= "Main-Class"
value="org.thdl.tib.scanner.WindowScannerFilter"/>
2002-10-10 06:00:32 +00:00
</manifest>
</jar>
</target>
<target name= "tt-servlet-dist" depends= "tt-servlet-compile"
2002-10-24 13:53:27 +00:00
if="found.servlet.classes"
2002-10-10 06:00:32 +00:00
description="generates the servlet translation tool's binary distribution." >
<!-- Put everything in ${ttservletbin} into the JAR file -->
2002-11-16 18:04:47 +00:00
<jar jarfile= "${lib}/DictionarySearchServlet${my.jar.suffix}.jar"
2002-10-10 06:00:32 +00:00
basedir="${ttservletbin}">
2002-10-12 03:11:51 +00:00
<!-- I don't think this'll work (I don't know servlets, mind
you), but the main class is the following, so why not: -->
2002-10-10 06:00:32 +00:00
<manifest >
2002-10-12 03:11:51 +00:00
<attribute name= "Main-Class"
value="org.thdl.tib.scanner.ConsoleScannerFilter"/>
2002-10-10 06:00:32 +00:00
</manifest>
</jar>
</target>
2002-09-30 02:28:17 +00:00
<target name= "jskad-all-in-one-dist" depends= "jskad-compile"
description="generates the self-contained binary distribution for Jskad" >
2003-02-03 08:21:37 +00:00
<!-- Now put everything in ${jskadbin} and ${ext}/netscape, plus
2002-10-10 06:00:32 +00:00
the .ini files, into the JAR file
2002-09-30 02:28:17 +00:00
-->
<copy todir= "${jskadbin}/netscape" >
<fileset dir= "${ext}/netscape" />
</copy>
2002-11-16 18:04:47 +00:00
<jar jarfile= "${lib}/Jskad-self-contained${my.jar.suffix}.jar"
2003-02-03 08:21:37 +00:00
basedir="${jskadbin}">
Now copies over everything necessary to the bin directories.
Added a 'releases' target that builds Javadocs, binary JARs, and a source
zipfile. It generates double-clickable Jskad and translation tool JARs, but it
does NOT generate double-clickable Savant or QuillDriver jars because
that would require putting jdom/xalan/xml-apis/xercesImpl/jmf JARs onto
the Class-path attribute in the manifest files. That would be a relative path,
though, and until we have an installer, I don't know what to put in there.
That means that, for now, you invoke Savant with
'java -cp jdom.jar;jmf.jar;....;Savant-2002XXXX.jar
org.thdl.savant.SavantShell'
BUT, I've added targets to run all four programs: savant-run, qd-run, tt-run,
and jskad-run.
No longer uses manifests/*. Ant has a <manifest> task that we use instead.
Now uses the source/overview.html file in Javadoc builds.
2002-10-06 17:54:01 +00:00
<manifest >
<attribute name= "Main-Class" value= "org.thdl.tib.input.Jskad" />
</manifest>
</jar>
2002-09-30 02:28:17 +00:00
</target>
<target name= "clean"
2002-10-25 11:56:05 +00:00
description="cleans up a few things, but not all (not the Javadocs or the JWS releases, e.g.)" >
2002-09-30 02:28:17 +00:00
<!-- Delete the ${bin} and ${dist} directory trees -->
<delete dir= "${bin}" />
2002-10-12 18:30:14 +00:00
<delete dir= "${dist}/docs" />
2002-11-16 18:04:47 +00:00
<delete dir= "${vanillalib}" />
<delete dir= "${jwslib}" />
<delete dir= "${lib}" />
You may no longer put xml-apis.jar, xercesImpl.jar, or xalan.jar in
Jskad/extensions. If you're lazy, you can move them to
extensions/drop-ins, but the correct thing to do is to move x*.jar to
$ANT_HOME/lib [next to vamp.jar, if you're already set up for Java Web
Start builds]. This is a side effect of improving the nightly builds.
Nightly builds now feature an HTML summary of the JUnit test results,
a datestamp, and full API docs in two flavors.
If you use a patched vamp.jar [e-mail me] that can run when an X11
display is not available (there is not an analogous problem for
Windows servers, I suspect), all you have to do to put up a nightly
builds site is to set up CVS access so that no password is requires
using SSH public-key crypto (sf.net documents how to do so well) and
then use the following daily cron job on your Unix box:
#! /bin/sh
renice +19 -p $$ >/dev/null 2>&1
su -l joe-user /bin/sh -c /var/www/thdl/nightly/doTheBuild.sh
where joe-user is an unprivileged user who has installed Ant properly
(see the updated BuildSystems.html on the developer's site off of
thdltools.sf.net) and set himself up a Jskad sandbox with a Fonts
sandbox underneath it in, e.g., /var/www/thdl/nightly/Jskad. Here's
doTheBuild.sh:
#! /bin/sh
JSKAD=/var/www/thdl/nightly/Jskad
DEST=/var/www/thdl/nightly/builds
HISTORY=/var/www/thdl/nightly/history
DATE=`date`
if test ! -d $DEST; then \
echo "$DEST does not exist ($DATE)." >> history; exit 1; fi
(cd $JSKAD && ant dc-nightly-build \
&& rm -fr ${DEST}/* \
&& cp dist/nightlyBuild.zip $DEST \
&& cd $DEST \
&& unzip nightlyBuild.zip)
if test $? != 0; then echo "NIGHTLY BUILDS FAILED on $DATE" >> $HISTORY; exit 2; fi
DDDATE=`date`
echo "Success on start=$DATE end=$DDDATE" >> $HISTORY
exit 0
2003-02-10 04:22:38 +00:00
<delete dir= "${dist}/junit-noframes.html" />
<delete dir= "${dist}/TESTS-TestSuites.xml" />
2002-10-12 18:30:14 +00:00
<delete dir= "${dist}/releases" />
<delete dir= "${dist}/source" />
2002-10-25 11:56:05 +00:00
<delete file= "${dist}/DictionarySearchAppletAndJavaWebStart.jnlp" />
<delete file= "${dist}/Jskad.jnlp" />
2002-11-16 19:18:44 +00:00
<delete file= "${source}/org/thdl/util/ThdlVersion.java" />
2003-01-12 20:24:01 +00:00
<delete >
<fileset dir= "." includes= "TEST-org.thdl*" />
</delete>
2002-09-30 02:28:17 +00:00
</target>
2002-10-10 06:00:32 +00:00
<!-- Automake build systems use a 'make distclean' target, hence the
admittedly rather confusing name. Trust the description. -->
2002-09-30 02:28:17 +00:00
<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}" />
2002-10-25 11:56:05 +00:00
<delete dir= "${dist}/java-web-start" />
2002-11-18 22:16:07 +00:00
<!-- 'ant clean' may be run during the nightly - build target, so
'ant clean' cannot delete the following: -->
<delete file= "${dist}/nightlyBuild.zip" />
2002-09-30 02:28:17 +00:00
</target>
<!--
HEY PROJECT MANAGER:
http://thdltools.sf.net/api lives at
2002-10-20 22:40:49 +00:00
/home/groups/t/th/thdltools/htdocs/api. To update it, follow the instructions
at 'http://thdltools.sf.net/BuildSystems.html#wwwmodule'.
2002-09-30 02:28:17 +00:00
-->
<target name= "public-javadocs-dist" depends= "public-javadocs"
description="makes zip file of Javadoc documentation for public/protected classes, methods, and fields" >
2002-10-10 06:00:32 +00:00
<tstamp />
2002-09-30 02:28:17 +00:00
<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" >
2002-10-10 06:00:32 +00:00
<tstamp />
2002-09-30 02:28:17 +00:00
<zip destfile= "${dist}/docs/private-javadocs-${DSTAMP}.zip"
basedir="${privatejavadocs}"/>
</target>
<target name= "public-javadocs"
2002-12-20 04:34:56 +00:00
description="makes Javadoc documentation for public/protected classes, methods, and fields. Expect warnings, as private-javadocs is preferred."
2002-12-09 01:58:17 +00:00
depends="init,create-timestamp-source-code" >
2002-09-30 02:28:17 +00:00
<antcall target= "our-javadocs" >
<param name= "access" value= "protected" />
<param name= "our-javadocs-destdir" value= "${publicjavadocs}" />
</antcall>
</target>
<target name= "private-javadocs"
2002-10-03 02:55:19 +00:00
description="makes Javadoc documentation for all classes, methods, and fields, regardless of their protection level (public, private, etc.)"
2002-12-09 01:58:17 +00:00
depends="init,create-timestamp-source-code" >
2002-09-30 02:28:17 +00:00
<antcall target= "our-javadocs" >
<param name= "access" value= "private" />
<param name= "our-javadocs-destdir" value= "${privatejavadocs}" />
</antcall>
</target>
Now copies over everything necessary to the bin directories.
Added a 'releases' target that builds Javadocs, binary JARs, and a source
zipfile. It generates double-clickable Jskad and translation tool JARs, but it
does NOT generate double-clickable Savant or QuillDriver jars because
that would require putting jdom/xalan/xml-apis/xercesImpl/jmf JARs onto
the Class-path attribute in the manifest files. That would be a relative path,
though, and until we have an installer, I don't know what to put in there.
That means that, for now, you invoke Savant with
'java -cp jdom.jar;jmf.jar;....;Savant-2002XXXX.jar
org.thdl.savant.SavantShell'
BUT, I've added targets to run all four programs: savant-run, qd-run, tt-run,
and jskad-run.
No longer uses manifests/*. Ant has a <manifest> task that we use instead.
Now uses the source/overview.html file in Javadoc builds.
2002-10-06 17:54:01 +00:00
<target name= "jskad-run" depends= "jskad-dist" description= "runs Jskad" >
<java classname= "org.thdl.tib.input.Jskad" fork= "yes" >
<classpath >
2002-11-16 18:04:47 +00:00
<pathelement location= "${lib}/Jskad${my.jar.suffix}.jar" />
Now copies over everything necessary to the bin directories.
Added a 'releases' target that builds Javadocs, binary JARs, and a source
zipfile. It generates double-clickable Jskad and translation tool JARs, but it
does NOT generate double-clickable Savant or QuillDriver jars because
that would require putting jdom/xalan/xml-apis/xercesImpl/jmf JARs onto
the Class-path attribute in the manifest files. That would be a relative path,
though, and until we have an installer, I don't know what to put in there.
That means that, for now, you invoke Savant with
'java -cp jdom.jar;jmf.jar;....;Savant-2002XXXX.jar
org.thdl.savant.SavantShell'
BUT, I've added targets to run all four programs: savant-run, qd-run, tt-run,
and jskad-run.
No longer uses manifests/*. Ant has a <manifest> task that we use instead.
Now uses the source/overview.html file in Javadoc builds.
2002-10-06 17:54:01 +00:00
<path refid= "entire.class.path" />
</classpath>
Added a flexible mechanism for persistent boolean-, integer-, and
string-valued preferences built atop java.util.Properties.
How it works: the jvm is asked first, and then the user's prefs file, if it exists,
then the system-wide prefs file, and then the built-in preferences. Finally, for
robustness, a default may be optionally hard-coded in the source.
I made several things configurable, too:
the default Tibetan keyboard
the default font sizes and faces
whether you want developer-only features enabled
Savant's file extension (.savant)
etc.
The only known problems are the following:
The default location for the user's preferences file is windows-specific,
arbitrary, and not in the user documentation. Likewise for the location of the
system-wide preferences file. You can change them using 'java -D', though.
There is no "Save preferences" option yet, and closing the program does
not save preferences either.
2002-10-14 04:06:05 +00:00
<jvmarg value= "-Dthdl.debug=${thdl.debug}" />
Now copies over everything necessary to the bin directories.
Added a 'releases' target that builds Javadocs, binary JARs, and a source
zipfile. It generates double-clickable Jskad and translation tool JARs, but it
does NOT generate double-clickable Savant or QuillDriver jars because
that would require putting jdom/xalan/xml-apis/xercesImpl/jmf JARs onto
the Class-path attribute in the manifest files. That would be a relative path,
though, and until we have an installer, I don't know what to put in there.
That means that, for now, you invoke Savant with
'java -cp jdom.jar;jmf.jar;....;Savant-2002XXXX.jar
org.thdl.savant.SavantShell'
BUT, I've added targets to run all four programs: savant-run, qd-run, tt-run,
and jskad-run.
No longer uses manifests/*. Ant has a <manifest> task that we use instead.
Now uses the source/overview.html file in Javadoc builds.
2002-10-06 17:54:01 +00:00
</java>
</target>
2003-02-01 05:08:02 +00:00
<target name= "tibbibl-run" depends= "tibbibl-dist" description= "runs Tibbibl" >
<available classname= "org.jdom.Document"
classpathref="entire.class.path"
ignoresystemclasses="true"
property="jdom.present"/>
<fail message= "Can't find JDOM. Drop jdom.jar into extensions."
unless="jdom.present"/>
<java classname= "org.thdl.tib.bibl.TiblEdit" fork= "yes" >
<classpath >
<pathelement location= "${lib}/Tibbibl${my.jar.suffix}.jar" />
<path refid= "entire.class.path" />
</classpath>
<jvmarg value= "-Dthdl.debug=${thdl.debug}" />
</java>
</target>
2002-10-10 06:00:32 +00:00
<target name= "tt-run" depends= "tt-standalone-dist" description= "runs the standalone translation tool" >
Now copies over everything necessary to the bin directories.
Added a 'releases' target that builds Javadocs, binary JARs, and a source
zipfile. It generates double-clickable Jskad and translation tool JARs, but it
does NOT generate double-clickable Savant or QuillDriver jars because
that would require putting jdom/xalan/xml-apis/xercesImpl/jmf JARs onto
the Class-path attribute in the manifest files. That would be a relative path,
though, and until we have an installer, I don't know what to put in there.
That means that, for now, you invoke Savant with
'java -cp jdom.jar;jmf.jar;....;Savant-2002XXXX.jar
org.thdl.savant.SavantShell'
BUT, I've added targets to run all four programs: savant-run, qd-run, tt-run,
and jskad-run.
No longer uses manifests/*. Ant has a <manifest> task that we use instead.
Now uses the source/overview.html file in Javadoc builds.
2002-10-06 17:54:01 +00:00
<java classname= "org.thdl.tib.scanner.WindowScannerFilter" fork= "yes" >
<classpath >
2002-10-12 03:11:51 +00:00
<pathelement
2002-11-16 18:04:47 +00:00
location="${lib}/DictionarySearchStandalone${my.jar.suffix}.jar"/>
Now copies over everything necessary to the bin directories.
Added a 'releases' target that builds Javadocs, binary JARs, and a source
zipfile. It generates double-clickable Jskad and translation tool JARs, but it
does NOT generate double-clickable Savant or QuillDriver jars because
that would require putting jdom/xalan/xml-apis/xercesImpl/jmf JARs onto
the Class-path attribute in the manifest files. That would be a relative path,
though, and until we have an installer, I don't know what to put in there.
That means that, for now, you invoke Savant with
'java -cp jdom.jar;jmf.jar;....;Savant-2002XXXX.jar
org.thdl.savant.SavantShell'
BUT, I've added targets to run all four programs: savant-run, qd-run, tt-run,
and jskad-run.
No longer uses manifests/*. Ant has a <manifest> task that we use instead.
Now uses the source/overview.html file in Javadoc builds.
2002-10-06 17:54:01 +00:00
<path refid= "entire.class.path" />
</classpath>
Added a flexible mechanism for persistent boolean-, integer-, and
string-valued preferences built atop java.util.Properties.
How it works: the jvm is asked first, and then the user's prefs file, if it exists,
then the system-wide prefs file, and then the built-in preferences. Finally, for
robustness, a default may be optionally hard-coded in the source.
I made several things configurable, too:
the default Tibetan keyboard
the default font sizes and faces
whether you want developer-only features enabled
Savant's file extension (.savant)
etc.
The only known problems are the following:
The default location for the user's preferences file is windows-specific,
arbitrary, and not in the user documentation. Likewise for the location of the
system-wide preferences file. You can change them using 'java -D', though.
There is no "Save preferences" option yet, and closing the program does
not save preferences either.
2002-10-14 04:06:05 +00:00
<jvmarg value= "-Dthdl.debug=${thdl.debug}" />
Now copies over everything necessary to the bin directories.
Added a 'releases' target that builds Javadocs, binary JARs, and a source
zipfile. It generates double-clickable Jskad and translation tool JARs, but it
does NOT generate double-clickable Savant or QuillDriver jars because
that would require putting jdom/xalan/xml-apis/xercesImpl/jmf JARs onto
the Class-path attribute in the manifest files. That would be a relative path,
though, and until we have an installer, I don't know what to put in there.
That means that, for now, you invoke Savant with
'java -cp jdom.jar;jmf.jar;....;Savant-2002XXXX.jar
org.thdl.savant.SavantShell'
BUT, I've added targets to run all four programs: savant-run, qd-run, tt-run,
and jskad-run.
No longer uses manifests/*. Ant has a <manifest> task that we use instead.
Now uses the source/overview.html file in Javadoc builds.
2002-10-06 17:54:01 +00:00
<!-- For non - swing version: <arg value=" - simple"/> -->
<arg value= "${arch.dict}" />
</java>
</target>
2002-11-18 16:12:25 +00:00
<!-- DLC FIXME: build the tt - servlet release if the J2EE SDK is present. UPDATE: doesn't it do this? -->
2002-10-20 22:40:49 +00:00
<!-- See http://thdltools.sf.net/BuildSystems.html for info on
2002-10-06 20:42:02 +00:00
how to use this target. Note that we must do a distclean
2002-11-18 16:12:25 +00:00
because Ant doesn't always recompile when it should unless you use a
special task. -->
2002-10-06 20:42:02 +00:00
<target name= "releases"
description="builds the releases under 'dist/releases/' after doing a distclean"
2002-10-12 18:30:14 +00:00
depends="distclean,init">
Now copies over everything necessary to the bin directories.
Added a 'releases' target that builds Javadocs, binary JARs, and a source
zipfile. It generates double-clickable Jskad and translation tool JARs, but it
does NOT generate double-clickable Savant or QuillDriver jars because
that would require putting jdom/xalan/xml-apis/xercesImpl/jmf JARs onto
the Class-path attribute in the manifest files. That would be a relative path,
though, and until we have an installer, I don't know what to put in there.
That means that, for now, you invoke Savant with
'java -cp jdom.jar;jmf.jar;....;Savant-2002XXXX.jar
org.thdl.savant.SavantShell'
BUT, I've added targets to run all four programs: savant-run, qd-run, tt-run,
and jskad-run.
No longer uses manifests/*. Ant has a <manifest> task that we use instead.
Now uses the source/overview.html file in Javadoc builds.
2002-10-06 17:54:01 +00:00
<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>
2002-10-10 06:00:32 +00:00
2003-02-03 06:24:52 +00:00
<!-- DC uses this to update the javadocs on thdltools.sf.net. -->
<target name= "copy-over-javadocs"
depends="clean,public-javadocs-dist,private-javadocs-dist"
description="Uses scp to copy zip files of two flavors of Javadocs to thdltools.sf.net. After that, ssh in and follow the instructions given in http://thdltools.sourceforge.net/BuildSystems.html.">
<apply executable= "scp" parallel= "true" >
<srcfile />
You may no longer put xml-apis.jar, xercesImpl.jar, or xalan.jar in
Jskad/extensions. If you're lazy, you can move them to
extensions/drop-ins, but the correct thing to do is to move x*.jar to
$ANT_HOME/lib [next to vamp.jar, if you're already set up for Java Web
Start builds]. This is a side effect of improving the nightly builds.
Nightly builds now feature an HTML summary of the JUnit test results,
a datestamp, and full API docs in two flavors.
If you use a patched vamp.jar [e-mail me] that can run when an X11
display is not available (there is not an analogous problem for
Windows servers, I suspect), all you have to do to put up a nightly
builds site is to set up CVS access so that no password is requires
using SSH public-key crypto (sf.net documents how to do so well) and
then use the following daily cron job on your Unix box:
#! /bin/sh
renice +19 -p $$ >/dev/null 2>&1
su -l joe-user /bin/sh -c /var/www/thdl/nightly/doTheBuild.sh
where joe-user is an unprivileged user who has installed Ant properly
(see the updated BuildSystems.html on the developer's site off of
thdltools.sf.net) and set himself up a Jskad sandbox with a Fonts
sandbox underneath it in, e.g., /var/www/thdl/nightly/Jskad. Here's
doTheBuild.sh:
#! /bin/sh
JSKAD=/var/www/thdl/nightly/Jskad
DEST=/var/www/thdl/nightly/builds
HISTORY=/var/www/thdl/nightly/history
DATE=`date`
if test ! -d $DEST; then \
echo "$DEST does not exist ($DATE)." >> history; exit 1; fi
(cd $JSKAD && ant dc-nightly-build \
&& rm -fr ${DEST}/* \
&& cp dist/nightlyBuild.zip $DEST \
&& cd $DEST \
&& unzip nightlyBuild.zip)
if test $? != 0; then echo "NIGHTLY BUILDS FAILED on $DATE" >> $HISTORY; exit 2; fi
DDDATE=`date`
echo "Success on start=$DATE end=$DDDATE" >> $HISTORY
exit 0
2003-02-10 04:22:38 +00:00
<fileset dir= "${dist}/docs" />
2003-02-03 06:24:52 +00:00
<arg value= "dchandler@thdltools.sourceforge.net:/home/groups/t/th/thdltools/htdocs" />
</apply>
</target>
You may no longer put xml-apis.jar, xercesImpl.jar, or xalan.jar in
Jskad/extensions. If you're lazy, you can move them to
extensions/drop-ins, but the correct thing to do is to move x*.jar to
$ANT_HOME/lib [next to vamp.jar, if you're already set up for Java Web
Start builds]. This is a side effect of improving the nightly builds.
Nightly builds now feature an HTML summary of the JUnit test results,
a datestamp, and full API docs in two flavors.
If you use a patched vamp.jar [e-mail me] that can run when an X11
display is not available (there is not an analogous problem for
Windows servers, I suspect), all you have to do to put up a nightly
builds site is to set up CVS access so that no password is requires
using SSH public-key crypto (sf.net documents how to do so well) and
then use the following daily cron job on your Unix box:
#! /bin/sh
renice +19 -p $$ >/dev/null 2>&1
su -l joe-user /bin/sh -c /var/www/thdl/nightly/doTheBuild.sh
where joe-user is an unprivileged user who has installed Ant properly
(see the updated BuildSystems.html on the developer's site off of
thdltools.sf.net) and set himself up a Jskad sandbox with a Fonts
sandbox underneath it in, e.g., /var/www/thdl/nightly/Jskad. Here's
doTheBuild.sh:
#! /bin/sh
JSKAD=/var/www/thdl/nightly/Jskad
DEST=/var/www/thdl/nightly/builds
HISTORY=/var/www/thdl/nightly/history
DATE=`date`
if test ! -d $DEST; then \
echo "$DEST does not exist ($DATE)." >> history; exit 1; fi
(cd $JSKAD && ant dc-nightly-build \
&& rm -fr ${DEST}/* \
&& cp dist/nightlyBuild.zip $DEST \
&& cd $DEST \
&& unzip nightlyBuild.zip)
if test $? != 0; then echo "NIGHTLY BUILDS FAILED on $DATE" >> $HISTORY; exit 2; fi
DDDATE=`date`
echo "Success on start=$DATE end=$DDDATE" >> $HISTORY
exit 0
2003-02-10 04:22:38 +00:00
<target name= "check-report" depends= "check"
description="Generates an HTML report regarding the status of the JUnit test cases.">
<ant antfile= "junitbuild.xml" target= "make-nightly-report"
inheritAll="false" inheritRefs="false">
<property name= "dist" value= "${dist}" />
</ant>
</target>
2003-02-03 06:24:52 +00:00
<!-- DC uses this to do nightly builds. The passwords are included
in this publically-available file because the keystore is basically
a dummy keystore. -->
<target name= "dc-nightly-build"
description="How Chandler r0x0rs the nightly build's b0x0rs">
You may no longer put xml-apis.jar, xercesImpl.jar, or xalan.jar in
Jskad/extensions. If you're lazy, you can move them to
extensions/drop-ins, but the correct thing to do is to move x*.jar to
$ANT_HOME/lib [next to vamp.jar, if you're already set up for Java Web
Start builds]. This is a side effect of improving the nightly builds.
Nightly builds now feature an HTML summary of the JUnit test results,
a datestamp, and full API docs in two flavors.
If you use a patched vamp.jar [e-mail me] that can run when an X11
display is not available (there is not an analogous problem for
Windows servers, I suspect), all you have to do to put up a nightly
builds site is to set up CVS access so that no password is requires
using SSH public-key crypto (sf.net documents how to do so well) and
then use the following daily cron job on your Unix box:
#! /bin/sh
renice +19 -p $$ >/dev/null 2>&1
su -l joe-user /bin/sh -c /var/www/thdl/nightly/doTheBuild.sh
where joe-user is an unprivileged user who has installed Ant properly
(see the updated BuildSystems.html on the developer's site off of
thdltools.sf.net) and set himself up a Jskad sandbox with a Fonts
sandbox underneath it in, e.g., /var/www/thdl/nightly/Jskad. Here's
doTheBuild.sh:
#! /bin/sh
JSKAD=/var/www/thdl/nightly/Jskad
DEST=/var/www/thdl/nightly/builds
HISTORY=/var/www/thdl/nightly/history
DATE=`date`
if test ! -d $DEST; then \
echo "$DEST does not exist ($DATE)." >> history; exit 1; fi
(cd $JSKAD && ant dc-nightly-build \
&& rm -fr ${DEST}/* \
&& cp dist/nightlyBuild.zip $DEST \
&& cd $DEST \
&& unzip nightlyBuild.zip)
if test $? != 0; then echo "NIGHTLY BUILDS FAILED on $DATE" >> $HISTORY; exit 2; fi
DDDATE=`date`
echo "Success on start=$DATE end=$DDDATE" >> $HISTORY
exit 0
2003-02-10 04:22:38 +00:00
<antcall target= "${dcnbt}" >
2003-06-19 01:58:59 +00:00
<param name= "keystore" value= "file:///home/my_www/thdl/nightly/Jskad/NightlyBuildStore" />
2003-02-03 06:24:52 +00:00
<param name= "key.alias" value= "me" />
<param name= "dgkey.password" value= "nightly" />
<param name= "keystore.password" value= "nightly" />
2003-02-03 08:21:37 +00:00
<param name= "jnlp.codebase" value= "http://he.is-a-geek.org/thdl/nightly/builds/java-web-start" />
2003-02-03 06:24:52 +00:00
</antcall>
</target>
2003-06-19 01:58:59 +00:00
<!-- THDL uses this to do nightly builds. The passwords are included
in this publically-available file because the keystore is basically
a dummy keystore. -->
<target name= "thdl-nightly-build"
description="How THDL does nightly builds">
<antcall target= "${dcnbt}" >
<param name= "keystore"
value="file:///home/www/thdl/builds/Jskad/NightlyBuildStore"/>
<param name= "key.alias" value= "me" />
<param name= "dgkey.password" value= "nightly" />
<param name= "keystore.password" value= "nightly" />
<param name= "jnlp.codebase"
value="http://iris.lib.virginia.edu/thdl/builds"/>
</antcall>
</target>
You may no longer put xml-apis.jar, xercesImpl.jar, or xalan.jar in
Jskad/extensions. If you're lazy, you can move them to
extensions/drop-ins, but the correct thing to do is to move x*.jar to
$ANT_HOME/lib [next to vamp.jar, if you're already set up for Java Web
Start builds]. This is a side effect of improving the nightly builds.
Nightly builds now feature an HTML summary of the JUnit test results,
a datestamp, and full API docs in two flavors.
If you use a patched vamp.jar [e-mail me] that can run when an X11
display is not available (there is not an analogous problem for
Windows servers, I suspect), all you have to do to put up a nightly
builds site is to set up CVS access so that no password is requires
using SSH public-key crypto (sf.net documents how to do so well) and
then use the following daily cron job on your Unix box:
#! /bin/sh
renice +19 -p $$ >/dev/null 2>&1
su -l joe-user /bin/sh -c /var/www/thdl/nightly/doTheBuild.sh
where joe-user is an unprivileged user who has installed Ant properly
(see the updated BuildSystems.html on the developer's site off of
thdltools.sf.net) and set himself up a Jskad sandbox with a Fonts
sandbox underneath it in, e.g., /var/www/thdl/nightly/Jskad. Here's
doTheBuild.sh:
#! /bin/sh
JSKAD=/var/www/thdl/nightly/Jskad
DEST=/var/www/thdl/nightly/builds
HISTORY=/var/www/thdl/nightly/history
DATE=`date`
if test ! -d $DEST; then \
echo "$DEST does not exist ($DATE)." >> history; exit 1; fi
(cd $JSKAD && ant dc-nightly-build \
&& rm -fr ${DEST}/* \
&& cp dist/nightlyBuild.zip $DEST \
&& cd $DEST \
&& unzip nightlyBuild.zip)
if test $? != 0; then echo "NIGHTLY BUILDS FAILED on $DATE" >> $HISTORY; exit 2; fi
DDDATE=`date`
echo "Success on start=$DATE end=$DDDATE" >> $HISTORY
exit 0
2003-02-10 04:22:38 +00:00
<target name= "cvs-update" description= "Performs a CVS update." >
2003-06-19 01:11:33 +00:00
<cvs cvsRoot= ":pserver:anonymous@cvs.sourceforge.net:/cvsroot/thdltools"
command="-f -z3 -q update -d -P" failonerror="true"/>
You may no longer put xml-apis.jar, xercesImpl.jar, or xalan.jar in
Jskad/extensions. If you're lazy, you can move them to
extensions/drop-ins, but the correct thing to do is to move x*.jar to
$ANT_HOME/lib [next to vamp.jar, if you're already set up for Java Web
Start builds]. This is a side effect of improving the nightly builds.
Nightly builds now feature an HTML summary of the JUnit test results,
a datestamp, and full API docs in two flavors.
If you use a patched vamp.jar [e-mail me] that can run when an X11
display is not available (there is not an analogous problem for
Windows servers, I suspect), all you have to do to put up a nightly
builds site is to set up CVS access so that no password is requires
using SSH public-key crypto (sf.net documents how to do so well) and
then use the following daily cron job on your Unix box:
#! /bin/sh
renice +19 -p $$ >/dev/null 2>&1
su -l joe-user /bin/sh -c /var/www/thdl/nightly/doTheBuild.sh
where joe-user is an unprivileged user who has installed Ant properly
(see the updated BuildSystems.html on the developer's site off of
thdltools.sf.net) and set himself up a Jskad sandbox with a Fonts
sandbox underneath it in, e.g., /var/www/thdl/nightly/Jskad. Here's
doTheBuild.sh:
#! /bin/sh
JSKAD=/var/www/thdl/nightly/Jskad
DEST=/var/www/thdl/nightly/builds
HISTORY=/var/www/thdl/nightly/history
DATE=`date`
if test ! -d $DEST; then \
echo "$DEST does not exist ($DATE)." >> history; exit 1; fi
(cd $JSKAD && ant dc-nightly-build \
&& rm -fr ${DEST}/* \
&& cp dist/nightlyBuild.zip $DEST \
&& cd $DEST \
&& unzip nightlyBuild.zip)
if test $? != 0; then echo "NIGHTLY BUILDS FAILED on $DATE" >> $HISTORY; exit 2; fi
DDDATE=`date`
echo "Success on start=$DATE end=$DDDATE" >> $HISTORY
exit 0
2003-02-10 04:22:38 +00:00
</target>
2003-02-03 06:24:52 +00:00
<!-- - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * -->
<!-- UTILITY TARGETS - targets of antcalls, targets not usually
directly called. -->
<!-- - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * -->
2002-10-23 01:08:52 +00:00
<target name= "ttsc-init" depends= "init"
2002-10-24 13:53:27 +00:00
description="used internally to set a property when the J2EE SDK or Tomcat's servlet.jar is installed in a place where we can find it. In that case, we can build servlets.">
<condition property= "found.servlet.classes" >
<or >
<available file= "${j2ee.sdk.home}/j2ee.jar" />
<available file= "${tomcat.servlet.jar}" />
</or>
</condition>
2002-10-23 01:08:52 +00:00
</target>
2002-10-10 06:00:32 +00:00
<!-- 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" />
2002-10-12 18:30:14 +00:00
</tstamp>
2002-10-10 06:00:32 +00:00
<!-- We don't really use @version correctly, do we? So version="false". -->
<javadoc destdir= "${our-javadocs-destdir}"
author="true"
access="${access}"
2002-10-12 18:30:14 +00:00
version="false"
2002-10-10 06:00:32 +00:00
use="true"
2002-10-25 10:58:44 +00:00
classpathref="${javadocs.class.path.ref}"
2002-10-10 06:00:32 +00:00
windowtitle="THDL Tools APIs"
Overview="${source}/overview.html">
<fileset dir= "${source}" defaultexcludes= "yes" >
2002-10-25 10:58:44 +00:00
<include name= "org/thdl/**/*.java" />
2002-10-10 06:00:32 +00:00
<!-- Exclude JUnit tests: -->
<exclude name= "**/*Test.java" />
<exclude name= "**/*AllTests.java" />
</fileset>
<doctitle > <![CDATA[<h1>THDL Tools</h1>]]> </doctitle>
<!-- Note: We must show the SF.net logo in order to get hit counts. -->
2003-02-03 06:24:52 +00:00
<bottom > These API docs were created ${javadoc.creation.time}.<![CDATA[<br><i>Copyright © 2001-2003 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&type=1" width="88" height="31" border="0" alt="SourceForge_Logo"></a>]]> </bottom>
2002-10-10 06:00:32 +00:00
<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. -->
2002-10-13 20:44:31 +00:00
<link offline= "${link.offline}"
2002-12-01 18:53:09 +00:00
href="${java.api.loc.url}"
2002-10-10 06:00:32 +00:00
packagelistLoc="${docs}/j2sdk1.4-package-list"/>
2002-10-13 20:44:31 +00:00
<link offline= "${link.offline}"
2002-10-10 06:00:32 +00:00
href="http://www.jdom.org/docs/apidocs/"
packagelistLoc="${docs}/jdom-package-list"/>
</javadoc>
</target>
Added a flexible mechanism for persistent boolean-, integer-, and
string-valued preferences built atop java.util.Properties.
How it works: the jvm is asked first, and then the user's prefs file, if it exists,
then the system-wide prefs file, and then the built-in preferences. Finally, for
robustness, a default may be optionally hard-coded in the source.
I made several things configurable, too:
the default Tibetan keyboard
the default font sizes and faces
whether you want developer-only features enabled
Savant's file extension (.savant)
etc.
The only known problems are the following:
The default location for the user's preferences file is windows-specific,
arbitrary, and not in the user documentation. Likewise for the location of the
system-wide preferences file. You can change them using 'java -D', though.
There is no "Save preferences" option yet, and closing the program does
not save preferences either.
2002-10-14 04:06:05 +00:00
<target name= "copy-license-etc-to-bin-dir-for-jarring"
2002-10-10 06:00:32 +00:00
depends="init"
Added a flexible mechanism for persistent boolean-, integer-, and
string-valued preferences built atop java.util.Properties.
How it works: the jvm is asked first, and then the user's prefs file, if it exists,
then the system-wide prefs file, and then the built-in preferences. Finally, for
robustness, a default may be optionally hard-coded in the source.
I made several things configurable, too:
the default Tibetan keyboard
the default font sizes and faces
whether you want developer-only features enabled
Savant's file extension (.savant)
etc.
The only known problems are the following:
The default location for the user's preferences file is windows-specific,
arbitrary, and not in the user documentation. Likewise for the location of the
system-wide preferences file. You can change them using 'java -D', though.
There is no "Save preferences" option yet, and closing the program does
not save preferences either.
2002-10-14 04:06:05 +00:00
description="INTERNAL TASK: Copies the license documents and the default properties file (hence the et cetera) to the bin directory. Usually not called directly.">
2002-10-10 06:00:32 +00:00
<copy todir= "${mybin}" >
<fileset dir= "${license}" />
</copy>
Added a flexible mechanism for persistent boolean-, integer-, and
string-valued preferences built atop java.util.Properties.
How it works: the jvm is asked first, and then the user's prefs file, if it exists,
then the system-wide prefs file, and then the built-in preferences. Finally, for
robustness, a default may be optionally hard-coded in the source.
I made several things configurable, too:
the default Tibetan keyboard
the default font sizes and faces
whether you want developer-only features enabled
Savant's file extension (.savant)
etc.
The only known problems are the following:
The default location for the user's preferences file is windows-specific,
arbitrary, and not in the user documentation. Likewise for the location of the
system-wide preferences file. You can change them using 'java -D', though.
There is no "Save preferences" option yet, and closing the program does
not save preferences either.
2002-10-14 04:06:05 +00:00
<!-- The default properties file, shared by all our tools: -->
<copy todir= "${mybin}" >
<fileset dir= "${source}" >
<include name= "options.txt" />
</fileset>
</copy>
2002-10-10 06:00:32 +00:00
</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>
2003-05-14 03:25:36 +00:00
<copy todir= "${mybin}" >
<fileset dir= "${source}" >
<include name= "keyboards.ini" />
</fileset>
</copy>
2002-10-10 06:00:32 +00:00
</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: -->
2002-10-12 03:11:51 +00:00
<available file= "${source}/${my.included.source.file}"
property="found.file.to.compile"/>
2002-10-10 06:00:32 +00:00
<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}" >
2002-10-23 01:08:52 +00:00
<classpath refid= "${our.javac.classpathref}" />
2002-10-10 06:00:32 +00:00
<src path= "${source}" />
<include name= "${my.included.source.file}" />
<!-- 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" />
2002-10-25 11:04:24 +00:00
<exclude name= "**/*.xsl" />
2002-10-10 06:00:32 +00:00
<exclude name= "**/*.txt" />
<exclude name= "**/*.ini" />
<exclude name= "**/*.html" />
<exclude name= "**/*.gif" />
<exclude name= "**/*.jpg" />
</javac>
</target>
Now copies over everything necessary to the bin directories.
Added a 'releases' target that builds Javadocs, binary JARs, and a source
zipfile. It generates double-clickable Jskad and translation tool JARs, but it
does NOT generate double-clickable Savant or QuillDriver jars because
that would require putting jdom/xalan/xml-apis/xercesImpl/jmf JARs onto
the Class-path attribute in the manifest files. That would be a relative path,
though, and until we have an installer, I don't know what to put in there.
That means that, for now, you invoke Savant with
'java -cp jdom.jar;jmf.jar;....;Savant-2002XXXX.jar
org.thdl.savant.SavantShell'
BUT, I've added targets to run all four programs: savant-run, qd-run, tt-run,
and jskad-run.
No longer uses manifests/*. Ant has a <manifest> task that we use instead.
Now uses the source/overview.html file in Javadoc builds.
2002-10-06 17:54:01 +00:00
2002-10-12 18:30:14 +00:00
2002-10-25 11:04:24 +00:00
<target name= "compile-from-scratch-and-call-jws-subbuild"
depends="init"
description="Cleans, compiles, and packages the Java Web Start version of ${my.app}">
2002-10-12 18:30:14 +00:00
<!-- First, you must give the passwords so that we can sign the JARs. -->
<fail message= "Use 'ant -Dkeystore.password=psst' to sign a Java Web Start WAR file."
unless="keystore.password"/>
<fail message= "Use 'ant -Ddgkey.password=psst' to sign a Java Web Start WAR file."
unless="dgkey.password"/>
2002-10-25 11:04:24 +00:00
2003-02-03 08:21:37 +00:00
<!-- Clean: (FIXME: clean only what you must clean, the appropriate bin dir, not the whole bin tree.) -->
<delete dir= "${bin}" />
2002-10-25 11:04:24 +00:00
2002-11-16 18:04:47 +00:00
<!-- Now, having cleaned, we create ${my.app}.jar: -->
2002-10-12 18:30:14 +00:00
<antcall target= "${my.prereq}" >
2002-11-16 18:04:47 +00:00
<param name= "my.jar.suffix" value= "" />
2002-10-12 18:30:14 +00:00
<param name= "javacdashg" value= "no" />
</antcall>
2002-10-25 11:56:05 +00:00
<!-- Now create the .jnlp file: -->
<antcall target= "create-${my.app}-jnlp-file" />
<!-- And save it: -->
<copy todir= "${dist}/java-web-start" >
<fileset dir= "${dist}" >
<include name= "${my.app}.jnlp" />
</fileset>
</copy>
2002-10-25 11:04:24 +00:00
<!-- Finally, call jwsbuild.xml appropriately: -->
<ant antfile= "jwsbuild.xml" target= "package-for-java-web-start"
inheritAll="false" inheritRefs="false">
<property name= "dist" value= "${dist}" />
2002-11-16 18:04:47 +00:00
<property name= "lib" value= "${jwslib}" />
2002-10-12 18:30:14 +00:00
2002-10-25 11:04:24 +00:00
<property name= "dgkey.password" value= "${dgkey.password}" />
<property name= "keystore.password" value= "${keystore.password}" />
<property name= "keystore" value= "${keystore}" />
<property name= "key.alias" value= "${key.alias}" />
</ant>
2002-10-12 18:30:14 +00:00
</target>
2002-10-25 11:04:24 +00:00
2002-10-25 11:56:05 +00:00
<target name= "create-Jskad-jnlp-file"
depends="init"
description="Creates Jskad's JNLP file based on a template hard-coded into this build file and your choice of the jnlp.codebase property.">
<!-- Write the head of the .jnlp file: -->
<echo file= "${dist}/Jskad.jnlp"
append="false"><![CDATA[<?xml version="1.0" encoding="utf-8"?>
<jnlp spec= "1.0+" ] ] > </echo>
<!-- Write the middle of the .jnlp file: -->
<echo file= "${dist}/Jskad.jnlp"
append="true">
<![CDATA[ codebase="]]> ${jnlp.codebase}<![CDATA["]]> </echo>
<!-- Write the tail of the .jnlp file: -->
<echo file= "${dist}/Jskad.jnlp"
append="true">
<![CDATA[ href="Jskad.jnlp">
<information >
<title > Jskad</title>
<vendor > THDL</vendor>
<homepage href= "http://iris.lib.virginia.edu/tibet/tools/jskad.html" />
<description >
Jskad is a simple text editor for the Tibetan language, using the
Wylie transliteration and supporting several virtual keyboards.
You must install the Tibetan Machine Web fonts before using
Jskad.
</description>
<offline-allowed />
</information>
<security >
<all-permissions />
</security>
<resources >
<j2se version= "1.2+" />
2002-11-18 16:12:25 +00:00
<jar href= "Jskad-self-contained.jar" />
2002-10-25 11:56:05 +00:00
</resources>
<application-desc />
</jnlp>
]]></echo>
</target>
<target name= "create-DictionarySearchAppletAndJavaWebStart-jnlp-file"
depends="init"
description="Creates the translation tool's JNLP file based on a template hard-coded into this build file and your choice of the jnlp.codebase property.">
<!-- Write the head of the .jnlp file: -->
<echo file= "${dist}/DictionarySearchAppletAndJavaWebStart.jnlp"
append="false"><![CDATA[<?xml version="1.0" encoding="utf-8"?>
<jnlp spec= "1.0+" ] ] > </echo>
<!-- Write the middle of the .jnlp file: -->
<echo file= "${dist}/DictionarySearchAppletAndJavaWebStart.jnlp"
append="true">
<![CDATA[ codebase="]]> ${jnlp.codebase}<![CDATA["]]> </echo>
<!-- Write the tail of the .jnlp file: -->
<echo file= "${dist}/DictionarySearchAppletAndJavaWebStart.jnlp"
append="true">
<![CDATA[ href="DictionarySearchAppletAndJavaWebStart.jnlp">
<information >
<title > DictionarySearchAppletAndJavaWebStart</title>
<vendor > THDL</vendor>
<homepage href= "http://iris.lib.virginia.edu/tibet/reference/translation-tool.html" />
<description >
The translation tool provides a Tibetan-to-English dictionary.
You must have the Tibetan Machine Web fonts installed on your
computer to take full advantage of this dictionary.
</description>
<offline-allowed />
</information>
<security >
<all-permissions />
</security>
<resources >
<j2se version= "1.2+" />
2002-11-16 18:04:47 +00:00
<jar href= "DictionarySearchAppletAndJavaWebStart.jar" />
2002-10-25 11:56:05 +00:00
</resources>
<application-desc />
</jnlp>
]]></echo>
</target>
2002-11-16 19:18:44 +00:00
<target name= "create-timestamp-source-code"
description="writes out a Java source file that contains the time of compilation">
<tstamp >
<format property= "compilation.time" pattern= "d-MMMM-yyyy hh:mm aa"
offset="0" unit="hour"/>
</tstamp>
<delete file= "${source}/org/thdl/util/ThdlVersion.java" />
<echo file= "${source}/org/thdl/util/ThdlVersion.java"
append="false">< ![CDATA[// This file was automatically generated by the Ant build process.
// Your edits will be lost when you run Ant again.
package org.thdl.util;
/** Contains methods for determining the time at which this class
was compiled. This is useful for filling out bug reports about
nightly builds. This class is not instantiable. */
public class ThdlVersion {
/** Do not instantiate this class. */
private ThdlVersion() { }
/** Returns a string indicating the time this program was compiled. */
public static String getTimeOfCompilation() {
return "]]></echo>
<echo file= "${source}/org/thdl/util/ThdlVersion.java"
append="true">${compilation.time}</echo>
<echo file= "${source}/org/thdl/util/ThdlVersion.java"
append="true">< ![CDATA[";
}
}
]]></echo>
</target>
2002-11-18 16:12:25 +00:00
<target name= "copy-tmw-fonts-to-bin-dir"
2003-03-22 02:48:21 +00:00
description="Copies the TMW font files to the current build's bin/ directory.">
2003-01-27 04:27:51 +00:00
<available file= "Fonts/TibetanMachineWeb"
property="found.the.fonts"/>
2003-02-03 06:24:52 +00:00
<fail message= "Can't find the Fonts module at Jskad/Fonts/TibetanMachineWeb. Did you do 'cvs -f checkout -P Fonts' from inside the Jskad directory?"
2003-01-27 04:27:51 +00:00
unless="found.the.fonts"/>
2002-11-18 16:12:25 +00:00
<copy todir= "${my.bin}/Fonts/TibetanMachineWeb" >
<fileset dir= "Fonts/TibetanMachineWeb" />
</copy>
</target>
2003-01-12 20:24:01 +00:00
2003-06-22 22:11:40 +00:00
<target name= "copy-tm-fonts-to-bin-dir"
description="Copies the TM font files to the current build's bin/ directory.">
<available file= "Fonts/TibetanMachine"
property="found.the.fonts"/>
<fail message= "Can't find the Fonts module at Jskad/Fonts/TibetanMachine. Did you do 'cvs -f checkout -P Fonts' from inside the Jskad directory?"
unless="found.the.fonts"/>
<copy todir= "${my.bin}/Fonts/TibetanMachine" >
<fileset dir= "Fonts/TibetanMachine" />
</copy>
</target>
2002-09-30 02:28:17 +00:00
</project>
2002-10-10 06:00:32 +00:00
<!-- My TO - DO list: -->
2002-10-25 11:04:24 +00:00
<!-- DLC FIXME: If we use bootclasspath and - target 1.1, do we need a
2002-10-10 06:00:32 +00:00
separate tt-handheld and tt-standalone? -->
2002-11-16 19:18:44 +00:00
<!-- DLC FIXME: Allow for signing the vanilla JARs. -->