Change behavior. (require racket-makefile) and use (make <target>) instead of racket Makefile.rkt <target>

This commit is contained in:
2026-08-08 22:38:13 +02:00
parent f32503f3e7
commit 57707e5fc0
11 changed files with 276 additions and 32 deletions
+9 -8
View File
@@ -6,7 +6,7 @@
mark-phony!
set-default-target!
reset-makefile!
run-selected-target!
make-targets!
current-target
current-dependencies
current-first-dependency)
@@ -128,20 +128,21 @@
(hash-set! built-results key rebuilt?)
rebuilt?]))
(define (selected-targets)
(define args (vector->list (current-command-line-arguments)))
(define (default-targets)
(cond
[(pair? args) args]
[default-target-name (list default-target-name)]
[(pair? target-order) (list (car target-order))]
[else '()]))
(define (run-selected-target!)
(define names (selected-targets))
(when (null? names)
(define (make-targets! . names)
(define selected
(if (null? names)
(default-targets)
(append-map target-keys names)))
(when (null? selected)
(error 'racket-makefile "no target defined"))
(define built-results (make-hash))
(define visiting (make-hash))
(for ([name (in-list names)])
(for ([name (in-list selected)])
(build-target! name built-results visiting))
(void))