diff options
Diffstat (limited to 'Main.hs')
-rw-r--r-- | Main.hs | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -4,6 +4,7 @@ import Control.Monad import Data.Char import System.Environment import System.Exit +import qualified System.Info as System (os) import System.Process import AST @@ -40,5 +41,11 @@ main = do interpret opt (map (fromIntegral . ord) input) >>= (putStr . map (chr . fromIntegral)) EMCompile -> do writeFile (fname ++ ".asm") $ compile opt - callProcess "yasm" ["-f", "macho64", fname ++ ".asm", "-o", fname ++ ".o"] + + let format = case System.os of + "darwin" -> "macho64" + "linux" -> "elf64" + _ -> undefined + + callProcess "yasm" ["-f", format, fname ++ ".asm", "-o", fname ++ ".o"] callProcess "gcc" [fname ++ ".o", "-o", fname ++ ".exe"] |