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