aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/interp/ChangeLog8
-rw-r--r--src/interp/Makefile.in21
-rw-r--r--src/interp/Makefile.pamphlet21
-rw-r--r--src/lisp/ChangeLog4
-rw-r--r--src/lisp/core.lisp.pamphlet20
5 files changed, 32 insertions, 42 deletions
diff --git a/src/interp/ChangeLog b/src/interp/ChangeLog
index ea36e41f..46e7e879 100644
--- a/src/interp/ChangeLog
+++ b/src/interp/ChangeLog
@@ -1,5 +1,13 @@
2007-09-05 Gabriel Dos Reis <gdr@cs.tamu.edu>
+ * Makefile.pamphlet (boot-pkg.lisp): Remove rule.
+ (diagnostics.boot): Likewise.
+ (sys-globals.boot): Likewise.
+ (sys-constants.boot): Likewise.
+ * Makefile.in: Regenerate.
+
+2007-09-05 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
* bookvol5.pamphlet (getenviron): Remove.
2007-09-05 Gabriel Dos Reis <gdr@cs.tamu.edu>
diff --git a/src/interp/Makefile.in b/src/interp/Makefile.in
index 9567360f..07aaecc9 100644
--- a/src/interp/Makefile.in
+++ b/src/interp/Makefile.in
@@ -335,8 +335,6 @@ depsys_objects = nocompil.$(FASLEXT) bookvol5.$(FASLEXT) g-error.$(FASLEXT) \
fnewmeta.$(FASLEXT) clam.$(FASLEXT) \
slam.$(FASLEXT) g-boot.$(FASLEXT) c-util.$(FASLEXT) \
g-util.$(FASLEXT)
-VPATH =
-
${DEPSYS}: vmlisp.$(FASLEXT) \
@@ -452,25 +450,6 @@ ggreater.$(FASLEXT): ggreater.lisp vmlisp.$(FASLEXT)
vmlisp.$(FASLEXT): vmlisp.lisp
$(BOOTSYS) -- --compile --output=$@ $<
-
-## GCL-2.6.8pre has the following behaviour that it will
-## try to forcefully put the compiled code in the same directory
-## as the source. This is hardly what we want, especially when
-## the source file reside in non-writeable areas. Consequently,
-## we copy the source file to the current working directory --
-## until we find a better way to convince GCL to do the right thing.
-boot-pkg.lisp: $(srcdir)/boot-pkg.lisp
- cp $< $@
-
-diagnostics.boot: $(srcdir)/diagnostics.boot
- cp $< $@
-
-sys-globals.boot: $(srcdir)/sys-globals.boot
- cp $< $@
-
-sys-constants.boot: $(srcdir)/sys-constants.boot
- cp $< $@
-
.PHONY: all-axiomsys
all-axiomsys: ${AXIOMSYS}
diff --git a/src/interp/Makefile.pamphlet b/src/interp/Makefile.pamphlet
index ac9fd061..0df0d71d 100644
--- a/src/interp/Makefile.pamphlet
+++ b/src/interp/Makefile.pamphlet
@@ -976,8 +976,6 @@ depsys_objects = nocompil.$(FASLEXT) bookvol5.$(FASLEXT) g-error.$(FASLEXT) \
fnewmeta.$(FASLEXT) clam.$(FASLEXT) \
slam.$(FASLEXT) g-boot.$(FASLEXT) c-util.$(FASLEXT) \
g-util.$(FASLEXT)
-VPATH =
-
${DEPSYS}: vmlisp.$(FASLEXT) \
@@ -1092,25 +1090,6 @@ ggreater.$(FASLEXT): ggreater.lisp vmlisp.$(FASLEXT)
vmlisp.$(FASLEXT): vmlisp.lisp
$(BOOTSYS) -- --compile --output=$@ $<
-
-## GCL-2.6.8pre has the following behaviour that it will
-## try to forcefully put the compiled code in the same directory
-## as the source. This is hardly what we want, especially when
-## the source file reside in non-writeable areas. Consequently,
-## we copy the source file to the current working directory --
-## until we find a better way to convince GCL to do the right thing.
-boot-pkg.lisp: $(srcdir)/boot-pkg.lisp
- cp $< $@
-
-diagnostics.boot: $(srcdir)/diagnostics.boot
- cp $< $@
-
-sys-globals.boot: $(srcdir)/sys-globals.boot
- cp $< $@
-
-sys-constants.boot: $(srcdir)/sys-constants.boot
- cp $< $@
-
@
\section{Building SAVESYS and AXIOMSYS}
diff --git a/src/lisp/ChangeLog b/src/lisp/ChangeLog
index a9b92889..9402faaa 100644
--- a/src/lisp/ChangeLog
+++ b/src/lisp/ChangeLog
@@ -1,5 +1,9 @@
2007-09-05 Gabriel Dos Reis <gdr@cs.tamu.edu>
+ * core.lisp.pamphlet (|compileLispFile|): Tidy.
+
+2007-09-05 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
* core.lisp.pamphlet (|compileLispFile|): Don't leave a FASL if
source code compilation has FAILURE-P.
diff --git a/src/lisp/core.lisp.pamphlet b/src/lisp/core.lisp.pamphlet
index c35f28bb..c781417f 100644
--- a/src/lisp/core.lisp.pamphlet
+++ b/src/lisp/core.lisp.pamphlet
@@ -532,6 +532,13 @@ it would return $0$, meaning that everything is OK.
#-:ecl (compile-file-pathname file)
#+:ecl (compile-file-pathname file :type :object))
+(defun |currentDirectoryName| nil
+ (let* ((dir (namestring (truename "")))
+ (n (1- (length dir))))
+ (if (char= (char dir n) #\/)
+ (subseq dir 0 n)
+ dir)))
+
;; Compile Lisp source files to target object code. Most of the time
;; this function is called externally to accomplish just that: compile
;; a Lisp file. So, by default, we exit the read-eval-print loop after
@@ -549,6 +556,19 @@ it would return $0$, meaning that everything is OK.
;; twice: once as object code, once as FASL. That is surely wrong. There
;; me be ways to build one from the one with less work.
(defun |compileLispFile| (file out-file)
+ ;; When OUT-FILE does not have a specified parent directory, it is
+ ;; implied that the compiled file is placed in the current directory.
+ ;; This is a very common convention on traditional systems and
+ ;; environments. However GCL would insist to pick the parent
+ ;; directory from FILE, which clearly is bogus.
+ ;; Consequently, we must convince GCL to do what we expected.
+ #+gcl (when (and (pathname-directory file)
+ (not (pathname-directory out-file)))
+ (setq out-file
+ (make-pathname :name (pathname-name out-file)
+ :type (pathname-type out-file)
+ :directory (list (|currentDirectoryName|)))))
+
(multiple-value-bind (result warning-p failure-p)
#-:ecl (compile-file file :output-file out-file)
#+:ecl (multiple-value-prog1