summaryrefslogtreecommitdiff
blob: 376463b47595ebc0981a620e8c6c4eb6fb257c3d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*-
;;;; *************************************************************************
;;;; FILE IDENTIFICATION
;;;;
;;;; Name:          ilisp.asd
;;;; Purpose:       ASDF system definition file for ilisp package
;;;; Programmer:    Kevin M. Rosenberg
;;;; Date Started:  March 2003
;;;;
;;;; $Id: ilisp.asd,v 1.1 2004/01/17 20:58:20 mkennedy Exp $
;;;;
;;;; UFFI users are granted the rights to distribute and use this software
;;;; as governed by the terms of the ILISP license.
;;;; *************************************************************************

(defpackage #:ilisp-system (:use #:cl #:asdf))
(in-package #:ilisp-system)

(defun symlink-ilisp-fasls ()
  (let ((fasls-path
	 (merge-pathnames
	  (make-pathname :directory '(:relative "ilisp"))
	  c-l-c::*fasl-root*))
	(dest-path (make-pathname :directory '(:absolute "usr" "lib" "ilisp"))))
    (format *trace-output* "~&Symlinking fasls~%")
    (dolist (fasl (directory
		   (make-pathname :defaults fasls-path
				  :name :wild
				  :type :wild)))
      (format t "~S~%" fasl)
      (when (pathname-type fasl) ;; Crude check to avoid matching a directory
	(let ((symlink (make-pathname
			:directory (pathname-directory dest-path)
			:name (pathname-name fasl)
			:type (pathname-type fasl))))
	  (when (probe-file symlink)
	    (delete-file symlink))
	(let ((cmd (format nil "ln -sf ~A ~A"
			   (namestring fasl) (namestring symlink))))
	  (run-shell-command cmd))
	)))))

#+(or allegro clisp lispworks cmu openmcl sbcl)
(defsystem :ilisp
  :name "ilisp"
  :maintainer "Kevin M. Rosenberg <kmr@debian.org>"
  :licence "ILISP license"
  :description "System loader for ILISP inferior-mode lisp interface"

  :perform (compile-op :after (op ilisp)
		       (symlink-ilisp-fasls))

  :components
  ((:file "ilisp-pkg")
   (:file "cl-ilisp" :depends-on ("ilisp-pkg"))
   #+allegro (:file "allegro" :depends-on ("cl-ilisp"))
   #+clisp (:file "cl-chs-init" :depends-on ("cl-ilisp"))
   #+cmu (:file "cmulisp" :depends-on ("cl-ilisp"))
   #+lispworks (:file "lispworks" :depends-on ("cl-ilisp"))
   #+openmcl (:file "openmcl" :depends-on ("cl-ilisp"))
   #+sbcl (:file "sbcl" :depends-on ("cl-ilisp"))
   ))