+(int:setsyntax '\; 'splicing 'zapline)
+;; buildlisp.l -[Mon Aug 15 11:04:31 1983 by jkf]-
+;; build the lisp system from the C kernel
+;; the order of these files is very important.
+;;
+(setq rcs-buildlisp-
+ "$Header: /usr/lib/lisp/RCS/buildlisp.l,v 1.2 83/08/15 22:16:06 jkf Exp $")
+
+; variables to modify the way buildlisp works:
+; build:dir -- directory containing the object files to load
+; default: /usr/lib/lisp
+; build:map -- map file to write the fasl map into.
+; default: no map is written
+; build:load -- if t then only loading will be done, no fasl'ing
+; build:lisp-type -- may contain a site dependent name to help build
+; a personalized lisp
+; lisp-library-directory -- directory which will contain lisp library
+; this directory will be part of the default search path
+; lisp-object-directory -- directory which contains the lisp object file
+;
+(or (boundp 'build:dir) (setq build:dir '/usr/lib/lisp))
+(or (boundp 'build:map) (setq build:map nil))
+(or (boundp 'build:load) (setq build:load nil))
+(or (boundp 'build:lisp-type) (setq build:lisp-type 'franz))
+(or (boundp 'lisp-library-directory)
+ (setq lisp-library-directory '/usr/lib/lisp))
+(or (boundp 'lisp-object-directory)
+ (setq lisp-object-directory '/usr/ucb))
+
+
+(def build:load
+ (lambda (x)
+ (prog (name)
+ (setq name (concat build:dir "/" x))
+ (cond (build:map
+ (fasl-or-load name t build:map)
+ ; concatentate to map after first file loaded
+ (cond ((null (status appendmap))
+ (sstatus appendmap t))))
+ (t (fasl-or-load name nil nil))))))
+
+(def fasl-or-load
+ (lambda (name provide-map map-name)
+ (prog (tempname)
+ (cond ((and (null build:load)
+ (probef (setq tempname (concat name ".o"))))
+ (cond (provide-map (fasl tempname map-name))
+ (t (fasl name))))
+ ((probef (setq tempname (concat name ".l")))
+ (load tempname))
+ (t (patom "fasl-or-load: Can't find file: ")
+ (patom name)
+ (terpr)
+ (exit 1) ; just go away fast so user will realize problem
+ )))))
+
+
+(build:load 'common0)
+(build:load 'syntax)
+(build:load 'charmac)
+(build:load 'macros)
+(build:load 'common1)
+(build:load 'common2)
+(build:load 'common3)
+(build:load 'vector)
+(build:load 'array)
+(build:load 'pp)
+
+; only load format if it is compiled. This will save some time when
+; building an interpreted lisp system
+(cond ((probef (concat build:dir "/format.o"))
+ (build:load 'format)))
+
+(build:load 'version)
+
+(and (not (eq build:lisp-type 'zlisp))
+ (build:load 'tpl))
+
+(build:load 'toplevel)
+
+(cond ((eq build:lisp-type 'franz))
+ ((eq build:lisp-type 'zlisp)
+ (build:load 'zlisp))
+ (t (patom "Invalid lisp type: ")
+ (patom build:lisp-type)
+ (terpr)
+ (exit 1)))
+
+; kill definitions
+(putd 'fasl-or-load nil)
+(putd 'build:load nil)
+(allocate 'hunk3 2) ; make space for format to use
+(new-vector 1024)
+(new-vectori-long 512)
+(gc)
+
+
+
+
+
+