-import MatchPS
-
------------------------------------------------------------------------------
--- GHC modes of operation
-
-modeFlag :: String -> Maybe GhcMode
-modeFlag "-M" = Just $ DoMkDependHS
-modeFlag "--mk-dll" = Just $ DoMkDLL
-modeFlag "-E" = Just $ StopBefore Hsc
-modeFlag "-C" = Just $ StopBefore HCc
-modeFlag "-S" = Just $ StopBefore As
-modeFlag "-c" = Just $ StopBefore Ln
-modeFlag "--make" = Just $ DoMake
-modeFlag "--interactive" = Just $ DoInteractive
-modeFlag _ = Nothing
-
-getGhcMode :: [String]
- -> IO ( [String] -- rest of command line
- , GhcMode
- , String -- "GhcMode" flag
- )
-getGhcMode flags
- = case my_partition modeFlag flags of
- ([] , rest) -> return (rest, DoLink, "") -- default is to do linking
- ([(flag,one)], rest) -> return (rest, one, flag)
- (_ , _ ) ->
- throwDyn (UsageError
- "only one of the flags -M, -E, -C, -S, -c, --make, --interactive, -mk-dll is allowed")