source: tags/1.6.0/build.xml

Last change on this file was 15191, checked in by Mark Evenson, 4 years ago

release: include the additional artifacts in the source release

Includes the documentation.

The artifacts under <file:nbproject/**> are currently unfortunately
required for the build system.

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