summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Gohla <b.gohla@gmx.de>2019-08-30 20:13:08 +0200
committerMarge Bot <ben+marge-bot@smart-cactus.org>2019-09-23 17:53:23 -0400
commit9fe4d2df9f728f6bc799001b47c861619a90db11 (patch)
tree6080e229fcfb9be091a725b9f54bbbd2ee04030a
parentb0e3b173566e04eeee9241a700ffb3998d13a72c (diff)
downloadhaskell-9fe4d2df9f728f6bc799001b47c861619a90db11.tar.gz
explicit dependence on makeinfo
-rw-r--r--hadrian/cfg/system.config.in1
-rw-r--r--hadrian/src/Builder.hs5
-rw-r--r--hadrian/src/Rules/Documentation.hs12
3 files changed, 13 insertions, 5 deletions
diff --git a/hadrian/cfg/system.config.in b/hadrian/cfg/system.config.in
index e826db035a..35ba2c4052 100644
--- a/hadrian/cfg/system.config.in
+++ b/hadrian/cfg/system.config.in
@@ -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
diff --git a/hadrian/src/Builder.hs b/hadrian/src/Builder.hs
index 892f89772d..c2e1056f43 100644
--- a/hadrian/src/Builder.hs
+++ b/hadrian/src/Builder.hs
@@ -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."
diff --git a/hadrian/src/Rules/Documentation.hs b/hadrian/src/Rules/Documentation.hs
index 74c877a4e3..1326cb5a89 100644
--- a/hadrian/src/Rules/Documentation.hs
+++ b/hadrian/src/Rules/Documentation.hs
@@ -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 -----------------------------------