>From bc97389bb15e8abd2b2fab9b965cc7b949a8c540 Mon Sep 17 00:00:00 2001 From: Evan Hanson Date: Sun, 3 Jun 2018 15:13:03 +1200 Subject: [PATCH] Expand file installation paths in generated install scripts This makes the install paths used in the egg install scripts absolute, so that when an extension is built in the egg cache its files end up in the directory indicated by $CHICKEN_INSTALL_REPOSITORY even when that holds a relative pathname. --- egg-compile.scm | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/egg-compile.scm b/egg-compile.scm index 1ed240ca..81fcb68f 100644 --- a/egg-compile.scm +++ b/egg-compile.scm @@ -56,6 +56,12 @@ (string-append prefix dir) default)))) +(define (expand-pathname path) + (let ((path* (normalize-pathname path))) + (if (absolute-pathname? path*) + path* + (make-pathname (current-directory) path*)))) + (define (object-extension platform) (case platform ((unix) +unix-object-extension+) @@ -170,7 +176,7 @@ (mods #f) (opts '())) (for-each compile-extension/program (cddr info)) - (let ((dest (destination-repository mode #t)) + (let ((dest (expand-pathname (destination-repository mode #t))) ;; Respect install-name if specified (rtarget (or oname target))) (when (eq? #t tfile) (set! tfile rtarget)) @@ -634,7 +640,7 @@ (out (quotearg (target-file (conc sname ".static" ext) mode))) (outlnk (quotearg (conc sname +link-file-extension+))) - (dest (destination-repository mode)) + (dest (expand-pathname (destination-repository mode))) (dfile (quotearg (slashify dest platform))) (ddir (shell-variable "DESTDIR" platform))) (print "\n" mkdir " " ddir dfile) @@ -657,7 +663,7 @@ (mkdir (mkdir-command platform)) (sname (prefix srcdir name)) (out (quotearg (target-file (conc sname ext) mode))) - (dest (destination-repository mode)) + (dest (expand-pathname (destination-repository mode))) (dfile (quotearg (slashify dest platform))) (ddir (shell-variable "DESTDIR" platform)) (destf (quotearg (slashify (conc dest "/" output-file ext) @@ -679,7 +685,7 @@ (mkdir (mkdir-command platform)) (sname (prefix srcdir name)) (out (quotearg (target-file (conc sname ".import.scm") mode))) - (dest (destination-repository mode)) + (dest (expand-pathname (destination-repository mode))) (dfile (quotearg (slashify dest platform))) (ddir (shell-variable "DESTDIR" platform))) (print "\n" mkdir " " ddir dfile) @@ -692,7 +698,7 @@ (let* ((cmd (install-file-command platform)) (mkdir (mkdir-command platform)) (out (quotearg (prefix srcdir (conc types-file ".types")))) - (dest (destination-repository mode)) + (dest (expand-pathname (destination-repository mode))) (dfile (quotearg (slashify dest platform))) (ddir (shell-variable "DESTDIR" platform))) (print "\n" mkdir " " ddir dfile) @@ -705,7 +711,7 @@ (let* ((cmd (install-file-command platform)) (mkdir (mkdir-command platform)) (out (quotearg (prefix srcdir (conc inline-file ".inline")))) - (dest (destination-repository mode)) + (dest (expand-pathname (destination-repository mode))) (dfile (quotearg (slashify dest platform))) (ddir (shell-variable "DESTDIR" platform))) (print "\n" mkdir " " ddir dfile) @@ -833,7 +839,7 @@ EOF (let* ((infostr (with-output-to-string (cut pp info))) (dcmd (remove-file-command platform)) (mkdir (mkdir-command platform)) - (dir (destination-repository mode)) + (dir (expand-pathname (destination-repository mode))) (qdir (quotearg (slashify dir platform))) (dest (quotearg (slashify (make-pathname dir name +egg-info-extension+) platform))) -- 2.11.0