Hello!

Here a patch for this. CHICKEN_INSTALL_PREFIX overrides the bin, include
or share directories when generating the install scripts. Note that the 
installed
egg-info files refer to the new directory as well, so this is not the same as 
DESTDIR.
chicken-status + chicken-uninstall will list and uninstall files woth set prefix
transparently. Egg-loading is not influenced, so this is much simpler and less
eror-prone than the old CHICKEN_PREFIX.


felix

From 939faa93460d39be55018c7c38fa8401144b4f51 Mon Sep 17 00:00:00 2001
From: felix <fe...@call-with-current-continuation.org>
Date: Sun, 28 May 2017 23:17:22 +0200
Subject: [PATCH] chicken-install: allow to override
 host-bindir/-sharedir/-incdir by setting env var
 CHICKEN_INSTALL_PREFIX

---
 egg-compile.scm |   23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/egg-compile.scm b/egg-compile.scm
index 7ba5f76..d1b08f8 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+)
@@ -177,7 +184,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
@@ -203,7 +210,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
@@ -218,7 +225,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 
@@ -237,7 +244,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)))
@@ -606,7 +613,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) 
@@ -622,7 +631,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)
@@ -635,7 +644,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)
-- 
1.7.9.5

_______________________________________________
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers

Reply via email to