@@ -26,7 +26,7 @@ if [ -d "$ENV_DIR" ]; then
2626fi
2727
2828WORK_DIR=/app
29−cp -R "$BUILD_DIR/." "$WORK_DIR"
29+cp -Rp "$BUILD_DIR/." "$WORK_DIR"
3030mkdir -p "$WORK_DIR/vendor/bin"
3131mkdir -p "$WORK_DIR/vendor/ghc-libs"
3232
@@ -45,7 +45,7 @@ function set-default-env (){
4545}
4646
4747export LANG=en_US.UTF-8
48−export LIBRARY_PATH=$WORK_DIR/vendor/ghc-libs:/usr/lib:$LIBRARY_PATH
48+export LIBRARY_PATH=$WORK_DIR/vendor/ghc-libs:$WORK_DIR/vendor/lib:/usr/lib:$LIBRARY_PATH
4949export LD_LIBRARY_PATH=$LIBRARY_PATH
5050export PATH=$WORK_DIR/.local/bin:$WORK_DIR/vendor/bin:$PATH
5151export STACK_ROOT=$CACHE_DIR/.stack
@@ -60,10 +60,10 @@ if [ ! -e "$LIBGMP_DIR" ]; then
6060 curl -# -L "$LIBGMP_URL" | tar xz -C "$LIBGMP_DIR"
6161fi
6262speak "Restoring $LIBGMP_VER files from cache"
63−cp -R "$LIBGMP_DIR/ghc-libs/." "$WORK_DIR/vendor/ghc-libs"
63+cp -Rp "$LIBGMP_DIR/ghc-libs/." "$WORK_DIR/vendor/ghc-libs"
6464
6565########## stack exe ###############################################
66−STACK_VER=${STACK_VER:-1.1.2}
66+STACK_VER=${STACK_VER:-2.1.3}
6767STACK_URL=${STACK_URL:-https://github.com/commercialhaskell/stack/releases/download/v"$STACK_VER"/stack-"$STACK_VER"-linux-x86_64.tar.gz}
6868STACK_DIR="$CACHE_DIR/stack-$STACK_VER"
6969STACK_EXE="$STACK_DIR/stack"
@@ -86,20 +86,28 @@ fi
8686SANDBOX_DIR="$CACHE_DIR/.stack-work"
8787if [ -e "$SANDBOX_DIR" ]; then
8888 speak "Restoring .stack-work"
89− cp -R "$SANDBOX_DIR" "$WORK_DIR"
89+ cp -Rp "$SANDBOX_DIR" "$WORK_DIR"
9090else
9191 mkdir -p "$SANDBOX_DIR"
9292fi
9393
9494speak "Running stack"
9595cd "$WORK_DIR"
96−stack setup
97−stack build --fast --copy-bins
96+# Makefile support (if you need other build tools than Stack that you need to use in conjunction)
97+if [ -f "$BUILD_DIR/Makefile" ]; then
98+ speak "Makefile detected"
99+ make
100+ make install
101+else
102+ stack setup
103+ stack clean
104+ stack build --ghc-options='-O2' --copy-bins
105+fi
98106
99107# Set context environment variables.
100−set-env PATH "$WORK_DIR/.local/bin:$PATH"
101−set-default-env LIBRARY_PATH "$WORK_DIR/vendor/ghc-libs:/usr/lib"
102−set-default-env LD_LIBRARY_PATH "$WORK_DIR/vendor/ghc-libs:/usr/lib"
108+set-env PATH "$WORK_DIR/.local/bin:$WORK_DIR/vendor/bin:\$PATH"
109+set-default-env LIBRARY_PATH "$WORK_DIR/vendor/ghc-libs:$WORK_DIR/vendor/lib:/usr/lib"
110+set-default-env LD_LIBRARY_PATH "$WORK_DIR/vendor/ghc-libs:$WORK_DIR/vendor/lib:/usr/lib"
103111
104112speak "Making stack binaries available"
105113mkdir -p "$BUILD_DIR/vendor"
@@ -109,6 +117,6 @@ mv "$WORK_DIR/.local/bin" "$BUILD_DIR/.local"
109117
110118speak "Caching .stack-work"
111119rsync -avq "$WORK_DIR/.stack-work/" "$SANDBOX_DIR"
112−mv "$WORK_DIR/.stack-work" "$BUILD_DIR"
120+cp -Rp "$WORK_DIR/.stack-work" "$BUILD_DIR"
113121
114122speak "Finished!"