1 <?xml version="1.0" encoding="UTF-8"?>
3 <!-- ********************************************************** -->
5 <!-- * Apache Ant build file used to build the FreeTTS demos. * -->
6 <!-- * To build the demos, just type the following: * -->
8 <!-- * ant -buildfile demo.xml * -->
10 <!-- * For more information: http://ant.apache.org/ * -->
12 <!-- ********************************************************** -->
13 <project basedir="." default="all" name="FreeTTS">
15 <!-- ********************************************************** -->
17 <!-- * Where to find things... * -->
19 <!-- ********************************************************** -->
21 <fileset dir="lib" includes="**/*.jar"/>
23 <property name="src_dir" value="."/>
24 <property name="build_dir" value="bld"/>
25 <property name="classes_dir" value="${build_dir}/classes"/>
26 <property name="demo_classes_dir" value="${build_dir}/demo_classes"/>
27 <property name="lib_dir" value="lib"/>
28 <property name="bin_dir" value="bin"/>
29 <property name="webstart_bld_dir" value="${build_dir}/webstart"/>
30 <property name="webstart_dir" value="demo/JSAPI/WebStartClock"/>
31 <property name="deploy_dir" value="deploy"/>
34 <!-- ********************************************************** -->
36 <!-- * Handle JSAPI: * -->
38 <!-- * 1) If a jsapi.jar file can be found, use it and * -->
39 <!-- * compile all the sources. * -->
41 <!-- * 2) If a jsapi.jar file cannot be found, issue a * -->
42 <!-- * message and just compile the sources that do * -->
43 <!-- * not depend upon jsapi.jar. * -->
45 <!-- ********************************************************** -->
46 <target name="-check_jsapi_jar.isPresent">
47 <available file="lib/jsapi.jar" property="jsapi_jar.isPresent"/>
50 <target name="issue_jsapi_warning"
51 unless="jsapi_jar.isPresent">
53 Cannot find lib/jsapi.jar needed to build Java Speech API
54 (JSAPI) support for FreeTTS. Will not build any sources
55 that require jsapi.jar. If you'd like to enable JSAPI
56 support, please extract jsapi.jar by running jsapi.sh or
57 jsapi.exe from the lib directory.
62 <!-- ********************************************************** -->
64 <!-- * Builds just the demos (using package names for the * -->
65 <!-- * demos would have made this easier). * -->
67 <!-- ********************************************************** -->
69 depends="make_lib_dir,
71 compile_freetts_demos,
73 description="Compiles and jars the demos"/>
75 <target name="make_lib_dir">
76 <mkdir dir="${lib_dir}"/>
79 <target name="compile_demo_util"
80 description="Compiles utilities used by some of the demos">
81 <mkdir dir="${demo_classes_dir}/util"/>
86 destdir="${demo_classes_dir}/util">
94 <!-- freetts (non-JSAPI) demos -->
95 <target name="compile_freetts_demos"
96 depends="compile_freetts_clientserver,
97 compile_freetts_emacspeak,
98 compile_freetts_helloworld"
99 description="Compiles freetts demos that do not use JSAPI"/>
101 <target name="compile_freetts_clientserver"
102 depends="compile_demo_util">
103 <mkdir dir="${demo_classes_dir}/freetts/ClientServer"/>
107 srcdir="demo/freetts/ClientServer"
108 destdir="${demo_classes_dir}/freetts/ClientServer">
111 <pathelement location="${demo_classes_dir}/util"/>
114 <mkdir dir="${bin_dir}"/>
115 <jar destfile="${bin_dir}/Client.jar"
116 manifest="demo/freetts/ClientServer/client.Manifest"
117 basedir="${demo_classes_dir}/freetts/ClientServer"
118 includes="Client.class"
121 <jar destfile="${bin_dir}/Server.jar"
122 manifest="demo/freetts/ClientServer/server.Manifest"
125 <fileset dir="${demo_classes_dir}/freetts/ClientServer"
126 excludes="Client.class"/>
127 <fileset dir="${demo_classes_dir}/util"
128 includes="TTSServer.class"/>
132 <target name="compile_freetts_emacspeak"
133 depends="compile_demo_util">
134 <mkdir dir="${demo_classes_dir}/freetts/Emacspeak"/>
138 srcdir="demo/freetts/Emacspeak"
139 destdir="${demo_classes_dir}/freetts/Emacspeak">
142 <pathelement location="${demo_classes_dir}/util"/>
145 <mkdir dir="${bin_dir}"/>
146 <jar destfile="${bin_dir}/FreeTTSEmacspeakServer.jar"
147 manifest="demo/freetts/Emacspeak/Manifest"
150 <fileset dir="${demo_classes_dir}/freetts/Emacspeak"/>
151 <fileset dir="${demo_classes_dir}/util"
152 includes="EmacspeakProtocolHandler.class,
157 <target name="compile_freetts_helloworld"
158 depends="compile_demo_util">
159 <mkdir dir="${demo_classes_dir}/freetts/HelloWorld"/>
163 srcdir="demo/freetts/HelloWorld"
164 destdir="${demo_classes_dir}/freetts/HelloWorld">
167 <pathelement location="${demo_classes_dir}/util"/>
170 <mkdir dir="${bin_dir}"/>
171 <jar destfile="${bin_dir}/FreeTTSHelloWorld.jar"
172 manifest="demo/freetts/HelloWorld/Manifest"
173 basedir="${demo_classes_dir}/freetts/HelloWorld"
181 <target name="compile_jsapi_demos"
182 depends="-check_jsapi_jar.isPresent,
184 compile_jsapi_emacspeak,
185 compile_jsapi_helloworld,
187 compile_jsapi_mixedvoices,
188 compile_jsapi_player,
189 compile_jsapi_webstartclock"
190 description="Compiles freetts demos that use JSAPI"/>
192 <target name="compile_jsapi_emacspeak"
193 depends="compile_demo_util"
194 if="jsapi_jar.isPresent">
195 <mkdir dir="${demo_classes_dir}/JSAPI/Emacspeak"/>
199 srcdir="demo/JSAPI/Emacspeak"
200 destdir="${demo_classes_dir}/JSAPI/Emacspeak">
203 <pathelement location="${freetts_jar}"/>
204 <pathelement location="${demo_classes_dir}/util"/>
207 <mkdir dir="${bin_dir}"/>
208 <jar destfile="${bin_dir}/EmacspeakServer.jar"
211 <fileset dir="${demo_classes_dir}/JSAPI/Emacspeak"/>
212 <fileset dir="${demo_classes_dir}/util"
213 includes="EmacspeakProtocolHandler.class,
216 <attribute name="Built-By" value="${user.name}" />
\r
217 <attribute name="Main-Class" value="EmacspeakServer" />
\r
218 <attribute name="Class-Path"
\r
219 value="../lib/freetts.jar ../lib/freetts-jsapi10.jar ../lib/jsapi.jar" />
\r
220 <section name="common">
\r
221 <attribute name="Implementation-Title"
\r
222 value="Emacsspeak server" />
\r
228 <target name="compile_jsapi_helloworld"
229 depends="compile_demo_util"
230 if="jsapi_jar.isPresent">
231 <mkdir dir="${demo_classes_dir}/JSAPI/HelloWorld"/>
235 srcdir="demo/JSAPI/HelloWorld"
236 destdir="${demo_classes_dir}/JSAPI/HelloWorld">
241 <mkdir dir="${bin_dir}"/>
242 <jar destfile="${bin_dir}/HelloWorld.jar"
243 basedir="${demo_classes_dir}/JSAPI/HelloWorld"
248 <attribute name="Built-By" value="${user.name}" />
\r
249 <attribute name="Main-Class" value="HelloWorld" />
\r
250 <attribute name="Class-Path"
\r
251 value="../lib/freetts.jar ../lib/freetts-jsapi10.jar ../lib/jsapi.jar" />
\r
252 <section name="common">
\r
253 <attribute name="Implementation-Title"
\r
254 value="FreeTTS JSAPI 1.0 hello world demo" />
\r
260 <target name="compile_jsapi_jtime"
261 depends="compile_demo_util"
262 if="jsapi_jar.isPresent">
263 <mkdir dir="${demo_classes_dir}/JSAPI/JTime"/>
267 srcdir="demo/JSAPI/JTime"
268 destdir="${demo_classes_dir}/JSAPI/JTime">
271 <pathelement location="${demo_classes_dir}/util"/>
274 <mkdir dir="${bin_dir}"/>
275 <jar destfile="${bin_dir}/JTime.jar"
278 <fileset dir="${demo_classes_dir}/JSAPI/JTime"/>
279 <fileset dir="${demo_classes_dir}/util"
280 includes="TimeUtils.class"/>
282 <attribute name="Built-By" value="${user.name}" />
\r
283 <attribute name="Main-Class" value="JTime" />
\r
284 <attribute name="Class-Path"
\r
285 value="../lib/freetts.jar ../lib/freetts-jsapi10.jar ../lib/jsapi.jar" />
\r
286 <section name="common">
\r
287 <attribute name="Implementation-Title"
\r
288 value="FreeTTS JSAPI 1.0 JTime demo" />
\r
294 <target name="compile_jsapi_mixedvoices"
295 depends="compile_demo_util"
296 if="jsapi_jar.isPresent">
297 <mkdir dir="${demo_classes_dir}/JSAPI/MixedVoices"/>
301 srcdir="demo/JSAPI/MixedVoices"
302 destdir="${demo_classes_dir}/JSAPI/MixedVoices">
307 <mkdir dir="${bin_dir}"/>
308 <jar destfile="${bin_dir}/MixedVoices.jar"
309 basedir="${demo_classes_dir}/JSAPI/MixedVoices"
314 <attribute name="Built-By" value="${user.name}" />
\r
315 <attribute name="Main-Class" value="MixedVoices" />
\r
316 <attribute name="Class-Path"
\r
317 value="../lib/freetts.jar ../lib/freetts-jsapi10.jar ../lib/jsapi.jar" />
\r
318 <section name="common">
\r
319 <attribute name="Implementation-Title"
\r
320 value="FreeTTS JSAPI 1.0 mixed voices demo" />
\r
326 <target name="compile_jsapi_player"
327 depends="compile_demo_util"
328 if="jsapi_jar.isPresent">
329 <mkdir dir="${demo_classes_dir}/JSAPI/Player"/>
333 srcdir="demo/JSAPI/Player"
334 destdir="${demo_classes_dir}/JSAPI/Player">
339 <mkdir dir="${bin_dir}"/>
340 <jar destfile="${bin_dir}/Player.jar"
341 basedir="${demo_classes_dir}/JSAPI/Player"
346 <attribute name="Built-By" value="${user.name}" />
\r
347 <attribute name="Main-Class" value="Player" />
\r
348 <attribute name="Class-Path"
\r
349 value="../lib/freetts.jar ../lib/freetts-jsapi10.jar ../lib/jsapi.jar" />
\r
350 <section name="common">
\r
351 <attribute name="Implementation-Title"
\r
352 value="FreeTTS JSAPI 1.0 player demo" />
\r
358 <target name="compile_jsapi_webstartclock"
359 depends="compile_demo_util"
360 if="jsapi_jar.isPresent">
361 <mkdir dir="${demo_classes_dir}/JSAPI/WebStartClock"/>
365 srcdir="demo/JSAPI/WebStartClock"
366 destdir="${demo_classes_dir}/JSAPI/WebStartClock">
369 <pathelement location="${demo_classes_dir}/util"/>
372 <mkdir dir="${bin_dir}"/>
373 <jar destfile="${bin_dir}/WebStartClock.jar"
376 <fileset dir="${demo_classes_dir}/JSAPI/WebStartClock"/>
377 <fileset dir="${demo_classes_dir}/util"
378 includes="TimeUtils.class"/>
\r
381 <attribute name="Built-By" value="${user.name}" />
\r
382 <attribute name="Main-Class" value="JSAPIClock" />
\r
383 <attribute name="Class-Path"
\r
384 value="../lib/freetts.jar ../lib/freetts-jsapi10.jar ../lib/jsapi.jar" />
\r
385 <section name="common">
\r
386 <attribute name="Implementation-Title"
\r
387 value="FreeTTS JSAPI 1.0 webstart clock demo" />
\r
394 <!-- ********************************************************** -->
396 <!-- * Make the WebStartClock.tar package for deployment. * -->
398 <!-- ********************************************************** -->
399 <property name="keystore" value="${webstart_bld_dir}/keystore"/>
400 <property name="keypass" value="freetts"/>
401 <target name="check_keystore.isPresent">
402 <available file="${keystore}" property="keystore.isPresent"/>
404 <target name="genkey"
405 depends="check_keystore.isPresent"
406 if="jsapi_jar.isPresent"
407 unless="keystore.isPresent">
408 <mkdir dir="${webstart_bld_dir}"/>
409 <genkey alias="freetts"
410 storepass="${keypass}"
412 keystore="${keystore}">
414 <param name="CN" value="Sun Labs"/>
415 <param name="OU" value="Sun Microsystems"/>
416 <param name="O" value="Sun Microsystems"/>
417 <param name="L" value="Burlington"/>
418 <param name="ST" value="MA"/>
419 <param name="C" value="US"/>
424 <target name="deploy_webstartclock"
425 depends="all,compile_jsapi_webstartclock,genkey"
426 if="jsapi_jar.isPresent">
427 <copy file="lib/jsapi.jar" todir="${webstart_bld_dir}"/>
428 <signjar jar="${webstart_bld_dir}/jsapi.jar"
430 storepass="${keypass}"
432 keystore="${keystore}"/>
433 <copy file="${webstart_bld_dir}/jsapi.jar" todir="${webstart_dir}"/>
435 <copy file="${lib_dir}/freetts.jar" todir="${webstart_bld_dir}"/>
436 <signjar jar="${webstart_bld_dir}/freetts.jar"
438 storepass="${keypass}"
440 keystore="${keystore}"/>
441 <copy file="${webstart_bld_dir}/freetts.jar" todir="${webstart_dir}"/>
443 <copy file="${lib_dir}/freetts-jsapi10.jar" todir="${webstart_bld_dir}"/>
444 <signjar jar="${webstart_bld_dir}/freetts-jsapi10.jar"
446 storepass="${keypass}"
448 keystore="${keystore}"/>
449 <copy file="${webstart_bld_dir}/freetts-jsapi10.jar" todir="${webstart_dir}"/>
451 <copy file="${lib_dir}/en_us.jar" todir="${webstart_bld_dir}"/>
452 <signjar jar="${webstart_bld_dir}/en_us.jar"
454 storepass="${keypass}"
456 keystore="${keystore}"/>
457 <copy file="${webstart_bld_dir}/en_us.jar" todir="${webstart_dir}"/>
459 <copy file="${lib_dir}/cmutimelex.jar" todir="${webstart_bld_dir}"/>
460 <signjar jar="${webstart_bld_dir}/cmutimelex.jar"
462 storepass="${keypass}"
464 keystore="${keystore}"/>
465 <copy file="${webstart_bld_dir}/cmutimelex.jar"
466 todir="${webstart_dir}"/>
468 <copy file="${lib_dir}/cmu_time_awb.jar" todir="${webstart_bld_dir}"/>
469 <signjar jar="${webstart_bld_dir}/cmu_time_awb.jar"
471 storepass="${keypass}"
473 keystore="${keystore}"/>
474 <copy file="${webstart_bld_dir}/cmu_time_awb.jar"
475 todir="${webstart_dir}"/>
477 <copy file="${bin_dir}/WebStartClock.jar" todir="${webstart_bld_dir}"/>
478 <signjar jar="${webstart_bld_dir}/WebStartClock.jar"
480 storepass="${keypass}"
482 keystore="${keystore}"/>
483 <copy file="${webstart_bld_dir}/WebStartClock.jar"
484 todir="${webstart_dir}"/>
486 <mkdir dir="${deploy_dir}"/>
487 <tar destfile="${deploy_dir}/WebStartClock.tar">
488 <tarfileset dir="${webstart_bld_dir}" includes="*.jar"/>
489 <tarfileset dir="demo/JSAPI/WebStartClock"
490 includes="clock.jnlp"/>
492 <echo message="${deploy_dir}/WebStartClock.tar created."/>
494 "scp it to the following directory on freetts.sourceforge.net:"/>
496 " /home/groups/f/fr/freetts/htdocs/WebStartClock"/>
497 <echo message="Then ssh to freetts.sourceforge.net and untar it."/>
501 <!-- ********************************************************** -->
503 <!-- * Makes a standalone emacspeak server (non-JSAPI) jar * -->
504 <!-- * that can be run using java -jar. * -->
506 <!-- * NOTE: This requires an "ant" to have been run so that * -->
507 <!-- * the classes directory will be fully populated. * -->
509 <!-- ********************************************************** -->
510 <target name="emacspeak-server"
511 depends="compile_freetts_emacspeak">
512 <mkdir dir="${build_dir}/tmp/com/sun/speech/freetts"/>
513 <copy file="lib/voices.txt"
514 tofile="${build_dir}/tmp/com/sun/speech/freetts/internal_voices.txt"/>
516 file="${build_dir}/tmp/com/sun/speech/freetts/internal_voices.txt"
517 token="com.sun.speech.freetts.en.us.cmu_time_awb.AlanVoiceDirectory"
518 value="#com.sun.speech.freetts.en.us.cmu_time_awb.AlanVoiceDirectory"/>
520 file="${build_dir}/tmp/com/sun/speech/freetts/internal_voices.txt"
521 token="#de.dfki.lt.freetts.en.us.MbrolaVoiceDirectory"
522 value="de.dfki.lt.freetts.en.us.MbrolaVoiceDirectory"/>
524 <jar destfile="emacspeak-server.jar"
526 <fileset dir="${classes_dir}"
527 excludes="com/sun/speech/engine/**,
528 com/sun/speech/freetts/jsapi/**,
529 com/sun/speech/freetts/en/us/CMUTime**,
530 com/sun/speech/freetts/en/us/cmutime**,
531 com/sun/speech/freetts/en/us/cmu_time**"/>
534 includes="com/sun/speech/freetts/en/us/*.txt"
535 excludes="**/cmu*lex*.txt"/>
536 <fileset dir="${demo_classes_dir}/util"
538 <fileset dir="${demo_classes_dir}/freetts/Emacspeak"/>
539 <fileset dir="${build_dir}/tmp"/>
541 <attribute name="Main-Class"
542 value="FreeTTSEmacspeakServer"/>
545 <delete dir="${build_dir}/tmp"/>
549 <!-- ********************************************************** -->
551 <!-- * Deletes all build output and *~ file droppings * -->
553 <!-- ********************************************************** -->
554 <target name="clean" description="Delete all build output">
555 <delete quiet="true" includeEmptyDirs="true">
556 <fileset defaultexcludes="no" dir="." includes="**/*~"/>
558 <delete dir="${bin_dir}"/>
559 <delete dir="${build_dir}"/>
560 <delete dir="${deploy_dir}"/>