summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2020-10-17 16:05:57 -0400
committerMarge Bot <ben+marge-bot@smart-cactus.org>2020-10-27 14:02:00 -0400
commitf3d8ab2ef6ffe30ec91c795e0223392dd96ea61a (patch)
treef73fa4af01f01eab917775d8e8df910872bb21b3
parent4950dd075ce79e13d24362d669e134ed5a4ddec7 (diff)
downloadhaskell-f3d8ab2ef6ffe30ec91c795e0223392dd96ea61a.tar.gz
build system: Clean mingw tarballs
Tamar noticed in !4293 that the build systems fail to clean up the mingw tarballs directory (`ghc-tarballs`). Fix this in both the make build system and Hadrian.
-rw-r--r--ghc.mk7
-rw-r--r--hadrian/src/Rules/Clean.hs5
2 files changed, 12 insertions, 0 deletions
diff --git a/ghc.mk b/ghc.mk
index 7546c21f20..692962d10d 100644
--- a/ghc.mk
+++ b/ghc.mk
@@ -1424,6 +1424,13 @@ distclean : clean
# Don't delete 'inplace' itself, it contains source files.
$(call removeTrees,inplace/mingw)
+# Remove the download tarballs. This is because updating
+# the tarballs doesn't remove old ones. After a tarbal is updated
+# you end up with both in your tree and get a franken build.
+# The downside here is that a maintainer clean will trigger more
+# bandwidth usage from haskell.org
+ $(call removeTrees,ghc-tarballs)
+
# Remove the fs utilities.
$(call removeFiles,utils/lndir/fs.h)
$(call removeFiles,utils/lndir/fs.c)
diff --git a/hadrian/src/Rules/Clean.hs b/hadrian/src/Rules/Clean.hs
index abf6933b56..48c1cb616f 100644
--- a/hadrian/src/Rules/Clean.hs
+++ b/hadrian/src/Rules/Clean.hs
@@ -18,6 +18,11 @@ cleanSourceTree = do
forM_ [Stage0 ..] $ removeDirectory . (path -/-) . stageString
removeDirectory "sdistprep"
cleanFsUtils
+ cleanMingwTarballs
+
+cleanMingwTarballs :: Action ()
+cleanMingwTarballs = do
+ liftIO $ IO.removeDirectoryRecursive "ghc-tarballs"
-- Clean all temporary fs files copied by configure into the source folder
cleanFsUtils :: Action ()