Move Hadrian executable to /hadrian.
[ghc.git] / build.sh
index de9b9d7..f7d06c2 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -1,48 +1,51 @@
 #!/usr/bin/env bash
 
+set -euo pipefail
+
 # readlink on os x, doesn't support -f, to prevent the
 # need of installing coreutils (e.g. through brew, just
 # for readlink, we use the follownig substitute.
 #
 # source: http://stackoverflow.com/a/1116890
 function rl {
-    TARGET_FILE=$1
+    TARGET_FILE="$1"
 
     cd "$(dirname "$TARGET_FILE")"
-    TARGET_FILE=$(basename "$TARGET_FILE")
+    TARGET_FILE="$(basename "$TARGET_FILE")"
 
     # Iterate down a (possible) chain of symlinks
     while [ -L "$TARGET_FILE" ]
     do
-        TARGET_FILE=$(readlink "$TARGET_FILE")
+        TARGET_FILE="$(readlink "$TARGET_FILE")"
         cd "$(dirname "$TARGET_FILE")"
-        TARGET_FILE=$(basename "$TARGET_FILE")
+        TARGET_FILE="$(basename "$TARGET_FILE")"
     done
 
-    # Compute the canonicalized name by finding the physical path 
+    # Compute the canonicalized name by finding the physical path
     # for the directory we're in and appending the target file.
-    PHYS_DIR=`pwd -P`
-    RESULT=$PHYS_DIR/$TARGET_FILE
-    echo $RESULT
+    PHYS_DIR="$(pwd -P)"
+    RESULT="$PHYS_DIR/$TARGET_FILE"
+    echo "$RESULT"
 }
 
-set -euo pipefail
-
 root="$(dirname "$(rl "$0")")"
 
-mkdir -p "$root/.shake"
-
-ghc                           \
-    "$root/src/Main.hs"       \
-    -Wall                     \
-    -i"$root/src"             \
-    -rtsopts                  \
-    -with-rtsopts=-I0         \
-    -outputdir="$root/.shake" \
-    -j -O                      \
-    -o "$root/.shake/build"
-
-"$root/.shake/build"       \
+mkdir -p "$root/../_build/hadrian"
+
+ghc                                      \
+    "$root/src/Main.hs"                  \
+    -Wall                                \
+    -fno-warn-name-shadowing             \
+    -XRecordWildCards                    \
+    -i"$root/src"                        \
+    -rtsopts                             \
+    -with-rtsopts=-I0                    \
+    -threaded                            \
+    -outputdir="$root/../_build/hadrian" \
+    -j -O                                \
+    -o "$root/hadrian"
+
+"$root/hadrian"            \
     --lint                 \
     --directory "$root/.." \
     --colour               \