import Exception
import Data.IORef ( readIORef )
-import Distribution.System
import System.Directory
import System.FilePath
import System.IO
-- These symbols are imported into the stub.c file via RtsAPI.h, and the
-- way we do the import depends on whether we're currently compiling
-- the base package or not.
- ++ (if cTargetOS == Windows &&
+ ++ (if platformOS (targetPlatform dflags) == OSMinGW32 &&
thisPackage dflags == basePackageId
then [ "-DCOMPILING_BASE_PACKAGE" ]
else [])
return (LlvmMangle, output_fn)
where
-- Bug in LLVM at O3 on OSX.
- llvmOpts = if cTargetOS == OSX
+ llvmOpts = if platformOS (targetPlatform dflags) == OSDarwin
then ["-O1", "-O2", "-O2"]
else ["-O1", "-O2", "-O3"]
-- Permit the linker to auto link _symbol to _imp_symbol.
-- This lets us link against DLLs without needing an "import library".
- ++ (if cTargetOS == Windows
+ ++ (if platformOS (targetPlatform dflags) == OSMinGW32
then ["-Wl,--enable-auto-import"]
else [])
exeFileName :: DynFlags -> FilePath
exeFileName dflags
| Just s <- outputFile dflags =
- if cTargetOS == Windows
+ if platformOS (targetPlatform dflags) == OSMinGW32
then if null (takeExtension s)
then s <.> "exe"
else s
else s
| otherwise =
- if cTargetOS == Windows
+ if platformOS (targetPlatform dflags) == OSMinGW32
then "main.exe"
else "a.out"