From caee1cfe808ddd184aff7138b43d9a4dc907e059 Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Wed, 29 May 2024 12:41:22 -0500 Subject: Relativize file names --- scramble.scm | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) (limited to 'scramble.scm') diff --git a/scramble.scm b/scramble.scm index 591ebad..7af5282 100644 --- a/scramble.scm +++ b/scramble.scm @@ -6,7 +6,8 @@ (chicken process) (chicken process-context) (chicken string) - (srfi 1)) + (srfi 1) + utf8-srfi-13) (define egg (make-parameter #f)) (define build-dir (make-parameter "build")) @@ -105,9 +106,6 @@ ((list? (cdr kv)) (apply alist-walk (cdr kv) (cdr keys))))))) -(define (string-join ss) - (string-intersperse ss " ")) - (define (find-executable name) (let loop ((path (string-split (get-environment-variable "PATH") ":"))) (cond @@ -122,9 +120,9 @@ (define (rule c) (let ((deps (alist-ref c (dependency-graph)))) (sprintf "~a: ~a $(BUILD)\n\t~a\n\t~a" - (output-of c) - (string-join (cons (source-of (car deps)) - (map output-of (cdr deps)))) + (relativize (output-of c)) + (string-join (cons (relativize (source-of (car deps))) + (map (o relativize output-of) (cdr deps)))) (string-append "$(CSC) $(CSC_OPTIONS)" (if (eq? (car (find-component c)) 'extension) " $(CSC_LIB_OPTIONS)" "") @@ -134,6 +132,16 @@ "echo mv " (->string c) ".import.scm $(BUILD)/;" " fi")))) +(define (relativize pn) + (let ((ed (string-append + (if (pair? (egg-directory)) + (car (egg-directory)) + (egg-directory)) + "/"))) + (if (string-prefix? ed pn) + (substring pn (string-length ed)) + pn))) + (define (emit-makefile egg-file) (parameterize ((egg (read-egg egg-file))) (print "# Automatically generated by scramble") (newline) @@ -148,7 +156,8 @@ (print "TEST_ENV = env BUILD=$(BUILD) TESTS=$(TESTS)") (newline) (print ".PHONY: all test clean install uninstall") - (print "all: " (string-join (map (o output-of car) (dependency-graph)))) + (print "all: " (string-join (map (o relativize output-of car) + (dependency-graph)))) (print "test: $(BUILD)" "\n\t" "cd $(BUILD) && " "$(TEST_ENV) $(CSI) -setup-mode -s $(TESTS)/run.scm $(NAME)") -- cgit 1.4.1-21-gabe81