summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 ()