Changeset 12438 for trunk/abcl/build.xml


Ignore:
Timestamp:
02/10/10 10:41:24 (12 years ago)
Author:
Mark Evenson
Message:

Implementation of Lisp build without intermediate files.

It is still the case that if anything loaded by 'boot.lisp' causes an
error, the 'abcl.compile.lisp' task does not properly signal an error
to the Ant build process. But this is no different from the previous
behavior, so we adopt this as the conceptually simpler approach to
writing Ant tasks (and the one that doesn't litter the filesystem with
intermediate build files when the compilation process is being debugged).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/build.xml

    r12434 r12438  
    221221    <path id="abcl.lisp.output.path"
    222222          location="${build.classes.dir}/org/armedbear/lisp/"/>
     223    <pathconvert dirsep="/" property="abcl.lisp.output" refid="abcl.lisp.output.path"/>
    223224   
    224225    <target name="abcl.compile.lisp"
    225226      depends="abcl.copy.lisp,abcl.compile.java,abcl.fasls.uptodate"
    226227      unless="abcl.fasls.uptodate.p">
    227 
    228       <!-- The following shenanigans are necessary to get something
    229            that ABCL under Windows can parse as a pathname with the
    230            drive syntax not being interpreted as a Lisp package
    231            namespace, and with backslash characters not starting
    232            escape sequences.  -->
    233       <tempfile property="abcl.compile.lisp.tmp" suffix=".lisp"/>
    234 
    235       <echo file="${abcl.compile.lisp.tmp}">
    236       (compile-system :zip nil :quit t
    237           :output-path "${toString:abcl.lisp.output.path}${file.separator}")
    238       </echo>
    239 
    240       <tempfile property="abcl.compile.lisp.tmp.2"  suffix=".lisp"/>
    241      
    242       <copy file="${abcl.compile.lisp.tmp}"
    243             tofile="${abcl.compile.lisp.tmp.2}">
    244    <filterchain>
    245       <replacestring from="\" to="/"/>
    246    </filterchain>
    247       </copy>
    248 
    249       <java classpath="${build.classes.dir}"
     228      <echo>
     229Compiling Lisp system
     230from ${abcl.home.dir}
     231to   ${abcl.lisp.output}</echo>
     232      <java classpath="${build.classes.dir}"
    250233      fork="true"
    251234      failonerror="true"
     235            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))))"
    252236      classname="org.armedbear.lisp.Main">
    253237        <jvmarg value="-Dabcl.home=${abcl.home.dir}${file.separator}"/>
    254238  <arg value="--noinit"/>
    255   <arg value="--load"/>
    256   <arg value="${abcl.compile.lisp.tmp.2}"/>
     239        <arg value="--eval"/>
     240        <arg value="(setf *load-verbose* t)"/>
    257241      </java>
    258             <delete file="${abcl.compile.lisp.tmp}"/>
    259       <delete file="${abcl.compile.lisp.tmp.2}"/>
    260242    </target>
    261243
     
    723705      <echo>Finished recording test output in ${abcl.test.log.file}.</echo>
    724706    </target>
    725 
     707   
    726708    <target name="abcl.release"
    727709            depends="abcl.binary.tar,abcl.source.tar,abcl.binary.zip,abcl.source.zip">
Note: See TracChangeset for help on using the changeset viewer.