@@ -1,8 +1,7 @@
1{-# LANGUAGE CPP #-}
1{-# LANGUAGE CPP #-}
2module IRTS.System(getDataFileName, getDataDir, getTargetDir,getCC,getLibFlags,getIdrisLibDir,
2module IRTS.System(getDataFileName, getDataDir, getTargetDir,getCC,getLibFlags,getIdrisLibDir,
3− getIncFlags, getEnvFlags, getMvn,getExecutablePom, version) where
3+ getIncFlags, getEnvFlags, version) where
6import Data.List.Split
5import Data.List.Split
8import Control.Applicative ((<$>))
7import Control.Applicative ((<$>))
@@ -17,27 +16,18 @@ import Paths_idris (version)
17import Paths_idris
16import Paths_idris
19+overrideDataDirWith :: String -> IO FilePath
20+overrideDataDirWith envVar = do envValue <- lookupEnv envVar
21+ maybe getDataDir return envValue
20getCC :: IO String
23getCC :: IO String
21−getCC = fromMaybe "gcc" <$> environment "IDRIS_CC"
24+getCC = fromMaybe "gcc" <$> lookupEnv "IDRIS_CC"
23getEnvFlags :: IO [String]
26getEnvFlags :: IO [String]
24−getEnvFlags = maybe [] (splitOn " ") <$> environment "IDRIS_CFLAGS"
27+getEnvFlags = maybe [] (splitOn " ") <$> lookupEnv "IDRIS_CFLAGS"
27−#ifdef mingw32_HOST_OS
28−mvnCommand = "mvn.bat"
34−getMvn = fromMaybe mvnCommand <$> environment "IDRIS_MVN"
36−environment :: String -> IO (Maybe String)
37−environment = lookupEnv
39getTargetDir :: IO String
29getTargetDir :: IO String
40−getTargetDir = environment "TARGET" >>= maybe getDataDir return
30+getTargetDir = overrideDataDirWith "TARGET"
42#if defined(FREEBSD) || defined(DRAGONFLY)
32#if defined(FREEBSD) || defined(DRAGONFLY)
43extraLib = ["-L/usr/local/lib"]
33extraLib = ["-L/usr/local/lib"]
@@ -55,9 +45,7 @@ getLibFlags = do dir <- getDataDir
55 return $ ["-L" ++ (dir </> "rts"),
45 return $ ["-L" ++ (dir </> "rts"),
56 "-lidris_rts"] ++ extraLib ++ gmpLib ++ ["-lpthread"]
46 "-lidris_rts"] ++ extraLib ++ gmpLib ++ ["-lpthread"]
58−getIdrisLibDir = do libPath <- environment "IDRIS_LIBRARY_PATH"
59− dir <- maybe getDataDir return libPath
60− return $ addTrailingPathSeparator dir
48+getIdrisLibDir = addTrailingPathSeparator <$> overrideDataDirWith "IDRIS_LIBRARY_PATH"
62#if defined(FREEBSD) || defined(DRAGONFLY)
50#if defined(FREEBSD) || defined(DRAGONFLY)
63extraInclude = ["-I/usr/local/include"]
51extraInclude = ["-I/usr/local/include"]
@@ -66,6 +54,3 @@ extraInclude = []
67getIncFlags = do dir <- getDataDir
55getIncFlags = do dir <- getDataDir
68 return $ ("-I" ++ dir </> "rts") : extraInclude
56 return $ ("-I" ++ dir </> "rts") : extraInclude
70−getExecutablePom = do dir <- getDataDir
71− return $ dir </> "java" </> "executable_pom.xml"