;;; -*- Mode: Lisp ; Syntax: ANSI-Common-Lisp -*-
-;;; ASDF-Bundle, extension to ASDF to build "bundles",
+;;; ASDF-Bundle, an extension to ASDF to build "bundles",
;;; such as one big fasl or DLL for an entire system, or an executable.
;;;
-;;; Based on the asdf-ecl extension
+;;; Initially based on the asdf-ecl extension
;;; by Michael Goffioul and Juan Jose Garcia Ripoll.
;;;
;;; Free Software available under an MIT-style license.
;;; Copyright (c) 2012 - 2012, Francois-Rene Rideau
;;;
;;; Currently works on
-;;; Allegro, Clozure CL, CMUCL, ECL, GNU CLISP, SBCL,
-;;; we think SCL (untested), maybe LispWorks (untested), MKCL (untested).
+;;; Allegro, Clozure CL, CMUCL, ECL, GNU CLISP, LispWorks, SBCL,
+;;; we think SCL (untested), maybe MKCL (untested).
;;; For ABCL, see the abcl-jar contrib instead.
(defsystem :asdf-bundle
(loop :for i :in inputs
:for n :from 1
:for f = (add-pathname-suffix
- output (format nil "ASDF-TMP-~D" n))
+ output (format nil "-FASL~D" n))
:do (lispworks:copy-file i f)
(push f fasls))
+ (ignore-errors (lispworks:delete-system :fasls-to-concatenate))
(eval `(scm:defsystem :fasls-to-concatenate
- (:default-pathname ,(pathname-directory-pathname output)
- :load-only t)
+ (:default-pathname ,(pathname-directory-pathname output))
:members
,(loop :for f :in (reverse fasls)
- :collect `(,f :load-only t))))
+ :collect `(,(namestring f) :load-only t))))
(scm:concatenate-system output :fasls-to-concatenate))
- (loop :for f :in fasls :do (delete-file f)))))
+ (loop :for f :in fasls :do (ignore-errors (delete-file f)))
+ (ignore-errors (lispworks:delete-system :fasls-to-concatenate)))))
(defun call-with-staging-pathname (pathname fun)
"Calls fun with a staging pathname, and atomically