Allow validation with Hadrian built with Stack [skip ci]
authorSylvain Henry <sylvain@haskus.fr>
Thu, 12 Sep 2019 21:05:03 +0000 (23:05 +0200)
committerMarge Bot <ben+marge-bot@smart-cactus.org>
Mon, 16 Sep 2019 17:32:22 +0000 (13:32 -0400)
validate

index 1aa7ddf..36dd024 100755 (executable)
--- a/validate
+++ b/validate
@@ -26,6 +26,7 @@ Flags:
   --quiet           More pretty build log.
                     See Note [Default build system verbosity].
   --hadrian         Build the compiler and run the tests through hadrian.
+  --stack           Use Stack to build Hadrian and the Stage 1 compiler.
   --help            shows this usage help.
 
   validate runs 'make -j\$THREADS', where by default THREADS is the number of
@@ -56,6 +57,7 @@ be_quiet=0
 # mk/config.mk.in
 tar_comp=gzip
 use_hadrian=NO
+use_stack=NO
 
 while [ $# -gt 0 ]
 do
@@ -88,6 +90,9 @@ do
        use_hadrian=YES
        hadrian_build_root=_validatebuild
        ;;
+    --stack)
+       use_stack=YES
+       ;;
     --help)
         show_help
         exit 0;;
@@ -154,9 +159,19 @@ then
    $make -C utils/checkUniques
 else
     # Just build hadrian.
-    hadrian/build.sh --help > /dev/null
-    cd hadrian
-    hadrian_cmd=$(cabal new-exec -- which hadrian)
+    if [ "$use_stack" = "NO" ]
+    then
+       hadrian/build.sh --help > /dev/null
+       cd hadrian
+       hadrian_cmd=$(cabal new-exec -- which hadrian)
+    else
+       if [ $no_clean -eq 0 ]; then
+          rm -rf hadrian/.stack-work
+       fi
+       hadrian/build.stack.sh --help > /dev/null
+       cd hadrian
+       hadrian_cmd=$(stack exec -- which hadrian)
+    fi
     cd ..
     # TODO: define a hadrian Flavour that mimics
     # mk/flavours/validate.mk and use it here