feat: redesign installer on MTK toolkit with component selection
Rewrite the Installer app on the Montauk Toolkit (Canvas + gui/mtk widgets, theme, hover states, scrollbar) replacing the hand-rolled px_* renderer and bespoke TrueType usage. Add a new "Software" step: an expandable checkbox tree for optional components (Montauk SDK with gcc/g++, binutils, tcc, lua sub-items; Games; Office; Internet apps; Printing; experimental httpd and SDR). Unchecked components' paths are excluded from the install copy, with a longest-path ownership rule so e.g. sdk/tcc installs even when the rest of the SDK is deselected. The update flow refreshes only the components the target already has. Add tri-state checkbox and disclosure-arrow widgets to the MTK toolkit (anti-aliased, supersampled). Merge tcc and lua into 0:/sdk (0:/sdk/tcc, 0:/sdk/lua) and drop 0:/lib: update tcc config.h, lua luaconf.h, both Makefiles, the devkit clean scope, man pages and montaukos.org notices. Make printing optional: init skips printd when 0:/os/printd.elf is absent. Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
@@ -295,11 +295,11 @@ gen-syscalls:
|
||||
# check-syscalls guards against shipping a stale C API header into the ramdisk.
|
||||
tcc: libc check-syscalls
|
||||
$(MAKE) -C src/tcc
|
||||
mkdir -p $(BINDIR)/lib/tcc/include
|
||||
cp -r src/tcc/tcc_include/* $(BINDIR)/lib/tcc/include/
|
||||
cp include/libc/*.h $(BINDIR)/lib/tcc/include/
|
||||
mkdir -p $(BINDIR)/lib/tcc/include/sys
|
||||
cp include/libc/sys/*.h $(BINDIR)/lib/tcc/include/sys/
|
||||
mkdir -p $(BINDIR)/sdk/tcc/include
|
||||
cp -r src/tcc/tcc_include/* $(BINDIR)/sdk/tcc/include/
|
||||
cp include/libc/*.h $(BINDIR)/sdk/tcc/include/
|
||||
mkdir -p $(BINDIR)/sdk/tcc/include/sys
|
||||
cp include/libc/sys/*.h $(BINDIR)/sdk/tcc/include/sys/
|
||||
|
||||
# Build Lua interpreter and static library (depends on libc).
|
||||
lua: libc
|
||||
@@ -388,7 +388,10 @@ DEVKIT_TOOLS := as ld ar nm objcopy objdump readelf ranlib strip size strings ad
|
||||
.PHONY: devkit
|
||||
devkit: libc
|
||||
ifneq ($(wildcard $(NATIVE_BIN)/as),)
|
||||
rm -rf $(BINDIR)/sdk
|
||||
# Clean only the devkit-owned subtrees; sdk/tcc and sdk/lua are
|
||||
# installed into bin/sdk/ by their own targets.
|
||||
rm -rf $(BINDIR)/sdk/bin $(BINDIR)/sdk/lib $(BINDIR)/sdk/include \
|
||||
$(BINDIR)/sdk/libexec $(BINDIR)/sdk/x86_64-montauk
|
||||
mkdir -p $(BINDIR)/sdk/bin $(BINDIR)/sdk/lib $(BINDIR)/sdk/include
|
||||
for t in $(DEVKIT_TOOLS); do \
|
||||
cp $(NATIVE_BIN)/$$t $(BINDIR)/sdk/bin/$$t.elf || exit 1; \
|
||||
|
||||
Reference in New Issue
Block a user