makefile: fix some dependency tracking

Add cm-accomplice tracking to the expander extractor, so changes to
"rktio.rktl" are picked up for "io".

Fix GRacket BC dependencies on rktio.
This commit is contained in:
Matthew Flatt 2020-08-27 17:41:02 -06:00
parent d280462250
commit 979fbf551d
3 changed files with 15 additions and 2 deletions

View File

@ -94,7 +94,7 @@ wx_mac_LIBS = -framework CoreFoundation
GRACKETLINKER = @MZLINKER@ GRACKETLINKER = @MZLINKER@
LIBRKTIO = ../../rktio/librktio.@LTA@ LIBRKTIO = ../../rktio/librktio.@LTA@
LIBRKTIO_a = $(LIBRKTO) LIBRKTIO_a = $(LIBRKTIO)
LIBRKTIO_la = LIBRKTIO_la =
GRACKETLIBS_a = $(LDLIBS) GRACKETLIBS_a = $(LDLIBS)

View File

@ -299,6 +299,9 @@
[else (eval c)])]))]))] [else (eval c)])]))]))]
[else (orig-load path #f)]))) [else (orig-load path #f)])))
(define accomplice (make-log-receiver (current-logger) 'info 'cm-accomplice))
(struct file-dependency (path module?) #:prefab)
(define orig-resolver (current-module-name-resolver)) (define orig-resolver (current-module-name-resolver))
(current-module-name-resolver (current-module-name-resolver
(case-lambda (case-lambda
@ -308,6 +311,16 @@
(define n (resolved-module-path-name p)) (define n (resolved-module-path-name p))
(when (and (path? n) cache) (when (and (path? n) cache)
(register-dependency! cache n)) (register-dependency! cache n))
(let loop ()
(define vec (sync/timeout 0 accomplice))
(when vec
(define e (vector-ref vec 2))
(define v (and (file-dependency? e)
(not (file-dependency-module? e))
(file-dependency-path e)))
(when (and (path? v) cache)
(register-dependency! cache v))
(loop)))
p])) p]))
(define (apply-to-module proc mod-path) (define (apply-to-module proc mod-path)

View File

@ -41,7 +41,7 @@
(define-syntax-rule (define-function/errno+step _ _ _ name . _) (define-syntax-rule (define-function/errno+step _ _ _ name . _)
(define-function () #f name)) (define-function () #f name))
(include "../../rktio/rktio.rktl") ; 1 (include "../../rktio/rktio.rktl")
(define-function () #f rktio_filesize_ref) (define-function () #f rktio_filesize_ref)
(define-function () #f rktio_timestamp_ref) (define-function () #f rktio_timestamp_ref)