#!/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"