Files
scratch-wasm/guile/cps/Shakefile.hs
T
2026-06-27 15:40:55 -06:00

22 lines
646 B
Haskell

import Development.Shake
import Development.Shake.Command
import Development.Shake.FilePath
import Development.Shake.Util
main = shakeArgs shakeOptions $ do
action $ do
sourceFiles <- getDirectoryFiles "" ["//*.scm"]
need $ (-<.> "cps") <$> sourceFiles
"*.cps" %> \out -> do
withTempFile $ \temp_cps -> do
let scm = out -<.> "scm"
need [scm]
cmd_
"guild compile -O0 -Ocps -t cps -o" [temp_cps]
[scm]
cmd_ (FileStdout out)
(Stdin ";; -*- mode:scheme -*-\n") "cat -" [temp_cps]
phony "clean" $ do
removeFilesAfter ".shake" ["//*"]
liftIO $ removeFiles "." ["*.cps","*.go"]