{-# OPTIONS -fno-warn-incomplete-patterns #-}
-----------------------------------------------------------------------------
--- $Id: Main.hs,v 1.57 2001/02/28 11:44:39 simonpj Exp $
+-- $Id: Main.hs,v 1.59 2001/03/06 11:23:46 simonmar Exp $
--
-- GHC Driver program
--
#endif
import CompManager
+import ParsePkgConf
import DriverPipeline
import DriverState
import DriverFlags
import Finder ( initFinder )
import CmStaticInfo
import Config
+import Outputable
import Util
-
import Concurrent
import Directory
import IOExts
else do am_inplace <- doesFileExist inplace_pkgconfig
if am_inplace
then writeIORef v_Path_package_config inplace_pkgconfig
- else throwDyn (OtherError "can't find package.conf")
+ else throwDyn (OtherError ("Can't find package.conf in " ++ inplace_pkgconfig))
-- set the location of our various files
if am_installed
-- read the package configuration
conf_file <- readIORef v_Path_package_config
- contents <- readFile conf_file
- let pkg_details = read contents -- ToDo: faster
+ r <- parsePkgConf conf_file
+ case r of {
+ Left err -> throwDyn (OtherError (showSDoc err));
+ Right pkg_details -> do
+
writeIORef v_Package_details pkg_details
-- find the phase to stop after (i.e. -E, -C, -c, -S flags)
when (mode == DoMkDependHS) endMkDependHS
when (mode == DoLink) (doLink o_files)
when (mode == DoMkDLL) (doMkDLL o_files)
-
+ }
-- grab the last -B option on the command line, and
-- set topDir to its value.
setTopDir :: [String] -> IO [String]