Add install targets, install inplace/lib/platformConstants.
authorAndrey Mokhov <andrey.mokhov@gmail.com>
Sun, 27 Dec 2015 02:13:55 +0000 (02:13 +0000)
committerAndrey Mokhov <andrey.mokhov@gmail.com>
Sun, 27 Dec 2015 02:13:55 +0000 (02:13 +0000)
src/Rules.hs
src/Rules/Generate.hs
src/Rules/Install.hs

index 5516c33..a9ac3e4 100644 (file)
@@ -1,6 +1,7 @@
 module Rules (generateTargets, packageRules) where
 
 import Expression
+import Rules.Install
 import Rules.Package
 import Rules.Resources
 import Settings
@@ -18,7 +19,8 @@ generateTargets = action $ do
             return [ pkgHaddockFile pkg | needHaddock && stage == Stage1 ]
         let programTargets = [ prog | Just prog <- programPath stage <$> pkgs ]
         return $ libTargets ++ programTargets
-    need targets
+
+    need $ targets ++ installTargets
 
 packageRules :: Rules ()
 packageRules = do
index 2121a9c..ccd059f 100644 (file)
@@ -1,5 +1,6 @@
 module Rules.Generate (
-    generatePackageCode, generateRules, includesDependencies
+    generatePackageCode, generateRules,
+    derivedConstantsPath, includesDependencies
     ) where
 
 import Expression
index b592728..fca88fe 100644 (file)
@@ -1,11 +1,19 @@
-module Rules.Install (installRules) where
+module Rules.Install (installTargets, installRules) where
 
 import Expression
 import GHC
+import Rules.Generate
+
+installTargets :: [FilePath]
+installTargets = [ "inplace/lib/template-hsc.h"
+                 , "inplace/lib/platformConstants" ]
 
 installRules :: Rules ()
 installRules = do
-    "inplace/lib/template-hsc.h" %> \out -> do
-        let source = pkgPath hsc2hs -/- "template-hsc.h"
-        putBuild $ "| Copying " ++ source ++ " -> " ++ out
+    "inplace/lib/template-hsc.h"    <~ pkgPath hsc2hs
+    "inplace/lib/platformConstants" <~ derivedConstantsPath
+  where
+    file <~ dir = file %> \out -> do
+        let source = dir -/- takeFileName out
         copyFileChanged source out
+        putSuccess $ "| Installed " ++ source ++ " -> " ++ out