~ chicken-core (chicken-5) f72d4150de170b9fc0a67bbf2a2289b72aad0d0a


commit f72d4150de170b9fc0a67bbf2a2289b72aad0d0a
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Sat Jan 7 17:19:46 2017 +0100
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Sat Jan 7 17:19:46 2017 +0100

    use link files when compiling static eggs

diff --git a/egg-compile.scm b/egg-compile.scm
index 488c404a..e6d26e43 100644
--- a/egg-compile.scm
+++ b/egg-compile.scm
@@ -120,7 +120,10 @@
               (when (eq? #t tfile) (set! tfile target))
               (when (eq? #t ifile) (set! ifile target))
               (addfiles 
-                (if (memq 'static link) (list (conc dest "/" target objext)) '())
+                (if (memq 'static link) 
+                    (list (conc dest "/" target objext)
+                          (conc dest "/" target ".link"))
+                    '())
                 (if (memq 'dynamic link) (list (conc dest "/" target ".so")) '())
                 (if tfile 
                     (list (conc dest "/" tfile ".types"))
@@ -343,8 +346,7 @@
                                    (options '()) custom) 
          srcdir platform)
   (let* ((cmd (or (and custom (prefix-custom-command custom))
-                  (conc default-csc " -D compiling-extension -c -J -unit " name
-                        " -D compiling-static-extension")))
+                  default-csc))
          (sname (prefix srcdir name))
          (ssname (and source (prefix srcdir source)))
          (out (quotearg (target-file (conc sname
@@ -353,8 +355,11 @@
          (src (quotearg (or ssname (conc sname ".scm")))))
     (print "\n" (slashify default-builder platform) " " out " " cmd 
            (if keep-generated-files " -k" "")
-           " -setup-mode"
-           " -I " srcdir " -C -I" srcdir (arglist options) 
+           " -setup-mode -static -I " srcdir 
+           " -D compiling-extension -c -J -unit " name
+           " -D compiling-static-extension"
+           " -emit-link-file " (quotearg (conc sname ".link"))
+           " -C -I" srcdir (arglist options) 
            " " src " -o " out " : "
            src #;(arglist dependencies))))
 
@@ -363,15 +368,15 @@
                                     custom) 
          srcdir platform)
   (let* ((cmd (or (and custom (prefix-custom-command custom)) 
-                  (conc default-csc " -D compiling-extension -J -s")))
+                  default-csc))
          (sname (prefix srcdir name))
          (ssname (and source (prefix srcdir source)))
          (out (quotearg (target-file (conc sname ".so") mode)))
          (src (quotearg (or ssname (conc sname ".scm")))))
     (print "\n" (slashify default-builder platform) " " out " " cmd 
            (if keep-generated-files " -k" "")
-           " -setup-mode"
-           " -I " srcdir " -C -I" srcdir (arglist options)
+           " -D compiling-extension -J -s"
+           " -setup-mode -I " srcdir " -C -I" srcdir (arglist options)
            (arglist link-options) " " src " -o " out " : "
            src #;(arglist dependencies))))
 
@@ -380,14 +385,14 @@
                                  custom)
          srcdir platform)
   (let* ((cmd (or (and custom (prefix-custom-command custom))
-                  (conc default-csc " -s")))
+                  default-csc))
          (sname (prefix srcdir name))
          (ssname (and source (prefix srcdir source)))
          (out (quotearg (target-file (conc sname ".import.so") mode)))
          (src (quotearg (or source (conc sname ".import.scm")))))
     (print "\n" (slashify default-builder platform) " " out " " cmd 
            (if keep-generated-files " -k" "")
-           " -setup-mode"
+           " -setup-mode -s"
            " -I " srcdir " -C -I" srcdir (arglist options)
            (arglist link-options) " " src " -o " out " : "
            src #;(arglist dependencies))))
@@ -416,7 +421,7 @@
                                     custom mode)
          srcdir platform)
   (let* ((cmd (or (and custom (prefix-custom-command custom))
-                  (conc default-csc " -static-libs")))
+                  default-csc))
          (sname (prefix srcdir name))
          (ssname (and source (prefix srcdir source)))
          (out (quotearg (target-file (conc sname
@@ -425,8 +430,9 @@
          (src (quotearg (or ssname (conc sname ".scm")))))
     (print "\n" (slashify default-builder platform) " " out " " cmd 
            (if keep-generated-files " -k" "")
-           " -setup-mode"
-           " -I " srcdir " -C -I" srcdir (arglist options)
+           " -static-libs"
+           " -setup-mode -static -I " srcdir " -C -I" 
+           srcdir (arglist options)
            (arglist link-options) " " src " -o " out " : "
            src #;(arglist dependencies))))
 
@@ -457,6 +463,10 @@
     (print cmd " " out " " ddir (quotearg (slashify (conc dest "/" 
                                                           output-file
                                                           ext) 
+                                                    platform)))
+    (print cmd " " out " " ddir (quotearg (slashify (conc dest "/" 
+                                                          output-file
+                                                          ".link") 
                                                     platform)))))
 
 (define ((install-dynamic-extension name #!key mode (ext ".so")
Trap