source: trunk/abcl/build.xml

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

Update build artifacts for openjdk17

  • Property svn:eol-style set to LF
File size: 47.4 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<project xmlns="antlib:org.apache.tools.ant"
3         name="abcl-master" default="abcl.wrapper" basedir=".">
4    <description>Compiling, testing, and packaging Armed Bear Common Lisp</description>
5
6    <target name="abcl" depends="abcl.wrapper,abcl-contrib.jar"/>
7       
8    <target name="help">
9      <echo>
10Main Ant targets:
11
12 abcl.wrapper
13   -- [default] create executable wrapper for ABCL.
14 abcl.compile 
15   -- compile ABCL to ${build.classes.dir}.
16 abcl.jar     
17   -- create packaged ${abcl.jar.path}.
18 abcl.source.zip abcl.source.tar
19   -- create source distributions in ${dist.dir}.
20 abcl.clean
21   -- remove ABCL intermediate files
22      </echo>
23
24      <echo>
25For help on the automatic tests available, use the Ant target 'help.test'.
26      </echo>
27    </target>
28
29    <!-- Behavior of the build system can be customized via setting
30         properties in the 'abcl.properties' file. -->
31    <property file="abcl.properties"/>
32
33    <property name="build.dir" 
34              value="${basedir}/build"/>
35    <property name="build.classes.dir" 
36              value="${build.dir}/classes"/>
37    <property name="src.dir" 
38              value="${basedir}/src"/>
39    <property name="dist.dir" 
40              value="${basedir}/dist"/>
41    <property name="abcl.jar.path"
42              value="${dist.dir}/abcl.jar"/>
43    <property name="abcl-aio.jar.path"
44              value="${dist.dir}/abcl-aio.jar"/>
45    <property name="abcl.ext.dir"
46              value="${basedir}/ext"/>
47
48    <property name="abcl.runtime.jar.path"
49              value="${abcl.jar.path}"/>
50
51    <!-- TODO verify me -->
52    <fail message="Please build using Ant 1.7.1 or higher.">
53        <condition>
54            <not>
55                <antversion atleast="1.7.1"/>
56            </not>
57        </condition>
58    </fail>
59
60    <!-- Deprecated.  Checks if JSR-223 support is available.  Should always be true.  Unused.  D -->
61    <available property="abcl.jsr-223.p"
62               classname="javax.script.ScriptEngine"/>
63
64    <patternset id="abcl.source.java">
65      <include name="org/armedbear/lisp/*.java"/>
66      <include name="org/armedbear/lisp/util/*.java"/>
67      <include name="org/armedbear/lisp/protocol/*.java"/>
68      <include name="org/armedbear/lisp/java/**/*.java"/>
69      <include name="org/armedbear/lisp/scripting/*.java" />
70      <include name="org/armedbear/lisp/scripting/util/*.java" />
71      <include name="org/armedbear/Main.java"/>
72      <include name="org/abcl/**/*.java"/>
73    </patternset>
74
75    <patternset id="abcl.source.lisp">
76      <include name="org/armedbear/lisp/*.lisp"/>
77      <include name="org/armedbear/lisp/java/**/*.lisp"/>
78      <include name="org/armedbear/lisp/tests/*.lisp"/>
79      <exclude name="org/armedbear/lisp/j.lisp"/>
80      <include name="org/armedbear/lisp/scripting/lisp/*.lisp"/>
81    </patternset>
82   
83    <!-- Lisp files required at runtime -->
84    <patternset id="abcl.source.lisp.dist">
85      <include name="org/armedbear/lisp/boot.lisp"/>
86      <include name="org/armedbear/lisp/scripting/lisp/*.lisp" />
87      <include if="abcl.compile.lisp.skip"
88               name="**/*.lisp" />
89    </patternset>
90
91    <patternset id="abcl.objects">
92      <!-- "system.lisp" is dynamically created by COMPILE-fSYSTEM -->
93      <include name="org/armedbear/lisp/system.lisp"/> 
94      <include name="org/armedbear/lisp/**/*.class"/>
95      <include name="org/armedbear/lisp/**/*.cls"/> 
96      <include name="org/armedbear/lisp/**/*.abcl"/>
97      <include name="org/abcl/util/*.class"/>
98      <include name="org/armedbear/lisp/version"/>
99      <include name="org/armedbear/lisp/scripting/*.class"/>
100      <include name="org/armedbear/lisp/scripting/util/*.class"/>
101      <patternset refid="abcl.source.lisp.dist"/>
102      <include name="abcl.rdf"/>
103      <include name="abcl.asd"/>
104      <include name="README"/>
105      <include name="build.xml"/>
106      <include name="abcl.properties.in"/>
107      <include name="abcl.in"/>
108      <include name="abcl.bat.in"/>
109    </patternset>
110   
111    <path id="abcl.classpath.dist">
112      <pathelement location="${abcl.jar.path}"/>
113    </path>
114   
115    <path id="abcl.classpath.build">
116      <pathelement location="${build.classes.dir}"/>
117    </path>
118
119    <target name="abcl.compile" depends="abcl.clean.maybe,abcl.compile.lisp">
120      <echo>Compiled ABCL with Java version: ${java.version}</echo>
121    </target>
122
123    <target name="abcl.clean.maybe" unless="abcl.build.incremental">
124      <echo>Cleaning all intermediate compilation artifacts.</echo>
125      <echo>Setting 'abcl.build.incremental' enables incremental compilation.</echo>
126      <antcall target="abcl.clean"/>
127    </target>
128
129    <target name="abcl.init">
130      <tstamp>
131        <format property="build" pattern="EEE MMM dd yyyy HH:mm:ss zzz"/>
132      </tstamp>
133
134      <tstamp>
135        <format property="build.stamp" pattern="yyyymmdd-HHmm"/>
136      </tstamp>
137
138      <property name="abcl.test.log.file"
139                value="abcl-test-${build.stamp}.log"/>
140
141      <property name="java.path"
142                value="${java.home}/bin/java"/>
143
144      <!-- Deprecated. Two main types of build environents: 'unix' or 'windows'. -->
145      <condition property="unix"> 
146        <or>
147          <os family="unix"/>
148          <os family="mac"/>
149        </or>
150      </condition>
151      <condition property="windows"> 
152        <os family="windows"/>
153      </condition>
154
155      <!-- Deprecated. -->
156      <available file="${src.dir}org/armedbear/lisp/Interpreter.java" 
157                 property="abcl.lisp.p"/>
158
159      <echo>java.version: ${java.version}</echo>
160      <condition property="abcl.java.version.p">
161        <!-- Unsupported as of abcl-1.5.0 due to lack of open jdk
162          <matches string="${java.version}"
163                   pattern="1\.5"/>
164          -->
165          <or>
166          <!-- Don't use 1.6.0_09 or earlier. -->
167          <matches string="${java.version}" 
168                   pattern="1\.6\.0_[1-9][0-9]"/>
169          <!-- 1.7.0_04 works much better. -->
170          <matches string="${java.version}" 
171                   pattern="1\.7\.0_(0[4-9])|([1-9][0-9])"/>
172          <matches string="${java.version}" 
173                   pattern="1\.8\.0"/>
174        </or> 
175      </condition>
176
177    </target>
178   
179    <target name="abcl.java.warning" 
180            depends="abcl.init"
181            unless="abcl.java.version.p">
182      <echo>WARNING: Use of Java version ${java.version} not recommended.</echo>
183    </target>
184
185    <!-- Deprecated.  JSR-223 is always present -->
186    <target name="abcl.jsr-223.notice"
187            depends="abcl.init"
188            unless="abcl.jsr-223.p">
189      <echo>
190        Notice: JSR-223 support won't be built since it is not
191                supported, neither natively by your JVM nor by
192                libraries in the CLASSPATH.
193      </echo>
194    </target>
195
196    <!-- 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    <!--
434The usage of abcl.implementation.version is deprecated as not working.
435The intention of this value was that if a given source tree could be
436unidentified as being under source control by the presence of given
437revision control system artifacts, the abcl.implementation.version
438would contain a version derived from the revision control system.
439
440To hack around the non-prescriptive nature of Ant, chains of
441conditional targets had to be created that while might have once
442worked for Subversion, were going to get increasingly hairy for
443Mercurial and Git.
444    -->
445
446    <target name="abcl.stamp.version" 
447            depends="abcl.version.src,abcl.stamp.version.1,abcl.stamp.version.2"
448            unless="abcl.stamp.version.uptodate.p">
449      <mkdir dir="${abcl.version.path}/.."/>
450      <echo>ABCL implementation version: ${abcl.implementation.version}</echo>
451      <echo file="${abcl.version.path}">${abcl.implementation.version}</echo>
452    </target>
453   
454    <target name="abcl.stamp.version.generate" 
455            depends="abcl.compile.java"
456            unless="abcl.stamp.version.uptodate.p">
457      <java fork="true"
458            classpath="${build.classes.dir}"
459            outputproperty="abcl.version"
460            classname="org.armedbear.lisp.Version"
461            logerror="yes"/> <!-- Don't catch stderr output -->
462    </target>
463
464    <target name="abcl.stamp.version.0" 
465            depends="abcl.stamp.version.uptodate,abcl.stamp.version.generate">
466    </target>
467
468    <target name="abcl.stamp.version.1"
469            depends="abcl.stamp.version.0"
470            unless="abcl.version.svn.p">
471      <property name="abcl.implementation.version"
472                value="${abcl.version}"/>
473    </target>
474
475    <target name="abcl.stamp.version.2" 
476            depends="abcl.stamp.version.0"
477            if="abcl.version.svn.p">
478      <property name="abcl.implementation.version"
479                value="${abcl.version}-${abcl.version.src}"/>
480    </target>
481
482    <target name="abcl.stamp.hostname" if="unix">
483      <exec executable="hostname" outputproperty="abcl.hostname"/>
484      <echo>abcl.hostname: ${abcl.hostname}</echo>
485    </target>
486
487    <target name="abcl.system.uptodate">
488      <condition property="abcl.system.needs-update.p">
489        <and>
490          <available file="${system.lisp.file}"/>
491          <available file="${abcl.startup.file}"/>
492          <uptodate
493                srcfile="${system.lisp.file}"
494                targetfile="${abcl.startup.file}"/>
495        </and>
496      </condition>
497    </target>
498   
499    <target name="abcl.system.update.maybe" depends="abcl.system.uptodate" 
500            if="abcl.system.needs-update.p">
501      <touch file="${src.dir}/org/armedbear/lisp/compile-system.lisp"/>
502    </target>
503
504    <target name="abcl.jar.uptodate" depends="abcl.compile,abcl.stamp">
505      <uptodate property="abcl.jar.uptodate.p" targetfile="${abcl.jar.path}">
506        <srcfiles dir="${build.classes.dir}">
507          <patternset refid="abcl.objects"/>
508        </srcfiles>
509      </uptodate>
510    </target>
511
512    <target name="abcl.jar" depends="abcl.jar.uptodate,abcl-contrib.jar"
513            unless="abcl.jar.uptodate.p">
514      <mkdir dir="${dist.dir}"/>
515      <jar destfile="${abcl.jar.path}"
516           compress="true"
517           update="true"
518           basedir="${build.classes.dir}">
519        <patternset refid="abcl.objects"/>
520        <manifest>
521          <attribute name="Main-Class" value="org.armedbear.lisp.Main"/>
522          <section name="org/armedbear/lisp">
523            <attribute name="Implementation-Title" 
524                       value="ABCL"/>
525            <attribute name="Implementation-Version" 
526                       value="${abcl.version}"/>
527            <attribute name="Implementation-Build" 
528                       value="${build}"/>
529          </section>
530        </manifest>
531        <metainf dir="${src.dir}/META-INF"> 
532        </metainf>
533      </jar>
534    </target>
535
536    <target name="abcl-aio.jar"
537            depends="abcl.jar.uptodate">
538      <mkdir dir="${dist.dir}"/>
539      <jar destfile="${abcl-aio.jar.path}"
540           compress="true"
541           update="true"
542           basedir="${build.classes.dir}">
543  <fileset dir="${src.dir}">
544          <patternset refid="abcl.objects"/>
545    <patternset refid="abcl.source.java"/>
546    <patternset refid="abcl.source.lisp"/>
547  </fileset>
548  <fileset dir="${basedir}">
549    <patternset refid="abcl.contrib.source"/>
550  </fileset>
551        <!-- According to <http://docs.oracle.com/javase/8/docs/technotes/guides/jar/jar.html>
552             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.
553            -->
554        <manifest>
555          <attribute name="Main-Class" value="org.armedbear.lisp.Main"/>
556          <section name="org/armedbear/lisp">
557            <attribute name="Implementation-Title" 
558                       value="ABCL"/>
559            <attribute name="Implementation-Version" 
560                       value="${abcl.version}"/>
561            <attribute name="Implementation-Build" 
562                       value="${build}"/>
563          </section>
564          <section name="contrib">
565            <attribute name="Implementation-Title" 
566                       value="org.abcl-contrib"/>
567            <!-- FIXME: declare separate abcl-contrib version? -->
568            <attribute name="Implementation-Version" 
569                       value="${abcl.version}"/>
570          </section>
571          <section name="tools">
572            <attribute name="Implementation-Title" 
573                       value="org.abcl-tools"/>
574          </section>
575          <section name="src">
576            <attribute name="Implementation-Title" 
577                       value="org.abcl-source"/>
578            <attribute name="Implementation-Version" 
579                       value="${abcl.version}"/>
580          </section>
581        </manifest>
582        <metainf dir="${src.dir}/META-INF"> 
583        </metainf>
584      </jar>
585    </target>
586
587   
588    <target name="abcl.wrapper" 
589            depends="abcl.jar,abcl.contrib,abcl.wrapper.unix,abcl.wrapper.windows">
590      <description>
591        Creates in-place executable shell wrapper in
592        '${abcl.wrapper.file}'
593      </description>
594      <!-- Set from commandline or in 'build.properties' -->
595      <property name="additional.jars" value=""/>
596      <path id="abcl.runtime.classpath">
597        <pathelement location="${abcl.runtime.jar.path}"/>
598        <pathelement path="${additional.jars}"/>
599      </path>
600      <!-- set via '-Djava.options=JAVA_OPTIONS' or in 'build.properties -->
601      <property name="java.options" value=""/>
602
603      <copy file="${abcl.wrapper.in.file}" toFile="${abcl.wrapper.file}" overwrite="yes">
604        <filterset>
605          <filter token="JAVA" 
606                  value="${java.path}"/>
607          <filter token="ABCL_JAVA_OPTIONS" 
608                  value="${java.options}"/>
609          <filter token="ABCL_CLASSPATH"
610                  value="${toString:abcl.runtime.classpath}"/>
611        </filterset>
612      </copy>
613      <chmod file="${abcl.wrapper.file}" perm="a+x"/>
614
615      <echo>Created executable ABCL wrapper in '${abcl.wrapper.file}'</echo>
616      <echo>N.B. This wrapper requires '${abcl.jar.path}' not be moved.</echo>
617    </target>
618
619    <target name="abcl.wrapper.unix" if="unix">
620      <property name="abcl.wrapper.file" value="abcl"/>
621      <property name="abcl.wrapper.in.file" value="abcl.in"/>
622    </target>
623
624    <target name="abcl.wrapper.windows" if="windows">
625      <property name="abcl.wrapper.file" value="abcl.bat"/>
626      <property name="abcl.wrapper.in.file" value="abcl.bat.in"/>
627    </target>
628
629    <patternset id="abcl.contrib.source">
630          <include name="**/*.asd"/>
631          <include name="**/*.lisp"/>
632          <include name="**/README.markdown"/>
633    </patternset>
634
635    <patternset id="abcl.contrib.docs">
636          <include name="**/README.markdown"/>
637    </patternset>
638
639    <property name="abcl-contrib.jar"
640              value="${dist.dir}/abcl-contrib.jar"/>
641    <condition property="abcl.contrib.uptodate.p">
642      <uptodate targetfile="${abcl-contrib.jar}">
643        <srcfiles dir="contrib">
644          <patternset refid="abcl.contrib.source"/>
645        </srcfiles>
646      </uptodate>
647    </condition>
648
649    <target name="abcl-contrib.jar" depends="abcl.contrib"/>
650    <target name="abcl.contrib" unless="abcl.contrib.uptodate.p">
651      <jar destfile="${abcl-contrib.jar}"
652           compress="true"
653           basedir="contrib">
654        <patternset refid="abcl.contrib.source"/>
655      </jar>
656      <echo>
657Packaged contribs in ${abcl-contrib.jar}. To use contribs, ensure that
658this file is in the same directory as 'abcl.jar', and then
659
660  CL-USER> (require 'abcl-contrib)
661
662will place all the contribs in the ASDF registry.
663
664To load a contrib, something like
665
666  CL-USER> (require 'jss)
667
668will compile (if necessary) and load JSS.
669</echo>
670    </target>
671
672    <target name="abcl.contrib.javadoc.jar">
673      <mkdir dir="${dist.dir}"/>
674      <jar destfile="${dist.dir}/abcl-contrib-javadoc.jar" basedir="contrib">
675        <patternset refid="abcl.contrib.docs" />
676      </jar>
677    </target>
678
679    <target name="abcl.contrib.source.jar">
680      <mkdir dir="${dist.dir}"/>
681      <jar destfile="${dist.dir}/abcl-contrib-sources.jar" basedir="contrib">
682        <patternset refid="abcl.contrib.source" />
683      </jar>
684    </target>
685
686    <target name="abcl.debug.jpda" depends="abcl.jar">
687      <description>Invoke ABCL with JPDA listener on port 6789</description>
688      <java fork="true"
689            classpathref="abcl.classpath.dist"
690            classname="org.armedbear.lisp.Main">
691        <jvmarg 
692            value="-agentlib:jdwp=transport=dt_socket,address=6789,server=y"/>
693      </java>
694      <echo>JPDA listening on localhost:6789</echo>
695    </target>
696
697    <target name="abcl.build.debug.jpda" depends="abcl.compile.java">
698      <description>Invoke ABCL with JPDA listener on port 6789</description>
699      <java fork="true"
700            classpathref="abcl.classpath.build"
701            classname="org.armedbear.lisp.Main">
702        <jvmarg
703            value="-agentlib:jdwp=transport=dt_socket,address=6789,server=y"/>
704        <jvmarg value="-Dabcl.home=${abcl.home.dir}${file.separator}"/>
705      </java>
706      <echo>JPDA listening on localhost:6789</echo>
707    </target>
708
709    <target name="abcl.run" depends="abcl.jar">
710      <java fork="true"
711            classpathref="abcl.classpath.dist"
712            classname="org.armedbear.lisp.Main">
713      </java>
714    </target>
715
716    <target name="abcl.clean">
717      <delete dir="${build.dir}"/>
718      <delete file="${abcl.jar.path}"/>
719      <delete file="abcl"/>
720      <delete file="abcl.bat"/>
721    </target>
722
723    <property name="slime.fasls" 
724              value="${user.home}/.slime/"/>
725    <property name="quicklisp.common-lisp.fasls"
726              value="${user.home}/.cache/common-lisp/"/>
727    <target name="abcl.clean.application.fasls">
728      <echo>Deleting ABCL SLIME fasls under ${slime.fasls}</echo>
729      <delete>
730        <fileset dir="${slime.fasls}" includes="**/*.abcl"/>
731      </delete>
732      <echo>Deleting ABCL Quicklisp fasls under ${quicklisp.common-lisp.fasls}</echo>
733      <delete>
734        <fileset dir="${quicklisp.common-lisp.fasls}" includes="**/*.abcl"/>
735      </delete>
736    </target>
737
738    <target name="abcl.dist" depends="abcl.jar">
739      <copy file="${abcl.jar.path}"
740            toFile="${dist.dir}/abcl-${abcl.version}.jar"/>
741    </target>
742
743    <target name="abcl.distclean" depends="abcl.clean">
744      <delete dir="${dist.dir}"/>
745      <delete file="abcl"/>
746      <delete file="abcl.bat"/>
747    </target>
748
749    <condition property="etags.executable"
750               value="etags"
751               else="c:/cygwin64/bin/ctags.exe">
752      <not>
753        <os family="windows"/>
754      </not>
755    </condition>
756     
757    <target name="TAGS">
758      <delete file="TAGS"/>
759      <apply executable="${etags.executable}" parallel="true" verbose="true" maxparallel="300">
760        <arg value="--append"/>
761        <arg value="--regex=|[ \t]+//[ \t]+###[ \t]+\([^ \t]+\)|\1|"/>
762        <arg value='--regex=|[ \t]*@DocString([ \n\r\t]*name=\"\([^\"]*\)|\1|m'/>
763        <fileset dir="${src.dir}">
764          <patternset refid="abcl.source.java"/>
765          <patternset refid="abcl.source.lisp"/>
766        </fileset>
767      </apply>
768    </target>
769
770    <patternset id="abcl.dist.misc"
771                description="Additional includes in the source distributions relative to basedir">
772      <include name="abcl.rdf"/>
773      <include name="build.xml"/>
774      <include name="abcl.properties.in"/>
775      <include name="COPYING"/>
776      <include name="README"/>
777      <include name="CHANGES"/>
778      <include name="abcl.in"/>
779      <include name="abcl.bat.in"/>
780
781      <include name="abcl.asd"/>
782     
783      <include name="examples/**"/>
784
785      <include name="contrib/**"/>
786     
787      <include name="test/**"/>
788
789      <include name="build-from-lisp.bash"/>
790     
791      <include name="build-abcl.lisp"/>
792      <include name="customizations.lisp.in"/>
793
794      <include name="etc/ant/*.xml"/>
795
796      <include name="doc/**/*"/>
797
798      <include name="ci/**/*"/>
799
800      <!-- FIXME:  currently necessary to build from our source archives -->
801      <include name="nbproject/**/*"/>
802    </patternset>
803
804    <!-- TODO merge with artifacts from 'abcl.stage' -->
805    <patternset 
806        id="abcl.source.misc"
807        description="Additional includes in the source distribution relative to source root">
808      <include name="org/armedbear/lisp/LICENSE"/>
809      <include name="manifest-abcl"/>
810      <include name="META-INF/services/javax.script.ScriptEngineFactory"/>
811    </patternset>
812
813    <target name="abcl.source.prepare" depends="abcl.stamp">
814      <property name="abcl.build.src.dir"
815                value="${build.dir}/abcl-src-${abcl.version}"/>
816      <mkdir dir="${abcl.build.src.dir}/src"/>
817      <copy todir="${abcl.build.src.dir}/src"
818            preservelastmodified="true">
819        <fileset dir="${src.dir}"
820                 id="abcl.source.src">
821            <patternset refid="abcl.source.java"/>
822            <patternset refid="abcl.source.lisp"/>
823            <patternset refid="abcl.source.misc"/>
824        </fileset>
825      </copy>
826      <copy todir="${abcl.build.src.dir}"
827            preservelastmodified="true">
828        <fileset dir="${basedir}">
829            <patternset refid="abcl.dist.misc"/>
830        </fileset>
831      </copy>
832    </target>
833
834    <!--  Files in source distribution that always get LF EOL (aka
835         'unix') -->   
836    <patternset id="abcl.dist.lf">
837      <include name="abcl.in"/>
838    </patternset>
839
840    <!--  Files in source distribution that always get CRLF EOL (aka
841         'dos') -->   
842    <patternset id="abcl.dist.crlf">
843      <include name="abcl.bat.in"/>
844    </patternset>
845
846    <target name="abcl.source.unix" depends="abcl.source.prepare">
847      <fixcrlf srcdir="${abcl.build.src.dir}"
848               preservelastmodified="true"
849               eol="lf">
850      </fixcrlf>
851
852      <fixcrlf srcdir="${abcl.build.src.dir}"
853               preservelastmodified="true"
854               eol="crlf">
855          <patternset refid="abcl.dist.crlf"/>
856      </fixcrlf>
857
858      <fixcrlf srcdir="${abcl.build.src.dir}"
859               preservelastmodified="true"
860               eol="lf">
861          <patternset refid="abcl.dist.lf"/>
862      </fixcrlf>
863    </target>
864
865    <target name="abcl.source.tar" depends="abcl.source.unix">
866      <mkdir dir="${dist.dir}"/>
867      <tar destfile="${dist.dir}/abcl-src-${abcl.version}.tar.gz"
868           compression="gzip">
869        <tarfileset dir="${build.dir}">
870          <include name="abcl-src-${abcl.version}/**"/>
871        </tarfileset>
872      </tar>
873    </target>
874
875    <target name="abcl.source.windows" depends="abcl.source.prepare">
876      <fixcrlf srcdir="${abcl.build.src.dir}"
877               preservelastmodified="true"
878               eol="crlf">
879      </fixcrlf>
880
881      <fixcrlf srcdir="${abcl.build.src.dir}"
882               preservelastmodified="true"
883               eol="crlf">
884          <patternset refid="abcl.dist.crlf"/>
885      </fixcrlf>
886
887      <fixcrlf srcdir="${abcl.build.src.dir}"
888               preservelastmodified="true"
889               eol="lf">
890          <patternset refid="abcl.dist.lf"/>
891      </fixcrlf>
892    </target>
893
894    <target name="abcl.source.zip" depends="abcl.stamp,abcl.source.windows">
895      <mkdir dir="${dist.dir}"/>
896      <zip destfile="${dist.dir}/abcl-src-${abcl.version}.zip"
897           compress="true">
898        <zipfileset dir="${abcl.build.src.dir}" prefix="abcl-src-${abcl.version}"/>
899      </zip>
900    </target>
901
902    <target name="abcl.source.jar" depends="abcl.stamp,abcl.source.unix">
903      <mkdir dir="${dist.dir}"/>
904      <jar destfile="${dist.dir}/abcl-${abcl.version}-sources.jar">
905        <metainf dir="${abcl.build.src.dir}">
906          <include name="COPYING"/>
907        </metainf>
908        <fileset dir="${abcl.build.src.dir}/src">
909          <include name="**/*.java"/>
910          <include name="**/*.lisp"/>
911        </fileset>
912      </jar>
913    </target>
914
915    <property name="abcl.javadoc.dir" value="${build.dir}/javadoc"/>
916
917    <target name="abcl.javadoc" depends="abcl.stamp">
918      <mkdir dir="${abcl.javadoc.dir}"/>
919      <javadoc destdir="${abcl.javadoc.dir}"
920               sourcepath="${src.dir}"/>
921    </target>
922   
923    <target name="abcl.javadoc.jar" depends="abcl.stamp.version,abcl.javadoc">
924      <mkdir dir="${dist.dir}"/>
925      <jar destfile="${dist.dir}/abcl-${abcl.version}-javadoc.jar">
926        <fileset dir="${abcl.javadoc.dir}"/>
927      </jar>
928    </target>
929
930    <target name="abcl.binary.prepare" depends="abcl.jar,abcl.contrib,abcl.documentation,abcl.stamp.version">
931      <property name="abcl.build.binary.dir"
932                value="${build.dir}/abcl-bin-${abcl.version}"/>
933      <mkdir dir="${abcl.build.binary.dir}"/>
934      <copy todir="${abcl.build.binary.dir}"
935            preservelastmodified="true">
936        <fileset dir="${basedir}/dist">
937          <patternset>
938            <include name="abcl.jar"/>
939            <include name="abcl-contrib.jar"/>
940            <include name="*.pdf"/>
941          </patternset>
942        </fileset>
943        <fileset dir="${basedir}">
944          <patternset>
945            <include name="README"/>
946            <include name="CHANGES"/>
947          </patternset>
948        </fileset>
949      </copy>
950    </target>
951
952    <target name="abcl.binary.tar" depends="abcl.binary.prepare">
953      <tar destfile="${dist.dir}/abcl-bin-${abcl.version}.tar.gz"
954           compression="gzip">
955        <tarfileset dir="${build.dir}">
956          <include name="abcl-bin-${abcl.version}/**"/>
957          </tarfileset>
958      </tar>
959    </target>
960
961    <target name="abcl.binary.zip" depends="abcl.binary.prepare">
962      <zip destfile="${dist.dir}/abcl-bin-${abcl.version}.zip"
963           compress="true">
964        <zipfileset dir="${abcl.build.binary.dir}" prefix="abcl-bin-${abcl.version}"/>
965      </zip>
966    </target>
967
968    <target name="help.test">
969      <echo>
970The following Ant targets run various test suites:
971 
972  abcl.test
973    --  Run all available tests.
974  abcl.test.java
975    --  Run the ABCL junit Java tests under ${basedir}/test/src/
976  abcl.test.lisp
977    --  Run the 'test.ansi.compiled', 'test.abcl', 'test.cl-bench' targets
978  test.ansi.compiled
979    --  Run the compiled version of the ANSI test suite
980  test.abcl
981    --  Run the Lisp RT tests collected in ${basedir}/test/lisp/abcl/
982  test.cl-bench
983    --  Run the cl-bench test suite.
984
985The ANSI tests require that the [ANSI tests][1] be manually installed in
986${basedir}/../ansi-test/.
987
988[1]: git+https://gitlab.common-lisp.net/ansi-test/ansi-test.git
989
990The CL-BENCH tests require that [cl-bench][2] be manually installed in
991${basedir}/../cl-bench
992
993[2]: http://www.chez.com/emarsden/downloads/cl-bench.tar.gz
994      </echo>
995    </target>
996
997    <property name="abcl.test.classes.dir"
998              value="${build.dir}/classes-test"/>
999
1000    <property name="abcl.test.src.dir"
1001              value="${basedir}/test/src"/>
1002
1003    <patternset id="abcl.test.source.java">
1004      <include name="org/armedbear/lisp/**/*.java"/>
1005    </patternset>
1006
1007    <property name="junit.path"
1008              value="${abcl.ext.dir}/junit-4.8.1.jar"/>
1009    <property name="maven.dist.name"
1010              value="apache-maven-3.3.9-bin.zip"/>
1011    <property name="maven.dist.uri"
1012              value="http://www-eu.apache.org/dist/maven/maven-3/3.3.9/binaries/${maven.dist.name}"/>
1013    <property name="maven.local.path"
1014              value="${abcl.ext.dir}/${maven.dist.name}"/>
1015
1016    <path id="abcl.test.compile.classpath">
1017      <pathelement location="${junit.path}"/>
1018      <pathelement location="${build.classes.dir}"/>
1019    </path>
1020
1021    <target name="abcl.test.pre-compile" depends="abcl.ext"/>
1022
1023    <target name="abcl.ext.p">
1024      <!--XXX generalize over enumeration of all contributions to
1025          abcl.ext if we get more of them.  -->
1026      <condition property="abcl.ext.p">
1027        <and>
1028          <available file="${junit.path}"/>
1029          <available file="${maven.local.path}"/>
1030        </and>
1031      </condition>
1032    </target>
1033
1034    <target name="abcl.ext" depends="abcl.ext.p" unless="abcl.ext.p">
1035      <mkdir dir="${abcl.ext.dir}"/>
1036      <get
1037          src="https://repo1.maven.org/maven2/junit/junit/4.8.1/junit-4.8.1.jar"
1038          usetimestamp="true"
1039          dest="${junit.path}"/>
1040      <get 
1041          src="${maven.dist.uri}"
1042          usetimestamp="true"
1043          dest="${maven.local.path}"/>
1044    </target>
1045
1046    <target name="abcl.ext.maven" depends="abcl.ext">
1047      <echo>Installing Maven for ABCL from ${maven.dist.uri}.</echo>
1048      <unzip src="${maven.local.path}"
1049             dest="${abcl.ext.dir}">
1050      </unzip>
1051    </target>
1052       
1053    <target name="abcl.test.compile" 
1054            depends="abcl.test.pre-compile">
1055      <mkdir dir="${abcl.test.classes.dir}"/>
1056      <javac destdir="${abcl.test.classes.dir}"
1057             classpathref="abcl.test.compile.classpath"
1058             debug="true"
1059             target="1.5">
1060        <src path="${abcl.test.src.dir}"/>
1061        <patternset refid="abcl.test.source.java"/>
1062      </javac>
1063    </target>
1064
1065    <path id="abcl.test.run.classpath">
1066      <path refid="abcl.test.compile.classpath"/>
1067      <pathelement location="${abcl.test.classes.dir}"/>
1068    </path>
1069
1070    <target name="abcl.test" 
1071            depends="abcl.test.java,abcl.test.lisp"/>
1072       
1073    <target name="abcl.test.java" depends="abcl.test.compile">
1074      <java fork="true"
1075            classpathref="abcl.test.run.classpath"
1076            classname="org.junit.runner.JUnitCore">
1077        <arg value="org.armedbear.lisp.PathnameTest"/>
1078        <arg value="org.armedbear.lisp.StreamTest"/>
1079        <arg value="org.armedbear.lisp.SeekableStringWriterTest"/>
1080        <arg value="org.armedbear.lisp.UtilitiesTest"/>
1081        <arg value="org.armedbear.lisp.serialization.SerializationTest"/>
1082    <!-- currently hangs(!) the running process
1083        <arg value="org.armedbear.lisp.util.HttpHeadTest"/>
1084    -->
1085      </java>
1086    </target>
1087
1088    <target name="abcl.test.lisp" 
1089            depends="test.ansi.compiled,test.abcl,test.cl-bench"/>
1090
1091    <target name="test.ansi.interpreted" depends="abcl.jar">
1092      <echo>Recording test output in ${abcl.test.log.file}.</echo>
1093      <record name="${abcl.test.log.file}" emacsmode="true" action="start" append="yes"/>
1094      <java fork="true" dir="${basedir}"
1095            classpathref="abcl.classpath.dist"
1096            classname="org.armedbear.lisp.Main">
1097        <arg value="--noinit"/> 
1098        <arg value="--eval"/><arg value="(require (quote asdf))"/>
1099        <arg value="--eval"/>
1100          <arg value="(asdf:initialize-source-registry `(:source-registry (:directory ,*default-pathname-defaults*) :inherit-configuration)))"/>
1101        <arg value="--eval"/><arg value="(asdf:test-system :abcl/test/ansi/interpreted)"/>
1102        <arg value="--eval"/><arg value="(ext:exit)"/>
1103      </java>
1104      <record name="${abcl.test.log.file}" emacsmode="true" action="stop"/>
1105      <echo>Finished recording test output in ${abcl.test.log.file}.</echo>
1106    </target>
1107
1108    <target name="test.ansi.compiled" depends="abcl.jar">
1109      <echo>Recording test output in ${abcl.test.log.file}.</echo>
1110      <record name="${abcl.test.log.file}" emacsmode="true" action="start" append="yes"/>
1111      <java fork="true" dir="${basedir}"
1112            classpathref="abcl.classpath.dist"
1113            classname="org.armedbear.lisp.Main">
1114        <!-- Run in 64bit mode-->
1115        <jvmarg value="-d64"/> 
1116
1117        <!-- Enable JVM assertions -->
1118        <jvmarg value="-ea"/> 
1119       
1120        <!-- (Possibly) unload classes when reference count reaches zero -->
1121        <jvmarg value="-XX:+CMSClassUnloadingEnabled"/> 
1122
1123        <!-- Increase the size of the space used to store JVM class metadata. -->
1124        <jvmarg value="-XX:MaxPermSize=768m"/> 
1125
1126        <arg value="--noinit"/> 
1127        <arg value="--eval"/><arg value="(require (quote asdf))"/>
1128        <arg value="--eval"/>
1129          <arg value="(asdf:initialize-source-registry `(:source-registry (:directory ,*default-pathname-defaults*) :inherit-configuration)))"/>
1130        <arg value="--eval"/><arg value="(asdf:test-system :abcl/test/ansi/compiled)"/>
1131        <arg value="--eval"/><arg value="(ext:exit)"/>
1132      </java>
1133      <record name="${abcl.test.log.file}" emacsmode="true" action="stop"/>
1134      <echo>Finished recording test output in ${abcl.test.log.file}.</echo>
1135    </target>
1136
1137    <target name="test.abcl" depends="abcl.jar">
1138      <echo>Recording test output in ${abcl.test.log.file}.</echo>
1139      <record name="${abcl.test.log.file}" emacsmode="true" action="start" append="yes"/>
1140      <java fork="true" dir="${basedir}"
1141            classpathref="abcl.classpath.dist"
1142            classname="org.armedbear.lisp.Main">
1143        <arg value="--noinit"/> 
1144        <arg value="--eval"/><arg value="(require (quote asdf))"/>
1145        <arg value="--eval"/>
1146          <arg value="(asdf:initialize-source-registry `(:source-registry (:directory ,*default-pathname-defaults*) :inherit-configuration)))"/>
1147        <arg value="--eval"/><arg value="(asdf:test-system :abcl)"/>
1148        <arg value="--eval"/><arg value="(ext:exit)"/>
1149      </java>
1150      <record name="${abcl.test.log.file}" emacsmode="true" action="stop"/>
1151      <echo>Finished recording test output in ${abcl.test.log.file}.</echo>
1152    </target>
1153
1154    <target name="test.cl-bench" depends="abcl.jar">
1155      <echo>Recording test output in ${abcl.test.log.file}.</echo>
1156      <record name="${abcl.test.log.file}" emacsmode="true" action="start" append="yes"/>
1157      <java fork="true" dir="${basedir}"
1158            classpathref="abcl.classpath.dist"
1159            classname="org.armedbear.lisp.Main">
1160        <arg value="--noinit"/> 
1161        <arg value="--eval"/><arg value="(require (quote asdf))"/>
1162        <arg value="--eval"/>
1163          <arg value="(asdf:initialize-source-registry `(:source-registry (:directory ,*default-pathname-defaults*) :inherit-configuration))"/>
1164        <arg value="--eval"/><arg value="(asdf:test-system :abcl/test/cl-bench)"/>
1165        <arg value="--eval"/><arg value="(ext:exit)"/>
1166      </java>
1167      <record name="${abcl.test.log.file}" emacsmode="true" action="stop"/>
1168      <echo>Finished recording test output in ${abcl.test.log.file}.</echo>
1169    </target>
1170
1171
1172<target name="abcl.diagnostic" 
1173        description="Emit diagnostics describing available hosting JVM properties."
1174        depends="abcl.build.diagnostic"/>
1175<!--
1176
1177urn:org.abcl.build.ant.targets.diagnostic
1178
1179"Possible JVM values from"
1180
1181http://docs.oracle.com/javase/6/docs/api/java/lang/System.html#getProperties
1182
1183.
1184
1185
1186java.version  Java Runtime Environment version
1187java.vendor   Java Runtime Environment vendor
1188java.vendor.url   Java vendor URL
1189java.home   Java installation directory
1190java.vm.specification.version   Java Virtual Machine specification version
1191java.vm.specification.vendor  Java Virtual Machine specification vendor
1192java.vm.specification.name  Java Virtual Machine specification name
1193java.vm.version   Java Virtual Machine implementation version
1194java.vm.vendor  Java Virtual Machine implementation vendor
1195java.vm.name  Java Virtual Machine implementation name
1196java.specification.version  Java Runtime Environment specification version
1197java.specification.vendor   Java Runtime Environment specification vendor
1198java.specification.name   Java Runtime Environment specification name
1199java.class.version  Java class format version number
1200java.class.path   Java class path
1201java.library.path   List of paths to search when loading libraries
1202java.io.tmpdir  Default temp file path
1203java.compiler   Name of JIT compiler to use
1204java.ext.dirs   Path of extension directory or directories
1205os.name   Operating system name
1206os.arch   Operating system architecture
1207os.version  Operating system version
1208file.separator  File separator ("/" on UNIX)
1209path.separator  Path separator (":" on UNIX)
1210line.separator  Line separator ("\n" on UNIX)
1211user.name   User's account name
1212user.home   User's home directory
1213user.dir
1214
1215-->
1216
1217<target name="abcl.build.diagnostic" description="Emit diagnostics describing available hosting JVM properties.">
1218  <echo>
1219JVM System Properties
1220=====================
1221:java.version    ${java.version}
1222:java.vendor     ${java.vendor}
1223:java.vm.vendor  ${java.vm.vendor}
1224:java.vm.name    ${java.vm.name}
1225
1226:os.name         ${os.name}
1227:os.arch         ${os.arch}
1228:os.version      ${os.version}
1229 
1230:java.specification.version
1231                 ${java.specification.version}
1232:java.vm.specification.version
1233                 ${java.vm.specification.version}
1234  </echo>
1235
1236  <echoproperties/>
1237</target>
1238
1239    <target name="abcl.release" 
1240            depends="abcl.clean,abcl.properties.autoconfigure.openjdk.8,abcl.binary.tar,abcl.source.tar,abcl.binary.zip,abcl.source.zip,abcl.wrapper">
1241      <copy file="${abcl.jar.path}"
1242            tofile="${dist.dir}/abcl-${abcl.version}.jar"/>
1243      <copy file="${abcl-contrib.jar}"
1244            tofile="${dist.dir}/abcl-contrib-${abcl.version}.jar"/>
1245    </target>
1246
1247    <target name="abcl.documentation"
1248            depends="abcl.stamp.version.generate,abcl.documentation.manual,abcl.documentation.asdf"/>
1249    <target name="abcl.documentation.manual"
1250            depends="abcl.stamp.version">
1251      <echo>This target requires 'make' and a LaTeX installation to be on the PATH.</echo>
1252      <exec
1253          executable="make"
1254          dir="${basedir}/doc/manual"/>
1255      <copy file="doc/manual/abcl.pdf"
1256            tofile="${dist.dir}/abcl-${abcl.version}.pdf"/>
1257    </target>
1258    <target name="abcl.documentation.asdf">
1259      <echo>This target requires 'texi2pdf' to be on the PATH.</echo>
1260      <exec
1261          executable="texi2pdf"
1262          dir="${basedir}/doc/asdf">
1263        <arg value="asdf.texinfo"/>
1264      </exec>
1265      <copy file="doc/asdf/asdf.pdf"
1266            tofile="${dist.dir}/asdf.pdf"/>
1267    </target>
1268
1269    <target name="abcl.properties.autoconfigure.openjdk.6">
1270      <exec executable="/usr/bin/env">
1271        <arg value="bash"/>
1272        <arg value="ci/create-abcl-properties.bash"/>
1273        <arg value="openjdk6"/>
1274      </exec>
1275    </target>
1276
1277
1278    <target name="abcl.properties.autoconfigure.openjdk.7">
1279      <exec executable="/usr/bin/env">
1280        <arg value="bash"/>
1281        <arg value="ci/create-abcl-properties.bash"/>
1282        <arg value="openjdk7"/>
1283      </exec>
1284    </target>
1285
1286
1287    <target name="abcl.properties.autoconfigure.openjdk.8">
1288      <exec executable="/usr/bin/env">
1289        <arg value="bash"/>
1290        <arg value="ci/create-abcl-properties.bash"/>
1291        <arg value="openjdk8"/>
1292      </exec>
1293    </target>
1294
1295      <target name="abcl.properties.autoconfigure.openjdk.11">
1296      <exec executable="/usr/bin/env">
1297        <arg value="bash"/>
1298        <arg value="ci/create-abcl-properties.bash"/>
1299        <arg value="openjdk11"/>
1300      </exec>
1301    </target>
1302
1303    <target name="abcl.properties.autoconfigure.openjdk.14">
1304      <exec executable="/usr/bin/env">
1305        <arg value="bash"/>
1306        <arg value="ci/create-abcl-properties.bash"/>
1307        <arg value="openjdk14"/>
1308      </exec>
1309    </target>
1310
1311    <target name="abcl.properties.autoconfigure.openjdk.15">
1312      <exec executable="/usr/bin/env">
1313        <arg value="bash"/>
1314        <arg value="ci/create-abcl-properties.bash"/>
1315        <arg value="openjdk15"/>
1316      </exec>
1317    </target>
1318
1319    <target name="abcl.properties.autoconfigure.openjdk.16">
1320      <exec executable="/usr/bin/env">
1321        <arg value="bash"/>
1322        <arg value="ci/create-abcl-properties.bash"/>
1323        <arg value="openjdk16"/>
1324      </exec>
1325    </target>
1326
1327    <target name="abcl.properties.autoconfigure.openjdk.17">
1328      <exec executable="/usr/bin/env">
1329        <arg value="bash"/>
1330        <arg value="ci/create-abcl-properties.bash"/>
1331        <arg value="openjdk17"/>
1332      </exec>
1333    </target>
1334   
1335    <import file="etc/ant/netbeans-build.xml"
1336            optional="true"/> 
1337    <import file="etc/ant/build-snapshot.xml"
1338            optional="true"/>
1339    <import file="etc/ant/build-maven.xml"
1340            optional="true"/>
1341  </project>
Note: See TracBrowser for help on using the repository browser.