~ chicken-core (chicken-5) 0ef80438adf6bc8f2b4efb0891ce9ee5f645f1c6
commit 0ef80438adf6bc8f2b4efb0891ce9ee5f645f1c6 Author: unknown <felix@.(none)> AuthorDate: Thu Oct 29 09:32:00 2009 +0100 Commit: unknown <felix@.(none)> CommitDate: Thu Oct 29 09:32:00 2009 +0100 installation-prefix is always valid diff --git a/setup-api.scm b/setup-api.scm index e4897ed7..021dbb0f 100644 --- a/setup-api.scm +++ b/setup-api.scm @@ -98,13 +98,6 @@ (make-pathname p "bin") ) (foreign-value "C_INSTALL_BIN_HOME" c-string) ) ) -(define *doc-path* - (or (and-let* ((p (get-environment-variable "CHICKEN_PREFIX"))) - (make-pathname p "share/chicken/doc") ) - (make-pathname - (foreign-value "C_INSTALL_SHARE_HOME" c-string) - "doc"))) - (define chicken-prefix (or (get-environment-variable "CHICKEN_PREFIX") (let ((m (string-match "(.*)/bin/?" *chicken-bin-path*))) @@ -419,7 +412,9 @@ (make-pathname rpath fn setup-file-extension) ) (define installation-prefix - (make-parameter (or (get-environment-variable "CHICKEN_INSTALL_PREFIX") #f))) + (make-parameter + (or (get-environment-variable "CHICKEN_INSTALL_PREFIX") + chicken-prefix))) (define create-directory/parents (let () @@ -450,7 +445,7 @@ ;;XXX the prefix handling is completely bogus (let ((from (if (pair? from) (car from) from)) (to (let ((to-path (if (pair? from) (make-pathname to (cadr from)) to))) - (if (and prefix (not (string-prefix? prefix to-path))) + (if (not (string-prefix? prefix to-path)) (make-pathname prefix to-path) to-path)))) (ensure-directory to) @@ -537,9 +532,7 @@ (make-dest-pathname rpath f))) files) ) (pre (installation-prefix)) - (docpath (if pre - (ensure-directory (make-pathname pre "share/chicken/doc")) - *doc-path*))) + (docpath (ensure-directory (make-pathname pre "share/chicken/doc")))) (and-let* ((docs (assq 'documentation info))) (print "\n* Installing documentation files in " docpath ":") (for-each @@ -566,11 +559,8 @@ (if *windows-shell* "exe" #f) ) ) (when (setup-install-mode) (let* ((files (check-filelist (if (list? files) files (list files)))) - (ppath ((lambda (pre) - (if pre - (ensure-directory (make-pathname pre "bin")) - (program-path))) - (installation-prefix))) + (pre (installation-prefix)) + (ppath (ensure-directory (make-pathname pre "bin"))) (files (if *windows* (map (lambda (f) (if (list? f) @@ -591,17 +581,14 @@ (define (install-script id files #!optional (info '())) (when (setup-install-mode) (let* ((files (check-filelist (if (list? files) files (list files)))) - (ppath ((lambda (pre) - (if pre - (ensure-directory (make-pathname pre "bin")) - (program-path))) - (installation-prefix))) + (pre (installation-prefix)) + (ppath (ensure-directory (make-pathname pre "bin"))) (pfiles (map (lambda (f) (let ((from (if (pair? f) (car f) f)) (to (make-dest-pathname ppath f)) ) (copy-file from to) (unless *windows-shell* - (run (,*chmod-command* a+r ,(shellpath to)))) + (run (,*chmod-command* a+r ,(shellpath to)))) to) ) files) ) ) (unless *windows-shell* @@ -612,7 +599,7 @@ ;;; More helper stuff (define (repo-path #!optional ddir?) - (let ((p (if (and ddir? (installation-prefix)) + (let ((p (if ddir? (make-pathname (installation-prefix) (sprintf "lib/chicken/~a" (##sys#fudge 42))) @@ -628,7 +615,7 @@ (begin (create-directory/parents dir) (unless *windows-shell* - (run (,*chmod-command* a+x ,(shellpath dir))))))) + (run (,*chmod-command* a+x ,(shellpath dir))))))) path) (define (try-compile code #!key c++ (cc (if c++ *cxx* *cc*)) (cflags "") (ldflags "")Trap