From a2f39f13bed2d39accb83cbb7f9e3336b2c92c1c Mon Sep 17 00:00:00 2001
From: dos-reis <gdr@axiomatics.org>
Date: Fri, 15 Aug 2008 09:20:22 +0000
Subject: 	* lisp/core.lisp.in (|$StandardLinking|): New.  Export. 
 * lisp/Makefile.in (edit): Update. 	* interp/daase.lisp: Don't load
 initial databases when 	--system-algebra. 	*
 interp/Makefile.pamphlet (${SAVESYS}): Build with --system-algebra.

---
 src/ChangeLog                | 8 ++++++++
 src/interp/Makefile.in       | 2 +-
 src/interp/Makefile.pamphlet | 2 +-
 src/interp/daase.lisp        | 3 ++-
 src/lisp/Makefile.in         | 1 +
 src/lisp/core.lisp.in        | 9 +++++++++
 6 files changed, 22 insertions(+), 3 deletions(-)

(limited to 'src')

diff --git a/src/ChangeLog b/src/ChangeLog
index c9fe22ae..7056f856 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,11 @@
+2008-08-15  Gabriel Dos Reis  <gdr@cs.tamu.edu>
+
+	* lisp/core.lisp.in (|$StandardLinking|): New.  Export.
+	* lisp/Makefile.in (edit): Update.
+	* interp/daase.lisp: Don't load initial databases when
+	--system-algebra. 
+	* interp/Makefile.pamphlet (${SAVESYS}): Build with --system-algebra.
+
 2008-08-15  Gabriel Dos Reis  <gdr@cs.tamu.edu>
 
 	* interp/vmlisp.lisp (BPINAME): Define for ECL too.
diff --git a/src/interp/Makefile.in b/src/interp/Makefile.in
index e7775f17..72fe016a 100644
--- a/src/interp/Makefile.in
+++ b/src/interp/Makefile.in
@@ -200,7 +200,7 @@ ${SAVESYS}: database.date \
 		$(axiom_targetdir)/algebra/exposed.$(FASLEXT) \
 		$(axiom_target_datadir)/msgs/s2-us.msgs \
 		$(ASAUTO) $(TRANOBJS) $(OBJS) makeint.$(LNKEXT)
-	$(BOOTSYS) -- --system="$(AXIOM)/" \
+	$(BOOTSYS) -- --system="$(AXIOM)/" --system-algebra \
 		--sysalg="$(axiom_src_datadir)/algebra/" \
 		--make --output=$@ --main="BOOT::|restart|" \
 		--load-directory=. $(OBJS) makeint.$(LNKEXT)
diff --git a/src/interp/Makefile.pamphlet b/src/interp/Makefile.pamphlet
index 7fde6536..e7d373d0 100644
--- a/src/interp/Makefile.pamphlet
+++ b/src/interp/Makefile.pamphlet
@@ -353,7 +353,7 @@ ${SAVESYS}: database.date \
 		$(axiom_targetdir)/algebra/exposed.$(FASLEXT) \
 		$(axiom_target_datadir)/msgs/s2-us.msgs \
 		$(ASAUTO) $(TRANOBJS) $(OBJS) makeint.$(LNKEXT)
-	$(BOOTSYS) -- --system="$(AXIOM)/" \
+	$(BOOTSYS) -- --system="$(AXIOM)/" --system-algebra \
 		--sysalg="$(axiom_src_datadir)/algebra/" \
 		--make --output=$@ --main="BOOT::|restart|" \
 		--load-directory=. $(OBJS) makeint.$(LNKEXT)
diff --git a/src/interp/daase.lisp b/src/interp/daase.lisp
index 66efc4e4..d65a1812 100644
--- a/src/interp/daase.lisp
+++ b/src/interp/daase.lisp
@@ -348,7 +348,8 @@
  (browseopen)
  (setq *category-stream-stamp* '(0 . 0))
  (categoryopen) ;note: this depends on constructorform in browse.daase
-#-:CCL (initial-getdatabase)
+ (unless (|getOptionValue| (|Option| "system-algebra") (|%systemOptions|))
+   (initial-getdatabase))
  (close *interp-stream*)
  (close *operation-stream*)
  (close *category-stream*)
diff --git a/src/lisp/Makefile.in b/src/lisp/Makefile.in
index 4ca6535e..5c5233fd 100644
--- a/src/lisp/Makefile.in
+++ b/src/lisp/Makefile.in
@@ -143,6 +143,7 @@ edit = sed \
 	-e 's|@LIBEXT[@]|$(LIBEXT)|g' \
 	-e 's|@oa_c_runtime_extra[@]|$(oa_c_runtime_extra)|g' \
 	-e 's|@oa_base_lisp_linkset[@]|$(base_lisp_objects)|g' \
+	-e 's|@oa_standard_linking[@]|$(oa_standard_linking)|g' \
 	-e 's|@void_type[@]|$(void_type)|g' \
 	-e 's|@char_type[@]|$(char_type)|g' \
 	-e 's|@int_type[@]|$(int_type)|g' \
diff --git a/src/lisp/core.lisp.in b/src/lisp/core.lisp.in
index 1339de0f..27f0dd41 100644
--- a/src/lisp/core.lisp.in
+++ b/src/lisp/core.lisp.in
@@ -79,6 +79,7 @@
 	   "$systemInstallationDirectory"
 	   "$NativeTypeTable"
 	   "$LispOptimizeOptions"
+	   "$StandardLinking"
 
 	   "getOptionValue"
            "getCommandLineArguments"
@@ -135,6 +136,14 @@
 ;; -*- Hosting Lisp System -*-
 ;;
 
+;; True means that the base Lisp system uses conventional C-style
+;; program linking model, whereby programs are constructed by linking
+;; separately compiled units.  By constrast, many Lisp systems build
+;; executable programs by loading FASLs into core and dumping the resulting
+;; image on disk.
+(defconstant |$StandardLinking|
+  (eq '@oa_standard_linking@ 'yes))
+
 ;; Almost every supported Lisp use dynamic link for FFI.
 ;; ECL's support is partial.  GCL-2.6.x hasn't discovered it yet.
 (defconstant |$useDynamicLink|
-- 
cgit v1.2.3