From 2f7aa3f0ae524305b7c3e8ba06a5ed0d2ba70891 Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Sun, 15 Apr 2018 10:19:08 +0200 Subject: Let generated code work with yasm on linux --- Main.hs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'Main.hs') diff --git a/Main.hs b/Main.hs index 9c33f83..c7ca464 100644 --- a/Main.hs +++ b/Main.hs @@ -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"] -- cgit v1.2.3-54-g00ecf