;; JScheme version
(load "ll2.scm") ;; provide same support as Ruby example in 70 lines
(define (compile dir)
(for-each (lambda(c)
(display {compiling [c] to [(c->o c)].\n})
(run gcc -c -o ,(c->o c) ,c))
(files** dir needsUpdate?)))
(define isCFile? (// "\\.c$"))
(define c->o (/// "\\.c$" "\\.o"))
(define (needsUpdate? f) (and (isCFile? f) (needsRecompile f (c->o f))))
(define (needsRecompile f o)
(or (not (.exists o)) (<= (.lastModified o) (.lastModified f))))
LL2, Saturday 9 November 2002, Tim Hickey/Ken Anderson