;;;; *************************************************************************
;;;; 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)
+ (:export save-executable))
(in-package vcs-tree-system)
-(defpackage vcs-tree-system (:use #:cl #:asdf))
-(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)