source: trunk/abcl/build.xml @ 12128

Last change on this file since 12128 was 12128, checked in by Mark Evenson, 12 years ago

Fix typo from last commit.

  • Property svn:eol-style set to LF
File size: 20.7 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<project xmlns="antlib:org.apache.tools.ant"
3   name="abcl-master" default="help" basedir=".">
4    <description>Compiling, testing, and packaging Armed Bear Common Lisp</description>
5
6    <target name="abcl" depends="abcl.wrapper"/>
7
8    <property file="build.properties"/>
9
10    <property name="build.dir" 
11        value="${basedir}/build"/>
12    <property name="build.classes.dir" 
13        value="${build.dir}/classes"/>
14    <property name="src.dir" 
15        value="${basedir}/src"/>
16    <property name="dist.dir" 
17        value="${basedir}/dist"/>
18    <property name="abcl.jar.path"
19        value="${dist.dir}/abcl.jar"/>
20    <property name="abcl.ext.dir"
21        value="${basedir}/ext"/>
22 
23    <target name="help">
24      <echo>Main Ant targets:
25 abcl.compile 
26   -- compile ABCL to ${build.classes.dir}.
27 abcl.jar     
28   -- create packaged ${abcl.jar.path}.
29 abcl.wrapper 
30   -- create executable wrapper for ABCL.
31 abcl.source.zip abcl.source.tar
32   -- create source distributions in ${dist.dir}.
33 acbl.test.java
34   -- Run junit tests under ${abcl.test.src.dir}.
35 abcl.clean
36   -- remove ABCL intermediate files</echo>
37      <echo>Corresponding targets for J have been removed.</echo>
38    </target>
39
40    <!-- Checks if JSR-223 support is available - thanks to Mark Evenson -->
41    <available property="abcl.jsr-223.p"
42         classname="javax.script.ScriptEngine"/>
43
44    <patternset id="abcl.source.java">
45      <include name="org/armedbear/lisp/*.java"/>
46      <include name="org/armedbear/lisp/util/*.java"/>
47      <include name="org/armedbear/lisp/java/**/*.java"/>
48      <include name="org/armedbear/lisp/scripting/*.java" if="abcl.jsr-223.p"/>
49      <include name="org/armedbear/lisp/scripting/util/*.java" if="abcl.jsr-223.p"/>
50      <include name="org/armedbear/Main.java"/>
51    </patternset>
52
53    <patternset id="abcl.source.lisp">
54      <include name="org/armedbear/lisp/*.lisp"/>
55      <include name="org/armedbear/lisp/java/**/*.lisp"/>
56      <include name="org/armedbear/lisp/tests/*.lisp"/>
57      <exclude name="org/armedbear/lisp/j.lisp"/>
58      <include name="org/armedbear/lisp/scripting/lisp/*.lisp" if="abcl.jsr-223.p"/>
59    </patternset>
60
61    <patternset id="abcl.scripting.source.java">
62      <include name="org/armedbear/lisp/scripting/*.java"/>
63      <include name="org/armedbear/lisp/scripting/util/*.java"/>
64    </patternset>
65
66    <patternset id="abcl.scripting.source.lisp">
67      <include name="org/armedbear/lisp/scripting/lisp/*.lisp"/>
68    </patternset>
69
70    <!-- Lisp files required at runtime -->
71    <patternset id="abcl.source.lisp.dist">
72      <include name="org/armedbear/lisp/boot.lisp"/>
73      <include name="org/armedbear/lisp/scripting/lisp/*.lisp" if="abcl.jsr-223.p"/>
74    </patternset>
75
76    <patternset id="abcl.objects">
77      <include name="org/armedbear/lisp/**/*.class"/>
78      <include name="org/armedbear/lisp/**/*.cls"/> 
79      <include name="org/armedbear/lisp/**/*.abcl"/>
80      <include name="org/armedbear/lisp/scripting/*.class" if="abcl.jsr-223.p"/>
81      <include name="org/armedbear/lisp/scripting/util/*.class" if="abcl.jsr-223.p"/>
82      <patternset refid="abcl.source.lisp.dist"/>
83    </patternset>
84   
85    <path id="abcl.classpath.dist">
86      <pathelement location="${abcl.jar.path}"/>
87    </path>
88   
89    <path id="abcl.classpath.build">
90      <pathelement location="${build.classes.dir}"/>
91    </path>
92
93    <target name="abcl.compile" depends="abcl.compile.lisp">
94      <echo>Compiled ABCL with Java version: ${java.version}</echo>
95    </target>
96
97    <target name="abcl.init">
98      <tstamp>
99  <format property="build" pattern="EEE MMM dd yyyy HH:mm:ss zzz"/>
100      </tstamp>
101
102      <tstamp>
103  <format property="build.stamp" pattern="yyyymmdd-HHmm"/>
104      </tstamp>
105
106      <property name="abcl.test.log.file"
107    value="abcl-test-${build.stamp}.log"/>
108
109      <!--- antversion fails in ant 1.7.1 <antversion property="ant.version"
110                                                atleast="1.7"/> -->
111      <property name="java.path"
112    value="${java.home}/bin/java"/>
113
114      <!-- Deprecated. Two main types of build environents: 'unix' or 'windows'. -->
115      <condition property="unix"> 
116  <or>
117    <os family="unix"/>
118    <os family="mac"/>
119  </or>
120      </condition>
121      <condition property="windows"> 
122  <os family="windows"/>
123      </condition>
124
125      <!-- Deprecated. -->
126      <available file="${src.dir}org/armedbear/lisp/Interpreter.java" 
127     property="abcl.lisp.p"/>
128
129      <echo>java.version: ${java.version}</echo>
130      <condition property="abcl.java.version.p">
131  <or>
132    <matches string="${java.version}" pattern="1\.5"/>
133    <matches string="${java.version}" pattern="1\.6\.0_1[0-9]"/>
134  </or> 
135      </condition>
136
137      <!-- Set from commandline via -D or in 'build.properties' -->
138      <property name="build.version" value="abcl.svn"/>
139      <echo>Implementation-Source: ${version.src}</echo>
140
141    </target>
142   
143    <target name="abcl.java.warning" 
144      depends="abcl.init"
145      unless="abcl.java.version.p">
146      <echo>WARNING: Use of Java version ${java.version} not recommended.</echo>
147    </target>
148 
149    <target name="abcl.jsr-223.notice"
150      depends="abcl.init"
151      unless="abcl.jsr-223.p">
152      <echo>
153  Notice: JSR-223 support won't be built since it is not
154          supported, neither natively by your JVM nor by
155    libraries in the CLASSPATH.
156      </echo>
157    </target>
158
159    <target name="abcl.compile.java" 
160      depends="abcl.init,abcl.java.warning,abcl.jsr-223.notice">
161      <mkdir dir="${build.dir}"/>
162      <mkdir dir="${build.classes.dir}"/>
163      <javac destdir="${build.classes.dir}"
164       debug="true"
165       target="1.5"
166       failonerror="true">
167  <src path="${src.dir}"/>
168  <patternset refid="abcl.source.java"/>
169      </javac>
170      <echo message="${build}" 
171      file="${build.classes.dir}/org/armedbear/lisp/build"/>
172    </target>
173
174    <target name="abcl.copy.lisp">
175      <copy todir="${build.classes.dir}" preservelastmodified="yes">
176  <fileset dir="${src.dir}">
177    <patternset refid="abcl.source.lisp"/>
178  </fileset>
179      </copy>
180    </target>
181
182    <!-- Adjust the patternset for ABCL source to use the much faster
183         Ant 'uptodate' task to check if we need to compile the system
184         fasls.  Highly inter-dependent with the behavior specified in
185         'compile-system.lisp', i.e. files not listed in
186         there should NOT occur here. -->
187    <patternset id="abcl.source.lisp.fasls">
188      <patternset refid="abcl.source.lisp"/>
189      <exclude name="org/armedbear/lisp/scripting/**/*.lisp"/>
190      <exclude name="org/armedbear/lisp/boot.lisp"/>
191      <exclude name="org/armedbear/lisp/emacs.lisp"/>
192      <exclude name="org/armedbear/lisp/runtime-class.lisp"/>
193      <exclude name="org/armedbear/lisp/run-benchmarks.lisp"/>
194    </patternset>
195
196    <target name="abcl.fasls.uptodate">
197      <uptodate property="abcl.fasls.uptodate.p" value="true">
198  <srcfiles dir="${build.classes.dir}">
199    <patternset refid="abcl.source.lisp.fasls"/>
200  </srcfiles>
201  <mapper type="glob" from="*.lisp" to="*.abcl"/>
202      </uptodate>
203    </target>
204   
205    <target name="abcl.compile.lisp" 
206      depends="abcl.copy.lisp,abcl.compile.java,abcl.fasls.uptodate"
207      unless="abcl.fasls.uptodate.p">
208      <java classpath="${build.classes.dir}"
209      fork="true"
210      failonerror="true"
211      classname="org.armedbear.lisp.Main">
212  <arg value="--noinit"/>
213  <arg value="--eval"/>
214  <arg value="(compile-system :zip nil :quit t)"/>
215      </java>
216    </target>
217
218    <property name="abcl.build.path"
219        value="${build.classes.dir}/org/armedbear/lisp/build"/>
220    <target name="abcl.stamp" depends="abcl.compile,abcl.stamp.version,abcl.stamp.hostname">
221      <mkdir dir="${abcl.build.path}/.."/>
222      <echo message="${build}" file="${abcl.build.path}"/>   
223    </target>
224
225    <property name="abcl.version.path"
226        value="${build.classes.dir}/org/armedbear/lisp/version"/>
227    <target name="abcl.stamp.version" depends="abcl.compile">
228      <!-- Determine which ABCL version we have just built by parsing
229           the output of LISP-IMPLEMENTATION-VERSION. -->
230      <!-- TODO As an optimization, we could possibly compare the timestamp
231      of 'abcl.version.path' vs. org.armedbear.lisp.Version -->
232      <java fork="true"
233      classpath="${build.classes.dir}"
234      outputproperty="abcl.version"
235      classname="org.armedbear.lisp.Main"
236        logerror="yes"> <!-- Don't catch stderr output -->
237  <arg value="--noinit"/>
238  <arg value="--noinform"/>
239  <arg value="--eval"/>
240  <arg value="(progn (format t (lisp-implementation-version)) (finish-output) (quit))"/>
241      </java>
242
243      <echo>Built ABCL version: ${abcl.version}</echo>
244      <mkdir dir="${abcl.version.path}/.."/>
245      <echo message="${abcl.version}" file="${abcl.version.path}"/> 
246    </target>
247
248    <target name="abcl.stamp.hostname" if="unix">
249      <exec executable="hostname" outputproperty="abcl.hostname"/>
250      <echo>abcl.hostname: ${abcl.hostname}</echo>
251    </target>
252
253    <target name="abcl.jar.uptodate" depends="abcl.compile">
254      <uptodate property="abcl.jar.uptodate.p" targetfile="${abcl.jar.path}">
255  <srcfiles dir="${build.classes.dir}">
256    <patternset refid="abcl.objects"/>
257  </srcfiles>
258      </uptodate>
259    </target>
260
261    <target name="abcl.jar" depends="abcl.stamp,abcl.jar.uptodate"
262      unless="abcl.jar.uptodate.p">
263      <mkdir dir="${dist.dir}"/>
264      <loadfile property="abcl.version"
265      srcFile="${abcl.version.path}"/>
266      <jar destfile="${abcl.jar.path}"
267     compress="true"
268     basedir="${build.classes.dir}">
269  <patternset refid="abcl.objects"/>
270  <manifest>
271    <attribute name="Main-Class" value="org.armedbear.lisp.Main"/>
272    <section name="org/armedbear/lisp">
273      <attribute name="Implementation-Title" 
274           value="ABCL"/>
275      <attribute name="Implementation-Version" 
276           value="${abcl.version}"/>
277      <attribute name="Implementation-Build" 
278           value="${build}"/>
279      <attribute name="Implementation-Source" 
280           value="${version.src}"/>
281    </section>
282  </manifest>
283  <metainf dir="${src.dir}/META-INF"> 
284    <exclude name="services/javax.script.ScriptEngineFactory"
285       unless="abcl.jsr-223.p"/>
286        </metainf>
287      </jar>
288    </target>
289   
290    <target name="abcl.wrapper" 
291      depends="abcl.jar,abcl.wrapper.unix,abcl.wrapper.windows">
292      <description>
293  Creates in-place exectuable shell wrapper in '${abcl.wrapper.file}'
294      </description>
295      <!-- Set from commandline or in 'build.properties' -->
296      <property name="additional.jars" value=""/>
297      <path id="abcl.runtime.classpath">
298  <pathelement location="${abcl.jar.path}"/>
299  <pathelement path="${additional.jars}"/>
300      </path>
301      <!-- set via '-Djava.options=JAVA_OPTIONS' or in 'build.properties -->
302      <property name="java.options" value=""/>
303
304      <copy file="${abcl.wrapper.in.file}" toFile="${abcl.wrapper.file}" overwrite="yes">
305  <filterset>
306    <filter token="JAVA" 
307      value="${java.path}"/>
308    <filter token="ABCL_JAVA_OPTIONS" 
309      value="${java.options}"/>
310    <filter token="ABCL_CLASSPATH"
311      value="${toString:abcl.runtime.classpath}"/>
312  </filterset>
313      </copy>
314      <chmod file="${abcl.wrapper.file}" perm="a+x"/>
315
316      <echo>Created executable ABCL wrapper in '${abcl.wrapper.file}'</echo>
317      <echo>N.B. This wrapper requires '${abcl.jar.path}' not be moved.</echo>
318    </target>
319
320    <target name="abcl.wrapper.unix" if="unix">
321      <property name="abcl.wrapper.file" value="abcl"/>
322      <property name="abcl.wrapper.in.file" value="abcl.in"/>
323    </target>
324
325    <target name="abcl.wrapper.windows" if="windows">
326      <property name="abcl.wrapper.file" value="abcl.bat"/>
327      <property name="abcl.wrapper.in.file" value="abcl.bat.in"/>
328    </target>
329
330    <target name="abcl.debug.jpda" depends="abcl.jar">
331      <description>Invoke ABCL with JPDA listener on port 6789</description>
332      <java fork="true"
333      classpathref="abcl.classpath.dist"
334      classname="org.armedbear.lisp.Main">
335  <jvmarg 
336      value="-agentlib:jdwp=transport=dt_socket,address=6789,server=y"/>
337      </java>
338      <echo>JPDA listening on localhost:6789</echo>
339    </target>
340
341    <target name="abcl.run" depends="abcl.jar">
342      <java fork="true"
343      classpathref="abcl.classpath.dist"
344      classname="org.armedbear.lisp.Main">
345      </java>
346    </target>
347
348    <target name="abcl.clean">
349      <delete dir="${build.dir}"/>
350      <delete file="${abcl.jar.path}"/>
351      <delete file="abcl"/>
352      <delete file="abcl.bat"/>
353    </target>
354
355    <target name="abcl.dist" depends="abcl.jar">
356      <copy file="${abcl.jar.path}"
357      toFile="${dist.dir}/abcl-${abcl.version}.jar"/>
358    </target>
359
360    <target name="abcl.distclean" depends="abcl.clean">
361      <delete dir="${dist.dir}"/>
362      <delete file="abcl"/>
363      <delete file="abcl.bat"/>
364    </target>
365
366    <target name="TAGS">
367      <apply executable="etags" parallel="true" verbose="true">
368  <arg value="--regex=|[ \t]+//[ \t]+###[ \t]+\([^ \t]+\)|\1|"/>
369  <fileset dir="${src.dir}">
370    <patternset refid="abcl.source.java"/>
371    <patternset refid="abcl.source.lisp"/>
372  </fileset>
373      </apply>
374    </target>
375
376    <patternset id="abcl.dist.misc"
377    description="Additional includes in the source distributions relative to basedir">
378      <include name="build.xml"/>
379      <include name="build.properties.in"/>
380      <include name="COPYING"/>
381      <include name="README"/>
382      <include name="CHANGES"/>
383      <include name="abcl.in"/>
384      <include name="abcl.bat.in"/>
385     
386      <!-- The remainder of these files are used by the Lisp hosted
387           build in 'build-abcl.lisp' but not used by Ant, so include
388           them in the source distribution. -->
389      <include name="make-jar.in"/>
390      <include name="make-jar.bat.in"/>
391
392      <include name="build-abcl.lisp"/>
393      <include name="customizations.lisp.in"/>
394
395      <include name="test-abcl.asd"/>
396      <include name="build-abcl.asd"/>
397    </patternset>
398
399    <patternset id="abcl.source.misc"
400    description="Additional includes in the source distribution relative to source root">
401      <include name="org/armedbear/lisp/LICENSE"/>
402      <include name="manifest-abcl"/>
403      <include name="META-INF/services/javax.script.ScriptEngineFactory"/>
404    </patternset>
405
406    <target name="abcl.source.prepare" depends="abcl.stamp.version">
407      <property name="abcl.build.src.dir"
408    value="${build.dir}/abcl-src-${abcl.version}"/>
409      <mkdir dir="${abcl.build.src.dir}/src"/>
410      <copy todir="${abcl.build.src.dir}/src"
411            preservelastmodified="true">
412        <fileset dir="${src.dir}"
413                 id="abcl.source.src">
414            <patternset refid="abcl.source.java"/>
415            <patternset refid="abcl.source.lisp"/>
416            <patternset refid="abcl.source.misc"/>
417        </fileset>
418      </copy>
419      <copy todir="${abcl.build.src.dir}"
420            preservelastmodified="true">
421        <fileset dir="${basedir}">
422            <patternset refid="abcl.dist.misc"/>
423        </fileset>
424      </copy>
425    </target>
426
427    <!--  Files in source distribution that always get LF EOL (aka
428         'unix') -->   
429    <patternset id="abcl.dist.lf">
430      <include name="abcl.in"/>
431    </patternset>
432
433    <!--  Files in source distribution that always get CRLF EOL (aka
434         'dos') -->   
435    <patternset id="abcl.dist.crlf">
436      <include name="abcl.bat.in"/>
437    </patternset>
438
439    <target name="abcl.source.tar" depends="abcl.source.prepare">
440      <fixcrlf srcdir="${abcl.build.src.dir}"
441               preservelastmodified="true"
442               eol="lf">
443      </fixcrlf>
444
445      <fixcrlf srcdir="${abcl.build.src.dir}"
446               preservelastmodified="true"
447               eol="crlf">
448          <patternset refid="abcl.dist.crlf"/>
449      </fixcrlf>
450
451      <fixcrlf srcdir="${abcl.build.src.dir}"
452               preservelastmodified="true"
453               eol="lf">
454          <patternset refid="abcl.dist.lf"/>
455      </fixcrlf>
456
457      <mkdir dir="${dist.dir}"/>
458      <tar destfile="${dist.dir}/abcl-src-${abcl.version}.tar.gz"
459     compression="gzip">
460  <tarfileset dir="${build.dir}">
461    <include name="abcl-src-${abcl.version}/**"/>
462  </tarfileset>
463      </tar>
464    </target>
465
466    <target name="abcl.source.zip" depends="abcl.source.prepare">
467      <fixcrlf srcdir="${abcl.build.src.dir}"
468               preservelastmodified="true"
469               eol="crlf">
470      </fixcrlf>
471
472      <fixcrlf srcdir="${abcl.build.src.dir}"
473               preservelastmodified="true"
474               eol="crlf">
475          <patternset refid="abcl.dist.crlf"/>
476      </fixcrlf>
477
478      <fixcrlf srcdir="${abcl.build.src.dir}"
479               preservelastmodified="true"
480               eol="lf">
481          <patternset refid="abcl.dist.lf"/>
482      </fixcrlf>
483
484      <mkdir dir="${dist.dir}"/>
485      <zip destfile="${dist.dir}/abcl-src-${abcl.version}.zip"
486     compress="true">
487  <zipfileset dir="${abcl.build.src.dir}" prefix="abcl-src-${abcl.version}"/>
488      </zip>
489    </target>
490
491    <property name="abcl.test.classes.dir"
492        value="${build.dir}/classes-test"/>
493
494    <property name="abcl.test.src.dir"
495        value="${basedir}/test/src"/>
496
497    <patternset id="abcl.test.source.java">
498      <!-- For now, we list tests explicitly, because we have to
499           enumerate them later to the JUnit test runner. -->
500      <include name="org/armedbear/lisp/FastStringBufferTest.java"/>
501    </patternset>
502
503    <property name="junit-4.5.path"
504        value="${abcl.ext.dir}/junit-4.5.jar"/>
505
506    <path id="abcl.test.compile.classpath">
507      <pathelement location="${junit-4.5.path}"/>
508      <pathelement location="${build.classes.dir}"/>
509    </path>
510
511    <target name="abcl.test.pre-compile" depends="abcl.ext"/>
512
513    <target name="abcl.ext.p">
514      <!--XXX generalize over enumeration of all contributions to abcl.ext -->
515      <available file="${junit-4.5.path}" property="abcl.ext.p"/>
516    </target>
517    <target name="abcl.ext" depends="abcl.ext.p" unless="abcl.ext.p">
518
519      <mkdir dir="${abcl.ext.dir}"/>
520      <get src="http://downloads.sourceforge.net/junit/junit-4.5.jar?modtime=1218209625"
521     usetimestamp="true"
522     dest="${junit-4.5.path}"/>
523    </target>
524 
525    <target name="abcl.test.compile" 
526      depends="abcl.test.pre-compile,abcl.compile">
527      <mkdir dir="${abcl.test.classes.dir}"/>
528      <javac destdir="${abcl.test.classes.dir}"
529       classpathref="abcl.test.compile.classpath"
530       debug="true"
531       target="1.5">
532  <src path="${abcl.test.src.dir}"/>
533  <patternset refid="abcl.test.source.java"/>
534      </javac>
535    </target>
536
537    <path id="abcl.test.run.classpath">
538      <path refid="abcl.test.compile.classpath"/>
539      <pathelement location="${abcl.test.classes.dir}"/>
540    </path>
541
542    <target name="abcl.test" 
543      depends="abcl.test.java,abcl.test.lisp"/>
544 
545    <target name="abcl.test.java" depends="abcl.test.compile">
546      <java fork="true"
547      classpathref="abcl.test.run.classpath"
548      classname="org.junit.runner.JUnitCore">
549  <arg value="org.armedbear.lisp.FastStringBufferTest"/>
550      </java>
551    </target>
552
553    <target name="abcl.test.lisp" 
554      depends="test.ansi.compiled,test.abcl"/>
555
556    <target name="test.ansi.interpreted" depends="abcl.jar">
557      <echo>Recording test output in ${abcl.test.log.file}.</echo>
558      <record name="${abcl.test.log.file}" emacsmode="true" action="start" append="yes"/>
559      <java fork="true" dir="${basedir}"
560      classpathref="abcl.classpath.dist"
561      classname="org.armedbear.lisp.Main">
562  <arg value="--noinit"/> 
563  <arg value="--load"/>
564  <arg line="${basedir}/test/lisp/ansi/ansi-tests-interpreted.lisp"/>
565      </java>
566      <record name="${abcl.test.log.file}" emacsmode="true" action="stop"/>
567      <echo>Finished recording test output in ${abcl.test.log.file}.</echo>
568    </target>
569
570    <target name="test.ansi.compiled" depends="abcl.jar">
571      <echo>Recording test output in ${abcl.test.log.file}.</echo>
572      <record name="${abcl.test.log.file}" emacsmode="true" action="start" append="yes"/>
573      <java fork="true" dir="${basedir}"
574      classpathref="abcl.classpath.dist"
575      classname="org.armedbear.lisp.Main">
576  <arg value="--noinit"/> 
577  <arg value="--load"/>
578  <arg line="${basedir}/test/lisp/ansi/ansi-tests-compiled.lisp "/> 
579      </java>
580      <record name="${abcl.test.log.file}" emacsmode="true" action="stop"/>
581      <echo>Finished recording test output in ${abcl.test.log.file}.</echo>
582    </target>
583
584    <target name="test.abcl" depends="abcl.jar">
585      <echo>Recording test output in ${abcl.test.log.file}.</echo>
586      <record name="${abcl.test.log.file}" emacsmode="true" action="start" append="yes"/>
587      <java fork="true" dir="${basedir}"
588      classpathref="abcl.classpath.dist"
589      classname="org.armedbear.lisp.Main">
590  <arg value="--noinit"/> 
591  <arg value="--load"/>
592  <arg line="${basedir}/test/lisp/abcl/abcl-test.lisp"/>
593      </java>
594      <record name="${abcl.test.log.file}" emacsmode="true" action="stop"/>
595      <echo>Finished recording test output in ${abcl.test.log.file}.</echo>
596    </target>
597
598    <import file="netbeans-build.xml" optional="true"/> 
599<!--    <import file="j-build.xml" optional="true"/>  -->
600    <import file="not.org-build.xml" optional="true"/> 
601</project>
602
Note: See TracBrowser for help on using the repository browser.