Don't generate stub files when -fno-code is given.
[ghc-hetmet.git] / ghc / compiler / main / DriverPhases.hs
index 693c4e1..6e94531 100644 (file)
@@ -1,5 +1,5 @@
 -----------------------------------------------------------------------------
--- $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
 --
@@ -14,6 +14,15 @@ module DriverPhases (
    startPhase,         -- :: String -> Phase
    phaseInputExt,      -- :: Phase -> String
 
+   isHaskellishSuffix, 
+   isHaskellSrcSuffix,
+   isObjectSuffix,
+   isCishSuffix,
+   isExtCoreSuffix,
+   isDynLibSuffix,
+   isHaskellUserSrcSuffix,
+   isSourceSuffix,
+
    isHaskellishFilename, 
    isHaskellSrcFilename,
    isObjectFilename,
@@ -24,7 +33,7 @@ module DriverPhases (
    isSourceFilename         -- :: FilePath -> Bool
  ) where
 
-import Util            ( getFileSuffix )
+import Util            ( suffixOf )
 import Panic           ( panic )
 
 -----------------------------------------------------------------------------
@@ -74,7 +83,7 @@ data Phase
        -- 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")
@@ -141,6 +150,7 @@ startPhase "C"        = Cc
 startPhase "cc"       = Cc
 startPhase "cxx"      = Cc
 startPhase "raw_s"    = Mangle
+startPhase "split_s"  = SplitMangle
 startPhase "s"        = As
 startPhase "S"        = As
 startPhase "o"        = StopLn
@@ -197,15 +207,23 @@ dynlib_suffixes = ["dylib"]
 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)
+
+