Idris2/bootstrap.sh

54 lines
1.5 KiB
Bash
Raw Normal View History

#!/bin/sh
set -e # Exit on any error
echo "bootstrapping SCHEME=$SCHEME IDRIS2_VERSION=$IDRIS2_VERSION"
if [ -z "$SCHEME" ] || [ -z "$IDRIS2_VERSION" ]
2020-05-19 23:05:52 +03:00
then
echo "Required ENV not set."
if [ -z "$SCHEME" ]
then
echo "Invoke with SCHEME=[name of chez scheme executable]"
fi
2020-05-19 23:05:52 +03:00
exit 1
fi
# Compile the bootstrap scheme
# TODO: Move boot-build to Makefile in bootstrap/Makefile
cd bootstrap
echo "Building idris2-boot from idris2-boot.ss"
${SCHEME} --script compile.ss
2020-05-19 23:05:52 +03:00
# Put the result in the usual place where the target goes
mkdir -p ../build/exec
mkdir -p ../build/exec/idris2_app
install idris2-boot ../build/exec/idris2
install idris2_app/* ../build/exec/idris2_app
2020-05-19 23:05:52 +03:00
cd ..
# TODO: Unify with bootstrap-rkt
PREFIX=${PWD}/bootstrap
2020-05-19 23:05:52 +03:00
2020-05-23 15:25:50 +03:00
if [ ${OS} = "windows" ]; then
# IDRIS_PREFIX is only used to build IDRIS2_BOOT_PATH
2020-05-23 15:25:50 +03:00
IDRIS_PREFIX=$(cygpath -m $PREFIX)
SEP=";"
2020-05-23 15:25:50 +03:00
else
IDRIS_PREFIX=${PREFIX}
SEP=":"
2020-05-23 15:25:50 +03:00
fi
BOOT_PATH_BASE=${IDRIS_PREFIX}/idris2-${IDRIS2_VERSION}
IDRIS2_BOOT_PATH="${BOOT_PATH_BASE}/prelude${SEP}${BOOT_PATH_BASE}/base${SEP}${BOOT_PATH_BASE}/contrib${SEP}${BOOT_PATH_BASE}/network"
# Now rebuild everything properly
# PREFIX must be the "clean" build root, without cygpath -m
# Otherwise, we get 'git: Bad address'
echo ${PREFIX}
2020-05-19 23:05:52 +03:00
make libs SCHEME=${SCHEME} PREFIX=${PREFIX}
make install SCHEME=${SCHEME} PREFIX=${PREFIX}
make clean IDRIS2_BOOT=${PREFIX}/bin/idris2
make all IDRIS2_BOOT=${PREFIX}/bin/idris2 SCHEME=${SCHEME} IDRIS2_PATH=${IDRIS2_BOOT_PATH}