~ chicken-core (chicken-5) 70e091fdb198e03e62b819e647b7029b6d39cb95
commit 70e091fdb198e03e62b819e647b7029b6d39cb95
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Wed Jan 6 08:35:25 2010 +0100
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Wed Jan 6 08:35:25 2010 +0100
handle installation of deps in no-install mode; removed deprecated setup-install-flag and setup-verbose-flag
diff --git a/chicken-install.scm b/chicken-install.scm
index 79d55352..9d30369c 100644
--- a/chicken-install.scm
+++ b/chicken-install.scm
@@ -82,6 +82,7 @@
(define *windows-shell* (foreign-value "C_WINDOWS_SHELL" bool))
(define *proxy-host* #f)
(define *proxy-port* #f)
+ (define *running-test* #f)
(define-constant +module-db+ "modules.db")
(define-constant +defaults-file+ "setup.defaults")
@@ -290,7 +291,7 @@
"- assuming it has no dependencies")) ] ) ) ) )
*eggs+dirs+vers*) ) )
- (define (make-install-command e+d+v)
+ (define (make-install-command e+d+v dep?)
(conc
*csi*
" -bnq "
@@ -302,7 +303,7 @@
(sprintf " -e \"(extension-name-and-version '(\\\"~a\\\" \\\"~a\\\"))\"" (car e+d+v) (caddr e+d+v))
(if (sudo-install) " -e \"(sudo-install #t)\"" "")
(if *keep* " -e \"(keep-intermediates #t)\"" "")
- (if *no-install* " -e \"(setup-install-mode #f)\"" "")
+ (if (and *no-install* (not dep?)) " -e \"(setup-install-mode #f)\"" "")
(if *host-extension* " -e \"(host-extension #t)\"" "")
(if *prefix* (sprintf " -e \"(installation-prefix \\\"~a\\\")\"" *prefix*) "")
#\space
@@ -311,26 +312,41 @@
(define (install eggs)
(retrieve eggs)
(unless *retrieve-only*
- (let ((dag (reverse (topological-sort *dependencies* string=?))))
+ (let* ((dag (reverse (topological-sort *dependencies* string=?)))
+ (num (length dag))
+ (depinstall-ok *force*))
(print "install order:")
(pp dag)
(for-each
- (lambda (e+d+v)
+ (lambda (e+d+v i)
+ (when (and (not depinstall-ok)
+ (= i 1)
+ (> num 1))
+ (unless (yes-or-no?
+ (string-append
+ "You specified `-no-install', but this extension has dependencies"
+ " that are required for building. Do you still want to install them?"))
+ (print "aborting installation.")
+ (cleanup)
+ (exit 1)))
(print "installing " (car e+d+v) #\: (caddr e+d+v) " ...")
(print "changing current directory to " (cadr e+d+v))
(parameterize ((current-directory (cadr e+d+v)))
- (let ([cmd (make-install-command e+d+v)])
+ (let ([cmd (make-install-command e+d+v (< i num))])
(print " " cmd)
($system cmd))
(when (and *run-tests*
(file-exists? "tests")
(directory? "tests")
(file-exists? "tests/run.scm") )
+ (set! *running-test* #t)
(current-directory "tests")
(let ((cmd (sprintf "~a -s run.scm ~a" *csi* (car e+d+v))))
(print " " cmd)
- ($system cmd)))))
- (map (cut assoc <> *eggs+dirs+vers*) dag)))))
+ ($system cmd))
+ (set! *running-test* #f))))
+ (map (cut assoc <> *eggs+dirs+vers*) dag)
+ (iota num 1)))))
(define (cleanup)
(unless *keep*
@@ -540,7 +556,7 @@ EOF
(newline (current-error-port))
(print-error-message ex (current-error-port))
(cleanup)
- (exit 1))
+ (exit (if *running-test* 2 1)))
(main (command-line-arguments))
(cleanup))
diff --git a/setup-api.scm b/setup-api.scm
index e80e5e60..abb53ac4 100644
--- a/setup-api.scm
+++ b/setup-api.scm
@@ -44,7 +44,6 @@
host-extension
install-extension install-program install-script
setup-verbose-mode setup-install-mode
- setup-verbose-flag setup-install-flag ; DEPRECATED
installation-prefix chicken-prefix
find-library find-header
program-path remove-file*
@@ -116,8 +115,6 @@
(define setup-root-directory (make-parameter *base-directory*))
(define setup-verbose-mode (make-parameter #f))
(define setup-install-mode (make-parameter #t))
-(define setup-verbose-flag setup-verbose-mode) ; DEPRECATED
-(define setup-install-flag setup-install-mode) ; DEPRECATED
(define program-path (make-parameter *chicken-bin-path*))
(define keep-intermediates (make-parameter #f))
@@ -174,7 +171,7 @@
((car args) (sudo-install-setup))
(else (user-install-setup)) ) )
-(define abort-setup (make-parameter exit))
+(define abort-setup (make-parameter (cut exit 1)))
(define (yes-or-no? str #!key default (abort (abort-setup)))
(let loop ()
Trap