import qualified GHC
import GHC ( Session, ModSummary(..) )
import DynFlags
-import Util ( escapeSpaces, splitFilename, joinFileExt )
+import Util
import HscTypes ( HscEnv, IsBootInterface, msObjFilePath, msHsFilePath )
import SysTools ( newTempName )
import qualified SysTools
import Control.Exception
import System.Exit ( ExitCode(..), exitWith )
import System.Directory
+import System.FilePath
import System.IO
import SYSTEM_IO_ERROR ( isEOFError )
import Control.Monad ( when )
-----------------------------
writeDependency :: Handle -> [FilePath] -> FilePath -> IO ()
-- (writeDependency h [t1,t2] dep) writes to handle h the dependency
--- t1 t2 : dep
+-- t1 t2 : dep
writeDependency hdl targets dep
- = hPutStrLn hdl (unwords (map escapeSpaces targets) ++ " : "
- ++ escapeSpaces dep)
+ = hPutStrLn hdl (unwords (map forOutput targets) ++ " : " ++ forOutput dep)
+ where forOutput = escapeSpaces . reslash Forwards . normalise
-----------------------------
insertSuffixes
-- Lots of other things will break first!
insertSuffixes file_name extras
- = file_name : [ basename `joinFileExt` (extra ++ "_" ++ suffix) | extra <- extras ]
+ = file_name : [ basename <.> (extra ++ "_" ++ suffix) | extra <- extras ]
where
- (basename, suffix) = splitFilename file_name
+ (basename, suffix) = case splitExtension file_name of
+ -- Drop the "." from the extension
+ (b, s) -> (b, drop 1 s)
-----------------------------------------------------------------