-- Various other random stuff that we need
import Config ( cProjectVersion, cBooterVersion, cProjectName )
import Packages ( dumpPackages, initPackages )
-import DriverPhases ( Phase(..), isSourceSuffix, isSourceFilename, anyHsc,
+import DriverPhases ( Phase(..), isSourceFilename, anyHsc,
startPhase, isHaskellSrcFilename )
import StaticFlags ( staticFlags, v_Ld_inputs )
+import DynFlags ( defaultDynFlags )
import BasicTypes ( failed )
import Util
import Panic
-- Standard Haskell libraries
import EXCEPTION ( throwDyn )
import IO
-import Directory ( doesFileExist, doesDirectoryExist )
+import Directory ( doesDirectoryExist )
import System ( getArgs, exitWith, ExitCode(..) )
import Monad
import List
-- GHC's command-line interface
main =
- GHC.defaultErrorHandler $ do
+ GHC.defaultErrorHandler defaultDynFlags $ do
argv0 <- getArgs
argv1 <- GHC.init argv0
--
verifyOutputFiles :: DynFlags -> IO ()
verifyOutputFiles dflags = do
- let odir = outputDir dflags
+ let odir = objectDir dflags
when (isJust odir) $ do
let dir = fromJust odir
flg <- doesDirectoryExist dir
doMake sess srcs = do
let (hs_srcs, non_hs_srcs) = partition haskellish srcs
- haskellish (f,Nothing) = looksLikeModuleName f || isHaskellSrcFilename f
+ haskellish (f,Nothing) =
+ looksLikeModuleName f || isHaskellSrcFilename f || '.' `notElem` f
haskellish (f,Just phase) =
phase `notElem` [As, Cc, CmmCpp, Cmm, StopLn]