source: trunk/abcl/build.xml @ 14908

Last change on this file since 14908 was 14908, checked in by Mark Evenson, 6 years ago

aio: use jar manifest to declare location of packaged entities

A Jar manifest may have sections which we use to declare locations
within the Jar for packaged entities. The key 'name' denotes the
relative path within the jar. The key 'Implementation-Title' uniquely
defines an id for the packaged entity. We define 'org.abcl-contrib'
to be the key that identifies the location of ABCL-CONTRIB, and we
modify the search strategy defined by SYS:FIND-CONTRIB and friends
accordingly.

<http://docs.oracle.com/javase/8/docs/technotes/guides/jar/jar.html>

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