module Development.Shake.Language.C.Host.Linux (
getHostToolChain
) where
import Development.Shake
import Development.Shake.Language.C.Target
import Development.Shake.Language.C.Target.Linux
import Development.Shake.Language.C.ToolChain
import System.Process (readProcess)
getHostArch :: IO Arch
getHostArch = do
arch <- fmap (head.lines) $ readProcess "uname" ["-m"] ""
return $ case arch of
"i386" -> X86 I386
"i686" -> X86 I686
"x86_64" -> X86 X86_64
"armv7l" -> Arm Armv7
_ -> error $ "Unknown host architecture " ++ arch
getHostToolChain :: IO (Target, Action ToolChain)
getHostToolChain = do
t <- fmap target getHostArch
return (t, return $ toolChain GCC)