source: tags/1.7.0/build.xml

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

build: add autoconfigure targets for openjdk{8,14}

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