~ chicken-core (chicken-5) f5b6c78fd51ff4ed5a3292d9e52eb20508eca162
commit f5b6c78fd51ff4ed5a3292d9e52eb20508eca162 Author: felix <felix@call-with-current-continuation.org> AuthorDate: Fri Oct 1 05:47:10 2010 -0400 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Fri Oct 1 05:47:10 2010 -0400 install-prefix handling for deployment mode and cross-chickens in chicken-install/setup-api fixed (hopefully) diff --git a/chicken-install.scm b/chicken-install.scm index a41a8bfd..aad78692 100644 --- a/chicken-install.scm +++ b/chicken-install.scm @@ -97,10 +97,10 @@ (define *debug-setup* #f) (define *keep-going* #f) - (define (get-prefix) + (define (get-prefix #!optional runtime) (cond ((and *cross-chicken* (not *host-extension*)) - (or *prefix* + (or (and (not runtime) *prefix*) (foreign-value "C_TARGET_PREFIX" c-string))) (else *prefix*))) @@ -413,6 +413,11 @@ (sprintf " -e \"(destination-prefix \\\"~a\\\")\"" (normalize-pathname prefix 'unix)) "")) + (let ((prefix (get-prefix #t))) + (if prefix + (sprintf " -e \"(runtime-prefix \\\"~a\\\")\"" + (normalize-pathname prefix 'unix)) + "")) (if (pair? *csc-features*) (sprintf " -e \"(extra-features '~s)\"" *csc-features*) "") diff --git a/setup-api.scm b/setup-api.scm index 553ae98a..8b641bb3 100644 --- a/setup-api.scm +++ b/setup-api.scm @@ -45,6 +45,7 @@ setup-verbose-mode setup-install-mode deployment-mode installation-prefix destination-prefix + runtime-prefix chicken-prefix find-library find-header program-path remove-file* @@ -230,6 +231,10 @@ (reg "chicken-status" (foreign-value "C_CHICKEN_STATUS_PROGRAM" c-string)) (reg "chicken-bug" (foreign-value "C_CHICKEN_BUG_PROGRAM" c-string))) +(define (target-prefix fname) + (and-let* ((tp (runtime-prefix))) + (make-pathname tp fname))) + (define (fixpath prg) (cond ((string=? prg "csc") (string-intersperse @@ -444,6 +449,7 @@ (make-pathname rpath fn setup-file-extension) ) (define destination-prefix (make-parameter #f)) +(define runtime-prefix (make-parameter #f)) (define installation-prefix (let ((prefix (get-environment-variable "CHICKEN_INSTALL_PREFIX"))) @@ -574,9 +580,6 @@ (dests (map (lambda (f) (let ((from (if (pair? f) (car f) f)) (to (make-dest-pathname rpathd f)) ) - (when (and (not *windows*) - (equal? "so" (pathname-extension to))) - (run (,*remove-command* ,(shellpath to)) )) (copy-file from to) (unless *windows-shell* (run (,*chmod-command* a+r ,(shellpath to)))) @@ -585,7 +588,9 @@ (equal? (cadr static) from) (equal? (pathname-extension to) "a")) (run (,*ranlib-command* ,(shellpath to)) ) )) - to)) + (if (deployment-mode) + f + (or (target-prefix f) to)))) files) ) ) (write-info id dests (supply-version info #f)) ) ) )Trap