@@ -71,25 +71,22 @@ compile codegen f tm
71 case dumpDefun of
71 case dumpDefun of
72 Nothing -> return ()
72 Nothing -> return ()
73 Just f -> runIO $ writeFile f (dumpDefuns defuns)
73 Just f -> runIO $ writeFile f (dumpDefuns defuns)
74− triple <- targetTriple
74+ triple <- Idris.AbsSyntax.targetTriple
75− cpu <- targetCPU
75+ cpu <- Idris.AbsSyntax.targetCPU
76− optimize <- optLevel
76+ optimise <- optLevel
77 iLOG "Building output"
77 iLOG "Building output"
78 case checked of
79 case checked of
80+ OK c -> do let cginfo = CodegenInfo f outty triple cpu optimise
81+ hdrs impdirs objs libs flags
82+ NONE c (toAlist defuns)
79− OK c -> runIO $ case codegen of
84+ runIO $ case codegen of
81− codegenC c f outty hdrs
85+ ViaC -> codegenC cginfo
82− (concatMap mkObj objs)
83− (concatMap mkLib libs)
84− (concatMap mkFlag flags ++
85− concatMap incdir impdirs) NONE
86− ViaJava ->
86+ ViaJava -> codegenJava cginfo
87− codegenJava [] c f hdrs libs outty
88− ViaJavaScript ->
87+ ViaJavaScript -> codegenJavaScript cginfo
89− codegenJavaScript JavaScript c hdrs f outty
90− ViaNode ->
88+ ViaNode -> codegenNode cginfo
91− codegenJavaScript Node c hdrs f outty
92− ViaLLVM -> codegenLLVM c triple cpu optimize f outty
89+ ViaLLVM -> codegenLLVM cginfo
93 Bytecode -> dumpBC c f
90 Bytecode -> dumpBC c f
94 Error e -> ierror e
91 Error e -> ierror e
95 where checkMVs = do i <- getIState
92 where checkMVs = do i <- getIState
@@ -99,12 +96,6 @@ compile codegen f tm
99 inDir d h = do let f = d </> h
96 inDir d h = do let f = d </> h
100 ex <- doesFileExist f
97 ex <- doesFileExist f
101 if ex then return f else return h
98 if ex then return f else return h
103− mkLib l = "-l" ++ l ++ " "
106− incdir i = "-I" ++ i ++ " "
109irMain :: TT Name -> Idris LDecl
100irMain :: TT Name -> Idris LDecl
110irMain tm = do i <- ir tm
101irMain tm = do i <- ir tm