blob: 2d693f0d9dbe1be61c44894747eb0ba6849b4ab8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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"
|