#lang racket (require racket-makefile) ;; Functional use: press Run in DrRacket and use (make 'all), (make 'clean), ;; or call a generated target procedure directly. (define CC 'cc) (define CFLAGS '(-Wall -O2)) (makefile 'hello (default-target 'all) (phony 'all 'clean 'setup 'test) (target 'all (deps "hello")) (target "hello" (deps "hello.c") (run `(,CC ,@CFLAGS -o $target $<))) (target 'clean (rm-f "hello") (rm-rf "compiled")) (target 'setup (raco '(setup racket-makefile))) (target 'test (raco '(test -p racket-makefile))))