~ chicken-core (chicken-5) a50d6871b38c0b43c450c0ed142122616e8e9948


commit a50d6871b38c0b43c450c0ed142122616e8e9948
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Sun May 28 23:17:22 2017 +0200
Commit:     Mario Domenech Goulart <mario@parenteses.org>
CommitDate: Sun Jun 18 22:16:07 2017 +0200

    chicken-install: allow to override host-bindir/-sharedir/-incdir by setting env var CHICKEN_INSTALL_PREFIX
    
    Signed-off-by: Mario Domenech Goulart <mario@parenteses.org>

diff --git a/egg-compile.scm b/egg-compile.scm
index 1a2112e3..33a4af22 100644
--- a/egg-compile.scm
+++ b/egg-compile.scm
@@ -47,6 +47,13 @@
 
 ;;; some utilities
 
+(define override-prefix
+  (let ((prefix (get-environment-variable "CHICKEN_INSTALL_PREFIX")))
+    (lambda (dir default)
+      (if prefix
+          (string-append prefix dir)
+          default))))
+
 (define (object-extension platform)
   (case platform
     ((unix) +unix-object-extension+)
@@ -191,7 +198,7 @@
             (let* ((dest (or dest 
                              (if (eq? mode 'target)
                                  default-sharedir    ; XXX wrong!
-                                 host-sharedir)))
+                                 (override-prefix "/share" host-sharedir))))
                    (dest (normalize-pathname (conc dest "/"))))
               (addfiles (map (cut conc dest <>) files)))
             (set! data
@@ -217,7 +224,7 @@
             (let* ((dest (or dest 
                              (if (eq? mode 'target) 
                                  default-incdir   ; XXX wrong!
-                                 host-incdir)))
+                                 (override-prefix "/include" host-incdir))))
                    (dest (normalize-pathname (conc dest "/"))))
               (addfiles (map (cut conc dest <>) files)))
             (set! cinc
@@ -232,7 +239,7 @@
             (let* ((dest (or dest
                              (if (eq? mode 'target) 
                                  default-sharedir   ; XXX wrong!
-                                 host-sharedir)))
+                                 (override-prefix "/share" host-sharedir))))
                    (dest (normalize-pathname (conc dest "/"))))
               (addfiles (map (cut conc dest <>) files)))
             (set! scminc 
@@ -251,7 +258,7 @@
             (for-each compile-extension/program (cddr info))
             (let ((dest (if (eq? mode 'target) 
                             default-bindir   ; XXX wrong!
-                            host-bindir))
+                            (override-prefix "/bin" host-bindir)))
                   ;; Respect install-name if specified
                   (rtarget (or oname target)))
               (addfiles (list (conc dest "/" rtarget exeext)))
@@ -633,7 +640,9 @@
          (ext (executable-extension platform))
          (sname (prefix srcdir name))
          (out (quotearg (target-file (conc sname ext) mode)))
-         (dest (if (eq? mode 'target) default-bindir host-bindir))
+         (dest (if (eq? mode 'target)
+                   default-bindir
+                   (override-prefix "/bin" host-bindir)))
          (dfile (quotearg (slashify dest platform)))
          (ddir (shell-variable "DESTDIR" platform))
          (destf (quotearg (slashify (conc dest "/" output-file ext) 
@@ -649,7 +658,7 @@
          (mkdir (mkdir-command platform))
          (dest (or destination (if (eq? mode 'target)
                                    default-sharedir 
-                                   host-sharedir)))
+                                   (override-prefix "/share" host-sharedir))))
          (dfile (quotearg (slashify dest platform)))
          (ddir (shell-variable "DESTDIR" platform)))
     (print "\n" mkdir " " ddir dfile)
@@ -662,7 +671,7 @@
          (mkdir (mkdir-command platform))
          (dest (or destination (if (eq? mode 'target) 
                                    default-incdir 
-                                   host-incdir)))
+                                   (override-prefix "/include" host-incdir))))
          (dfile (quotearg (slashify dest platform)))
          (ddir (shell-variable "DESTDIR" platform)))
     (print "\n" mkdir " " ddir dfile)
Trap