module Development.Shake.C ( cBinary ) where import Development.Shake import Development.Shake.ATS -- | Build a C binary, including relevant ATS-related paths. cBinary :: FilePath -> FilePath -> Action () cBinary src target = do need [src] home <- patsHome let atsArgs = [EchoStderr False, AddEnv "PATSHOME" home] command atsArgs "gcc" [src, "-flto", "-I" ++ home ++ "/ccomp/runtime", "-I" ++ home, "-o", target, "-O2"] -- cmd ["strip", out]