Validate: by default do show commands
authorThomas Miedema <thomasmiedema@gmail.com>
Tue, 21 Jul 2015 20:45:07 +0000 (22:45 +0200)
committerThomas Miedema <thomasmiedema@gmail.com>
Tue, 21 Jul 2015 21:22:09 +0000 (23:22 +0200)
Show commands being run by default, so you can copy/paste and rerun them
on build failures/warnings.

See Note [Default build system verbosity].

validate

index e72a578..6c33b06 100755 (executable)
--- a/validate
+++ b/validate
@@ -140,9 +140,14 @@ fi
 
 if type gmake > /dev/null 2> /dev/null
 then
-    make="gmake -s"
+    make="gmake"
 else
-    make="make -s"
+    make="make"
+fi
+
+if [ $be_quiet -eq 1 ]; then
+    # See Note [Default build system verbosity].
+    make="$make -s"
 fi
 
 if [ $testsuite_only -eq 0 ]; then
@@ -169,7 +174,21 @@ thisdir=`utils/ghc-pwd/dist-boot/ghc-pwd`
 echo "Validating=YES"       >  mk/are-validating.mk
 echo "ValidateSpeed=$speed" >> mk/are-validating.mk
 echo "ValidateHpc=$hpc"     >> mk/are-validating.mk
-echo "V=0"                  >> mk/are-validating.mk # Less gunk
+
+# Note [Default build system verbosity].
+#
+# From https://ghc.haskell.org/trac/ghc/wiki/Design/BuildSystem:
+#
+#   "The build system should clearly report what it's doing (and sometimes
+#   why), without being too verbose. It should emit actual command lines as
+#   much as possible, so that they can be inspected and cut & pasted."
+#
+# That should be the default. Only suppress commands, by setting V=0 and using
+# `make -s`, when user explicitly asks for it with `./validate --quiet`.
+if [ $be_quiet -eq 1 ]; then
+    # See Note [Default build system verbosity].
+    echo "V=0"                  >> mk/are-validating.mk # Less gunk
+fi
 
 if [ $speed != "FAST" ]; then
     # Build the "extra" packages (see ./packages), to enable more tests.