Sorry, that last patch was broken. Attached a better one.

felix
From f948339ce8ef8fa437b1966866615270bef3379c Mon Sep 17 00:00:00 2001
From: felix <fe...@call-with-current-continuation.org>
Date: Thu, 28 Jun 2018 09:00:23 +0200
Subject: [PATCH] chicken-install: use explicit ".bat" extension for custom
 scripts on Windows

This also converts the names in chicken-do dependency lists and adds a missing
dependency on the egg-file for generated-file components.
---
 egg-compile.scm |   31 ++++++++++++++++++++-----------
 1 file changed, 20 insertions(+), 11 deletions(-)

diff --git a/egg-compile.scm b/egg-compile.scm
index 604c594..ec45e4f 100644
--- a/egg-compile.scm
+++ b/egg-compile.scm
@@ -223,7 +223,8 @@
               (error "generated source files need a custom build step" target))
             (set! genfiles
               (cons (list target dependencies: cdeps source: src 
-                          custom: cbuild source-dependencies: sdeps)
+                          custom: cbuild source-dependencies: sdeps
+                          eggfile: eggfile)
                     genfiles))))
         ((c-include)
           (fluid-let ((target (check-target (cadr info) cinc))
@@ -461,7 +462,7 @@
                                    predefined-types eggfile
                                    custom types-file inline-file)
          srcdir platform)
-  (let* ((cmd (or (and custom (prefix srcdir custom))
+  (let* ((cmd (or (custom-cmd custom srcdir platform)
                   default-csc))
          (sname (prefix srcdir name))
          (ssname (and source (prefix srcdir source)))
@@ -504,7 +505,7 @@
                                     source-dependencies
                                     custom types-file inline-file)
          srcdir platform)
-  (let* ((cmd (or (and custom (prefix srcdir custom))
+  (let* ((cmd (or (custom-cmd custom srcdir platform)
                   default-csc))
          (sname (prefix srcdir name))
          (opts (append (if (null? options)
@@ -539,7 +540,7 @@
                                  (options '()) (link-options '())
                                  custom)
          srcdir platform)
-  (let* ((cmd (or (and custom (prefix srcdir custom))
+  (let* ((cmd (or (custom-cmd custom srcdir platform)
                   default-csc))
          (sname (prefix srcdir name))
          (opts (if (null? options) 
@@ -555,6 +556,7 @@
            (if (eq? mode 'host) " -host" "")
            " -I " srcdir " -C -I" srcdir (arglist opts)
            (arglist link-options) " " src " -o " out " : "
+           (if custom (quotearg cmd) "") " "
            src (filelist srcdir source-dependencies))))
 
 (define ((compile-dynamic-program name #!key source mode
@@ -562,7 +564,7 @@
                                   source-dependencies
                                   custom eggfile)
          srcdir platform)
-  (let* ((cmd (or (and custom (prefix srcdir custom))
+  (let* ((cmd (or (custom-cmd custom srcdir platform)
                   default-csc))
          (sname (prefix srcdir name))
          (ssname (and source (prefix srcdir source)))
@@ -590,7 +592,7 @@
                                  source-dependencies
                                  custom mode eggfile)
          srcdir platform)
-  (let* ((cmd (or (and custom (prefix srcdir custom))
+  (let* ((cmd (or (custom-cmd custom srcdir platform)
                   default-csc))
          (sname (prefix srcdir name))
          (ssname (and source (prefix srcdir source)))
@@ -614,16 +616,17 @@
            (filelist srcdir source-dependencies))))
 
 (define ((compile-generated-file name #!key source custom
-                                 source-dependencies) 
+                                 source-dependencies eggfile) 
          srcdir platform)
-  (let* ((cmd (prefix srcdir custom))
+  (let* ((cmd (custom-cmd custom srcdir platform))
          (sname (prefix srcdir name))
          (ssname (and source (prefix srcdir source)))
          (out (quotearg (or ssname sname))))
-    (when custom
-      (prepare-custom-command cmd platform))
+    (prepare-custom-command cmd platform)
     (print "\n" (slashify default-builder platform)
-           " " out " " cmd " : " cmd " "
+           " " out " " cmd " : " 
+           (quotearg cmd) " "
+           (quotearg eggfile) " "
            (filelist srcdir source-dependencies))))
 
 
@@ -906,3 +909,9 @@ EOF
 (define (prepare-custom-command cmd platform)
   (unless (eq? 'windows platform)
     (print "chmod +x " (quotearg cmd))))
+
+(define (custom-cmd custom srcdir platform)
+  (and custom (prefix srcdir 
+                      (case platform
+                        ((windows) (conc custom ".bat"))
+                        (else custom)))))
-- 
1.7.9.5

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

Reply via email to