X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Setup.hs;h=33d56cce9ef25ca32d34dd791d245f219219c85b;hb=a5cf4443c75b3259ee7184286b290cc43535c884;hp=a983953125c14ce219d1301c2f62a96cacdb7b2c;hpb=4196430b562c8104a60d0e9274ada615fa8d9d51;p=ghc-base.git diff --git a/Setup.hs b/Setup.hs index a983953..33d56cc 100644 --- a/Setup.hs +++ b/Setup.hs @@ -14,28 +14,20 @@ import Distribution.Simple.LocalBuildInfo import Distribution.Simple.Utils import System.Cmd import System.FilePath -import System.Info main :: IO () main = do let hooks = defaultUserHooks { - confHook = add_extra_deps - $ confHook defaultUserHooks, buildHook = build_primitive_sources $ filter_modules_hook $ buildHook defaultUserHooks, makefileHook = build_primitive_sources $ filter_modules_hook $ makefileHook defaultUserHooks, - regHook = add_extra_libs - $ regHook defaultUserHooks, instHook = filter_modules_hook $ instHook defaultUserHooks } defaultMainWithHooks hooks type Hook a = PackageDescription -> LocalBuildInfo -> UserHooks -> a -> IO () -type ConfHook = PackageDescription -> ConfigFlags -> IO LocalBuildInfo - --- type PDHook = PackageDescription -> ConfigFlags -> IO () build_primitive_sources :: Hook a -> Hook a build_primitive_sources f pd lbi uhs x @@ -54,53 +46,11 @@ build_primitive_sources f pd lbi uhs x filter_modules_hook :: Hook a -> Hook a filter_modules_hook f pd lbi uhs x - = let build_filter = case compilerFlavor $ compiler lbi of - GHC -> forGHCBuild - _ -> isPortableBuild - lib' = case library pd of + = let lib' = case library pd of Just lib -> - let ems = filter build_filter (exposedModules lib) + let ems = filter ("GHC.Prim" /=) (exposedModules lib) in lib { exposedModules = ems } Nothing -> error "Expected a library" pd' = pd { library = Just lib' } in f pd' lbi uhs x -isPortableBuild :: String -> Bool -isPortableBuild s - | "GHC" `isPrefixOf` s = False - | "Data.Generics" `isPrefixOf` s = False - | otherwise = s `notElem` ["Foreign.Concurrent", "System.Timeout"] - -forGHCBuild :: String -> Bool -forGHCBuild = ("GHC.Prim" /=) - -add_extra_deps :: ConfHook -> ConfHook -add_extra_deps f pd cf - = do lbi <- f pd cf - case compilerFlavor (compiler lbi) of - GHC -> - do -- Euch. We should just add the right thing to the lbi - -- ourselves rather than rerunning configure. - let pd' = pd { buildDepends = Dependency "rts" AnyVersion - : buildDepends pd } - f pd' cf - _ -> - return lbi - -add_extra_libs :: Hook a -> Hook a -add_extra_libs f pd lbi uhs x - = let pd' = if (os == "mingw32") && (compilerFlavor (compiler lbi) == GHC) - then case library pd of - Just lib -> - let lib_bi = libBuildInfo lib - lib_bi' = lib_bi { extraLibs = "wsock32" - : "msvcrt" - : "kernel32" - : "user32" - : "shell32" - : extraLibs lib_bi } - lib' = lib { libBuildInfo = lib_bi' } - in pd { library = Just lib' } - Nothing -> error "Expected a library" - else pd - in f pd' lbi uhs x