source: trunk/abcl/build.xml

Last change on this file was 15495, checked in by Mark Evenson, 4 weeks ago

build: add configuration targets more openjdks

Add support for configuring openjdk6, openjdk7, and openjdk16 within
CI via adding targets for Ant.

TODO: macroize this stuff in Ant to add all supported platforms. But
we now at least configure the ones we (sorta) actively test.

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