Make `git clean -nxd` silent after `make distclean`
authorSebastian Graf <sebastian.graf@kit.edu>
Tue, 8 Jan 2019 12:45:02 +0000 (13:45 +0100)
committerSebastian Graf <sgraf1337@gmail.com>
Tue, 15 Jan 2019 12:15:59 +0000 (07:15 -0500)
Also check that invariant in CI: After a `make distclean`
`git clean -nxd` should find no files.

The hope is that this catches cases were a `make clean` would forget to
list a `.gitignore`d file that should either be registered as a
`(DIST_)CLEAN_FILES` or should be unignored and committed into the
repository.

.gitlab-ci.yml
nofib-analyse/Makefile
real/maillist/Makefile

index 1acca61..8b6c308 100644 (file)
@@ -11,3 +11,13 @@ validate:
     - make boot mode=fast
     - "make mode=fast NoFibRuns=1 2>&1 | tee log"
     - "nofib-analyse/nofib-analyse log"
+    - |
+      # The following checks that `make distclean` removes any files reported
+      # by `git clean -fxd`
+      make distclean
+      files=$(git clean -nxd | cut -d" " -f3 | sed "/log/d")
+      if ! [ -z $files ]
+      then
+        echo "The following files weren't cleaned:\n$files"
+        exit 1
+      fi
index 5691121..0e9236b 100644 (file)
@@ -10,8 +10,17 @@ all :: $(PROG)
 
 boot :: $(PROG)
 
-clean:
-       rm -f $(PROG)
+# This clean hierarchy mirrors mk/ghc-target.mk.
+# See mk/ghc-paths.mk for the semantics.
+
+.PHONY: mostlyclean clean distclean maintainer-clean
+
+mostlyclean::
        rm -f CmdLine.hi GenUtils.hi Main.hi Slurp.hi
        rm -f CmdLine.o  GenUtils.o  Main.o  Slurp.o
 
+clean:: mostlyclean
+       rm -f $(PROG)
+
+distclean:: clean
+maintainer-clean:: distclean
index c9a17b2..f575874 100644 (file)
@@ -5,3 +5,5 @@ include $(TOP)/mk/target.mk
 FAST_OPTS = runtime_files/fast
 NORM_OPTS = runtime_files/norm
 SLOW_OPTS = runtime_files/slow
+
+CLEAN_FILES += runtime_files/*.tex