root/trunk/ProjectFortress/build.xml @ 3657

Revision 3657, 53.1 KB (checked in by dr2chase, 7 months ago)

Added different Scala versions, single switch to change between them

Line 
1<?xml version="1.0" ?>
2
3<!--
4Copyright 2009 Sun Microsystems, Inc.,
54150 Network Circle, Santa Clara, California 95054, U.S.A.
6All rights reserved.
7
8U.S. Government Rights - Commercial software.
9Government users are subject to the Sun Microsystems, Inc. standard
10license agreement and applicable provisions of the FAR and its supplements.
11
12Use is subject to license terms.
13
14This distribution may include materials developed by third parties.
15
16Sun, Sun Microsystems, the Sun logo and Java are trademarks or registered
17trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
18-->
19
20<!--
21THIS FILE IS DEPRECATED.
22CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
23
24This is the main Ant build file for the Fortress reference
25implementation. Declarations are separated by type (e.g., taskdefs,
26properties, targets, etc.). To add a new declaration, please find the
27appropriate place in the file. For the sake of readability, please
28maintain proper indentation.
29-->
30
31<!--
32THIS FILE IS DEPRECATED.
33CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
34-->
35
36<project name="Fortress" default="help">
37  <description>
38    A reference implementation of the Fortress programming language.
39  </description>
40
41
42  <!--
43       Properties
44  -->
45
46  <!-- Global properties for this build. -->
47  <property name="packagePrefix" value="com/sun/fortress"/>
48  <property name="package.prefix" value="com.sun.fortress"/>
49  <property name="interpreterPrefix" value="com/sun/fortress/interpreter"/>
50  <property name="interpreter.prefix" value="com.sun.fortress.interpreter"/>
51  <property name="blahblahblah" value="com/sun/fortress"/>
52
53<!--
54THIS FILE IS DEPRECATED.
55CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
56-->
57  <!-- Directories in the ${basedir} directory -->
58  <property name="cache0" location="${basedir}/../default_repository/caches"/>
59  <property name="cache1" location="${basedir}/../.fortress_cache"/>
60  <property name="cache2" location="${basedir}/../.interpreter_cache"/>
61  <property name="cache3" location="${basedir}/.interpreter_cache"/>
62  <property name="cache4" location="${basedir}/../.syntax_cache"/>
63  <property name="cache5" location="${basedir}/.syntax_cache"/>
64  <property name="cache6" location="${basedir}/../.analyzed_cache"/>
65  <property name="cache7" location="${basedir}/.analyzed_cache"/>
66  <property name="cache8" location="${basedir}/../.presyntax_cache"/>
67  <property name="cache9" location="${basedir}/.presyntax_cache"/>
68  <property name="cache10" location="${basedir}/../.bytecode_cache"/>
69  <property name="cache11" location="${basedir}/.bytecode_cache"/>
70  <property name="cache12" location="${basedir}/../local_repository/caches"/>
71  <property name="astgen.src" location="${basedir}/astgen"/>
72  <property name="build" location="${basedir}/build"/>
73  <property name="docs" location="${basedir}/docs"/>
74  <property name="src" location="${basedir}/src"/>
75  <property name="library" location="${basedir}/../Library"/>
76  <property name="astgen.generators.src"
77            location="${src}/${packagePrefix}/astgen"/>
78
79<!--
80THIS FILE IS DEPRECATED.
81CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
82-->
83  <!-- Third party jar files -->
84  <property name="asm" location="${basedir}/third_party/asm"/>
85  <property name="astgen.third" location="${basedir}/third_party/astgen"/>
86  <property name="jsr166y" location="${basedir}/third_party/jsr166y"/>
87  <property name="junit" location="${basedir}/third_party/junit"/>
88  <property name="plt" location="${basedir}/third_party/plt"/>
89  <property name="unicode.third" location="${basedir}/third_party/unicode"/>
90  <property name="xtc" location="${basedir}/third_party/xtc"/>
91  <property name="unsigned" location="${basedir}/third_party/unsigned"/>
92
93  <!-- Scala jar files -->
94  <property name="scala-compiler.jar"
95            value="${basedir}/third_party/scala/scala-compiler-2.7.2.jar"/>
96  <property name="scala-library.jar"
97            value="${basedir}/third_party/scala/scala-library-2.7.2.jar"/>
98
99<!--
100THIS FILE IS DEPRECATED.
101CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
102-->
103  <!-- ASTGen -->
104  <property name="generate-sourcefile" value="${astgen.src}/Fortress.ast" />
105
106  <!-- Package nodes -->
107  <property name="nodesPackage" value="${packagePrefix}/nodes"/>
108  <property name="scala.nodes.package" value="${packagePrefix}/scala_src/nodes"/>
109  <property name="nodes"  location="${src}/${nodesPackage}"/>
110  <property name="scala.nodes"  location="${src}/${scala.nodes.package}"/>
111  <property name="nodesBuild" location="${build}/${nodesPackage}"/>
112
113  <!-- Package nodes_util -->
114  <property name="nodesUtil"  location="${src}/${packagePrefix}/nodes_util"/>
115
116<!--
117THIS FILE IS DEPRECATED.
118CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
119-->
120  <!-- Parser packages -->
121  <property name="parser"  location="${src}/${packagePrefix}/parser"/>
122  <property name="preparser" location="${src}/${packagePrefix}/parser/preparser"/>
123  <property name="importcollector" location="${src}/${packagePrefix}/parser/import_collector"/>
124  <property name="templateparser"
125            location="${src}/${packagePrefix}/parser/templateparser"/>
126  <property name="parserUtil"  location="${src}/${packagePrefix}/parser_util"/>
127  <property name="precedence" location="${parserUtil}/precedence"/>
128  <property name="precedenceResolver"
129            location="${parserUtil}/precedence_resolver"/>
130
131<!--
132THIS FILE IS DEPRECATED.
133CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
134-->
135  <!-- Unicode packages -->
136  <property name="unicodePackage" value="${packagePrefix}/unicode"/>
137  <property name="unicode" location="${src}/${packagePrefix}/unicode"/>
138  <property name="unicodeBuild" location="${build}/${unicodePackage}"/>
139
140  <!-- Package useful -->
141  <property name="usefulPackage" value="${packagePrefix}/useful"/>
142
143  <!-- For fortress installation -->
144  <property name="testFortress" location=".TEST_FORTRESS"/>
145  <property name="installerDir" location=".installer"/>
146  <property name="protofortress" location="${basedir}/fortress/FORTRESS"/>
147  <property name="protofortress.lib" location="${protofortress}/lib"/>
148
149<!--
150THIS FILE IS DEPRECATED.
151CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
152-->
153  <!-- Instrumentation -->
154  <property name="instrumentation.package"
155            value="${package.prefix}.parser_util.instrumentation"/>
156  <property name="instrumentationPackage"
157            value="${packagePrefix}/parser_util/instrumentation"/>
158  <property name="instrumentation.outfile"
159            location="${parserUtil}/instrumentation/coverage-report.txt"/>
160  <property name="instrumentation.transient"
161            location="${parserUtil}/instrumentation/transient.txt"/>
162
163  <!-- For tests -->
164  <property name="test.results" location="${basedir}/TEST-RESULTS"/>
165
166<!--
167THIS FILE IS DEPRECATED.
168CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
169-->
170  <!-- Other settings -->
171  <property name="junitMem" value="768m"/>
172  <property name="junit.dir" value="junit-results"/>
173  <property name="javaSourceVersion" value="1.5"/>
174  <property environment="env"/>
175  <condition property="correct.environment">
176    <and>
177      <equals arg1="${ant.java.version}" arg2="1.6"/>
178      <equals arg1="${env.ANT_CALLED_FROM_SCRIPT}" arg2='yes'/>
179    </and>
180  </condition>
181
182
183  <!--
184       Paths
185  -->
186<!--
187THIS FILE IS DEPRECATED.
188CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
189-->
190  <path id="scala.classpath">
191    <pathelement location="${scala-compiler.jar}"/>
192    <pathelement location="${scala-library.jar}"/>
193  </path>
194
195  <path id="astgen.path">
196    <path refid="scala.classpath"/>
197    <pathelement location="${astgen.third}/astgen.jar" />
198    <pathelement location="${build}" />
199  </path>
200
201<!--
202THIS FILE IS DEPRECATED.
203CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
204-->
205  <path id="astgen.classpath">
206    <path refid="scala.classpath"/>
207    <pathelement location="${build}"/>
208    <pathelement location="${astgen.third}/astgen.jar"/>
209  </path>
210
211  <path id="instrumentedparser.classpath">
212    <path refid="scala.classpath"/>
213    <pathelement location="${build}"/>
214    <pathelement location="${xtc}/xtc.jar"/>
215    <pathelement location="${plt}/plt.jar"/>
216  </path>
217
218<!--
219THIS FILE IS DEPRECATED.
220CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
221-->
222  <path id="compile.classpath">
223    <path refid="scala.classpath"/>
224    <pathelement location="${build}"/>
225    <pathelement location="${asm}/asm-3.1.jar"/>
226    <pathelement location="${asm}/asm-tree-3.1.jar"/>
227    <pathelement location="${xtc}/xtc.jar"/>
228    <pathelement location ="${unsigned}/unsigned.jar"/>
229    <pathelement location="${jsr166y}/jsr166y.jar"/>
230    <pathelement location="${plt}/plt.jar"/>
231    <pathelement location="${astgen.third}/astgen.jar" />
232    <pathelement location="${junit}/junit.jar"/>
233    <pathelement location="${ant.home}/lib/ant.jar"/>
234    <pathelement location="${java.home}/../lib/tools.jar"/>
235  </path>
236
237  <!--
238       Taskdefs
239  -->
240  <taskdef resource="scala/tools/ant/antlib.xml">
241    <classpath refid="scala.classpath"/>
242  </taskdef>
243
244
245  <!--
246       Targets
247  -->
248<!--
249THIS FILE IS DEPRECATED.
250CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
251-->
252  <target name="help">
253    <echo message="ant checkEnv, checkNodesUptodate, checkOperatorsUptodate,
254                   checkParserUptodate, clean, cleanCache, compileJava, compileAll,
255                   compileCommon, compileCommonLint, compileLint, doc,
256                   grammarCoverage, help, init, interpreter-jar,
257                   makeAST, operatorsGen, fortressparser, preparser,
258                   parser, reportNotPassing, systemProperties, test,
259                   testAll, testDemos, testSystem, testOnly
260                   -DtestPattern='some pattern', testCruiseControl"/>
261    <echo message="If you are building Fortress, you want ant compile or ant test."/>
262  </target>
263
264  <target name="systemProperties">
265    <echo message="Environment variables set correctly? ${correct.environment}"/>
266    <echo message="basedir: ${basedir}"/>
267    <echo message="Ant Java version: ${ant.java.version}"/>
268    <echo message="Ant called from script? ${env.ANT_CALLED_FROM_SCRIPT}"/>
269    <echo message="ANT_ARGS: ${env.ANT_ARGS}"/>
270    <echo message="ANT_OPTS: ${env.ANT_OPTS}"/>
271    <echo message="Scala version: ${scalac.version}" />
272    <echo message="Java Runtime Environment
273                   version: ${java.version}"/>
274    <echo message="Java Runtime Environment
275                   vendor: ${java.vendor}"/>
276    <echo message="Java Runtime Environment
277                   vendor URL: ${java.vendor.url}"/>
278    <echo message="Java installation
279                   directory: ${java.home}"/>
280    <echo message="Java Virtual Machine
281                   specification version:
282                   ${java.vm.specification.version}"/>
283    <echo message="Java Virtual Machine
284                   specification vendor:
285                   ${java.vm.specification.vendor}"/>
286    <echo message="Java Virtual Machine
287                   specification name:
288                   ${java.vm.specification.name}"/>
289    <echo message="Java Virtual Machine
290                   implementation version:
291                   ${java.vm.version}"/>
292    <echo message="Java Virtual Machine
293                   implementation vendor:
294                   ${java.vm.vendor}"/>
295    <echo message="Java Virtual Machine
296                   implementation name: ${java.vm.name}"/>
297    <echo message="Java Runtime Environment
298                   specification version:
299                   ${java.specification.version}"/>
300    <echo message="Java Runtime Environment
301                   specification vendor:
302                   ${java.specification.vendor}"/>
303    <echo message="Java Runtime Environment
304                   specification name:
305                   ${java.specification.name}"/>
306    <echo message="Java class format version
307                   number: ${java.class.version}"/>
308    <echo message="Java class path:
309                   ${java.class.path}"/>
310    <echo message="List of paths to search when
311                   loading libraries: ${java.library.path}"/>
312    <echo message="Path of extension directory
313                   or directories: ${java.ext.dirs}"/>
314    <echo message="Default temp file path:
315                   ${java.io.tmpdir}"/>
316    <echo message="Operating system name:
317                   ${os.name}"/>
318    <echo message="Operating system
319                   architecture: ${os.arch}"/>
320    <echo message="Operating system version:
321                   ${os.version}"/>
322  </target>
323
324<!--
325THIS FILE IS DEPRECATED.
326CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
327-->
328  <target name="checkEnv">
329    <echo message="Environment variables set correctly? ${correct.environment}"/>
330    <fail unless="correct.environment"
331          message="ERROR: This build script requires specific command-line arguments to Ant. Please call it using the script provided at ${basedir}/ant."/>
332  </target>
333
334  <target name="init">
335    <echo message="basedir: ${basedir}"/>
336    <!-- Create the time stamp. -->
337    <tstamp/>
338    <!-- Create the build directory structure used by compile. -->
339    <mkdir dir="${build}"/>
340    <mkdir dir="${junit.dir}"/>
341  </target>
342
343<!--
344THIS FILE IS DEPRECATED.
345CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
346-->
347  <target name="cleanAst" depends="cleanCache"
348          description="Delete the ${nodes} directory tree and cached asts.">
349    <delete dir="${nodes}"/>
350  </target>
351
352  <target name="clean" depends="cleanAst"
353          description="Delete the ${build} directory tree and generated files.">
354    <delete dir="${build}"/>
355    <delete dir="${nodes}"/>
356    <delete dir="${junit.dir}"/>
357
358    <!-- No longer needed, but eases the upgrade-->
359    <delete file="${nodesUtil}/BaseNodeMaker.java"/>
360    <!-- No longer needed, but eases the upgrade-->
361    <delete file="${nodesUtil}/InterfaceMaker.java"/>
362    <delete file="${parser}/Fortress.java"/>
363    <delete file="${parser}/FortressInstrumented.java"/>
364    <delete file="${preparser}/PreFortress.java"/>
365    <delete file="${importcollector}/ImportCollector.java"/>
366    <delete file="${templateparser}/TemplateParser.java"/>
367    <delete file="${precedenceResolver}/Operators.java"/>
368    <!-- No longer needed, but eases the upgrade-->
369    <delete file="${src}/com/sun/fortress/parser/precedence/resolver/Operators.java"/>
370    <delete file="${instrumentation.outfile}"/>
371    <delete file="${library}/FortressAst.fsi" />
372    <delete file="${library}/FortressAst.fss" />
373    <delete file="${astgen.src}/FortressAst.scala" />
374    <delete file="FortressLibrary.ast"/>
375    <delete file="FortressLibrary.tfs"/>
376    <delete file="${basedir}/tests/printing/test_output.txt" />
377    <delete file="testFile.txt"/>
378    <delete file="${src}/com/sun/fortress/scala_src/nodes/FortressAst.scala" />
379    <delete dir="${src}/com/sun/fortress/scalasrc" />
380    <delete dir="${basedir}/test-tmp" />
381    <delete>
382      <fileset dir="src" includes="**/*.class" />
383    </delete>
384  </target>
385
386<!--
387THIS FILE IS DEPRECATED.
388CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
389-->
390  <target name="cleanCache"
391          description="Delete any cached Fortress ASTs in the development tree">
392    <delete dir="${cache0}"/>
393    <delete dir="${cache1}"/>
394    <delete dir="${cache2}"/>
395    <delete dir="${cache3}"/>
396    <delete dir="${cache4}"/>
397    <delete dir="${cache5}"/>
398    <delete dir="${cache6}"/>
399    <delete dir="${cache7}"/>
400    <delete dir="${cache8}"/>
401    <delete dir="${cache9}"/>
402    <delete dir="${cache10}"/>
403    <delete dir="${cache11}"/>
404    <delete dir="${cache12}"/>
405  </target>
406
407<!--
408THIS FILE IS DEPRECATED.
409CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
410-->
411  <!-- Generation of Operators.java depends only on the files listed below.
412       Note that there are class files it depends on; if these class files are
413       not up to date with respect to their sources, they are themselves
414       recompiled by the compileCommon target.-->
415  <target name="checkOperatorsUptodate" depends="init, compileCommon">
416    <condition property="operators.uptodate">
417      <and>
418        <uptodate srcfile="${unicode.third}/UnicodeData.500.txt"
419                  targetfile="${precedenceResolver}/Operators.java"/>
420        <uptodate srcfile="${precedenceResolver}/operators.txt"
421                  targetfile="${precedenceResolver}/Operators.java"/>
422        <uptodate srcfile="${unicodeBuild}/OperatorStuffGenerator.class"
423                  targetfile="${precedenceResolver}/Operators.java"/>
424        <uptodate srcfile="${unicodeBuild}/Element.class"
425                  targetfile="${precedenceResolver}/Operators.java"/>
426      </and>
427    </condition>
428    <echo message="Operators up to date? ${operators.uptodate}"/>
429  </target>
430
431<!--
432THIS FILE IS DEPRECATED.
433CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
434-->
435  <target name="operatorsGen"  unless="operators.uptodate"
436          depends="init, compileCommon, checkOperatorsUptodate"
437          description="Automatically generate visitors for AST nodes.">
438    <echo message="Regenerating operators"/>
439    <java classname="${package.prefix}.unicode.OperatorStuffGenerator"
440          fork="true">
441      <classpath>
442        <pathelement location="${build}"/>
443        <pathelement location="${basedir}/third_party/plt/plt.jar"/>
444      </classpath>
445    </java>
446  </target>
447
448  <target name="DumpProperties"
449          description="Dump properties as seen by a Java program.">
450    <java classname="${package.prefix}.repository.DumpProperties"
451          fork="true">
452      <sysproperty key="DEBUG" value="true"/>
453      <classpath>
454        <pathelement location="${build}"/>
455      </classpath>
456    </java>
457  </target>
458
459<!--
460THIS FILE IS DEPRECATED.
461CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
462-->
463  <target name="checkAstgen">
464    <condition property="astgenerators.uptodate">
465      <uptodate targetfile="${basedir}/build/com/sun/fortress/astgen/FortressAstGenerator.class">
466        <srcfiles dir="${basedir}/src/com/sun/fortress/astgen/" includes="*.java"/>
467      </uptodate>
468    </condition>
469  </target>
470
471<!--
472THIS FILE IS DEPRECATED.
473CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
474-->
475  <target name="astGenerators"
476          unless="astgenerators.uptodate"
477          depends="init,checkAstgen"
478          description="Compile all ASTGen custom generators.">
479    <depend srcdir="${astgen.generators.src}"
480            destdir="${build}"
481            closure="yes"
482            cache="${basedir}/.dependencies"/>
483    <javac
484        srcdir="${astgen.generators.src}"
485        destdir="${build}"
486        source="${javaSourceVersion}"
487        debug="true"
488        includeantruntime="false"
489        fork="true"
490        memorymaximumsize="${junitMem}">
491      <!-- Uncomment the following line to print unchecked warnings
492           (here and in the 'compileCommon' target. -->
493      <!-- <compilerarg value="-Xlint:unchecked"/> -->
494      <classpath refid="astgen.classpath"/>
495      <include name="**/*.java"/>
496      <exclude name="${usefulPackage}/*.java"/>
497      <exclude name="${unicodePackage}/*.java"/>
498    </javac>
499    <scalac
500        srcdir="${astgen.generators.src}"
501        destdir="${build}"
502        classpathref="astgen.classpath"
503        addparams=""
504        deprecation="yes">
505      <include name="**/*.scala"/>
506      <exclude name="${usefulPackage}/*.scala"/>
507      <exclude name="${unicodePackage}/*.scala"/>
508    </scalac>
509  </target>
510
511<!--
512THIS FILE IS DEPRECATED.
513CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
514-->
515  <target name="checkNodesUptodate" depends="astGenerators">
516    <condition property="nodes.uptodate">
517      <and>
518        <available file="${nodes}/AbstractNode.java"/>
519        <uptodate srcfile="${astgen.src}/Fortress.ast"
520                  targetfile="${nodes}/AbstractNode.java"/>
521        <available file="${library}/FortressAst.fsi" />
522        <uptodate srcfile="${astgen.src}/Fortress.ast"
523                  targetfile="${library}/FortressAst.fsi" />
524        <available file="${library}/FortressAst.fss" />
525        <uptodate srcfile="${astgen.src}/Fortress.ast"
526                  targetfile="${library}/FortressAst.fss" />
527        <uptodate targetfile="${library}/FortressAst.fsi">
528          <srcfiles dir="${basedir}/src/com/sun/fortress/astgen/" includes="**/*.java"/>
529        </uptodate>
530      </and>
531    </condition>
532    <echo message="Nodes up to date? ${nodes.uptodate}"/>
533  </target>
534
535<!--
536THIS FILE IS DEPRECATED.
537CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
538-->
539  <taskdef name="astgen" classpath="${astgen.third}/astgen.jar;${build}"
540           classname="edu.rice.cs.astgen.AntTask"/>
541
542<!--
543THIS FILE IS DEPRECATED.
544CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
545-->
546  <target name="makeAST" unless="nodes.uptodate" depends="checkNodesUptodate"
547          description="Automatically generate AST nodes.">
548    <echo message="Processing ${generate-sourcefile}" />
549    <astgen file="${generate-sourcefile}" />
550    <move todir="${nodes}">
551      <fileset dir="${astgen.src}">
552        <include name="**/*.java"/>
553        <exclude name="**/Fortress.ast"/>
554      </fileset>
555    </move>
556    <move todir="${library}">
557      <fileset dir="${astgen.src}">
558        <include name="FortressAst.fss" />
559        <include name="FortressAst.fsi" />
560      </fileset>
561    </move>
562    <move todir="${scala.nodes}">
563      <fileset dir="${astgen.src}">
564        <include name="FortressAst.scala" />
565      </fileset>
566    </move>
567  </target>
568
569<!--
570THIS FILE IS DEPRECATED.
571CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
572-->
573  <target name="compileJava" depends="compileCommon, makeAST, parser, operatorsGen"
574          description="Compile all Fortress code written in Java (Scala code is ignored).">
575    <depend srcdir="${src}"
576            destdir="${build}"
577            closure="yes"
578            cache="${basedir}/.dependencies"/>
579    <javac
580        srcdir="${src}"
581        destdir="${build}"
582        debug="true"
583        includeantruntime="false"
584        fork="true"
585        memorymaximumsize="${junitMem}">
586      <!-- Uncomment the following line to print unchecked warnings
587           (here and in the 'compileCommon' target. -->
588      <!-- <compilerarg value="-Xlint:unchecked"/> -->
589      <classpath refid="compile.classpath"/>
590      <include name="**/*.java"/>
591      <exclude name="${usefulPackage}/*.java"/>
592      <exclude name="${unicodePackage}/*.java"/>
593    </javac>
594  </target>
595
596<!--
597THIS FILE IS DEPRECATED.
598CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
599-->
600  <target name="compileAll" depends="compileCommon, makeAST, parser, operatorsGen"
601          description="Compile all Fortress code.">
602    <scalac
603        srcdir="${src}"
604        destdir="${build}"
605        classpathref="compile.classpath"
606        deprecation="yes">
607      <include name="**/*.java"/>
608      <include name="**/*.scala"/>
609      <exclude name="${usefulPackage}/*.java"/>
610      <exclude name="${unicodePackage}/*.java"/>
611    </scalac>
612    <javac
613        srcdir="${src}"
614        destdir="${build}"
615        debug="true"
616        includeantruntime="false"
617        fork="true"
618        memorymaximumsize="${junitMem}">
619      <!-- Uncomment the following line to print unchecked warnings
620           (here and in the 'compileCommon' target. -->
621      <!-- <compilerarg value="-Xlint:unchecked"/> -->
622      <classpath refid="compile.classpath"/>
623      <include name="**/*.java"/>
624      <exclude name="${usefulPackage}/*.java"/>
625      <exclude name="${unicodePackage}/*.java"/>
626    </javac>
627  </target>
628
629<!--
630THIS FILE IS DEPRECATED.
631CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
632-->
633  <target name="compile" depends="compileAll"/>
634
635  <target name="check.blas" depends="init">
636    <javac destdir="${build}" srcdir="${src}/com/sun/fortress/numerics">
637      <classpath refid="compile.classpath"/>
638    </javac>
639
640    <java failonerror="true"
641          classname="com.sun.fortress.numerics.CheckBlasEnvironment">
642      <classpath refid="compile.classpath"/>
643    </java>
644  </target>
645
646<!--
647THIS FILE IS DEPRECATED.
648CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
649-->
650  <target name="check.linux">
651    <condition property="blas.islinux">
652      <equals arg1="${os.name}" arg2="Linux" />
653    </condition>
654  </target>
655
656  <target name="blas.linux" depends="check.linux" if="blas.islinux">
657    <echo message="Generating C header and stub files." />
658    <javah class="com.sun.fortress.numerics.Blas"
659           destdir="c"
660           classpath="build"
661           />
662    <echo message="Now compiling C stubs for blas on arch linux."/>
663    <exec executable="gcc" failonerror="true">
664      <arg value="-fPIC" />
665      <arg value="-Ic" />
666      <arg value="-I${env.BLAS_INCLUDE}" />
667      <arg value="-L${env.BLAS_LIB}" />
668      <arg value="-I${env.JAVA_HOME}/include" />
669      <arg value="-I${env.JAVA_HOME}/include/linux" />
670      <arg value="c/blas.c" />
671      <arg value="-lcblas" />
672      <arg value="-lblas" />
673      <arg value="-shared" />
674      <arg value="-olibblas.so" />
675    </exec>
676  </target>
677
678<!--
679THIS FILE IS DEPRECATED.
680CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
681-->
682  <target name="check.osx">
683    <condition property="blas.is.osx">
684      <equals arg1="${os.name}" arg2="Mac OS X" />
685    </condition>
686  </target>
687
688<!--
689THIS FILE IS DEPRECATED.
690CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
691-->
692  <target name="blas.osx" depends="check.osx" if="blas.is.osx">
693    <echo message="Generating C header and stub files." />
694    <javah class="com.sun.fortress.numerics.Blas"
695           destdir="c"
696           classpath="build"
697           />
698    <echo message="Now compiling C stubs for blas on arch OS X."/>
699    <exec executable="gcc" failonerror="true">
700      <arg line="-D OSX" />
701      <arg value="-fPIC" />
702      <arg value="-Ic" />
703      <arg line="-framework Accelerate" />
704      <arg value="-I${env.JAVA_LIB}/Headers" />
705      <arg value="c/blas.c" />
706      <arg value="-lcblas" />
707      <arg value="-lblas" />
708      <arg value="-shared" />
709      <arg value="-bundle" />
710      <arg line="-o libblas.dylib" />
711    </exec>
712  </target>
713
714  <target name="check.sunos">
715    <condition property="blas.is.sunos">
716      <equals arg1="${os.name}" arg2="SunOS" />
717    </condition>
718  </target>
719
720<!--
721THIS FILE IS DEPRECATED.
722CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
723-->
724  <target name="blas.sunos" depends="check.sunos" if="blas.is.sunos">
725    <echo message="Generating C header and stub files." />
726    <javah class="com.sun.fortress.numerics.Blas"
727           destdir="c"
728           classpath="build"
729           />
730    <echo message="Now compiling C stubs for blas on arch SunOS."/>
731    <exec executable="cc" failonerror="true">
732      <arg line="-D SUNOS" />
733      <arg value="-fPIC" />
734      <arg value="-Ic" />
735      <arg value="-I${env.JAVA_HOME}/include" />
736      <arg value="-I${env.JAVA_HOME}/include/solaris" />
737      <arg value="c/sunperf_blas.c" />
738      <arg value="-shared" />
739      <arg value="-dalign" />
740      <arg value="-xlic_lib=sunperf" />
741      <arg value="-olibblas.so" />
742    </exec>
743  </target>
744
745  <target name="blas" depends="check.blas,blas.linux,blas.osx,blas.sunos"></target>
746
747<!--
748THIS FILE IS DEPRECATED.
749CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
750-->
751  <target name="compileLint"
752          depends="compileCommonLint, makeAST, parser, operatorsGen"
753          description="Compile all interpreter code.">
754    <depend srcdir="${src}"
755            destdir="${build}"
756            closure="yes"
757            cache="${basedir}/.dependencies"/>
758    <javac
759        srcdir="${src}"
760        destdir="${build}"
761        source="${javaSourceVersion}"
762        debug="true"
763        includeantruntime="false"
764        fork="true"
765        memorymaximumsize="${junitMem}">
766      <!-- Uncomment the following line to print unchecked warnings. -->
767      <classpath refid="compile.classpath"/>
768      <compilerarg value="-Xlint:unchecked"/>
769      <include name="**/*.java"/>
770      <exclude name="${usefulPackage}/*.java"/>
771      <exclude name="${unicodePackage}/*.java"/>
772    </javac>
773  </target>
774
775<!--
776THIS FILE IS DEPRECATED.
777CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
778-->
779  <target name="compileCommon" depends="init"
780          description="Compile interpreter-indepedent code.">
781    <depend srcdir="${src}"
782            destdir="${build}"
783            closure="yes"
784            cache="${basedir}/.dependencies"/>
785    <javac
786        srcdir="${src}"
787        destdir="${build}"
788        source="${javaSourceVersion}"
789        debug="true"
790        includeantruntime="false"
791        fork="true">
792      <!-- Uncomment the following line to print unchecked warnings. -->
793      <!-- <compilerarg value="-Xlint:unchecked"/>  -->
794      <classpath refid="compile.classpath"/>
795      <include name="${blahblahblah}/useful/*.java"/>
796      <include name="${blahblahblah}/unicode/*.java"/>
797    </javac>
798  </target>
799
800<!--
801THIS FILE IS DEPRECATED.
802CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
803-->
804  <target name="compileCommonLint" depends="init"
805          description="Compile interpreter-indepedent code.">
806    <depend srcdir="${src}"
807            destdir="${build}"
808            closure="yes"
809            cache="${basedir}/.dependencies"/>
810    <javac
811        srcdir="${src}"
812        destdir="${build}"
813        source="${javaSourceVersion}"
814        debug="true"
815        includeantruntime="false"
816        fork="true">
817      <classpath refid="compile.classpath"/>
818      <!-- Uncomment the following line to print unchecked warnings. -->
819      <compilerarg value="-Xlint:unchecked"/>
820      <include name="${usefulPackage}/*.java"/>
821      <include name="${unicodePackage}/*.java"/>
822    </javac>
823  </target>
824
825
826  <target name="interpreter-jar" depends="compileAll"
827          description="Package up the interpreter in a jar.">
828    <jar
829        destfile="../bin/interpreter.jar"
830        basedir="${build}"
831        includes="**/*"/>
832  </target>
833
834<!--
835THIS FILE IS DEPRECATED.
836CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
837-->
838  <target name="testOnly" depends="compileAll"
839          description="Run specific tests (use -DtestPattern=...).">
840    <mkdir dir="${test.results}"/>
841    <mkdir dir="${basedir}/test-tmp" />
842    <junit printsummary="off"
843           haltonerror="off"
844           haltonfailure="off"
845           showoutput="yes"
846           fork="true"
847           maxmemory="${junitMem}"
848           errorProperty="tests.failed"
849           failureProperty="tests.failed">
850      <classpath refid="compile.classpath"/>
851      <jvmarg value="-Djava.io.tmpdir=${basedir}/test-tmp" />
852      <formatter type="plain" usefile="false"/>
853      <syspropertyset>
854        <propertyref prefix="plt." />
855      </syspropertyset>
856      <batchtest fork="true" todir="${test.results}">
857        <fileset dir="${build}">
858          <and>
859            <filename name="**/*${testPattern}*/**" />
860            <or>
861              <filename name="**/*JUTest.class" />
862              <filename name="**/*JUTestAll.class" />
863              <filename name="**/*JxTest.class" />
864            </or>
865          </and>
866          <exclude name="**/*$*.class"/>
867        </fileset>
868      </batchtest>
869    </junit>
870    <delete dir="${basedir}/test-tmp" />
871    <fail message="Tests expected to pass are failing!" if="tests.failed"/>
872  </target>
873
874<!--
875THIS FILE IS DEPRECATED.
876CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
877-->
878  <target name="test" depends="compileAll, testFast"
879          description="Clean, compile everything, and run all unit and system tests.">
880  </target>
881
882  <target name ="testNative" depends="cleanCache, compile"
883          description="Test the native code generator">
884    <mkdir dir="${test.results}"/>
885    <mkdir dir="${basedir}/test-tmp" />
886    <junit printsummary="on"
887           haltonerror="off"
888           haltonfailure="off"
889           showoutput="yes"
890           fork="true"
891           maxmemory="${junitMem}"
892           errorProperty="tests.failed"
893           failureProperty="tests.failed">
894      <classpath refid="compile.classpath"/>
895      <jvmarg value="-Djava.io.tmpdir=${basedir}/test-tmp" />
896      <formatter type="plain" usefile="true"/>
897      <batchtest fork="true" todir="${test.results}">
898        <fileset dir="${build}">
899          <include name="**/WrapperGeneratorJUTest.class"/>
900        </fileset>
901      </batchtest>
902    </junit>
903    <delete dir="${basedir}/test-tmp" />
904    <fail message="Tests expected to pass are failing!" if="tests.failed"/>
905  </target>
906
907<!--
908THIS FILE IS DEPRECATED.
909CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
910-->
911  <target name="testFast"
912          description="Run all unit and system tests expected to pass.">
913    <mkdir dir="${test.results}"/>
914    <mkdir dir="${basedir}/test-tmp" />
915    <junit printsummary="on"
916           haltonerror="off"
917           haltonfailure="off"
918           showoutput="yes"
919           fork="true"
920           maxmemory="${junitMem}"
921           errorProperty="tests.failed"
922           failureProperty="tests.failed">
923      <classpath refid="compile.classpath"/>
924      <jvmarg value="-Djava.io.tmpdir=${basedir}/test-tmp" />
925      <formatter type="plain" usefile="true"/>
926      <batchtest fork="true" todir="${test.results}">
927        <fileset dir="${build}">
928          <include name="**/*JUTest.class"/>
929          <include name="**/*JUTests.class"/>
930          <exclude name="**/*$*.class"/>
931          <exclude name="**/SyntaxAbstractionJUTestAll.class"/>
932          <exclude name="**/tools/AstJUTest.class"/>
933        </fileset>
934      </batchtest>
935    </junit>
936    <delete dir="${basedir}/test-tmp" />
937    <fail message="Tests expected to pass are failing!" if="tests.failed"/>
938  </target>
939
940<!--
941THIS FILE IS DEPRECATED.
942CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
943-->
944  <target name="testCruiseControl" depends="compileAll"
945          description="Run all unit and system tests expected to pass.">
946    <mkdir dir="${test.results}"/>
947    <mkdir dir="${basedir}/test-tmp" />
948    <junit printsummary="on"
949           haltonerror="off"
950           haltonfailure="off"
951           showoutput="yes"
952           fork="true"
953           maxmemory="${junitMem}"
954           errorProperty="tests.failed"
955           failureProperty="tests.failed">
956      <classpath refid="compile.classpath"/>
957      <jvmarg value="-Djava.io.tmpdir=${basedir}/test-tmp" />
958      <formatter type="plain" usefile="true"/>
959      <batchtest fork="true" todir="${junit.dir}">
960        <formatter type="brief" usefile="false" />
961        <formatter type="xml" />
962        <fileset dir="${build}">
963          <include name="**/*JUTest.class"/>
964          <include name="**/*JUTests.class"/>
965          <exclude name="**/*$*.class"/>
966          <exclude name="**/SyntaxAbstractionJUTestAll.class"/>
967          <exclude name="**/tools/AstJUTest.class"/>
968        </fileset>
969      </batchtest>
970    </junit>
971    <delete dir="${basedir}/test-tmp" />
972    <fail message="Tests expected to pass are failing!" if="tests.failed"/>
973  </target>
974
975<!--
976THIS FILE IS DEPRECATED.
977CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
978-->
979  <target name="testNotPassing" depends="compileAll"
980          description="Run system tests that aren't passing yet.">
981    <mkdir dir="${test.results}"/>
982    <mkdir dir="${basedir}/test-tmp" />
983    <junit printsummary="on"
984           haltonerror="off"
985           haltonfailure="off"
986           showoutput="yes"
987           fork="true"
988           maxmemory="${junitMem}"
989           errorProperty="tests.failed"
990           failureProperty="tests.failed">
991      <classpath refid="compile.classpath"/>
992      <jvmarg value="-Djava.io.tmpdir=${basedir}/test-tmp" />
993      <formatter type="brief" usefile="true"/>
994      <batchtest fork="true" todir="${test.results}">
995        <fileset dir="${build}">
996          <include name="**/*NotPassingYet.class"/>
997        </fileset>
998      </batchtest>
999    </junit>
1000    <delete dir="${basedir}/test-tmp" />
1001    <fail message="Tests expected to fail are failing!" if="tests.failed"/>
1002  </target>
1003
1004<!--
1005THIS FILE IS DEPRECATED.
1006CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
1007-->
1008  <target name="testSpecData" depends="compileAll"
1009          description="Run SpecDataJUTests.">
1010    <mkdir dir="${test.results}"/>
1011    <mkdir dir="${basedir}/test-tmp" />
1012    <junit printsummary="on"
1013           haltonerror="off"
1014           haltonfailure="off"
1015           showoutput="yes"
1016           fork="true"
1017           maxmemory="${junitMem}"
1018           errorProperty="tests.failed"
1019           failureProperty="tests.failed">
1020      <classpath refid="compile.classpath"/>
1021      <jvmarg value="-Djava.io.tmpdir=${basedir}/test-tmp" />
1022      <formatter type="plain" usefile="true"/>
1023      <batchtest fork="true" todir="${test.results}">
1024        <fileset dir="${build}">
1025          <include name="**/SpecDataJUTest.class"/>
1026        </fileset>
1027      </batchtest>
1028    </junit>
1029    <delete dir="${basedir}/test-tmp" />
1030    <fail message="Tests expected to pass are failing!" if="tests.failed"/>
1031  </target>
1032
1033<!--
1034THIS FILE IS DEPRECATED.
1035CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
1036-->
1037  <target name="testSystem" depends="compileAll"
1038          description="Run SystemJUTests.">
1039    <mkdir dir="${test.results}"/>
1040    <mkdir dir="${basedir}/test-tmp" />
1041    <junit printsummary="on"
1042           haltonerror="off"
1043           haltonfailure="off"
1044           showoutput="yes"
1045           fork="true"
1046           maxmemory="${junitMem}"
1047           errorProperty="tests.failed"
1048           failureProperty="tests.failed">
1049      <classpath refid="compile.classpath"/>
1050      <jvmarg value="-Djava.io.tmpdir=${basedir}/test-tmp" />
1051      <formatter type="plain" usefile="true"/>
1052      <batchtest fork="true" todir="${test.results}">
1053        <fileset dir="${build}">
1054          <include name="**/SystemJUTest.class"/>
1055        </fileset>
1056      </batchtest>
1057    </junit>
1058    <delete dir="${basedir}/test-tmp" />
1059    <fail message="Tests expected to pass are failing!" if="tests.failed"/>
1060  </target>
1061
1062<!--
1063THIS FILE IS DEPRECATED.
1064CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
1065-->
1066  <target name="testblas" depends="compile,blas" description="Test blas">
1067    <mkdir dir="${basedir}/test-tmp" />
1068    <junit printsummary="on"
1069           haltonerror="off"
1070           haltonfailure="off"
1071           showoutput="yes"
1072           fork="true"
1073           maxmemory="${junitMem}"
1074           errorProperty="tests.failed"
1075           failureProperty="tests.failed">
1076      <classpath refid="compile.classpath"/>
1077      <jvmarg value="-Djava.io.tmpdir=${basedir}/test-tmp" />
1078      <formatter type="plain" usefile="true"/>
1079      <batchtest fork="true" todir="${test.results}">
1080        <fileset dir="${build}">
1081          <include name="**/BlasJxTest.class"/>
1082        </fileset>
1083      </batchtest>
1084    </junit>
1085    <delete dir="${basedir}/test-tmp" />
1086    <fail message="Tests expected to pass are failing!" if="tests.failed"/>
1087  </target>
1088
1089<!--
1090THIS FILE IS DEPRECATED.
1091CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
1092-->
1093  <target name="testsyntax" depends="compileAll"
1094          description="Run SyntaxAbstractionJUTests.">
1095    <mkdir dir="${test.results}"/>
1096    <mkdir dir="${basedir}/test-tmp" />
1097    <junit printsummary="on"
1098           haltonerror="off"
1099           haltonfailure="off"
1100           showoutput="yes"
1101           fork="true"
1102           maxmemory="${junitMem}"
1103           errorProperty="tests.failed"
1104           failureProperty="tests.failed">
1105      <classpath refid="compile.classpath"/>
1106      <jvmarg value="-Djava.io.tmpdir=${basedir}/test-tmp" />
1107      <formatter type="plain" usefile="true"/>
1108      <batchtest fork="true" todir="${test.results}">
1109        <fileset dir="${build}">
1110          <include name="**/SyntaxAbstractionJUTest.class"/>
1111          <include name="**/SyntaxAbstractionJUTestAll.class"/>
1112        </fileset>
1113      </batchtest>
1114    </junit>
1115    <delete dir="${basedir}/test-tmp" />
1116    <fail message="Tests expected to pass are failing!" if="tests.failed"/>
1117  </target>
1118
1119<!--
1120THIS FILE IS DEPRECATED.
1121CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
1122-->
1123  <target name="testDemos" depends="compileAll"
1124          description="Run demos in a test harness.">
1125    <mkdir dir="${test.results}"/>
1126    <mkdir dir="${basedir}/test-tmp" />
1127    <junit printsummary="on"
1128           haltonerror="off"
1129           haltonfailure="off"
1130           showoutput="yes"
1131           fork="true"
1132           maxmemory="${junitMem}"
1133           errorProperty="tests.failed"
1134           failureProperty="tests.failed">
1135      <classpath refid="compile.classpath"/>
1136      <jvmarg value="-Djava.io.tmpdir=${basedir}/test-tmp" />
1137      <formatter type="brief" usefile="true"/>
1138      <batchtest fork="true" todir="${test.results}">
1139        <fileset dir="${build}">
1140          <include name="**/DemoTests.class"/>
1141        </fileset>
1142      </batchtest>
1143    </junit>
1144    <delete dir="${basedir}/test-tmp" />
1145    <fail message="Tests expected to pass are failing!" if="tests.failed"/>
1146  </target>
1147
1148  <target name="testAll"
1149          depends="test, testNotPassing, testDemos, reportNotPassing"
1150          description="Run all tests, including those known not to pass yet.">
1151  </target>
1152
1153  <target name="testNightly" depends="test, testDemos, testsyntax"
1154          description="Run tests, demos, and syntax abstraction tests.">
1155  </target>
1156
1157  <target name="reportNotPassing"
1158          if="not.passing.yet"
1159          depends="test,testNotPassing">
1160    <echo message="Some tests expected to fail still aren't passing."/>
1161  </target>
1162
1163<!--
1164THIS FILE IS DEPRECATED.
1165CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
1166-->
1167  <!-- If the generated file Fortress.java is no older than all rats files
1168       in the parser directory, then the parser must be up to date.
1169       This is a conservative test; a more precise test would perform a
1170       dependency analysis over Rats! code.-->
1171  <target name="checkParserUptodate" depends="init">
1172    <condition property="parser.uptodate">
1173      <and>
1174        <uptodate targetfile="${parser}/Fortress.java">
1175          <srcfiles dir="${parser}" includes="**/*.rats"/>
1176        </uptodate>
1177        <uptodate targetfile="${preparser}/PreFortress.java">
1178          <srcfiles dir="${parser}" includes="**/*.rats"/>
1179          <srcfiles dir="${preparser}" includes="**/*.rats"/>
1180        </uptodate>
1181        <uptodate targetfile="${importcollector}/ImportCollector.java">
1182          <srcfiles dir="${parser}" includes="**/*.rats"/>
1183          <srcfiles dir="${importcollector}" includes="**/*.rats"/>
1184        </uptodate>
1185        <uptodate targetfile="${templateparser}/TemplateParser.java">
1186          <srcfiles dir="${parser}" includes="**/*.rats"/>
1187          <srcfiles dir="${templateparser}" includes="**/*.rats"/>
1188        </uptodate>
1189      </and>
1190    </condition>
1191    <echo>Parser up to date? ${parser.uptodate}</echo>
1192  </target>
1193
1194  <target name="checkFortressParserUptodate" depends="init">
1195    <uptodate property="fortressparser.uptodate"
1196              targetfile="${parser}/Fortress.java">
1197      <srcfiles dir="${parser}" includes="**/*.rats"/>
1198    </uptodate>
1199    <echo>Fortress parser up to date? ${parser.uptodate}</echo>
1200  </target>
1201
1202<!--
1203THIS FILE IS DEPRECATED.
1204CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
1205-->
1206  <target name="checkPreparserUptodate" depends="init">
1207    <uptodate property="preparser.uptodate"
1208              targetfile="${preparser}/PreFortress.java">
1209      <srcfiles dir="${parser}" includes="**/*.rats"/>
1210      <srcfiles dir="${preparser}" includes="**/*.rats"/>
1211    </uptodate>
1212    <echo>Preparser up to date? ${preparser.uptodate}</echo>
1213  </target>
1214
1215  <target name="checkImportCollectorUptodate" depends="init">
1216    <uptodate property="importcollector.uptodate"
1217              targetfile="${importcollector}/ImportCollector.java">
1218      <srcfiles dir="${parser}" includes="**/*.rats"/>
1219      <srcfiles dir="${importcollector}" includes="**/*.rats"/>
1220    </uptodate>
1221    <echo>ImportCollector up to date? ${importcollector.uptodate}</echo>
1222  </target>
1223
1224  <target name="checkTemplateparserUptodate" depends="init">
1225    <uptodate property="templateparser.uptodate"
1226              targetfile="${templateparser}/TemplateParser.java">
1227      <srcfiles dir="${parser}" includes="**/*.rats"/>
1228      <srcfiles dir="${templateparser}" includes="**/*.rats"/>
1229    </uptodate>
1230    <echo>Templateparser up to date? ${templateparser.uptodate}</echo>
1231  </target>
1232
1233<!--
1234THIS FILE IS DEPRECATED.
1235CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
1236-->
1237  <target name="checkInstrumentedParserUptodate" depends="init">
1238    <uptodate property="instrumentedparser.uptodate"
1239              targetfile="${parser}/FortressInstrumented.java">
1240      <srcfiles dir="${parser}" includes="**/*.rats"/>
1241      <srcfiles dir="${src}/${instrumentationPackage}"
1242                includes="*.java"/>
1243    </uptodate>
1244    <echo>Fortress parser up to date? ${parser.uptodate}</echo>
1245  </target>
1246
1247<!--
1248THIS FILE IS DEPRECATED.
1249CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
1250-->
1251  <macrodef name="buildparser">
1252    <attribute name="name" />
1253    <attribute name="file" />
1254    <attribute name="dir" />
1255    <sequential>
1256      <echo message="Rebuilding @{name}..."/>
1257      <java fork="yes"
1258            failonerror="yes"
1259            dir="@{dir}"
1260            classname="xtc.parser.Rats"
1261            classpath="${xtc}/xtc.jar">
1262        <arg value="-in"/>
1263        <arg value="${src}"/>
1264        <arg value="@{file}"/>
1265      </java>
1266    </sequential>
1267  </macrodef>
1268
1269<!--
1270THIS FILE IS DEPRECATED.
1271CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
1272-->
1273  <target name="fortressparser" unless="fortressparser.uptodate"
1274          depends="checkFortressParserUptodate"
1275          description="Fortress Parser">
1276    <buildparser name="Fortress" dir="${parser}" file="Fortress.rats" />
1277  </target>
1278
1279  <target name="preparser" unless="preparser.uptodate"
1280          depends="checkPreparserUptodate"
1281          description="Preparser">
1282    <buildparser name="preparser" dir="${preparser}" file="PreFortress.rats" />
1283  </target>
1284
1285  <target name="importcollector" unless="importcollector.uptodate"
1286          depends="checkImportCollectorUptodate"
1287          description="ImportCollector">
1288    <buildparser name="importcollector" dir="${importcollector}" file="ImportCollector.rats" />
1289  </target>
1290
1291  <target name="templateparser" unless="templateparser.uptodate"
1292          depends="checkTemplateparserUptodate"
1293          description="Templateparser">
1294    <buildparser name="template parser" dir="${templateparser}"
1295                 file="TemplateParser.rats" />
1296  </target>
1297
1298<!--
1299THIS FILE IS DEPRECATED.
1300CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
1301-->
1302  <target name="instrumentedparser" unless="instrumentedparser.uptodate"
1303          depends="compile, checkInstrumentedParserUptodate"
1304          description="Instrumented Parser">
1305    <java fork="yes"
1306          maxmemory="512m"
1307          failonerror="yes"
1308          classname="${instrumentation.package}.InstrumentedParserGenerator">
1309      <classpath refid="instrumentedparser.classpath"/>
1310      <arg value="${parser}"/> <!-- input dir -->
1311      <arg value="${parser}"/> <!-- output dir for FortressInstrumented.java -->
1312    </java>
1313  </target>
1314
1315<!--
1316THIS FILE IS DEPRECATED.
1317CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
1318-->
1319  <target name="optimizeParser"
1320          depends="compile"
1321          description="Optimized Parser">
1322    <java fork="yes"
1323          maxmemory="512m"
1324          failonerror="yes"
1325          classname="${instrumentation.package}.OptimizedParserGenerator">
1326      <classpath refid="instrumentedparser.classpath"/>
1327      <arg value="${parser}"/> <!-- input dir -->
1328      <arg value="${parser}"/> <!-- output dir for Fortress.java -->
1329      <arg value="${instrumentation.transient}"/>
1330    </java>
1331    <ant target="compile"/>
1332  </target>
1333
1334  <target name="parser" unless="parser.uptodate"
1335          depends="checkParserUptodate, operatorsGen"
1336          description="Fortress Parser">
1337    <ant target="fortressparser" />
1338    <ant target="preparser" />
1339    <ant target="importcollector" />
1340    <ant target="templateparser" />
1341  </target>
1342
1343<!--
1344THIS FILE IS DEPRECATED.
1345CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
1346-->
1347  <target name="compileGrammarCoverage" depends="compile, instrumentedparser">
1348    <depend srcdir="${src}"
1349            destdir="${build}"
1350            closure="yes"
1351            cache="${basedir}/.dependencies"/>
1352    <javac
1353        srcdir="${src}"
1354        destdir="${build}"
1355        source="${javaSourceVersion}"
1356        debug="true"
1357        includeantruntime="false"
1358        fork="true"
1359        memorymaximumsize="${junitMem}">
1360      <!-- Uncomment the following line to print unchecked warnings
1361           (here and in the 'compileCommon' target. -->
1362      <!-- <compilerarg value="-Xlint:unchecked"/> -->
1363      <classpath refid="compile.classpath"/>
1364      <include name="${packagePrefix}/parser/FortressInstrumented.java"/>
1365    </javac>
1366  </target>
1367
1368  <target name="grammarCoverage" depends="compileGrammarCoverage">
1369    <java fork="yes"
1370          failonerror="yes"
1371          classname="${instrumentation.package}.Coverage"
1372          output="${instrumentation.outfile}">
1373      <classpath refid="compile.classpath"/>
1374    </java>
1375    <echo message="Wrote grammar coverage report to ${instrumentation.outfile}"/>
1376  </target>
1377
1378<!--
1379THIS FILE IS DEPRECATED.
1380CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
1381-->
1382  <target name="doc" depends="compileAll">
1383    <javadoc overview="${src}/overview.html" destdir="${docs}" maxmemory="${junitMem}">
1384      <classpath refid="compile.classpath"/>
1385      <packageset dir="${src}">
1386        <include name="**/*"/>
1387      </packageset>
1388      <header><![CDATA[Fortress Interpreter]]></header>
1389      <doctitle><![CDATA[<h1>Fortress Interpreter Source Code</h1>]]></doctitle>
1390      <group title="Evaluator Packages"
1391             packages="com.sun.fortress.interpreter.evaluator.*"/>
1392      <link href="http://junit.org/junit/javadoc/3.8.1/"/>
1393      <link href="http://java.sun.com/j2se/1.5/docs/api/"/>
1394      <link href="http://drjava.org/javadoc/plt/"/>
1395    </javadoc>
1396  </target>
1397
1398<!--
1399THIS FILE IS DEPRECATED.
1400CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
1401-->
1402  <target name="jar"
1403          depends="compileAll"
1404          description="Package up a Fortress distribution as a self-extracting jar.">
1405    <tstamp>
1406      <format
1407          property="jar.DSTAMP"
1408          timezone="GMT"
1409          pattern="yyyy_MMdd_hhmm"/>
1410    </tstamp>
1411
1412    <!-- Extract Ant jars into build directory to be packaged up.-->
1413    <unjar src="${protofortress}/lib/ant.jar" dest="${build}"/>
1414    <unjar src="${protofortress}/lib/ant-launcher.jar" dest="${build}"/>
1415
1416    <!-- Place anthooks.jar in the protofortress. -->
1417    <copy file="${src}/com/sun/fortress/shell/anthooks.xml"
1418          todir="${protofortress}/bin"/>
1419
1420    <!-- Package up class files as a new shell.jar,
1421         and place them in the protofortress. -->
1422    <jar
1423        destfile="fortress/FORTRESS/lib/shell.jar"
1424        basedir="${build}"
1425        includes="**/*"/>
1426
1427    <!-- Then package up the protofortress and place it
1428         in the build directory (so it can be extracted later). -->
1429    <jar
1430        destfile="${build}/com/sun/fortress/shell/fortress.jar"
1431        basedir="fortress"
1432        includes="**/*" />
1433
1434    <!-- Write timestamp of jar creation to a file for retrieval during
1435         extraction. -->
1436    <echo message="${jar.DSTAMP}" file="${build}/TIMESTAMP"/>
1437
1438    <!-- Finally, package up the build directory into a jar that
1439         extracts the protofortress at a destination site. -->
1440    <jar
1441        destfile="Fortress_${jar.DSTAMP}.jar"
1442        basedir="${build}"
1443        includes="**/*" >
1444      <manifest>
1445        <attribute name="Manifest-Version" value="${jar.DSTAMP}"/>
1446        <attribute name="Created-By" value="Sun Microsystems, Inc."/>
1447        <attribute name="Main-Class" value="com.sun.fortress.shell.Extractor"/>
1448        <section name="common/class1.class">
1449          <attribute name="Sealed" value="false"/>
1450        </section>
1451      </manifest>
1452    </jar>
1453  </target>
1454
1455<!--
1456THIS FILE IS DEPRECATED.
1457CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
1458-->
1459  <target name="copy.anthooks" depends="init" unless="anthooks.uptodate">
1460    <copy file="${src}/com/sun/fortress/shell/anthooks.xml"
1461          todir="${build}/com/sun/fortress/shell"
1462          overwrite="false"/>
1463  </target>
1464
1465  <target name="installer" depends="compileAll"
1466          description="build a new installer as a jar">
1467    <delete dir="${installerDir}"/>
1468    <mkdir dir="${installerDir}/fortress"/>
1469    <copy todir="${installerDir}/fortress/FORTRESS">
1470      <fileset dir="FORTRESS"/>
1471    </copy>
1472    <copy todir="${installerDir}/fortress/bin">
1473      <fileset dir="bin"/>
1474    </copy>
1475    <copy file="docs/installer/README.txt" todir="${installerDir}/fortress"/>
1476    <tar
1477        destfile="fortress.tar.gz"
1478        basedir="${installerDir}"
1479        longfile="fail"
1480        compression="gzip"
1481        />
1482    <delete dir="${installerDir}"/>
1483  </target>
1484
1485<!--
1486THIS FILE IS DEPRECATED.
1487CHANGES SHOULD BE MADE TO BUILD.XML IN THE PARENT (ROOT) DIRECTORY.
1488-->
1489  <target name="createNestedJarUpgrade"
1490          description="wrap up a jar for inclusion in a mock upgrade">
1491    <jar
1492        destfile="jars/fortress_mock_upgrade/java/mock_upgrade.jar"
1493        basedir="jars/nested_jar_upgrade"
1494        includes="**/*"
1495        />
1496  </target>
1497
1498  <target name="createMockUpgrade" depends="createNestedJarUpgrade"
1499          description="build a mock upgrade file for testing selfupgrade">
1500    <jar
1501        destfile="FORTRESS/test/fortress_mock_upgrade.jar"
1502        basedir="jars/fortress_mock_upgrade"
1503        includes="**/*"
1504        />
1505  </target>
1506</project>
Note: See TracBrowser for help on using the browser.