chiark / gitweb /
runlisp: Clobber *compile-print* as well.
[runlisp] / make-runlisp.lisp
CommitLineData
c8f068d2
MW
1;;; -*-lisp-*-
2;;;
3;;; Build a runlisp image
4;;;
5;;; (c) 2006 Straylight/Edgeware
6;;;
7
8;;;----- Licensing notice ---------------------------------------------------
9;;;
10;;; This program is free software; you can redistribute it and/or modify
11;;; it under the terms of the GNU General Public License as published by
12;;; the Free Software Foundation; either version 2 of the License, or
13;;; (at your option) any later version.
14;;;
15;;; This program is distributed in the hope that it will be useful,
16;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
17;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;;; GNU General Public License for more details.
19;;;
20;;; You should have received a copy of the GNU General Public License
21;;; along with this program; if not, write to the Free Software Foundation,
22;;; Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23
24#-ecl (load "runlisp" :verbose t)
25#+ecl (defpackage #:runlisp (:export #:run))
26
27;;; Build core file for CMU CL.
28#+cmu
29(save-lisp "runlisp-cmucl.core"
30 :load-init-file nil
31 :site-init nil
32 :print-herald nil
33 :process-command-line nil
34 :batch-mode t
35 :init-function (lambda ()
36 (if (runlisp:run) 0 127)))
37
38;;; Build mem file for CLISP.
39#+clisp
40(saveinitmem "runlisp-clisp.mem")
41
42;;; Build standalone binary for ECL.
43#+ecl
44(let ((fasl-skel #p"/var/cache/common-lisp-controller/0/ecl/thing.o"))
45 (c:build-program "runlisp-ecl"
46 :lisp-files
47 (append '("runlisp.o")
48 (mapcan
49 (lambda (thing)
50 (let ((comp (car thing)))
51 (mapcar (lambda (file)
52 (merge-pathnames
53 (make-pathname
54 :directory (list :relative comp)
55 :name file)
56 fasl-skel))
57 (cdr thing))))
58 '((#1="common-lisp-controller" #1#)
59 ("asdf" "asdf")
60 (#1# "post-sysdef-install"))))
61 :init-name "init_runlisp_boot"
51416b26
MW
62 :epilogue-code
63 '(progn
64 (clc:init-common-lisp-controller-v5 "ecl")
65 (ext:quit (if (runlisp:run) 0 127)))))
c8f068d2
MW
66
67;;; If we're not dead, die.
68(ext:quit 0)
69
70;;;----- That's all, folks --------------------------------------------------