~ 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