diff options
Diffstat (limited to 'scripts/setup.sh')
| -rw-r--r-- | scripts/setup.sh | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/scripts/setup.sh b/scripts/setup.sh new file mode 100644 index 0000000..2d693f0 --- /dev/null +++ b/scripts/setup.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# Готовит зависимости для сборки тулчейна: исходники plan9 + собранный plan9port. +# Требуется: git, gcc/clang, make, yacc (или plan9port-овский). Каталоги кладутся +# рядом со скриптом (или в $DEPS). После — экспортни PLAN9SRC/PLAN9PORT (печатает в конце). +set -e +DEPS="${DEPS:-$PWD/deps}" +mkdir -p "$DEPS"; cd "$DEPS" + +# 1) дерево исходников plan9 (plan9foundation — тут живут cc/ и Xc/Xa/Xl) +if [ ! -d plan9foundation ]; then + echo ">> клонирую plan9foundation ..." + git clone --depth 1 https://github.com/plan9foundation/plan9.git plan9foundation \ + || git clone --depth 1 https://git.9front.org/plan9front/plan9front plan9foundation +fi + +# 2) plan9port (даёт 9c/9l/9ar/yacc + lib9/libbio/libmach — ими и собираем kencc) +if [ ! -d plan9port ]; then + echo ">> клонирую plan9port ..." + git clone --depth 1 https://github.com/9fans/plan9port.git plan9port +fi +if [ ! -x plan9port/bin/9c ]; then + echo ">> собираю plan9port (может занять пару минут) ..." + ( cd plan9port && ./INSTALL -b ) # -b: только собрать, без установки в систему +fi + +echo +echo "Готово. Экспортни:" +echo " export PLAN9SRC=$DEPS/plan9foundation" +echo " export PLAN9PORT=$DEPS/plan9port" +echo " # если используешь musl-тулчейн: export MUSL_ENV=/path/to/env.sh" |
