Keep C main separate from rts lib and link it in for standalone progs
[ghc-hetmet.git] / ghc / Main.hs
index 766577e..bdf9e63 100644 (file)
 
 module Main (main) where
 
-#include "HsVersions.h"
-
 -- The official GHC API
 import qualified GHC
 import GHC             ( DynFlags(..), HscTarget(..),
                           GhcMode(..), GhcLink(..),
-                         LoadHowMuch(..), dopt, DynFlag(..) )
+                         LoadHowMuch(..), dopt, DynFlag(..),
+                          defaultCallbacks )
 import CmdLineParser
 
 -- Implementations of the various modes (--show-iface, mkdependHS. etc.)
@@ -153,7 +152,11 @@ main =
   let flagWarnings = staticFlagWarnings
                   ++ modeFlagWarnings
                   ++ dynamicFlagWarnings
-  liftIO $ handleFlagWarnings dflags2 flagWarnings
+
+  handleSourceError (\e -> do
+       GHC.printExceptionAndWarnings e
+       liftIO $ exitWith (ExitFailure 1)) $
+    handleFlagWarnings dflags2 flagWarnings
 
         -- make sure we clean up after ourselves
   GHC.defaultCleanupHandler dflags2 $ do
@@ -511,7 +514,7 @@ doMake srcs  = do
 
 doShowIface :: DynFlags -> FilePath -> IO ()
 doShowIface dflags file = do
-  hsc_env <- newHscEnv dflags
+  hsc_env <- newHscEnv defaultCallbacks dflags
   showIface hsc_env file
 
 -- ---------------------------------------------------------------------------