summaryrefslogtreecommitdiff
path: root/scripts/setup.sh
diff options
context:
space:
mode:
authorclaude <[email protected]>2026-07-12 01:19:32 +0000
committerclaude <[email protected]>2026-07-12 01:19:32 +0000
commita4dce7f4d920e492d38c32ad3e42efdcfef3b3f1 (patch)
treeb0a0ad513792f5c0ddc524d67f6ab89e2044c642 /scripts/setup.sh
downloadplan9-kencc-linux-a4dce7f4d920e492d38c32ad3e42efdcfef3b3f1.tar.gz
plan9-kencc-linux-a4dce7f4d920e492d38c32ad3e42efdcfef3b3f1.zip
🌭 plan9-kencc-linux: кросс-тулчейн Plan9 (cc/as/ld) + EFI-болванка
- build_arch.sh / build_al.sh: сборка kencc-компиляторов, ассемблеров, линкеров всех арок (5/6/8/v/q/k) на Linux-хосте через plan9port. - патчи под musl/gcc: sbrk->mmap, round/log2->p9*, Runemask, swcmp const, -fcommon, machcap/omachcap, /sys рантайм-файлы. Подробно в PATCHES.md. - bin/: готовые 8c 6c 5c vc qc kc + 6a 6l (Linux/musl x86_64). - efi/: болваночный bootx64.efi (PE32+) тем же тулчейном (6a+6c+6l+dd), референс — 9legacy nboot/efi; ESP-образ через mkesp.py. Co-Authored-By: Claude Opus 4.8 <[email protected]>
Diffstat (limited to 'scripts/setup.sh')
-rw-r--r--scripts/setup.sh30
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"