BSD 4_4 development
authorCSRG <csrg@ucbvax.Berkeley.EDU>
Mon, 30 Apr 1984 09:03:32 +0000 (01:03 -0800)
committerCSRG <csrg@ucbvax.Berkeley.EDU>
Mon, 30 Apr 1984 09:03:32 +0000 (01:03 -0800)
Work on file usr/src/old/lisp/lisplib/buildlisp.l

Synthesized-from: CSRG/cd3/4.4

usr/src/old/lisp/lisplib/buildlisp.l [new file with mode: 0644]

diff --git a/usr/src/old/lisp/lisplib/buildlisp.l b/usr/src/old/lisp/lisplib/buildlisp.l
new file mode 100644 (file)
index 0000000..e1a3460
--- /dev/null
@@ -0,0 +1,101 @@
+(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)
+
+
+
+
+
+