+# Flags:
+# --no-clean: don't make clean first, just carry on from
+# a previous interrupted validation run
+# --testsuite-only: don't build the compiler, just run
+# the test suite
+# --hpc: build stage2 with -fhpc, and see how much of the
+# compiler the test suite covers.
+# 2008-07-01: 63% slower than the default.
+# HTML generated here: testsuite/hpc_output/hpc_index.html
+# --fast: Default. Opposite to --slow.
+# --slow: Build stage2 with -DDEBUG.
+# 2008-07-01: 14% slower than the default.
+
+set -e
+
+no_clean=0
+testsuite_only=0
+hpc=NO
+slow=NO
+
+while [ $# -gt 0 ]
+do
+ case "$1" in
+ --no-clean)
+ no_clean=1
+ ;;
+ --testsuite-only)
+ testsuite_only=1
+ ;;
+ --hpc)
+ hpc=YES
+ ;;
+ --slow)
+ slow=YES
+ ;;
+ --fast)
+ slow=NO
+ ;;
+ *)
+ echo "Bad argument: $1" >&2
+ exit 1;;
+ esac
+ shift
+done
+
+if [ "$CPUS" = "" ]; then
+ threads=2
+else
+ threads=$((($CPUS + 1) * 2)) # `expr $CPUS + 1`