X-Git-Url: http://git.kpe.io/?p=vcs-tree.git;a=blobdiff_plain;f=vcs-tree.asd;h=f192bf7dc12c03e46da41c64874284fd24fdc8f1;hp=a1e22d67dceb67ff786c143b6e021628f5fa64a8;hb=HEAD;hpb=2a253dfd0359fb1c3118b5e89e50dd281a05f096 diff --git a/vcs-tree.asd b/vcs-tree.asd index a1e22d6..f192bf7 100644 --- a/vcs-tree.asd +++ b/vcs-tree.asd @@ -2,45 +2,39 @@ ;;;; ************************************************************************* ;;;; FILE IDENTIFICATION ;;;; -;;;; Name: vcs-tree.asd -;;;; Purpose: ASDF file for vcs-tree to create executable -;;;; Programmer: Kevin M. Rosenberg -;;;; Date Started: Sep 2003 +;;;; Name: vcs-tree.asd +;;;; Purpose: ASDF file for vcs-tree to create executable +;;;; Author: Kevin M. Rosenberg +;;;; Created: Sep 2003 ;;;; -;;;; $Id: xlunit.asd 7061 2003-09-07 06:34:45Z kevin $ +;;;; $Id$ ;;;; ************************************************************************* (in-package cl-user) -(defpackage vcs-tree-system (:use #:cl #:asdf)) +(defpackage vcs-tree-system + (:use #:cl #:asdf) + (:export save-executable)) (in-package vcs-tree-system) -(require 'sb-executable) - -;;; From asdf-install.asd -(defclass exe-file (cl-source-file) ()) -(defmethod perform :after ((o compile-op) (c exe-file)) - (sb-executable:make-executable - (make-pathname :name "vcs-tree" - :type nil - :defaults (component-pathname c)) - '("package.fasl" "kmrcl-excerpt.fasl" "getopt-excerpt.fasl" "main.fasl" - "loader.fasl") - :initial-function "RUN" - :muffled-warning t)) - -(defmethod perform ((o load-op) (c exe-file)) nil) +(defun save-executable (&optional (fname "_vcs-tree")) + (setq cl:*print-pretty* nil) + (sb-ext:save-lisp-and-die + fname + :executable t + :toplevel (lambda () + (handler-case + (funcall (intern (symbol-name '#:main) + (find-package (symbol-name '#:vcs-tree))) + (list* "vcs-tree" (cdr sb-ext:*posix-argv*))) + (error (c) + (format *error-output* "vcs-tree failed due to error:~% ~A~%" c) + (sb-ext:quit :unix-status 1))) + (sb-ext:quit :unix-status 0)))) (defsystem vcs-tree - :version "0.1" + :version "0.3" :components ((:file "package") - (:exe-file "loader" :depends-on ("main")) (:file "kmrcl-excerpt" :depends-on ("package")) (:file "getopt-excerpt" :depends-on ("package")) (:file "main" :depends-on ("kmrcl-excerpt" "getopt-excerpt")))) - -(defmethod perform :after ((o load-op) (c (eql (find-system :vcs-tree)))) - (provide 'vcs-tree)) - -(defmethod perform ((o test-op) (c (eql (find-system :vcs-tree)))) - t)