~ chicken-core (master) 7e9f575cd0251b4aff414c4b20993a2a0f496d2e


commit 7e9f575cd0251b4aff414c4b20993a2a0f496d2e
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Fri Aug 28 20:54:09 2026 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Fri Aug 28 20:54:09 2026 +0200

    custom egg build scripts are a dependency for all components

diff --git a/egg-compile.scm b/egg-compile.scm
index 48706bce..80e59363 100644
--- a/egg-compile.scm
+++ b/egg-compile.scm
@@ -268,7 +268,7 @@
                             predefined-types: ptfile eggfile: eggfile
                             modules: (or mods (list rtarget))
                             source-dependencies: sdeps
-                            link-objects: lobjs
+                            link-objects: lobjs custom-egg-build: custom-egg-build
                             output-file: rtarget)
                     exts)))))
         ((installed-c-object c-object)
@@ -294,7 +294,7 @@
                             linkage: link custom: cbuild
                             mode: mode
                             install: install
-                            eggfile: eggfile
+                            eggfile: eggfile custom-egg-build: custom-egg-build
                             source-dependencies: sdeps
                             output-file: rtarget)
                       objs)))))
@@ -326,7 +326,7 @@
             (set! genfiles
               (cons (list target dependencies: cdeps source: src
                           custom: cbuild source-dependencies: sdeps
-                          eggfile: eggfile)
+                          eggfile: eggfile custom-egg-build: custom-egg-build)
                     genfiles))))
         ((c-include)
           (fluid-let ((target (check-target (cadr info) cinc))
@@ -386,7 +386,7 @@
 			    mode: mode output-file: rtarget
                             source-dependencies: sdeps
                             link-objects: lobjs
-                            eggfile: eggfile)
+                            eggfile: eggfile custom-egg-build: custom-egg-build)
 		      prgs)))))
         (else (compile-common info compile-component 'component))))
     (define (compile-extension/program info)
@@ -627,7 +627,7 @@
 (define ((compile-static-extension name #!key mode dependencies
                                    source-dependencies
                                    source (options '())
-                                   predefined-types eggfile
+                                   predefined-types eggfile custom-egg-build
                                    link-objects modules
                                    custom types-file inline-file)
          srcdir platform)
@@ -668,6 +668,7 @@
       (prepare-custom-command cmd platform))
     (print-build-command targets
 			 `(,@(filelist srcdir source-dependencies) ,src ,eggfile
+                           ,@(if custom-egg-build (list custom-egg-build) '())
 			   ,@(if custom (list cmd) '())
                            ,@(get-dependency-targets dependencies))
 			 `(,@(if custom '("sh") '())
@@ -696,7 +697,7 @@
 (define ((compile-dynamic-extension name #!key mode mode dependencies
                                     source (options '())
                                     (link-options '())
-                                    predefined-types eggfile
+                                    predefined-types eggfile custom-egg-build
                                     link-objects
                                     source-dependencies modules
                                     custom types-file inline-file)
@@ -736,6 +737,7 @@
       (prepare-custom-command cmd platform))
     (print-build-command targets
 			 `(,src ,eggfile ,@(if custom (list cmd) '())
+                           ,@(if custom-egg-build (list custom-egg-build) '())
 			   ,@(filelist srcdir lobjs)
 			   ,@(filelist srcdir source-dependencies)
                            ,@(get-dependency-targets dependencies))
@@ -781,7 +783,7 @@
 (define ((compile-static-object name #!key mode dependencies
                                 source-dependencies
                                 source (options '())
-                                eggfile custom)
+                                eggfile custom-egg-build custom)
          srcdir platform)
   (let* ((cmd (or (custom-cmd custom srcdir platform)
                   default-csc))
@@ -799,6 +801,7 @@
       (prepare-custom-command cmd platform))
     (print-build-command (list out)
 			 `(,@(filelist srcdir source-dependencies) ,src ,eggfile
+                           ,@(if custom-egg-build (list custom-egg-build) '())
 			   ,@(if custom (list cmd) '())
                            ,@(get-dependency-targets dependencies))
 			 `(,@(if custom '("sh") '())
@@ -811,7 +814,7 @@
 
 (define ((compile-dynamic-object name #!key mode mode dependencies
                                  source (options '())
-                                 eggfile
+                                 eggfile custom-egg-build
                                  source-dependencies
                                  custom)
          srcdir platform)
@@ -831,6 +834,7 @@
       (prepare-custom-command cmd platform))
     (print-build-command (list out)
 			 `(,src ,eggfile ,@(if custom (list cmd) '())
+                           ,@(if custom-egg-build (list custom-egg-build) '())
 			   ,@(filelist srcdir source-dependencies)
                            ,@(get-dependency-targets dependencies))
 			 `(,@(if custom '("sh") '())
@@ -843,7 +847,7 @@
 
 (define ((compile-dynamic-program name #!key source mode dependencies
                                   (options '()) (link-options '())
-                                  source-dependencies
+                                  source-dependencies custom-egg-build
                                   custom eggfile link-objects)
          srcdir platform)
   (let* ((cmd (or (custom-cmd custom srcdir platform)
@@ -865,6 +869,7 @@
       (prepare-custom-command cmd platform))
     (print-build-command (list out)
 			 `(,src ,eggfile ,@(if custom (list cmd) '())
+                           ,@(if custom-egg-build (list custom-egg-build) '())
 			   ,@(filelist srcdir source-dependencies)
 			   ,@(filelist srcdir lobjs)
                            ,@(get-dependency-targets dependencies))
@@ -882,7 +887,7 @@
 
 (define ((compile-static-program name #!key source dependencies
                                  (options '()) (link-options '())
-                                 source-dependencies
+                                 source-dependencies custom-egg-build
                                  custom mode eggfile link-objects)
          srcdir platform)
   (let* ((cmd (or (custom-cmd custom srcdir platform)
@@ -904,6 +909,7 @@
       (prepare-custom-command cmd platform))
     (print-build-command (list out)
 			 `(,src ,eggfile ,@(if custom (list cmd) '())
+                           ,@(if custom-egg-build (list custom-egg-build) '())
 			   ,@(filelist srcdir lobjs)
 			   ,@(filelist srcdir source-dependencies)
                            ,@(get-dependency-targets dependencies))
@@ -919,7 +925,7 @@
     (print-end-command platform)))
 
 (define ((compile-generated-file name #!key source custom dependencies
-                                 source-dependencies eggfile)
+                                 source-dependencies eggfile custom-egg-build)
          srcdir platform)
   (let ((cmd (custom-cmd custom srcdir platform))
         (out (or source name)))
@@ -927,6 +933,7 @@
     (prepare-custom-command cmd platform)
     (print-build-command (list out)
 			 (append
+                           (if custom-egg-build (list custom-egg-build) '())
 			   (filelist srcdir source-dependencies)
                            (get-dependency-targets dependencies))
 			 `("sh" ,cmd ,eggfile)
Trap