source: trunk/abcl/build.xml @ 15041

Last change on this file since 15041 was 15041, checked in by mevenson, 13 months ago

Restore compilation on Java 6

JSR-223 is always present so usage in <file:build.xml> is deprecated.

Fix compilation for SYS:RUN-PROGRAM on Java 6. Not expected to be
working very well. The general strategy is to undeprecate
SYS:RUN-SHELL-COMMAND is some manner that uses the Java 6 NIO plus
thread pools to drain IO.

Conditionalize on runtime platform of parts of our RUN-PROGRAM
implementation.

Stub implementation of NIO async processor to drain queue.

TODO: figure out how why "cat /etc/passwd" doesn't ever give output?

  • Property svn:eol-style set to LF
File size: 44.5 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<project xmlns="antlib:org.apache.tools.ant"
3         name="abcl-master" default="abcl.wrapper" basedir=".">
4    <description>Compiling, testing, and packaging Armed Bear Common Lisp</description>
5
6    <target name="abcl" depends="abcl.wrapper,abcl-contrib.jar"/>
7       
8    <target name="help">
9      <echo>
10Main Ant targets:
11
12 abcl.wrapper
13   -- [default] create executable wrapper for ABCL.
14 abcl.compile 
15   -- compile ABCL to ${build.classes.dir}.
16 abcl.jar     
17   -- create packaged ${abcl.jar.path}.
18 abcl.source.zip abcl.source.tar
19   -- create source distributions in ${dist.dir}.
20 abcl.clean
21   -- remove ABCL intermediate files
22      </echo>
23
24      <echo>
25For help on the automatic tests available, use the Ant target 'help.test'.
26      </echo>
27    </target>
28
29    <!-- Behavior of the build system can be customized via setting
30         properties in the 'abcl.properties' file. -->
31    <property file="abcl.properties"/>
32
33    <property name="build.dir" 
34              value="${basedir}/build"/>
35    <property name="build.classes.dir" 
36              value="${build.dir}/classes"/>
37    <property name="src.dir" 
38              value="${basedir}/src"/>
39    <property name="dist.dir" 
40              value="${basedir}/dist"/>
41    <property name="abcl.jar.path"
42              value="${dist.dir}/abcl.jar"/>
43    <property name="abcl-aio.jar.path"
44              value="${dist.dir}/abcl-aio.jar"/>
45    <property name="abcl.ext.dir"
46              value="${basedir}/ext"/>
47
48    <property name="abcl.runtime.jar.path"
49              value="${abcl.jar.path}"/>
50
51    <!-- TODO verify me -->
52    <fail message="Please build using Ant 1.7.1 or higher.">
53        <condition>
54            <not>
55                <antversion atleast="1.7.1"/>
56            </not>
57        </condition>
58    </fail>
59
60    <!-- Deprecated.  Checks if JSR-223 support is available.  Should always be true.  Unused.  D -->
61    <available property="abcl.jsr-223.p"
62               classname="javax.script.ScriptEngine"/>
63
64    <patternset id="abcl.source.java">
65      <include name="org/armedbear/lisp/*.java"/>
66      <include name="org/armedbear/lisp/util/*.java"/>
67      <include name="org/armedbear/lisp/protocol/*.java"/>
68      <include name="org/armedbear/lisp/java/**/*.java"/>
69      <include name="org/armedbear/lisp/scripting/*.java" />
70      <include name="org/armedbear/lisp/scripting/util/*.java" />
71      <include name="org/armedbear/Main.java"/>
72      <include name="org/abcl/**/*.java"/>
73    </patternset>
74
75    <patternset id="abcl.source.lisp">
76      <include name="org/armedbear/lisp/*.lisp"/>
77      <include name="org/armedbear/lisp/java/**/*.lisp"/>
78      <include name="org/armedbear/lisp/tests/*.lisp"/>
79      <exclude name="org/armedbear/lisp/j.lisp"/>
80      <include name="org/armedbear/lisp/scripting/lisp/*.lisp"/>
81    </patternset>
82   
83    <!-- Lisp files required at runtime -->
84    <patternset id="abcl.source.lisp.dist">
85      <include name="org/armedbear/lisp/boot.lisp"/>
86      <include name="org/armedbear/lisp/scripting/lisp/*.lisp" />
87      <include if="abcl.compile.lisp.skip"
88               name="**/*.lisp" />
89    </patternset>
90
91    <patternset id="abcl.objects">
92      <!-- "system.lisp" is dynamically created by COMPILE-fSYSTEM -->
93      <include name="org/armedbear/lisp/system.lisp"/> 
94      <include name="org/armedbear/lisp/**/*.class"/>
95      <include name="org/armedbear/lisp/**/*.cls"/> 
96      <include name="org/armedbear/lisp/**/*.abcl"/>
97      <include name="org/abcl/util/*.class"/>
98      <include name="org/armedbear/lisp/version"/>
99      <include name="org/armedbear/lisp/scripting/*.class"/>
100      <include name="org/armedbear/lisp/scripting/util/*.class"/>
101      <patternset refid="abcl.source.lisp.dist"/>
102      <include name="abcl.rdf"/>
103      <include name="abcl.asd"/>
104      <include name="README"/>
105      <include name="build.xml"/>
106      <include name="abcl.properties.in"/>
107      <include name="abcl.in"/>
108      <include name="abcl.bat.in"/>
109    </patternset>
110   
111    <path id="abcl.classpath.dist">
112      <pathelement location="${abcl.jar.path}"/>
113    </path>
114   
115    <path id="abcl.classpath.build">
116      <pathelement location="${build.classes.dir}"/>
117    </path>
118
119    <target name="abcl.compile" depends="abcl.clean.maybe,abcl.compile.lisp">
120      <echo>Compiled ABCL with Java version: ${java.version}</echo>
121    </target>
122
123    <target name="abcl.clean.maybe" unless="abcl.build.incremental">
124      <echo>Cleaning all intermediate compilation artifacts.</echo>
125      <echo>Setting 'abcl.build.incremental' enables incremental compilation.</echo>
126      <antcall target="abcl.clean"/>
127    </target>
128
129    <target name="abcl.init">
130      <tstamp>
131        <format property="build" pattern="EEE MMM dd yyyy HH:mm:ss zzz"/>
132      </tstamp>
133
134      <tstamp>
135        <format property="build.stamp" pattern="yyyymmdd-HHmm"/>
136      </tstamp>
137
138      <property name="abcl.test.log.file"
139                value="abcl-test-${build.stamp}.log"/>
140
141      <property name="java.path"
142                value="${java.home}/bin/java"/>
143
144      <!-- Deprecated. Two main types of build environents: 'unix' or 'windows'. -->
145      <condition property="unix"> 
146        <or>
147          <os family="unix"/>
148          <os family="mac"/>
149        </or>
150      </condition>
151      <condition property="windows"> 
152        <os family="windows"/>
153      </condition>
154
155      <!-- Deprecated. -->
156      <available file="${src.dir}org/armedbear/lisp/Interpreter.java" 
157                 property="abcl.lisp.p"/>
158
159      <echo>java.version: ${java.version}</echo>
160      <condition property="abcl.java.version.p">
161        <!-- Unsupported as of abcl-1.5.0 due to lack of open jdk
162          <matches string="${java.version}"
163                   pattern="1\.5"/>
164          -->
165          <or>
166          <!-- Don't use 1.6.0_09 or earlier. -->
167          <matches string="${java.version}" 
168                   pattern="1\.6\.0_[1-9][0-9]"/>
169          <!-- 1.7.0_04 works much better. -->
170          <matches string="${java.version}" 
171                   pattern="1\.7\.0_(0[4-9])|([1-9][0-9])"/>
172          <matches string="${java.version}" 
173                   pattern="1\.8\.0"/>
174        </or> 
175      </condition>
176
177    </target>
178   
179    <target name="abcl.java.warning" 
180            depends="abcl.init"
181            unless="abcl.java.version.p">
182      <echo>WARNING: Use of Java version ${java.version} not recommended.</echo>
183    </target>
184
185    <!-- Deprecated.  JSR-223 is always present -->
186    <target name="abcl.jsr-223.notice"
187            depends="abcl.init"
188            unless="abcl.jsr-223.p">
189      <echo>
190        Notice: JSR-223 support won't be built since it is not
191                supported, neither natively by your JVM nor by
192                libraries in the CLASSPATH.
193      </echo>
194    </target>
195
196    <target name="abcl.compile.java" 
197            depends="abcl.init,abcl.java.warning">
198      <mkdir dir="${build.dir}"/>
199      <mkdir dir="${build.classes.dir}"/>
200      <!-- abcl-1.5.0: Stock build for Java 1.6 (aka Java 2) container -->
201      <javac destdir="${build.classes.dir}"
202             debug="true"
203             target="1.6"
204             source="1.6"
205             includeantruntime="false"
206             failonerror="true">
207        <src path="${src.dir}"/>
208        <patternset refid="abcl.source.java"/>
209      </javac>
210    </target>
211
212    <!-- Additional artifacts to stage relative to Ant ${basedir} -->
213    <patternset id="abcl.stage">
214      <include name="README"/>
215      <include name="COPYING"/>
216      <include name="abcl.rdf"/>
217      <include name="abcl.asd"/> 
218      <include name="build.xml"/>
219      <include name="abcl.properties.in"/> <!--TODO: massage into abcl.properties at build-time -->
220      <include name="abcl.bat"/>
221      <include name="abcl.bat.in"/>
222    </patternset>
223
224    <target name="abcl.stage"
225      depends="abcl.copy.lisp">
226      <copy todir="${build.classes.dir}" preservelastmodified="yes"
227            verbose="true">
228  <fileset dir="${basedir}/">
229    <patternset refid="abcl.stage"/>
230  </fileset>
231      </copy>
232    </target>
233   
234    <target name="abcl.copy.lisp">
235      <copy todir="${build.classes.dir}" preservelastmodified="yes">
236        <fileset dir="${src.dir}">
237          <patternset refid="abcl.source.lisp.dist"/>
238        </fileset>
239      </copy>
240    </target>
241
242    <!-- Adjust the patternset for ABCL source to use the much faster
243         Ant 'uptodate' task to check if we need to compile the system
244         fasls.  Highly inter-dependent with the behavior specified in
245         'compile-system.lisp', i.e. files not listed in
246         there should NOT occur here. -->
247    <patternset id="abcl.source.lisp.fasls">
248      <patternset refid="abcl.source.lisp"/>
249      <exclude name="org/armedbear/lisp/scripting/**/*.lisp"/>
250      <exclude name="org/armedbear/lisp/boot.lisp"/>
251      <exclude name="org/armedbear/lisp/emacs.lisp"/>
252      <exclude name="org/armedbear/lisp/run-benchmarks.lisp"/>
253    </patternset>
254
255    <target name="abcl.fasls.uptodate">
256      <uptodate property="abcl.fasls.uptodate.p" value="true">
257        <srcfiles dir="${src.dir}">
258          <patternset refid="abcl.source.lisp.fasls"/>
259        </srcfiles>
260        <mapper type="glob" from="*.lisp" to="${build.classes.dir}/*.abcl"/>
261      </uptodate>
262    </target>
263
264    <path id="abcl.home.dir.path">
265        <path location="${src.dir}/org/armedbear/lisp/"/>
266    </path>         
267    <pathconvert property="abcl.home.dir" refid="abcl.home.dir.path"/>
268
269    <path id="abcl.lisp.output.path"
270          location="${build.classes.dir}/org/armedbear/lisp/"/>
271    <pathconvert dirsep="/" property="abcl.lisp.output" refid="abcl.lisp.output.path"/>
272
273    <property name="system.lisp.file" 
274              value="${build.classes.dir}/org/armedbear/lisp/system.lisp"/>
275
276    <target name="abcl.compile.lisp" 
277            depends="abcl.stage,abcl.compile.java,abcl.system.update.maybe,abcl.fasls.uptodate"
278            unless="abcl.fasls.uptodate.p">
279      <abcl.compile.lisp/>
280    </target>
281
282    <macrodef name="abcl.compile.lisp">
283      <element name="additional.jvmarg" optional="true"/>
284      <sequential>
285        <echo>
286Compiling Lisp system
287from ${abcl.home.dir}
288 to  ${abcl.lisp.output}</echo>
289 
290     <!-- Not good if ${abcl.home.dir} == ${abcl.lisp.output} -->
291     <delete>
292       <fileset dir="${abcl.home.dir}" includes="**/*.abcl **/*.cls **/*._"/>
293     </delete>
294     <java classpath="${build.classes.dir}" 
295            fork="true"
296            failonerror="true"
297            inputstring="(handler-case (compile-system :zip nil :quit t :output-path &quot;${abcl.lisp.output}/&quot;) (t (x) (progn (format t &quot;~A: ~A~%&quot; (type-of x) x) (exit :status -1))))"
298            classname="org.armedbear.lisp.Main">
299        <jvmarg value="-Dabcl.home=${abcl.home.dir}${file.separator}"/>
300        <jvmarg value="-Dabcl.autoload.verbose=Y"/>
301        <additional.jvmarg/>
302        <arg value="--noinit"/>
303        <arg value="--nosystem"/>
304        <arg value="--eval"/>
305        <arg value="(setf *load-verbose* t)"/>
306      </java>
307      <concat destfile="${system.lisp.file}" append="true">
308        <fileset file="${abcl.startup.file}"/>
309      </concat>
310        </sequential>
311    </macrodef>
312
313    <property name="abcl.compile.lisp.debug.jvmarg"
314              value="-agentlib:jdwp=transport=dt_socket,server=y,address=6789,suspend=y"/>
315    <target name="abcl.compile.lisp.debug" 
316            depends="abcl.stage,abcl.compile.java,abcl.system.update.maybe,abcl.fasls.uptodate"
317            unless="abcl.fasls.uptodate.p">
318      <echo>Debugging with jvmarg ${abcl.compile.lisp.debug.jvmarg}</echo>
319      <abcl.compile.lisp> 
320          <additional.jvmarg>
321            <jvmarg value="${abcl.compile.lisp.debug.jvmarg}"/>
322          </additional.jvmarg>
323      </abcl.compile.lisp>
324    </target>
325
326    <property name="abcl.build.path"
327              value="${build.classes.dir}/org/armedbear/lisp/build"/>
328    <target name="abcl.stamp" 
329            depends="abcl.compile,abcl.stamp.version,abcl.stamp.hostname">
330      <mkdir dir="${abcl.build.path}/.."/>
331      <loadfile property="abcl.version"
332                srcFile="${abcl.version.path}"/>
333      <echo message="${build}" file="${abcl.build.path}"/>   
334    </target>
335
336
337    <!-- Environment variables may be accessed as ${env.NAME} -->
338    <property environment="env"/>
339
340    <!-- Can we derive an SVN version from the current build tree? -->
341    <condition property="abcl.version.svn.p">
342      <and>
343        <available
344            file="${basedir}/.svn"
345            type="dir"/>
346        <or>
347            <available
348                file="svnversion.exe"
349                filepath="${env.Path}"/>
350            <available
351                file="svnversion.exe"
352                filepath="${env.PATH}"/>
353             <available
354                file="svnversion"
355                filepath="${env.Path}"/>
356            <available
357                file="svnversion"
358                filepath="${env.PATH}"/>
359        </or>
360      </and>
361    </condition>
362
363    <target name="abcl.version.src" depends="abcl.version.src.3"/>
364
365    <target name="abcl.version.src.0" if="windows">
366      <exec
367          executable="svnversion.exe"
368          outputproperty="abcl.version.svn.raw"
369          failifexecutionfails="false"
370          searchpath="true" />
371    </target>
372
373    <target name="abcl.version.src.1" depends="abcl.version.src.0">
374      <exec 
375          executable="svnversion"
376          outputproperty="abcl.version.svn.raw"
377          failifexecutionfails="false"
378          searchpath="true" />
379    </target>
380
381    <target name="abcl.version.src.2" 
382            depends="abcl.version.src.1"
383            if="abcl.version.svn.p">
384
385      <!-- Transform all occurances of ":" ==> "-" in the version string -->
386      <tempfile property="version-tmp.path"/>
387      <echo message="${abcl.version.svn.raw}"
388            file="${version-tmp.path}"/>
389      <replace file="${version-tmp.path}"
390               token=":" value="-"/>
391      <loadfile property="abcl.version.svn" srcFile="${version-tmp.path}"/>
392      <delete file="${version-tmp.path}"/>
393
394      <echo>abcl.version.svn: ${abcl.version.svn}</echo>
395      <property name="abcl.version.src"
396                value="svn-${abcl.version.svn}"/>
397    </target>
398
399    <target name="abcl.version.src.3"
400            depends="abcl.version.src.2"
401            unless="abcl.version.svn.p">
402      <property name="abcl.version.src"
403                value=""/>
404    </target>
405
406    <property name="abcl.home.dir"
407              value="${src.dir}/org/armedbear/lisp/"/>
408    <property name="abcl.version.path"
409              value="${build.classes.dir}/org/armedbear/lisp/version"/>
410
411    <target name="abcl.clean.version">
412      <delete file="${abcl.version.path}"/>
413    </target>
414
415    <target name="abcl.stamp.version.uptodate">
416      <uptodate property="abcl.stamp.version.uptodate.p" 
417                targetfile="${abcl.version.path}"
418                srcfile="${build.classes.dir}/org/armedbear/lisp/Version.class"/>
419    </target>
420
421    <target name="abcl.stamp.version" 
422            depends="abcl.version.src,abcl.stamp.version.1,abcl.stamp.version.2"
423            unless="abcl.stamp.version.uptodate.p">
424      <mkdir dir="${abcl.version.path}/.."/>
425      <echo>ABCL implementation version: ${abcl.implementation.version}</echo>
426      <echo file="${abcl.version.path}">${abcl.implementation.version}</echo>
427    </target>
428   
429    <target name="abcl.stamp.version.generate" 
430            depends="abcl.compile.java"
431            unless="abcl.stamp.version.uptodate.p">
432      <java fork="true"
433            classpath="${build.classes.dir}"
434            outputproperty="abcl.version"
435            classname="org.armedbear.lisp.Version"
436            logerror="yes"/> <!-- Don't catch stderr output -->
437    </target>
438
439    <target name="abcl.stamp.version.0" 
440            depends="abcl.stamp.version.uptodate,abcl.stamp.version.generate">
441    </target>
442
443    <target name="abcl.stamp.version.1"
444            depends="abcl.stamp.version.0"
445            unless="abcl.version.svn.p">
446      <property name="abcl.implementation.version"
447                value="${abcl.version}"/>
448    </target>
449
450    <target name="abcl.stamp.version.2" 
451            depends="abcl.stamp.version.0"
452            if="abcl.version.svn.p">
453      <property name="abcl.implementation.version"
454                value="${abcl.version}-${abcl.version.src}"/>
455    </target>
456
457    <target name="abcl.stamp.hostname" if="unix">
458      <exec executable="hostname" outputproperty="abcl.hostname"/>
459      <echo>abcl.hostname: ${abcl.hostname}</echo>
460    </target>
461
462    <target name="abcl.system.uptodate">
463      <condition property="abcl.system.needs-update.p">
464        <and>
465          <available file="${system.lisp.file}"/>
466          <available file="${abcl.startup.file}"/>
467          <uptodate
468                srcfile="${system.lisp.file}"
469                targetfile="${abcl.startup.file}"/>
470        </and>
471      </condition>
472    </target>
473   
474    <target name="abcl.system.update.maybe" depends="abcl.system.uptodate" 
475            if="abcl.system.needs-update.p">
476      <touch file="${src.dir}/org/armedbear/lisp/compile-system.lisp"/>
477    </target>
478
479    <target name="abcl.jar.uptodate" depends="abcl.compile,abcl.stamp">
480      <uptodate property="abcl.jar.uptodate.p" targetfile="${abcl.jar.path}">
481        <srcfiles dir="${build.classes.dir}">
482          <patternset refid="abcl.objects"/>
483        </srcfiles>
484      </uptodate>
485    </target>
486
487    <target name="abcl.jar" depends="abcl.jar.uptodate,abcl-contrib.jar"
488            unless="abcl.jar.uptodate.p">
489      <mkdir dir="${dist.dir}"/>
490      <jar destfile="${abcl.jar.path}"
491           compress="true"
492           update="true"
493           basedir="${build.classes.dir}">
494        <patternset refid="abcl.objects"/>
495        <manifest>
496          <attribute name="Main-Class" value="org.armedbear.lisp.Main"/>
497          <section name="org/armedbear/lisp">
498            <attribute name="Implementation-Title" 
499                       value="ABCL"/>
500            <attribute name="Implementation-Version" 
501                       value="${abcl.implementation.version}"/>
502            <attribute name="Implementation-Build" 
503                       value="${build}"/>
504          </section>
505        </manifest>
506        <metainf dir="${src.dir}/META-INF"> 
507        </metainf>
508      </jar>
509    </target>
510
511    <target name="abcl-aio.jar" depends="abcl.compile,abcl.version">
512      <mkdir dir="${dist.dir}"/>
513      <jar destfile="${abcl-aio.jar.path}"
514           compress="true"
515           update="true"
516           basedir="${build.classes.dir}">
517  <fileset dir="${src.dir}">
518          <patternset refid="abcl.objects"/>
519    <patternset refid="abcl.source.java"/>
520    <patternset refid="abcl.source.lisp"/>
521  </fileset>
522  <fileset dir="${basedir}">
523    <patternset refid="abcl.contrib.source"/>
524  </fileset>
525        <!-- According to <http://docs.oracle.com/javase/8/docs/technotes/guides/jar/jar.html>
526             any attributes not specified are ignored, so we are free to make up new attributes if necessary.  For now we just overload Implementation-Title and Implementation-Version.
527            -->
528        <manifest>
529          <attribute name="Main-Class" value="org.armedbear.lisp.Main"/>
530          <section name="org/armedbear/lisp">
531            <attribute name="Implementation-Title" 
532                       value="ABCL"/>
533            <attribute name="Implementation-Version" 
534                       value="${abcl.implementation.version}"/>
535            <attribute name="Implementation-Build" 
536                       value="${build}"/>
537          </section>
538          <section name="contrib">
539            <attribute name="Implementation-Title" 
540                       value="org.abcl-contrib"/>
541            <!-- FIXME: declare separate abcl-contrib version? -->
542            <attribute name="Implementation-Version" 
543                       value="${abcl.implementation.version}"/>
544          </section>
545          <section name="tools">
546            <attribute name="Implementation-Title" 
547                       value="org.abcl-tools"/>
548          </section>
549          <section name="src">
550            <attribute name="Implementation-Title" 
551                       value="org.abcl-source"/>
552            <attribute name="Implementation-Version" 
553                       value="${abcl.implementation.version}"/>
554          </section>
555        </manifest>
556        <metainf dir="${src.dir}/META-INF"> 
557        </metainf>
558      </jar>
559    </target>
560
561   
562    <target name="abcl.wrapper" 
563            depends="abcl.jar,abcl.contrib,abcl.wrapper.unix,abcl.wrapper.windows">
564      <description>
565        Creates in-place executable shell wrapper in
566        '${abcl.wrapper.file}'
567      </description>
568      <!-- Set from commandline or in 'build.properties' -->
569      <property name="additional.jars" value=""/>
570      <path id="abcl.runtime.classpath">
571        <pathelement location="${abcl.runtime.jar.path}"/>
572        <pathelement path="${additional.jars}"/>
573      </path>
574      <!-- set via '-Djava.options=JAVA_OPTIONS' or in 'build.properties -->
575      <property name="java.options" value=""/>
576
577      <copy file="${abcl.wrapper.in.file}" toFile="${abcl.wrapper.file}" overwrite="yes">
578        <filterset>
579          <filter token="JAVA" 
580                  value="${java.path}"/>
581          <filter token="ABCL_JAVA_OPTIONS" 
582                  value="${java.options}"/>
583          <filter token="ABCL_CLASSPATH"
584                  value="${toString:abcl.runtime.classpath}"/>
585        </filterset>
586      </copy>
587      <chmod file="${abcl.wrapper.file}" perm="a+x"/>
588
589      <echo>Created executable ABCL wrapper in '${abcl.wrapper.file}'</echo>
590      <echo>N.B. This wrapper requires '${abcl.jar.path}' not be moved.</echo>
591    </target>
592
593    <target name="abcl.wrapper.unix" if="unix">
594      <property name="abcl.wrapper.file" value="abcl"/>
595      <property name="abcl.wrapper.in.file" value="abcl.in"/>
596    </target>
597
598    <target name="abcl.wrapper.windows" if="windows">
599      <property name="abcl.wrapper.file" value="abcl.bat"/>
600      <property name="abcl.wrapper.in.file" value="abcl.bat.in"/>
601    </target>
602
603    <patternset id="abcl.contrib.source">
604          <include name="**/*.asd"/>
605          <include name="**/*.lisp"/>
606          <include name="**/README.markdown"/>
607    </patternset>
608
609    <patternset id="abcl.contrib.docs">
610          <include name="**/README.markdown"/>
611    </patternset>
612
613    <property name="abcl-contrib.jar"
614              value="${dist.dir}/abcl-contrib.jar"/>
615    <condition property="abcl.contrib.uptodate.p">
616      <uptodate targetfile="${abcl-contrib.jar}">
617        <srcfiles dir="contrib">
618          <patternset refid="abcl.contrib.source"/>
619        </srcfiles>
620      </uptodate>
621    </condition>
622
623    <target name="abcl-contrib.jar" depends="abcl.contrib"/>
624    <target name="abcl.contrib" unless="abcl.contrib.uptodate.p">
625      <jar destfile="${abcl-contrib.jar}"
626           compress="true"
627           basedir="contrib">
628        <patternset refid="abcl.contrib.source"/>
629      </jar>
630      <echo>
631Packaged contribs in ${abcl-contrib.jar}. To use contribs, ensure that
632this file is in the same directory as 'abcl.jar', and then
633
634  CL-USER> (require 'abcl-contrib)
635
636will place all the contribs in the ASDF registry.
637
638To load a contrib, something like
639
640  CL-USER> (require 'jss)
641
642will compile (if necessary) and load JSS.
643</echo>
644    </target>
645
646    <target name="abcl.contrib.javadoc.jar">
647      <mkdir dir="${dist.dir}"/>
648      <jar destfile="${dist.dir}/abcl-contrib-javadoc.jar" basedir="contrib">
649        <patternset refid="abcl.contrib.docs" />
650      </jar>
651    </target>
652
653    <target name="abcl.contrib.source.jar">
654      <mkdir dir="${dist.dir}"/>
655      <jar destfile="${dist.dir}/abcl-contrib-sources.jar" basedir="contrib">
656        <patternset refid="abcl.contrib.source" />
657      </jar>
658    </target>
659
660    <target name="abcl.debug.jpda" depends="abcl.jar">
661      <description>Invoke ABCL with JPDA listener on port 6789</description>
662      <java fork="true"
663            classpathref="abcl.classpath.dist"
664            classname="org.armedbear.lisp.Main">
665        <jvmarg 
666            value="-agentlib:jdwp=transport=dt_socket,address=6789,server=y"/>
667      </java>
668      <echo>JPDA listening on localhost:6789</echo>
669    </target>
670
671    <target name="abcl.build.debug.jpda" depends="abcl.compile.java">
672      <description>Invoke ABCL with JPDA listener on port 6789</description>
673      <java fork="true"
674            classpathref="abcl.classpath.build"
675            classname="org.armedbear.lisp.Main">
676        <jvmarg
677            value="-agentlib:jdwp=transport=dt_socket,address=6789,server=y"/>
678        <jvmarg value="-Dabcl.home=${abcl.home.dir}${file.separator}"/>
679      </java>
680      <echo>JPDA listening on localhost:6789</echo>
681    </target>
682
683    <target name="abcl.run" depends="abcl.jar">
684      <java fork="true"
685            classpathref="abcl.classpath.dist"
686            classname="org.armedbear.lisp.Main">
687      </java>
688    </target>
689
690    <target name="abcl.clean">
691      <delete dir="${build.dir}"/>
692      <delete file="${abcl.jar.path}"/>
693      <delete file="abcl"/>
694      <delete file="abcl.bat"/>
695    </target>
696
697    <property name="slime.fasls" 
698              value="${user.home}/.slime/"/>
699    <property name="quicklisp.common-lisp.fasls"
700              value="${user.home}/.cache/common-lisp/"/>
701    <target name="abcl.clean.application.fasls">
702      <echo>Deleting ABCL SLIME fasls under ${slime.fasls}</echo>
703      <delete>
704        <fileset dir="${slime.fasls}" includes="**/*.abcl"/>
705      </delete>
706      <echo>Deleting ABCL Quicklisp fasls under ${quicklisp.common-lisp.fasls}</echo>
707      <delete>
708        <fileset dir="${quicklisp.common-lisp.fasls}" includes="**/*.abcl"/>
709      </delete>
710    </target>
711
712    <target name="abcl.dist" depends="abcl.jar">
713      <copy file="${abcl.jar.path}"
714            toFile="${dist.dir}/abcl-${abcl.version}.jar"/>
715    </target>
716
717    <target name="abcl.distclean" depends="abcl.clean">
718      <delete dir="${dist.dir}"/>
719      <delete file="abcl"/>
720      <delete file="abcl.bat"/>
721    </target>
722
723    <condition property="etags.executable"
724               value="etags"
725               else="c:/cygwin64/bin/ctags.exe">
726      <not>
727        <os family="windows"/>
728      </not>
729    </condition>
730     
731    <target name="TAGS">
732      <delete file="TAGS"/>
733      <apply executable="${etags.executable}" parallel="true" verbose="true" maxparallel="300">
734        <arg value="--append"/>
735        <arg value="--regex=|[ \t]+//[ \t]+###[ \t]+\([^ \t]+\)|\1|"/>
736        <arg value='--regex=|[ \t]*@DocString([ \n\r\t]*name=\"\([^\"]*\)|\1|m'/>
737        <fileset dir="${src.dir}">
738          <patternset refid="abcl.source.java"/>
739          <patternset refid="abcl.source.lisp"/>
740        </fileset>
741      </apply>
742    </target>
743
744    <patternset id="abcl.dist.misc"
745                description="Additional includes in the source distributions relative to basedir">
746      <include name="abcl.rdf"/>
747      <include name="build.xml"/>
748      <include name="abcl.properties.in"/>
749      <include name="COPYING"/>
750      <include name="README"/>
751      <include name="CHANGES"/>
752      <include name="abcl.in"/>
753      <include name="abcl.bat.in"/>
754
755      <include name="abcl.asd"/>
756     
757      <include name="examples/**"/>
758
759      <include name="contrib/**"/>
760     
761      <include name="test/**"/>
762
763      <include name="build-from-lisp.bash"/>
764     
765      <!-- The remainder of these files are used by the Lisp hosted
766           build in 'build-abcl.lisp' but not used by Ant, so include
767           them in the source distribution. -->
768      <include name="make-jar.in"/>
769      <include name="make-jar.bat.in"/>
770
771      <include name="build-abcl.lisp"/>
772      <include name="customizations.lisp.in"/>
773
774    </patternset>
775
776    <!-- TODO merge with artifacts from 'abcl.stage' -->
777    <patternset 
778        id="abcl.source.misc"
779        description="Additional includes in the source distribution relative to source root">
780      <include name="org/armedbear/lisp/LICENSE"/>
781      <include name="manifest-abcl"/>
782      <include name="META-INF/services/javax.script.ScriptEngineFactory"/>
783    </patternset>
784
785    <target name="abcl.source.prepare" depends="abcl.stamp.version">
786      <property name="abcl.build.src.dir"
787                value="${build.dir}/abcl-src-${abcl.version}"/>
788      <mkdir dir="${abcl.build.src.dir}/src"/>
789      <copy todir="${abcl.build.src.dir}/src"
790            preservelastmodified="true">
791        <fileset dir="${src.dir}"
792                 id="abcl.source.src">
793            <patternset refid="abcl.source.java"/>
794            <patternset refid="abcl.source.lisp"/>
795            <patternset refid="abcl.source.misc"/>
796        </fileset>
797      </copy>
798      <copy todir="${abcl.build.src.dir}"
799            preservelastmodified="true">
800        <fileset dir="${basedir}">
801            <patternset refid="abcl.dist.misc"/>
802        </fileset>
803      </copy>
804    </target>
805
806    <!--  Files in source distribution that always get LF EOL (aka
807         'unix') -->   
808    <patternset id="abcl.dist.lf">
809      <include name="abcl.in"/>
810    </patternset>
811
812    <!--  Files in source distribution that always get CRLF EOL (aka
813         'dos') -->   
814    <patternset id="abcl.dist.crlf">
815      <include name="abcl.bat.in"/>
816    </patternset>
817
818    <target name="abcl.source.unix" depends="abcl.source.prepare">
819      <fixcrlf srcdir="${abcl.build.src.dir}"
820               preservelastmodified="true"
821               eol="lf">
822      </fixcrlf>
823
824      <fixcrlf srcdir="${abcl.build.src.dir}"
825               preservelastmodified="true"
826               eol="crlf">
827          <patternset refid="abcl.dist.crlf"/>
828      </fixcrlf>
829
830      <fixcrlf srcdir="${abcl.build.src.dir}"
831               preservelastmodified="true"
832               eol="lf">
833          <patternset refid="abcl.dist.lf"/>
834      </fixcrlf>
835    </target>
836
837    <target name="abcl.source.tar" depends="abcl.source.unix">
838      <mkdir dir="${dist.dir}"/>
839      <tar destfile="${dist.dir}/abcl-src-${abcl.version}.tar.gz"
840           compression="gzip">
841        <tarfileset dir="${build.dir}">
842          <include name="abcl-src-${abcl.version}/**"/>
843        </tarfileset>
844      </tar>
845    </target>
846
847    <target name="abcl.source.windows" depends="abcl.source.prepare">
848      <fixcrlf srcdir="${abcl.build.src.dir}"
849               preservelastmodified="true"
850               eol="crlf">
851      </fixcrlf>
852
853      <fixcrlf srcdir="${abcl.build.src.dir}"
854               preservelastmodified="true"
855               eol="crlf">
856          <patternset refid="abcl.dist.crlf"/>
857      </fixcrlf>
858
859      <fixcrlf srcdir="${abcl.build.src.dir}"
860               preservelastmodified="true"
861               eol="lf">
862          <patternset refid="abcl.dist.lf"/>
863      </fixcrlf>
864    </target>
865
866    <target name="abcl.source.zip" depends="abcl.stamp,abcl.source.windows">
867      <mkdir dir="${dist.dir}"/>
868      <zip destfile="${dist.dir}/abcl-src-${abcl.version}.zip"
869           compress="true">
870        <zipfileset dir="${abcl.build.src.dir}" prefix="abcl-src-${abcl.version}"/>
871      </zip>
872    </target>
873
874    <target name="abcl.source.jar" depends="abcl.stamp,abcl.source.unix">
875      <mkdir dir="${dist.dir}"/>
876      <jar destfile="${dist.dir}/abcl-${abcl.version}-sources.jar">
877        <metainf dir="${abcl.build.src.dir}">
878          <include name="COPYING"/>
879        </metainf>
880        <fileset dir="${abcl.build.src.dir}/src">
881          <include name="**/*.java"/>
882          <include name="**/*.lisp"/>
883        </fileset>
884      </jar>
885    </target>
886
887    <property name="abcl.javadoc.dir" value="${build.dir}/javadoc"/>
888
889    <target name="abcl.javadoc" depends="abcl.stamp">
890      <mkdir dir="${abcl.javadoc.dir}"/>
891      <javadoc destdir="${abcl.javadoc.dir}"
892               sourcepath="${src.dir}"/>
893    </target>
894   
895    <target name="abcl.javadoc.jar" depends="abcl.stamp.version,abcl.javadoc">
896      <mkdir dir="${dist.dir}"/>
897      <jar destfile="${dist.dir}/abcl-${abcl.version}-javadoc.jar">
898        <fileset dir="${abcl.javadoc.dir}"/>
899      </jar>
900    </target>
901
902    <target name="abcl.binary.prepare" depends="abcl.jar,abcl.contrib,abcl.documentation,abcl.stamp.version">
903      <property name="abcl.build.binary.dir"
904                value="${build.dir}/abcl-bin-${abcl.version}"/>
905      <mkdir dir="${abcl.build.binary.dir}"/>
906      <copy todir="${abcl.build.binary.dir}"
907            preservelastmodified="true">
908        <fileset dir="${basedir}/dist">
909          <patternset>
910            <include name="abcl.jar"/>
911            <include name="abcl-contrib.jar"/>
912            <include name="*.pdf"/>
913          </patternset>
914        </fileset>
915        <fileset dir="${basedir}">
916          <patternset>
917            <include name="README"/>
918            <include name="CHANGES"/>
919          </patternset>
920        </fileset>
921      </copy>
922    </target>
923
924    <target name="abcl.binary.tar" depends="abcl.binary.prepare">
925      <tar destfile="${dist.dir}/abcl-bin-${abcl.version}.tar.gz"
926           compression="gzip">
927        <tarfileset dir="${build.dir}">
928          <include name="abcl-bin-${abcl.version}/**"/>
929          </tarfileset>
930      </tar>
931    </target>
932
933    <target name="abcl.binary.zip" depends="abcl.binary.prepare">
934      <zip destfile="${dist.dir}/abcl-bin-${abcl.version}.zip"
935           compress="true">
936        <zipfileset dir="${abcl.build.binary.dir}" prefix="abcl-bin-${abcl.version}"/>
937      </zip>
938    </target>
939
940    <target name="help.test">
941      <echo>
942The following Ant targets run various test suites:
943 
944  abcl.test
945    --  Run all available tests.
946  abcl.test.java
947    --  Run the ABCL junit Java tests under ${basedir}/test/src/
948  abcl.test.lisp
949    --  Run the 'test.ansi.compiled', 'test.abcl', 'test.cl-bench' targets
950  test.ansi.compiled
951    --  Run the compiled version of the ANSI test suite
952  test.abcl
953    --  Run the Lisp RT tests collected in ${basedir}/test/lisp/abcl/
954  test.cl-bench
955    --  Run the cl-bench test suite.
956
957The ANSI tests require that the [ansi-tests][1] be manually installed in
958${basedir}/../ansi-tests.
959
960[1]: git+https://gitlab.common-lisp.net/ansi-test/ansi-test.git
961
962The CL-BENCH tests require that [cl-bench][2] be manually installed in
963${basedir}/../cl-bench
964
965[2]: http://www.chez.com/emarsden/downloads/cl-bench.tar.gz
966      </echo>
967    </target>
968
969    <property name="abcl.test.classes.dir"
970              value="${build.dir}/classes-test"/>
971
972    <property name="abcl.test.src.dir"
973              value="${basedir}/test/src"/>
974
975    <patternset id="abcl.test.source.java">
976      <include name="org/armedbear/lisp/**/*.java"/>
977    </patternset>
978
979    <property name="junit.path"
980              value="${abcl.ext.dir}/junit-4.8.1.jar"/>
981    <property name="maven.dist.name"
982              value="apache-maven-3.3.9-bin.zip"/>
983    <property name="maven.dist.uri"
984              value="http://www-eu.apache.org/dist/maven/maven-3/3.3.9/binaries/${maven.dist.name}"/>
985    <property name="maven.local.path"
986              value="${abcl.ext.dir}/${maven.dist.name}"/>
987
988    <path id="abcl.test.compile.classpath">
989      <pathelement location="${junit.path}"/>
990      <pathelement location="${build.classes.dir}"/>
991    </path>
992
993    <target name="abcl.test.pre-compile" depends="abcl.ext"/>
994
995    <target name="abcl.ext.p">
996      <!--XXX generalize over enumeration of all contributions to
997          abcl.ext if we get more of them.  -->
998      <condition property="abcl.ext.p">
999        <and>
1000          <available file="${junit.path}"/>
1001          <available file="${maven.local.path}"/>
1002        </and>
1003      </condition>
1004    </target>
1005
1006    <target name="abcl.ext" depends="abcl.ext.p" unless="abcl.ext.p">
1007      <mkdir dir="${abcl.ext.dir}"/>
1008      <get 
1009          src="http://cloud.github.com/downloads/KentBeck/junit/junit-4.8.1.jar"
1010          usetimestamp="true"
1011          dest="${junit.path}"/>
1012      <get 
1013          src="${maven.dist.uri}"
1014          usetimestamp="true"
1015          dest="${maven.local.path}"/>
1016    </target>
1017
1018    <target name="abcl.ext.maven" depends="abcl.ext">
1019      <echo>Installing Maven for ABCL from ${maven.dist.uri}.</echo>
1020      <unzip src="${maven.local.path}"
1021             dest="${abcl.ext.dir}">
1022      </unzip>
1023    </target>
1024       
1025    <target name="abcl.test.compile" 
1026            depends="abcl.test.pre-compile">
1027      <mkdir dir="${abcl.test.classes.dir}"/>
1028      <javac destdir="${abcl.test.classes.dir}"
1029             classpathref="abcl.test.compile.classpath"
1030             debug="true"
1031             target="1.5">
1032        <src path="${abcl.test.src.dir}"/>
1033        <patternset refid="abcl.test.source.java"/>
1034      </javac>
1035    </target>
1036
1037    <path id="abcl.test.run.classpath">
1038      <path refid="abcl.test.compile.classpath"/>
1039      <pathelement location="${abcl.test.classes.dir}"/>
1040    </path>
1041
1042    <target name="abcl.test" 
1043            depends="abcl.test.java,abcl.test.lisp"/>
1044       
1045    <target name="abcl.test.java" depends="abcl.test.compile">
1046      <java fork="true"
1047            classpathref="abcl.test.run.classpath"
1048            classname="org.junit.runner.JUnitCore">
1049        <arg value="org.armedbear.lisp.PathnameTest"/>
1050        <arg value="org.armedbear.lisp.StreamTest"/>
1051        <arg value="org.armedbear.lisp.SeekableStringWriterTest"/>
1052        <arg value="org.armedbear.lisp.UtilitiesTest"/>
1053    <!-- currently hangs(!) the running process
1054        <arg value="org.armedbear.lisp.util.HttpHeadTest"/>
1055    -->
1056      </java>
1057    </target>
1058
1059    <target name="abcl.test.lisp" 
1060            depends="test.ansi.compiled,test.abcl,test.cl-bench"/>
1061
1062    <target name="test.ansi.interpreted" depends="abcl.jar">
1063      <echo>Recording test output in ${abcl.test.log.file}.</echo>
1064      <record name="${abcl.test.log.file}" emacsmode="true" action="start" append="yes"/>
1065      <java fork="true" dir="${basedir}"
1066            classpathref="abcl.classpath.dist"
1067            classname="org.armedbear.lisp.Main">
1068        <arg value="--noinit"/> 
1069        <arg value="--eval"/><arg value="(require (quote asdf))"/>
1070        <arg value="--eval"/>
1071          <arg value="(asdf:initialize-source-registry `(:source-registry (:directory ,*default-pathname-defaults*) :inherit-configuration)))"/>
1072        <arg value="--eval"/><arg value="(asdf:test-system :abcl/test/ansi/interpreted)"/>
1073        <arg value="--eval"/><arg value="(ext:exit)"/>
1074      </java>
1075      <record name="${abcl.test.log.file}" emacsmode="true" action="stop"/>
1076      <echo>Finished recording test output in ${abcl.test.log.file}.</echo>
1077    </target>
1078
1079    <target name="test.ansi.compiled" depends="abcl.jar">
1080      <echo>Recording test output in ${abcl.test.log.file}.</echo>
1081      <record name="${abcl.test.log.file}" emacsmode="true" action="start" append="yes"/>
1082      <java fork="true" dir="${basedir}"
1083            classpathref="abcl.classpath.dist"
1084            classname="org.armedbear.lisp.Main">
1085        <!-- Run in 64bit mode-->
1086        <jvmarg value="-d64"/> 
1087
1088        <!-- Enable JVM assertions -->
1089        <jvmarg value="-ea"/> 
1090       
1091        <!-- (Possibly) unload classes when reference count reaches zero -->
1092        <jvmarg value="-XX:+CMSClassUnloadingEnabled"/> 
1093
1094        <!-- Increase the size of the space used to store JVM class metadata. -->
1095        <jvmarg value="-XX:MaxPermSize=768m"/> 
1096
1097        <arg value="--noinit"/> 
1098        <arg value="--eval"/><arg value="(require (quote asdf))"/>
1099        <arg value="--eval"/>
1100          <arg value="(asdf:initialize-source-registry `(:source-registry (:directory ,*default-pathname-defaults*) :inherit-configuration)))"/>
1101        <arg value="--eval"/><arg value="(asdf:test-system :abcl/test/ansi/compiled)"/>
1102        <arg value="--eval"/><arg value="(ext:exit)"/>
1103      </java>
1104      <record name="${abcl.test.log.file}" emacsmode="true" action="stop"/>
1105      <echo>Finished recording test output in ${abcl.test.log.file}.</echo>
1106    </target>
1107
1108    <target name="test.abcl" depends="abcl.jar">
1109      <echo>Recording test output in ${abcl.test.log.file}.</echo>
1110      <record name="${abcl.test.log.file}" emacsmode="true" action="start" append="yes"/>
1111      <java fork="true" dir="${basedir}"
1112            classpathref="abcl.classpath.dist"
1113            classname="org.armedbear.lisp.Main">
1114        <arg value="--noinit"/> 
1115        <arg value="--eval"/><arg value="(require (quote asdf))"/>
1116        <arg value="--eval"/>
1117          <arg value="(asdf:initialize-source-registry `(:source-registry (:directory ,*default-pathname-defaults*) :inherit-configuration)))"/>
1118        <arg value="--eval"/><arg value="(asdf:test-system :abcl)"/>
1119        <arg value="--eval"/><arg value="(ext:exit)"/>
1120      </java>
1121      <record name="${abcl.test.log.file}" emacsmode="true" action="stop"/>
1122      <echo>Finished recording test output in ${abcl.test.log.file}.</echo>
1123    </target>
1124
1125    <target name="test.cl-bench" depends="abcl.jar">
1126      <echo>Recording test output in ${abcl.test.log.file}.</echo>
1127      <record name="${abcl.test.log.file}" emacsmode="true" action="start" append="yes"/>
1128      <java fork="true" dir="${basedir}"
1129            classpathref="abcl.classpath.dist"
1130            classname="org.armedbear.lisp.Main">
1131        <arg value="--noinit"/> 
1132        <arg value="--eval"/><arg value="(require (quote asdf))"/>
1133        <arg value="--eval"/>
1134          <arg value="(asdf:initialize-source-registry `(:source-registry (:directory ,*default-pathname-defaults*) :inherit-configuration))"/>
1135        <arg value="--eval"/><arg value="(asdf:test-system :abcl/test/cl-bench)"/>
1136        <arg value="--eval"/><arg value="(ext:exit)"/>
1137      </java>
1138      <record name="${abcl.test.log.file}" emacsmode="true" action="stop"/>
1139      <echo>Finished recording test output in ${abcl.test.log.file}.</echo>
1140    </target>
1141
1142
1143<target name="abcl.diagnostic" 
1144        description="Emit diagnostics describing available hosting JVM properties."
1145        depends="abcl.build.diagnostic"/>
1146<!--
1147
1148urn:org.abcl.build.ant.targets.diagnostic
1149
1150"Possible JVM values from"
1151
1152http://docs.oracle.com/javase/6/docs/api/java/lang/System.html#getProperties
1153
1154.
1155
1156
1157java.version  Java Runtime Environment version
1158java.vendor   Java Runtime Environment vendor
1159java.vendor.url   Java vendor URL
1160java.home   Java installation directory
1161java.vm.specification.version   Java Virtual Machine specification version
1162java.vm.specification.vendor  Java Virtual Machine specification vendor
1163java.vm.specification.name  Java Virtual Machine specification name
1164java.vm.version   Java Virtual Machine implementation version
1165java.vm.vendor  Java Virtual Machine implementation vendor
1166java.vm.name  Java Virtual Machine implementation name
1167java.specification.version  Java Runtime Environment specification version
1168java.specification.vendor   Java Runtime Environment specification vendor
1169java.specification.name   Java Runtime Environment specification name
1170java.class.version  Java class format version number
1171java.class.path   Java class path
1172java.library.path   List of paths to search when loading libraries
1173java.io.tmpdir  Default temp file path
1174java.compiler   Name of JIT compiler to use
1175java.ext.dirs   Path of extension directory or directories
1176os.name   Operating system name
1177os.arch   Operating system architecture
1178os.version  Operating system version
1179file.separator  File separator ("/" on UNIX)
1180path.separator  Path separator (":" on UNIX)
1181line.separator  Line separator ("\n" on UNIX)
1182user.name   User's account name
1183user.home   User's home directory
1184user.dir
1185
1186-->
1187
1188<target name="abcl.build.diagnostic" description="Emit diagnostics describing available hosting JVM properties.">
1189  <echo>:java.version    ${java.version}</echo>
1190  <echo>:java.vendor     ${java.vendor}</echo>
1191  <echo>:java.vm.vendor  ${java.vm.vendor}</echo>
1192  <echo>:java.vm.name    ${java.vm.name}</echo>
1193
1194  <echo>:os.name    ${os.name}</echo>
1195  <echo>:os.arch    ${os.arch}</echo>
1196  <echo>:os.version ${os.version}</echo>
1197 
1198  <echo>:java.specification.version       ${java.specification.version}</echo>
1199  <echo>:java.vm.specification.version    ${java.vm.specification.version}</echo>
1200</target>
1201
1202    <target name="abcl.release" 
1203            depends="abcl.clean,abcl.binary.tar,abcl.source.tar,abcl.binary.zip,abcl.source.zip">
1204      <copy file="${abcl.jar.path}"
1205            tofile="${dist.dir}/abcl-${abcl.version}.jar"/>
1206      <copy file="${abcl-contrib.jar}"
1207            tofile="${dist.dir}/abcl-contrib-${abcl.version}.jar"/>
1208    </target>
1209
1210    <target name="abcl.documentation"
1211            depends="abcl.documentation.manual,abcl.documentation.asdf"/>
1212    <target name="abcl.documentation.manual"
1213            depends="abcl.stamp.version">
1214      <echo>This target requires 'make' and a LaTeX installation to be on the PATH.</echo>
1215      <exec
1216          executable="make"
1217          dir="${basedir}/doc/manual"/>
1218      <copy file="doc/manual/abcl.pdf"
1219            tofile="${dist.dir}/abcl-${abcl.version}.pdf"/>
1220    </target>
1221    <target name="abcl.documentation.asdf">
1222      <echo>This target requires 'texi2pdf' to be on the PATH.</echo>
1223      <exec
1224          executable="texi2pdf"
1225          dir="${basedir}/doc/asdf">
1226        <arg value="asdf.texinfo"/>
1227      </exec>
1228      <copy file="doc/asdf/asdf.pdf"
1229            tofile="${dist.dir}/asdf.pdf"/>
1230    </target>
1231
1232    <import file="netbeans-build.xml" optional="true"/> 
1233<!--    <import file="j-build.xml" optional="true"/>  -->
1234    <import file="not.org-build.xml" optional="true"/> 
1235   
1236    <import file="build-snapshot.xml" optional="true"/>
1237
1238    <import file="build-maven.xml" optional="true"/> </project>
Note: See TracBrowser for help on using the repository browser.