-----------------------------------------------------------------------------
--- $Id: DriverPhases.hs,v 1.35 2005/03/18 13:39:05 simonmar Exp $
+-- $Id: DriverPhases.hs,v 1.38 2005/05/17 11:01:59 simonmar Exp $
--
-- GHC Driver
--
startPhase, -- :: String -> Phase
phaseInputExt, -- :: Phase -> String
+ isHaskellishSuffix,
+ isHaskellSrcSuffix,
+ isObjectSuffix,
+ isCishSuffix,
+ isExtCoreSuffix,
+ isDynLibSuffix,
+ isHaskellUserSrcSuffix,
+ isSourceSuffix,
+
isHaskellishFilename,
isHaskellSrcFilename,
isObjectFilename,
isSourceFilename -- :: FilePath -> Bool
) where
-import Util ( getFileSuffix )
+import Util ( suffixOf )
import Panic ( panic )
-----------------------------------------------------------------------------
-- The final phase is a pseudo-phase that tells the pipeline to stop.
-- There is no runPhase case for it.
| StopLn -- Stop, but linking will follow, so generate .o file
- deriving (Show)
+ deriving (Eq, Show)
anyHsc :: Phase
anyHsc = Hsc (panic "anyHsc")
startPhase "cc" = Cc
startPhase "cxx" = Cc
startPhase "raw_s" = Mangle
+startPhase "split_s" = SplitMangle
startPhase "s" = As
startPhase "S" = As
startPhase "o" = StopLn
dynlib_suffixes = ["so"]
#endif
-isHaskellishFilename f = getFileSuffix f `elem` haskellish_suffixes
-isHaskellSrcFilename f = getFileSuffix f `elem` haskellish_src_suffixes
-isCishFilename f = getFileSuffix f `elem` cish_suffixes
-isExtCoreFilename f = getFileSuffix f `elem` extcoreish_suffixes
-isObjectFilename f = getFileSuffix f `elem` objish_suffixes
-isHaskellUserSrcFilename f = getFileSuffix f `elem` haskellish_user_src_suffixes
-isDynLibFilename f = getFileSuffix f `elem` dynlib_suffixes
-
-isSourceFilename :: FilePath -> Bool
-isSourceFilename f =
- isHaskellishFilename f ||
- isCishFilename f
+isHaskellishSuffix s = s `elem` haskellish_suffixes
+isHaskellSrcSuffix s = s `elem` haskellish_src_suffixes
+isCishSuffix s = s `elem` cish_suffixes
+isExtCoreSuffix s = s `elem` extcoreish_suffixes
+isObjectSuffix s = s `elem` objish_suffixes
+isHaskellUserSrcSuffix s = s `elem` haskellish_user_src_suffixes
+isDynLibSuffix s = s `elem` dynlib_suffixes
+
+isSourceSuffix suff = isHaskellishSuffix suff || isCishSuffix suff
+
+isHaskellishFilename f = isHaskellishSuffix (suffixOf f)
+isHaskellSrcFilename f = isHaskellSrcSuffix (suffixOf f)
+isCishFilename f = isCishSuffix (suffixOf f)
+isExtCoreFilename f = isExtCoreSuffix (suffixOf f)
+isObjectFilename f = isObjectSuffix (suffixOf f)
+isHaskellUserSrcFilename f = isHaskellUserSrcSuffix (suffixOf f)
+isDynLibFilename f = isDynLibSuffix (suffixOf f)
+isSourceFilename f = isSourceSuffix (suffixOf f)
+
+