Drop orderOnly dependency on GMP objects
authorAndrey Mokhov <andrey.mokhov@gmail.com>
Sun, 22 May 2016 00:19:16 +0000 (01:19 +0100)
committerAndrey Mokhov <andrey.mokhov@gmail.com>
Sun, 22 May 2016 00:19:16 +0000 (01:19 +0100)
src/Rules/Gmp.hs
src/Rules/Library.hs

index 845ba6e..f761639 100644 (file)
@@ -1,4 +1,4 @@
-module Rules.Gmp (gmpRules) where
+module Rules.Gmp (gmpRules, gmpContext) where
 
 import Base
 import Builder
index 2e59755..edbdb52 100644 (file)
@@ -8,9 +8,9 @@ import qualified System.Directory as IO
 import Base
 import Context
 import Expression
-import GHC
 import Oracles.PackageData
 import Rules.Actions
+import Rules.Gmp
 import Settings
 import Target
 
@@ -75,7 +75,7 @@ buildPackageGhciLibrary context@Context {..} = priority 2 $ do
             build $ Target context Ld objs [obj]
 
 -- TODO: Get rid of code duplication and simplify. See also src2dep.
--- Given a 'Context' and a 'FilePath' to a source file, compute the 'FilePath'
+-- Given a 'Context' and a 'FilePath' to a source file, compute the 'FilePath'
 -- to its object file. For example, in Context Stage1 rts threaded:
 -- * "Task.c"                          -> "_build/stage1/rts/Task.thr_o"
 -- * "_build/stage1/rts/sm/Evac_thr.c" -> "_build/stage1/rts/sm/Evac_thr.thr_o"
@@ -90,12 +90,12 @@ cSources context = interpretInContext context $ getPkgDataList CSrcs
 hSources :: Context -> Action [FilePath]
 hSources context = do
     modules <- interpretInContext context $ getPkgDataList Modules
-    -- GHC.Prim is special: we do not build it
+    -- GHC.Prim is special: we do not build it.
     return . map (replaceEq '.' '/') . filter (/= "GHC.Prim") $ modules
 
 extraObjects :: Context -> Action [FilePath]
-extraObjects (Context _ package _)
-    | package == integerGmp = do
-        orderOnly [gmpLibraryH] -- TODO: move this dependency elsewhere, #113?
+extraObjects context
+    | context == gmpContext = do
+        need [gmpLibraryH] -- TODO: Move this dependency elsewhere, #113?
         map unifyPath <$> getDirectoryFiles "" [gmpObjects -/- "*.o"]
     | otherwise         = return []