GHC new build system megapatch
[ghc-hetmet.git] / validate
index 784372d..6229763 100644 (file)
--- a/validate
+++ b/validate
@@ -45,33 +45,46 @@ do
     shift
 done
 
-if [ $testsuite_only -eq 0 ]; then
-
-if [ $no_clean -eq 0 ] && [ -f mk/config.mk ]; then
-    make distclean
-fi
-
-case $OSTYPE in
-    cygwin|msys) config_args=--build=i386-unknown-mingw32
-        if [ -f c:/mingw/bin/gcc.exe ]
-        then
-            config_args="$config_args --with-gcc=c:/mingw/bin/gcc"
-        fi
-        ;;
-esac
-
 if [ "$CPUS" = "" ]; then
     threads=2
 else
-    threads=`expr $CPUS + 1`
+    threads=$(($CPUS + 1)) # `expr $CPUS + 1`
 fi
 
-sh boot
-./configure "--prefix=`pwd`/inst" $config_args
+if [ $testsuite_only -eq 0 ]; then
+
+if [ $no_clean -eq 0 ]; then
+    if [ -f mk/config.mk ]; then
+        make distclean
+    fi
+
+    INSTDIR=`pwd`/inst
+    if [ "$OSTYPE" = "cygwin" ]
+    then
+        INSTDIR=`cygpath -m "$INSTDIR"`
+    fi
+    case $OSTYPE in
+        cygwin|msys) config_args=--build=i386-unknown-mingw32
+            if [ -f c:/mingw/bin/gcc.exe ]
+            then
+                config_args="$config_args --with-gcc=c:/mingw/bin/gcc"
+            fi
+            if [ -f c:/mingw/bin/ld.exe ]
+            then
+                config_args="$config_args --with-ld=c:/mingw/bin/ld"
+            fi
+            ;;
+    esac
+
+    sh boot
+    ./configure --prefix="$INSTDIR" $config_args
+fi
 
 thisdir=`utils/pwd/pwd forwardslash`
 
-make Validating=YES -j$threads ValidateHpc=$hpc ValidateSlow=$slow
+echo "Validating=YES" > mk/are-validating.mk
+
+make -j$threads ValidateHpc=$hpc ValidateSlow=$slow
 fi # testsuite-only
 
 if [ "$hpc" = YES ]
@@ -84,7 +97,7 @@ then
     rm -f $HPCTIXFILE
 fi
 
-make Validating=YES -C testsuite/tests/ghc-regress fast stage=2 CLEANUP=1 THREADS=$threads 2>&1 | tee testlog
+make -C testsuite/tests/ghc-regress fast stage=2 CLEANUP=1 THREADS=$threads 2>&1 | tee testlog
 
 if [ "$hpc" = YES ]
 then
@@ -107,6 +120,14 @@ the minimal testing procedure, please do further testing as necessary.
 When you are satisfied that you haven't broken anything, go ahead and
 push/send your patches.
 EOF
+        if grep -q "^[^#]" mk/validate.mk
+        then
+            cat <<EOF
+
+WARNING: You seem to have things set in mk/validate.mk. Please check
+that it is OK before pushing.
+EOF
+        fi
     else
         cat <<EOF
 I didn't find any problems, but this wasn't a complete validate run,