~ chicken-core (chicken-5) 80ab83ce75c98c4b14b59bc02a6361db3fb1b6d4
commit 80ab83ce75c98c4b14b59bc02a6361db3fb1b6d4
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Fri Apr 7 18:05:07 2017 +0200
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Fri Apr 7 18:05:07 2017 +0200
chicken-instal: use TARGET_RUN_LIB_DIR when building target-version of .egg-info (incomplete), produce link file for target with proper name
diff --git a/egg-compile.scm b/egg-compile.scm
index 811aac3b..97a713f5 100644
--- a/egg-compile.scm
+++ b/egg-compile.scm
@@ -40,6 +40,7 @@
(define +windows-executable-extension+ ".exe")
(define +unix-object-extension+ ".o")
(define +windows-object-extension+ ".obj")
+(define +link-file-extension+ ".link")
(define keep-generated-files #f)
@@ -142,13 +143,13 @@
(oname #f)
(opts '()))
(for-each compile-extension/program (cddr info))
- (let ((dest (destination-repository mode)))
+ (let ((dest (destination-repository mode #t)))
(when (eq? #t tfile) (set! tfile target))
(when (eq? #t ifile) (set! ifile target))
(addfiles
(if (memq 'static link)
(list (conc dest "/" target objext)
- (conc dest "/" target ".link"))
+ (conc dest "/" target +link-file-extension+))
'())
(if (memq 'dynamic link) (list (conc dest "/" target ".so")) '())
(if tfile
@@ -172,7 +173,9 @@
(files '()))
(for-each compile-data/include (cddr info))
(let* ((dest (or dest
- (if (eq? mode 'target) default-sharedir host-sharedir)))
+ (if (eq? mode 'target)
+ default-sharedir ; XXX wrong!
+ host-sharedir)))
(dest (normalize-pathname (conc dest "/"))))
(addfiles (map (cut conc dest <>) files)))
(set! data
@@ -196,7 +199,9 @@
(files '()))
(for-each compile-data/include (cddr info))
(let* ((dest (or dest
- (if (eq? mode 'target) default-incdir host-incdir)))
+ (if (eq? mode 'target)
+ default-incdir ; XXX wrong!
+ host-incdir)))
(dest (normalize-pathname (conc dest "/"))))
(addfiles (map (cut conc dest <>) files)))
(set! cinc
@@ -209,7 +214,9 @@
(files '()))
(for-each compile-data/include (cddr info))
(let* ((dest (or dest
- (if (eq? mode 'target) default-sharedir host-sharedir)))
+ (if (eq? mode 'target)
+ default-sharedir ; XXX wrong!
+ host-sharedir)))
(dest (normalize-pathname (conc dest "/"))))
(addfiles (map (cut conc dest <>) files)))
(set! scminc
@@ -226,7 +233,9 @@
(oname #f)
(opts '()))
(for-each compile-extension/program (cddr info))
- (let ((dest (if (eq? mode 'target) default-bindir host-bindir)))
+ (let ((dest (if (eq? mode 'target)
+ default-bindir ; XXX wrong!
+ host-bindir)))
(addfiles (list (conc dest "/" target exeext))))
(set! prgs
(cons (list target dependencies: deps source: src options: opts
@@ -387,6 +396,8 @@
(print "\n" (slashify default-builder platform) " " out " " cmd
(if keep-generated-files " -k" "")
" -setup-mode -static -I " srcdir
+ " -emit-link-file "
+ (quotearg (target-file (conc sname +link-file-extension+) mode))
(if (eq? mode 'host) " -host" "")
" -D compiling-extension -c -J -unit " name
" -D compiling-static-extension"
@@ -502,19 +513,22 @@
(ext (object-extension platform))
(sname (prefix srcdir name))
(out (quotearg (target-file (conc sname ext) mode)))
- (outlnk (quotearg (target-file (conc sname ".link") mode)))
+ (outlnk (quotearg (target-file (conc sname +link-file-extension+)
+ mode)))
(dest (destination-repository mode))
(dfile (quotearg dest))
(ddir (shell-variable "DESTDIR" platform)))
(print "\n" mkdir " " ddir dfile)
- (print cmd " " out " " ddir (quotearg (slashify (conc dest "/"
- output-file
- ext)
- platform)))
- (print cmd " " outlnk " " ddir (quotearg (slashify (conc dest "/"
- output-file
- ".link")
- platform)))))
+ (print cmd " " out " " ddir
+ (quotearg (slashify (conc dest "/"
+ output-file
+ ext)
+ platform)))
+ (print cmd " " outlnk " " ddir
+ (quotearg (slashify (conc dest "/"
+ output-file
+ +link-file-extension+)
+ platform)))))
(define ((install-dynamic-extension name #!key mode (ext ".so")
output-file)
diff --git a/egg-environment.scm b/egg-environment.scm
index c6e0cc83..ca7e2015 100644
--- a/egg-environment.scm
+++ b/egg-environment.scm
@@ -50,6 +50,7 @@ EOF
(define default-ldflags (foreign-value "C_TARGET_LDFLAGS" c-string))
(define default-libs (foreign-value "C_TARGET_MORE_LIBS" c-string))
(define default-libdir (foreign-value "C_TARGET_LIB_HOME" c-string))
+(define default-runlibdir (foreign-value "C_TARGET_RUN_LIB_HOME" c-string))
(define default-slibdir (foreign-value "C_TARGET_STATIC_LIB_HOME" c-string))
(define default-incdir (foreign-value "C_TARGET_INCLUDE_HOME" c-string))
(define default-bindir (foreign-value "C_TARGET_BIN_HOME" c-string))
@@ -87,10 +88,13 @@ EOF
(define target-repo
(string-append default-libdir "/chicken/" (number->string binary-version)))
+(define target-run-repo
+ (string-append default-runlibdir "/chicken/" (number->string binary-version)))
+
(define +egg-info-extension+ ".egg-info")
-(define (destination-repository mode)
+(define (destination-repository mode #!optional run)
(if (eq? 'target mode)
- target-repo
+ (if run target-run-repo target-repo)
(or (get-environment-variable "CHICKEN_INSTALL_REPOSITORY")
host-repo)))
Trap