|
|
1.1 root 1: (int:setsyntax '\; 'splicing 'zapline)
2: ;; buildlisp.l -[Mon Aug 15 11:04:31 1983 by jkf]-
3: ;; build the lisp system from the C kernel
4: ;; the order of these files is very important.
5: ;;
6: (setq rcs-buildlisp-
7: "$Header: /usr/lib/lisp/RCS/buildlisp.l,v 1.2 83/08/15 22:16:06 jkf Exp $")
8:
9: ; variables to modify the way buildlisp works:
10: ; build:dir -- directory containing the object files to load
11: ; default: /usr/lib/lisp
12: ; build:map -- map file to write the fasl map into.
13: ; default: no map is written
14: ; build:load -- if t then only loading will be done, no fasl'ing
15: ; build:lisp-type -- may contain a site dependent name to help build
16: ; a personalized lisp
17: ; lisp-library-directory -- directory which will contain lisp library
18: ; this directory will be part of the default search path
19: ; lisp-object-directory -- directory which contains the lisp object file
20: ;
21: (or (boundp 'build:dir) (setq build:dir '/usr/lib/lisp))
22: (or (boundp 'build:map) (setq build:map nil))
23: (or (boundp 'build:load) (setq build:load nil))
24: (or (boundp 'build:lisp-type) (setq build:lisp-type 'franz))
25: (or (boundp 'lisp-library-directory)
26: (setq lisp-library-directory '/usr/lib/lisp))
27: (or (boundp 'lisp-object-directory)
28: (setq lisp-object-directory '/usr/ucb))
29:
30:
31: (def build:load
32: (lambda (x)
33: (prog (name)
34: (setq name (concat build:dir "/" x))
35: (cond (build:map
36: (fasl-or-load name t build:map)
37: ; concatentate to map after first file loaded
38: (cond ((null (status appendmap))
39: (sstatus appendmap t))))
40: (t (fasl-or-load name nil nil))))))
41:
42: (def fasl-or-load
43: (lambda (name provide-map map-name)
44: (prog (tempname)
45: (cond ((and (null build:load)
46: (probef (setq tempname (concat name ".o"))))
47: (cond (provide-map (fasl tempname map-name))
48: (t (fasl name))))
49: ((probef (setq tempname (concat name ".l")))
50: (load tempname))
51: (t (patom "fasl-or-load: Can't find file: ")
52: (patom name)
53: (terpr)
54: (exit 1) ; just go away fast so user will realize problem
55: )))))
56:
57:
58: (build:load 'common0)
59: (build:load 'syntax)
60: (build:load 'charmac)
61: (build:load 'macros)
62: (build:load 'common1)
63: (build:load 'common2)
64: (build:load 'common3)
65: (build:load 'vector)
66: (build:load 'array)
67: (build:load 'pp)
68:
69: ; only load format if it is compiled. This will save some time when
70: ; building an interpreted lisp system
71: (cond ((probef (concat build:dir "/format.o"))
72: (build:load 'format)))
73:
74: (build:load 'version)
75:
76: (and (not (eq build:lisp-type 'zlisp))
77: (build:load 'tpl))
78:
79: (build:load 'toplevel)
80:
81: (cond ((eq build:lisp-type 'franz))
82: ((eq build:lisp-type 'zlisp)
83: (build:load 'zlisp))
84: (t (patom "Invalid lisp type: ")
85: (patom build:lisp-type)
86: (terpr)
87: (exit 1)))
88:
89: ; kill definitions
90: (putd 'fasl-or-load nil)
91: (putd 'build:load nil)
92: (allocate 'hunk3 2) ; make space for format to use
93: (new-vector 1024)
94: (new-vectori-long 512)
95: (gc)
96:
97:
98:
99:
100:
101:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.