update standards version
[debian/freetts] / demo.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <!-- ********************************************************** -->
4 <!-- *                                                        * -->
5 <!-- * Apache Ant build file used to build the FreeTTS demos. * -->
6 <!-- * To build the demos, just type the following:           * -->
7 <!-- *                                                        * -->
8 <!-- *     ant -buildfile demo.xml                            * -->
9 <!-- *                                                        * -->
10 <!-- * For more information:  http://ant.apache.org/          * -->
11 <!-- *                                                        * -->
12 <!-- ********************************************************** -->
13 <project basedir="." default="all" name="FreeTTS">
14
15     <!-- ********************************************************** -->
16     <!-- *                                                        * -->
17     <!-- * Where to find things...                                * -->
18     <!-- *                                                        * -->
19     <!-- ********************************************************** -->
20     <path id="libs">
21         <fileset dir="lib" includes="**/*.jar"/>
22     </path>
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"/>
32
33
34     <!-- ********************************************************** -->
35     <!-- *                                                        * -->
36     <!-- * Handle JSAPI:                                          * -->
37     <!-- *                                                        * -->
38     <!-- *    1) If a jsapi.jar file can be found, use it and     * --> 
39     <!-- *       compile all the sources.                         * -->
40     <!-- *                                                        * -->
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.                       * -->
44     <!-- *                                                        * -->
45     <!-- ********************************************************** -->
46     <target name="-check_jsapi_jar.isPresent">
47         <available file="lib/jsapi.jar" property="jsapi_jar.isPresent"/>
48     </target>
49
50     <target name="issue_jsapi_warning"
51             unless="jsapi_jar.isPresent">
52         <echo>
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.
58         </echo>
59     </target>
60
61
62     <!-- ********************************************************** -->
63     <!-- *                                                        * -->
64     <!-- * Builds just the demos (using package names for the     * -->
65     <!-- * demos would have made this easier).                    * -->
66     <!-- *                                                        * -->
67     <!-- ********************************************************** -->
68     <target name="all"
69             depends="make_lib_dir,
70                      compile_demo_util,
71                      compile_freetts_demos,
72                      compile_jsapi_demos"
73             description="Compiles and jars the demos"/>
74
75     <target name="make_lib_dir">
76         <mkdir dir="${lib_dir}"/>
77     </target>
78
79     <target name="compile_demo_util"
80             description="Compiles utilities used by some of the demos">
81         <mkdir dir="${demo_classes_dir}/util"/>
82         <javac debug="true"
83                source="1.4"
84                deprecation="true"
85                srcdir="demo/util"
86                destdir="${demo_classes_dir}/util">
87             <classpath>
88                 <path refid="libs"/>
89             </classpath>
90         </javac>
91     </target>
92
93
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"/>
100
101     <target name="compile_freetts_clientserver"
102             depends="compile_demo_util">
103         <mkdir dir="${demo_classes_dir}/freetts/ClientServer"/>
104         <javac debug="true"
105                source="1.4"
106                deprecation="true"
107                srcdir="demo/freetts/ClientServer"
108                destdir="${demo_classes_dir}/freetts/ClientServer">
109             <classpath>
110                 <path refid="libs"/>
111                 <pathelement location="${demo_classes_dir}/util"/>
112             </classpath>
113         </javac>
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"
119              filesonly="true"
120              compress="true"/>
121         <jar destfile="${bin_dir}/Server.jar" 
122              manifest="demo/freetts/ClientServer/server.Manifest"
123              filesonly="true"
124              compress="true">
125             <fileset dir="${demo_classes_dir}/freetts/ClientServer"
126                      excludes="Client.class"/>
127             <fileset dir="${demo_classes_dir}/util"
128                      includes="TTSServer.class"/>
129         </jar>
130     </target>
131
132     <target name="compile_freetts_emacspeak"
133             depends="compile_demo_util">
134         <mkdir dir="${demo_classes_dir}/freetts/Emacspeak"/>
135         <javac debug="true"
136                source="1.4"
137                deprecation="true"
138                srcdir="demo/freetts/Emacspeak"
139                destdir="${demo_classes_dir}/freetts/Emacspeak">
140             <classpath>
141                 <path refid="libs"/>
142                 <pathelement location="${demo_classes_dir}/util"/>
143             </classpath>
144         </javac>
145         <mkdir dir="${bin_dir}"/>
146         <jar destfile="${bin_dir}/FreeTTSEmacspeakServer.jar" 
147              manifest="demo/freetts/Emacspeak/Manifest"
148              filesonly="true"
149              compress="true">
150             <fileset dir="${demo_classes_dir}/freetts/Emacspeak"/>
151             <fileset dir="${demo_classes_dir}/util"
152                      includes="EmacspeakProtocolHandler.class,
153                                TTSServer.class"/>
154         </jar>
155     </target>
156
157     <target name="compile_freetts_helloworld"
158             depends="compile_demo_util">
159         <mkdir dir="${demo_classes_dir}/freetts/HelloWorld"/>
160         <javac debug="true"
161                source="1.4"
162                deprecation="true"
163                srcdir="demo/freetts/HelloWorld"
164                destdir="${demo_classes_dir}/freetts/HelloWorld">
165             <classpath>
166                 <path refid="libs"/>
167                 <pathelement location="${demo_classes_dir}/util"/>
168             </classpath>
169         </javac>
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"
174              includes="*.class"
175              filesonly="true"
176              compress="true"/>
177     </target>
178
179
180     <!-- JSAPI demos -->
181     <target name="compile_jsapi_demos"
182             depends="-check_jsapi_jar.isPresent,
183                      issue_jsapi_warning,
184                      compile_jsapi_emacspeak,
185                      compile_jsapi_helloworld,
186                      compile_jsapi_jtime,
187                      compile_jsapi_mixedvoices,
188                      compile_jsapi_player,
189                      compile_jsapi_webstartclock"
190             description="Compiles freetts demos that use JSAPI"/>
191
192     <target name="compile_jsapi_emacspeak"
193             depends="compile_demo_util"
194             if="jsapi_jar.isPresent">
195         <mkdir dir="${demo_classes_dir}/JSAPI/Emacspeak"/>
196         <javac debug="true"
197                source="1.4"
198                deprecation="true"
199                srcdir="demo/JSAPI/Emacspeak"
200                destdir="${demo_classes_dir}/JSAPI/Emacspeak">
201             <classpath>
202                 <path refid="libs"/>
203                 <pathelement location="${freetts_jar}"/>
204                 <pathelement location="${demo_classes_dir}/util"/>
205             </classpath>
206         </javac>
207         <mkdir dir="${bin_dir}"/>
208         <jar destfile="${bin_dir}/EmacspeakServer.jar" 
209              filesonly="true"
210              compress="true">
211             <fileset dir="${demo_classes_dir}/JSAPI/Emacspeak"/>
212             <fileset dir="${demo_classes_dir}/util"
213                      includes="EmacspeakProtocolHandler.class,
214                                TTSServer.class"/>
215             <manifest>\r
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
223                 </section>\r
224             </manifest>\r
225         </jar>
226     </target>
227
228     <target name="compile_jsapi_helloworld"
229             depends="compile_demo_util"
230             if="jsapi_jar.isPresent">
231         <mkdir dir="${demo_classes_dir}/JSAPI/HelloWorld"/>
232         <javac debug="true"
233                source="1.4"
234                deprecation="true"
235                srcdir="demo/JSAPI/HelloWorld"
236                destdir="${demo_classes_dir}/JSAPI/HelloWorld">
237             <classpath>
238                 <path refid="libs"/>
239             </classpath>
240         </javac>
241         <mkdir dir="${bin_dir}"/>
242         <jar destfile="${bin_dir}/HelloWorld.jar" 
243              basedir="${demo_classes_dir}/JSAPI/HelloWorld"
244              includes="*.class"
245              filesonly="true"
246              compress="true">\r
247             <manifest>\r
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
255                 </section>\r
256             </manifest>\r
257          </jar>
258     </target>
259
260     <target name="compile_jsapi_jtime"
261             depends="compile_demo_util"
262             if="jsapi_jar.isPresent">
263         <mkdir dir="${demo_classes_dir}/JSAPI/JTime"/>
264         <javac debug="true"
265                source="1.4"
266                deprecation="true"
267                srcdir="demo/JSAPI/JTime"
268                destdir="${demo_classes_dir}/JSAPI/JTime">
269             <classpath>
270                 <path refid="libs"/>
271                 <pathelement location="${demo_classes_dir}/util"/>
272             </classpath>
273         </javac>
274         <mkdir dir="${bin_dir}"/>
275         <jar destfile="${bin_dir}/JTime.jar" 
276              filesonly="true"
277              compress="true">
278             <fileset dir="${demo_classes_dir}/JSAPI/JTime"/>
279             <fileset dir="${demo_classes_dir}/util"
280                      includes="TimeUtils.class"/>
281             <manifest>\r
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
289                 </section>\r
290             </manifest>\r
291         </jar>
292     </target>
293
294     <target name="compile_jsapi_mixedvoices"
295             depends="compile_demo_util"
296             if="jsapi_jar.isPresent">
297         <mkdir dir="${demo_classes_dir}/JSAPI/MixedVoices"/>
298         <javac debug="true"
299                source="1.4"
300                deprecation="true"
301                srcdir="demo/JSAPI/MixedVoices"
302                destdir="${demo_classes_dir}/JSAPI/MixedVoices">
303             <classpath>
304                 <path refid="libs"/>
305             </classpath>
306         </javac>
307         <mkdir dir="${bin_dir}"/>
308         <jar destfile="${bin_dir}/MixedVoices.jar" 
309              basedir="${demo_classes_dir}/JSAPI/MixedVoices"
310              includes="*.class"
311              filesonly="true"
312              compress="true">\r
313             <manifest>\r
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
321                 </section>\r
322             </manifest>\r
323         </jar>
324     </target>
325
326     <target name="compile_jsapi_player"
327             depends="compile_demo_util"
328             if="jsapi_jar.isPresent">
329         <mkdir dir="${demo_classes_dir}/JSAPI/Player"/>
330         <javac debug="true"
331                source="1.4"
332                deprecation="true"
333                srcdir="demo/JSAPI/Player"
334                destdir="${demo_classes_dir}/JSAPI/Player">
335             <classpath>
336                 <path refid="libs"/>
337             </classpath>
338         </javac>
339         <mkdir dir="${bin_dir}"/>
340         <jar destfile="${bin_dir}/Player.jar" 
341              basedir="${demo_classes_dir}/JSAPI/Player"
342              includes="*.class"
343              filesonly="true"
344              compress="true">\r
345             <manifest>\r
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
353                 </section>\r
354             </manifest>\r
355        </jar>
356     </target>
357
358     <target name="compile_jsapi_webstartclock"
359             depends="compile_demo_util"
360             if="jsapi_jar.isPresent">
361         <mkdir dir="${demo_classes_dir}/JSAPI/WebStartClock"/>
362         <javac debug="true"
363                source="1.4"
364                deprecation="true"
365                srcdir="demo/JSAPI/WebStartClock"
366                destdir="${demo_classes_dir}/JSAPI/WebStartClock">
367             <classpath>
368                 <path refid="libs"/>
369                 <pathelement location="${demo_classes_dir}/util"/>
370             </classpath>
371         </javac>
372         <mkdir dir="${bin_dir}"/>
373         <jar destfile="${bin_dir}/WebStartClock.jar" 
374              filesonly="true"
375              compress="true">
376             <fileset dir="${demo_classes_dir}/JSAPI/WebStartClock"/>
377             <fileset dir="${demo_classes_dir}/util"
378                      includes="TimeUtils.class"/>\r
379                
380             <manifest>\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
388                 </section>\r
389             </manifest>\r
390         </jar>
391     </target>
392
393
394     <!-- ********************************************************** --> 
395     <!-- *                                                        * -->
396     <!-- * Make the WebStartClock.tar package for deployment.     * -->
397     <!-- *                                                        * -->
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"/>
403     </target>
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}"
411                 keypass="${keypass}"
412                 keystore="${keystore}">
413             <dname>
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"/>
420             </dname>
421         </genkey>
422     </target>
423
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"
429                  alias="freetts"
430                  storepass="${keypass}"
431                  keypass="${keypass}"
432                  keystore="${keystore}"/>
433         <copy file="${webstart_bld_dir}/jsapi.jar" todir="${webstart_dir}"/>
434
435         <copy file="${lib_dir}/freetts.jar" todir="${webstart_bld_dir}"/>
436         <signjar jar="${webstart_bld_dir}/freetts.jar"
437                  alias="freetts"
438                  storepass="${keypass}"
439                  keypass="${keypass}"
440                  keystore="${keystore}"/>
441         <copy file="${webstart_bld_dir}/freetts.jar" todir="${webstart_dir}"/>
442
443         <copy file="${lib_dir}/freetts-jsapi10.jar" todir="${webstart_bld_dir}"/>
444         <signjar jar="${webstart_bld_dir}/freetts-jsapi10.jar"
445           alias="freetts"
446           storepass="${keypass}"
447           keypass="${keypass}"
448           keystore="${keystore}"/>
449         <copy file="${webstart_bld_dir}/freetts-jsapi10.jar" todir="${webstart_dir}"/>
450
451         <copy file="${lib_dir}/en_us.jar" todir="${webstart_bld_dir}"/>
452         <signjar jar="${webstart_bld_dir}/en_us.jar"
453                  alias="freetts"
454                  storepass="${keypass}"
455                  keypass="${keypass}"
456                  keystore="${keystore}"/>
457         <copy file="${webstart_bld_dir}/en_us.jar" todir="${webstart_dir}"/>
458
459         <copy file="${lib_dir}/cmutimelex.jar" todir="${webstart_bld_dir}"/>
460         <signjar jar="${webstart_bld_dir}/cmutimelex.jar"
461                  alias="freetts"
462                  storepass="${keypass}"
463                  keypass="${keypass}"
464                  keystore="${keystore}"/>
465         <copy file="${webstart_bld_dir}/cmutimelex.jar" 
466               todir="${webstart_dir}"/>
467
468         <copy file="${lib_dir}/cmu_time_awb.jar" todir="${webstart_bld_dir}"/>
469         <signjar jar="${webstart_bld_dir}/cmu_time_awb.jar"
470                  alias="freetts"
471                  storepass="${keypass}"
472                  keypass="${keypass}"
473                  keystore="${keystore}"/>
474         <copy file="${webstart_bld_dir}/cmu_time_awb.jar" 
475               todir="${webstart_dir}"/>
476
477         <copy file="${bin_dir}/WebStartClock.jar" todir="${webstart_bld_dir}"/>
478         <signjar jar="${webstart_bld_dir}/WebStartClock.jar"
479                  alias="freetts"
480                  storepass="${keypass}"
481                  keypass="${keypass}"
482                  keystore="${keystore}"/>
483         <copy file="${webstart_bld_dir}/WebStartClock.jar" 
484               todir="${webstart_dir}"/>
485
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"/>
491         </tar>
492         <echo message="${deploy_dir}/WebStartClock.tar created."/>
493         <echo message=
494             "scp it to the following directory on freetts.sourceforge.net:"/>
495         <echo message=
496             "    /home/groups/f/fr/freetts/htdocs/WebStartClock"/>
497         <echo message="Then ssh to freetts.sourceforge.net and untar it."/>
498     </target>
499
500
501     <!-- ********************************************************** --> 
502     <!-- *                                                        * -->
503     <!-- * Makes a standalone emacspeak server (non-JSAPI) jar    * -->
504     <!-- * that can be run using java -jar.                       * -->
505     <!-- *                                                        * -->
506     <!-- * NOTE: This requires an "ant" to have been run so that  * -->
507     <!-- * the classes directory will be fully populated.         * -->
508     <!-- *                                                        * -->
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"/>
515         <replace
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"/>
519         <replace
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"/>
523
524         <jar destfile="emacspeak-server.jar"
525              compress="true">
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**"/>
532             <fileset
533                 dir="${src_dir}"
534                 includes="com/sun/speech/freetts/en/us/*.txt"
535                 excludes="**/cmu*lex*.txt"/>
536             <fileset dir="${demo_classes_dir}/util"
537                      excludes="Time**"/>
538             <fileset dir="${demo_classes_dir}/freetts/Emacspeak"/>
539             <fileset dir="${build_dir}/tmp"/>
540             <manifest>
541                 <attribute name="Main-Class"
542                            value="FreeTTSEmacspeakServer"/>
543             </manifest>
544         </jar>
545         <delete dir="${build_dir}/tmp"/>
546     </target>
547
548
549     <!-- ********************************************************** --> 
550     <!-- *                                                        * -->
551     <!-- * Deletes all build output and *~ file droppings         * -->
552     <!-- *                                                        * -->
553     <!-- ********************************************************** --> 
554     <target name="clean" description="Delete all build output">
555         <delete quiet="true" includeEmptyDirs="true">
556             <fileset defaultexcludes="no" dir="." includes="**/*~"/>
557         </delete>
558         <delete dir="${bin_dir}"/>
559         <delete dir="${build_dir}"/>
560         <delete dir="${deploy_dir}"/>
561     </target>
562
563 </project>