explicit dependence on makeinfo
authorBjörn Gohla <b.gohla@gmx.de>
Fri, 30 Aug 2019 18:13:08 +0000 (20:13 +0200)
committerMarge Bot <ben+marge-bot@smart-cactus.org>
Mon, 23 Sep 2019 21:53:23 +0000 (17:53 -0400)
hadrian/cfg/system.config.in
hadrian/src/Builder.hs
hadrian/src/Rules/Documentation.hs

index e826db0..35ba2c4 100644 (file)
@@ -24,6 +24,7 @@ system-ghc-pkg = @GhcPkgCmd@
 tar            = @TarCmd@
 patch          = @PatchCmd@
 xelatex        = @XELATEX@
+makeinfo       = @MAKEINFO@
 
 # Python 3 is required to run test driver.
 # See: https://github.com/ghc/ghc/blob/master/testsuite/mk/boilerplate.mk#L220
index 892f897..c2e1056 100644 (file)
@@ -137,6 +137,7 @@ data Builder = Alex
              | Tar TarMode
              | Unlit
              | Xelatex
+             | Makeinfo
              deriving (Eq, Generic, Show)
 
 instance Binary   Builder
@@ -279,6 +280,9 @@ instance H.Builder Builder where
                     Exit _ <- cmd echo [path] (buildArgs ++ [input])
                     return ()
 
+                Makeinfo -> do
+                  cmd echo [path] "--no-split" [ "-o", output] [input]
+
                 _  -> cmd echo [path] buildArgs
 
 -- TODO: Some builders are required only on certain platforms. For example,
@@ -316,6 +320,7 @@ systemBuilderPath builder = case builder of
     Sphinx _        -> fromKey "sphinx-build"
     Tar _           -> fromKey "tar"
     Xelatex         -> fromKey "xelatex"
+    Makeinfo        -> fromKey "makeinfo"
     _               -> error $ "No entry for " ++ show builder ++ inCfg
   where
     inCfg = " in " ++ quote configFile ++ " file."
index 74c877a..1326cb5 100644 (file)
@@ -262,7 +262,7 @@ buildSphinxPdf path = do
             build $ target docContext Xelatex [path <.> "tex"] [dir]
             copyFileUntracked (dir -/- path <.> "pdf") file
 
------------------------------------- Info -- -----------------------------------
+------------------------------------ Info --------------------------------------
 
 -- | Build the user guide as an Info hypertext
 buildSphinxInfoGuide :: Rules ()
@@ -276,10 +276,12 @@ buildSphinxInfoGuide = do
             need (map (rstFilesDir -/-) rstFiles)
             build $ target docContext (Sphinx Info) [pathPath path] [dir]
             -- Sphinx outputs texinfo source and a makefile, the
-            -- default target actually produces the target for this
-            -- build rule.
-            build $ target docContext (Make dir) ["Makefile"] [dir]
-            copyFileUntracked (dir -/- path <.> "info") file
+            -- default target of which actually produces the target
+            -- for this build rule.
+            let p = dir -/- path
+            let [texipath, infopath] = map (p <.>) ["texi", "info"]
+            build $ target docContext (Makeinfo) [texipath] [infopath]
+            copyFileUntracked infopath file
 
 ------------------------------------ Archive -----------------------------------