Fix wrapper build rules
authorAndrey Mokhov <andrey.mokhov@gmail.com>
Tue, 29 Aug 2017 09:23:52 +0000 (10:23 +0100)
committerAndrey Mokhov <andrey.mokhov@gmail.com>
Tue, 29 Aug 2017 09:23:52 +0000 (10:23 +0100)
See #403

src/Rules/Program.hs

index 13bfd34..0211cfe 100644 (file)
@@ -14,6 +14,7 @@ import Settings.Packages.Rts
 import Target
 import Utilities
 
+-- | TODO: Drop code duplication
 buildProgram :: [(Resource, Int)] -> Package -> Rules ()
 buildProgram rs package = do
     forM_ [Stage0 ..] $ \stage -> do
@@ -25,11 +26,19 @@ buildProgram rs package = do
             buildBinaryAndWrapper rs context' bin
 
         -- Rules for the GHC package, which is built 'inplace'
-        when (package == ghc) $
+        when (package == ghc) $ do
             inplaceBinPath -/- programName context <.> exe %> \bin -> do
                 context' <- programContext stage package
                 buildBinaryAndWrapper rs context' bin
 
+            inplaceLibBinPath -/- programName context <.> exe %> \bin -> do
+                context' <- programContext stage package
+                buildBinary rs context' bin
+
+            inplaceLibBinPath -/- programName context <.> "bin" %> \bin -> do
+                context' <- programContext stage package
+                buildBinary rs context' bin
+
     -- Rules for other programs built in inplace directories
     when (package /= ghc) $ do
         let context0 = vanillaContext Stage0 package -- TODO: get rid of context0