source: trunk/abcl/build.xml @ 15378

Last change on this file since 15378 was 15378, checked in by Mark Evenson, 2 years ago

Patches and CI changes for running on openjdk15

Use openjdk15 as latest version instead of openjdk14 under Travis CI.

Allow for java.version that reports an integer without a patchlevel
which is needed for running openjdk15.

  • Property svn:eol-style set to LF
File size: 45.7 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="https://repo1.maven.org/maven2/junit/junit/4.8.1/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        <arg value="org.armedbear.lisp.serialization.SerializationTest"/>
1063    <!-- currently hangs(!) the running process
1064        <arg value="org.armedbear.lisp.util.HttpHeadTest"/>
1065    -->
1066      </java>
1067    </target>
1068
1069    <target name="abcl.test.lisp" 
1070            depends="test.ansi.compiled,test.abcl,test.cl-bench"/>
1071
1072    <target name="test.ansi.interpreted" depends="abcl.jar">
1073      <echo>Recording test output in ${abcl.test.log.file}.</echo>
1074      <record name="${abcl.test.log.file}" emacsmode="true" action="start" append="yes"/>
1075      <java fork="true" dir="${basedir}"
1076            classpathref="abcl.classpath.dist"
1077            classname="org.armedbear.lisp.Main">
1078        <arg value="--noinit"/> 
1079        <arg value="--eval"/><arg value="(require (quote asdf))"/>
1080        <arg value="--eval"/>
1081          <arg value="(asdf:initialize-source-registry `(:source-registry (:directory ,*default-pathname-defaults*) :inherit-configuration)))"/>
1082        <arg value="--eval"/><arg value="(asdf:test-system :abcl/test/ansi/interpreted)"/>
1083        <arg value="--eval"/><arg value="(ext:exit)"/>
1084      </java>
1085      <record name="${abcl.test.log.file}" emacsmode="true" action="stop"/>
1086      <echo>Finished recording test output in ${abcl.test.log.file}.</echo>
1087    </target>
1088
1089    <target name="test.ansi.compiled" depends="abcl.jar">
1090      <echo>Recording test output in ${abcl.test.log.file}.</echo>
1091      <record name="${abcl.test.log.file}" emacsmode="true" action="start" append="yes"/>
1092      <java fork="true" dir="${basedir}"
1093            classpathref="abcl.classpath.dist"
1094            classname="org.armedbear.lisp.Main">
1095        <!-- Run in 64bit mode-->
1096        <jvmarg value="-d64"/> 
1097
1098        <!-- Enable JVM assertions -->
1099        <jvmarg value="-ea"/> 
1100       
1101        <!-- (Possibly) unload classes when reference count reaches zero -->
1102        <jvmarg value="-XX:+CMSClassUnloadingEnabled"/> 
1103
1104        <!-- Increase the size of the space used to store JVM class metadata. -->
1105        <jvmarg value="-XX:MaxPermSize=768m"/> 
1106
1107        <arg value="--noinit"/> 
1108        <arg value="--eval"/><arg value="(require (quote asdf))"/>
1109        <arg value="--eval"/>
1110          <arg value="(asdf:initialize-source-registry `(:source-registry (:directory ,*default-pathname-defaults*) :inherit-configuration)))"/>
1111        <arg value="--eval"/><arg value="(asdf:test-system :abcl/test/ansi/compiled)"/>
1112        <arg value="--eval"/><arg value="(ext:exit)"/>
1113      </java>
1114      <record name="${abcl.test.log.file}" emacsmode="true" action="stop"/>
1115      <echo>Finished recording test output in ${abcl.test.log.file}.</echo>
1116    </target>
1117
1118    <target name="test.abcl" depends="abcl.jar">
1119      <echo>Recording test output in ${abcl.test.log.file}.</echo>
1120      <record name="${abcl.test.log.file}" emacsmode="true" action="start" append="yes"/>
1121      <java fork="true" dir="${basedir}"
1122            classpathref="abcl.classpath.dist"
1123            classname="org.armedbear.lisp.Main">
1124        <arg value="--noinit"/> 
1125        <arg value="--eval"/><arg value="(require (quote asdf))"/>
1126        <arg value="--eval"/>
1127          <arg value="(asdf:initialize-source-registry `(:source-registry (:directory ,*default-pathname-defaults*) :inherit-configuration)))"/>
1128        <arg value="--eval"/><arg value="(asdf:test-system :abcl)"/>
1129        <arg value="--eval"/><arg value="(ext:exit)"/>
1130      </java>
1131      <record name="${abcl.test.log.file}" emacsmode="true" action="stop"/>
1132      <echo>Finished recording test output in ${abcl.test.log.file}.</echo>
1133    </target>
1134
1135    <target name="test.cl-bench" depends="abcl.jar">
1136      <echo>Recording test output in ${abcl.test.log.file}.</echo>
1137      <record name="${abcl.test.log.file}" emacsmode="true" action="start" append="yes"/>
1138      <java fork="true" dir="${basedir}"
1139            classpathref="abcl.classpath.dist"
1140            classname="org.armedbear.lisp.Main">
1141        <arg value="--noinit"/> 
1142        <arg value="--eval"/><arg value="(require (quote asdf))"/>
1143        <arg value="--eval"/>
1144          <arg value="(asdf:initialize-source-registry `(:source-registry (:directory ,*default-pathname-defaults*) :inherit-configuration))"/>
1145        <arg value="--eval"/><arg value="(asdf:test-system :abcl/test/cl-bench)"/>
1146        <arg value="--eval"/><arg value="(ext:exit)"/>
1147      </java>
1148      <record name="${abcl.test.log.file}" emacsmode="true" action="stop"/>
1149      <echo>Finished recording test output in ${abcl.test.log.file}.</echo>
1150    </target>
1151
1152
1153<target name="abcl.diagnostic" 
1154        description="Emit diagnostics describing available hosting JVM properties."
1155        depends="abcl.build.diagnostic"/>
1156<!--
1157
1158urn:org.abcl.build.ant.targets.diagnostic
1159
1160"Possible JVM values from"
1161
1162http://docs.oracle.com/javase/6/docs/api/java/lang/System.html#getProperties
1163
1164.
1165
1166
1167java.version  Java Runtime Environment version
1168java.vendor   Java Runtime Environment vendor
1169java.vendor.url   Java vendor URL
1170java.home   Java installation directory
1171java.vm.specification.version   Java Virtual Machine specification version
1172java.vm.specification.vendor  Java Virtual Machine specification vendor
1173java.vm.specification.name  Java Virtual Machine specification name
1174java.vm.version   Java Virtual Machine implementation version
1175java.vm.vendor  Java Virtual Machine implementation vendor
1176java.vm.name  Java Virtual Machine implementation name
1177java.specification.version  Java Runtime Environment specification version
1178java.specification.vendor   Java Runtime Environment specification vendor
1179java.specification.name   Java Runtime Environment specification name
1180java.class.version  Java class format version number
1181java.class.path   Java class path
1182java.library.path   List of paths to search when loading libraries
1183java.io.tmpdir  Default temp file path
1184java.compiler   Name of JIT compiler to use
1185java.ext.dirs   Path of extension directory or directories
1186os.name   Operating system name
1187os.arch   Operating system architecture
1188os.version  Operating system version
1189file.separator  File separator ("/" on UNIX)
1190path.separator  Path separator (":" on UNIX)
1191line.separator  Line separator ("\n" on UNIX)
1192user.name   User's account name
1193user.home   User's home directory
1194user.dir
1195
1196-->
1197
1198<target name="abcl.build.diagnostic" description="Emit diagnostics describing available hosting JVM properties.">
1199  <echo>
1200JVM System Properties
1201=====================
1202:java.version    ${java.version}
1203:java.vendor     ${java.vendor}
1204:java.vm.vendor  ${java.vm.vendor}
1205:java.vm.name    ${java.vm.name}
1206
1207:os.name         ${os.name}
1208:os.arch         ${os.arch}
1209:os.version      ${os.version}
1210 
1211:java.specification.version
1212                 ${java.specification.version}
1213:java.vm.specification.version
1214                 ${java.vm.specification.version}
1215  </echo>
1216
1217  <echoproperties/>
1218</target>
1219
1220    <target name="abcl.release" 
1221            depends="abcl.clean,abcl.binary.tar,abcl.source.tar,abcl.binary.zip,abcl.source.zip">
1222      <copy file="${abcl.jar.path}"
1223            tofile="${dist.dir}/abcl-${abcl.version}.jar"/>
1224      <copy file="${abcl-contrib.jar}"
1225            tofile="${dist.dir}/abcl-contrib-${abcl.version}.jar"/>
1226    </target>
1227
1228    <target name="abcl.documentation"
1229            depends="abcl.documentation.manual,abcl.documentation.asdf"/>
1230    <target name="abcl.documentation.manual"
1231            depends="abcl.stamp.version">
1232      <echo>This target requires 'make' and a LaTeX installation to be on the PATH.</echo>
1233      <exec
1234          executable="make"
1235          dir="${basedir}/doc/manual"/>
1236      <copy file="doc/manual/abcl.pdf"
1237            tofile="${dist.dir}/abcl-${abcl.version}.pdf"/>
1238    </target>
1239    <target name="abcl.documentation.asdf">
1240      <echo>This target requires 'texi2pdf' to be on the PATH.</echo>
1241      <exec
1242          executable="texi2pdf"
1243          dir="${basedir}/doc/asdf">
1244        <arg value="asdf.texinfo"/>
1245      </exec>
1246      <copy file="doc/asdf/asdf.pdf"
1247            tofile="${dist.dir}/asdf.pdf"/>
1248    </target>
1249
1250    <target name="abcl.properties.autoconfigure.openjdk.8">
1251      <exec executable="/usr/bin/env">
1252        <arg value="bash"/>
1253        <arg value="ci/create-abcl-properties.bash"/>
1254        <arg value="openjdk8"/>
1255      </exec>
1256    </target>
1257
1258      <target name="abcl.properties.autoconfigure.openjdk.11">
1259      <exec executable="/usr/bin/env">
1260        <arg value="bash"/>
1261        <arg value="ci/create-abcl-properties.bash"/>
1262        <arg value="openjdk11"/>
1263      </exec>
1264    </target>
1265
1266    <target name="abcl.properties.autoconfigure.openjdk.14">
1267      <exec executable="/usr/bin/env">
1268        <arg value="bash"/>
1269        <arg value="ci/create-abcl-properties.bash"/>
1270        <arg value="openjdk14"/>
1271      </exec>
1272    </target>
1273
1274    <target name="abcl.properties.autoconfigure.openjdk.15">
1275      <exec executable="/usr/bin/env">
1276        <arg value="bash"/>
1277        <arg value="ci/create-abcl-properties.bash"/>
1278        <arg value="openjdk15"/>
1279      </exec>
1280    </target>
1281
1282    <import file="etc/ant/netbeans-build.xml"
1283            optional="true"/> 
1284    <import file="etc/ant/build-snapshot.xml"
1285            optional="true"/>
1286    <import file="etc/ant/build-maven.xml"
1287            optional="true"/>
1288  </project>
Note: See TracBrowser for help on using the repository browser.