# ============================================================================== # OREBOLT OS -- UNIFIED MASTER BUILD ORCHESTRATOR (v1.7) # ============================================================================== # # Target: HiFiWalker H2 (Ingenic X1000E / JZ4760 family, MIPS32r2, # little-endian, hard-float, mipsel-linux-musl) # Host: Arch Linux (x86_64) with mipsel-linux-musl cross-compiler # # v1.7 CHANGES (see CHANGELOG.md for full diff): # * 17 .mod binaries + 1 standalone mapper daemon (unchanged). # * retro.mod is the retro game launcher. # * retro_input_mapper is the uinput gamepad daemon. # * Makefile.h2-core-v6.2 -> v6.5. # # Sub-builds: # # 1. H2 Core Platform v6.5 (Makefile.h2-core-v6.2, filename unchanged) # - LVGL v8.3.11 as liblvgl.so (shared library, ~200 KB) # - 17 module .mod binaries in overlay/apps/ # - Master broker (main.c) with fork/exec launcher # - Integrated retro_input_mapper daemon (NO LVGL, hardened build) # - ROM directory structure (11 systems in overlay/data/roms/) # - Output: overlay/usr/lib/liblvgl.so, overlay/usr/bin/h2_test, # overlay/apps/*.mod, overlay/usr/bin/retro_input_mapper # # 2. OreBolt OS v1.7 (Makefile.orebolt-v1.5) # - src/modules/*.c -> liborebolt.a (static archive) # - 150-payload HID macro matrix via inject_payloads.sh # - bitchat mesh module compiled with -DAGPL_BITCHAT # # ============================================================================== H2_CORE_MAKEFILE := Makefile.h2-core-v6.2 OREBOLT_MAKEFILE := Makefile.orebolt-v1.5 KERNEL_HEADERS ?= /opt/fiio-m3k-linux .PHONY: all core orebolt payloads clean validate_env help headers-check all: validate_env headers-check core orebolt @echo "======================================================================" @echo "[OK] OREBOLT OS v1.7 FULLY BUILT" @echo " Target SoC: Ingenic X1000E (JZ4760 family, MIPS32r2 mipsel)" @echo " Headers: $(KERNEL_HEADERS)" @echo " LVGL shared: overlay/usr/lib/liblvgl.so" @echo " Launcher: overlay/usr/bin/h2_test (fork/exec broker)" @echo " Mapper: overlay/usr/bin/retro_input_mapper (integrated, hardened)" @echo " ROM dirs: overlay/data/roms/{nes,snes,gb,...,ngp} (11 systems)" @echo " Modules: overlay/apps/*.mod (17 modules)" @echo " HW archive: liborebolt.a" @echo " Payloads: overlay/data/payloads/{linux,macos,windows}/" @echo " Licensing: see LICENSE.md (bitchat = AGPL-3.0-only)" @echo "======================================================================" validate_env: @if [ "$$(basename $$(pwd))" != "h2-workspace" ]; then \ echo "[-] CRITICAL: build must run inside h2-workspace/"; \ exit 1; \ fi headers-check: validate_env @if [ ! -d "$(KERNEL_HEADERS)" ]; then \ echo "[-] CRITICAL: KERNEL_HEADERS not found at $(KERNEL_HEADERS)"; \ echo " Clone the FiiO M3K GPL kernel tree (see HEADERS.md):"; \ echo " git clone --depth 1 https://github.com/..."; \ echo " $(KERNEL_HEADERS)"; \ exit 1; \ fi @if [ ! -f "$(KERNEL_HEADERS)/include/uapi/linux/kernel.h" ]; then \ echo "[-] $(KERNEL_HEADERS) does not look like a Linux kernel tree"; \ exit 1; \ fi @echo "[OK] kernel headers root: $(KERNEL_HEADERS)" core: validate_env @echo ">>> Building H2 Core Platform v6.5 (shared LVGL + 17 modules)..." $(MAKE) -f $(H2_CORE_MAKEFILE) all KERNEL_HEADERS=$(KERNEL_HEADERS) orebolt: validate_env @echo ">>> Building OreBolt OS v1.7 (liborebolt.a + payloads)..." $(MAKE) -f $(OREBOLT_MAKEFILE) all HARDWARE_GPIO=$(HARDWARE_GPIO) \ KERNEL_HEADERS=$(KERNEL_HEADERS) payloads: validate_env @echo ">>> Regenerating 150-payload HID matrix only..." @chmod +x inject_payloads.sh @./inject_payloads.sh clean: -$(MAKE) -f $(H2_CORE_MAKEFILE) clean -$(MAKE) -f $(OREBOLT_MAKEFILE) clean HARDWARE_GPIO=$(HARDWARE_GPIO) help: @echo "OREBOLT OS v1.7 MASTER BUILD" @echo "" @echo "Target SoC: Ingenic X1000E (JZ4760 family, MIPS32r2 mipsel-linux-musl)" @echo "Headers: FiiO M3K GPL kernel tree ($(KERNEL_HEADERS))" @echo "" @echo "Targets:" @echo " all Build everything (default)" @echo " headers-check Verify kernel headers tree before build" @echo " core Build LVGL shared lib + launcher + 17 modules + mapper" @echo " orebolt Build liborebolt.a + payload matrix" @echo " payloads Regenerate 150-payload HID macro matrix only" @echo " clean Remove all build artifacts" @echo " help This message" @echo "" @echo "Environment:" @echo " KERNEL_HEADERS Path to FiiO M3K GPL kernel tree (default: /opt/fiio-m3k-linux)" @echo " HARDWARE_GPIO Set to 1 to compile real GPIO panic-purge path" @echo " CROSS_COMPILE Toolchain prefix (default: mipsel-linux-musl-)"