[commit: ghc] wip/nfs-locking: Use fine-grain dependencies in buildPackageDependencies. (4aabd6f)

git at git.haskell.org git at git.haskell.org
Thu Oct 26 23:32:14 UTC 2017


Repository : ssh://git@git.haskell.org/ghc

On branch  : wip/nfs-locking
Link       : http://ghc.haskell.org/trac/ghc/changeset/4aabd6f2c6818c237b569a4d807e1a29ad72f0f0/ghc

>---------------------------------------------------------------

commit 4aabd6f2c6818c237b569a4d807e1a29ad72f0f0
Author: Andrey Mokhov <andrey.mokhov at gmail.com>
Date:   Sat Aug 1 14:16:12 2015 +0100

    Use fine-grain dependencies in buildPackageDependencies.


>---------------------------------------------------------------

4aabd6f2c6818c237b569a4d807e1a29ad72f0f0
 src/Rules/Dependencies.hs | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/Rules/Dependencies.hs b/src/Rules/Dependencies.hs
index 251a233..656e853 100644
--- a/src/Rules/Dependencies.hs
+++ b/src/Rules/Dependencies.hs
@@ -17,17 +17,17 @@ buildPackageDependencies target =
         pkg       = Target.package target
         path      = targetPath stage pkg
         buildPath = path -/- "build"
+        dropBuild = (pkgPath pkg ++) . drop (length buildPath)
     in do
-        (buildPath -/- "haskell.deps") %> \file -> do
-            srcs <- interpretExpr target getHsSources
-            build $ fullTarget target srcs (GhcM stage) [file]
+        (buildPath <//> "*.c.deps") %> \depFile -> do
+            let srcFile = dropBuild . dropExtension $ depFile
+            build $ fullTarget target [srcFile] (GccM stage) [depFile]
 
         (buildPath -/- "c.deps") %> \file -> do
             srcs <- pkgDataList $ CSrcs path
-            deps <- forM srcs $ \src -> do
-                let srcFile = pkgPath pkg -/- src
-                    depFile = buildPath -/- takeFileName src <.> "deps"
-                build $ fullTarget target [srcFile] (GccM stage) [depFile]
-                liftIO . readFile $ depFile
+            deps <- forM srcs $ \src -> readFile' $ buildPath -/- src <.> "deps"
             writeFileChanged file (concat deps)
-            liftIO $ removeFiles buildPath ["*.c.deps"]
+
+        (buildPath -/- "haskell.deps") %> \file -> do
+            srcs <- interpretExpr target getHsSources
+            build $ fullTarget target srcs (GhcM stage) [file]



More information about the ghc-commits mailing list