menu "Build variant" choice prompt "Which StarForth build is this config for" default STARFORTH_VARIANT_HOSTED help StarForth has two build targets sharing most of the physics/ heartbeat knobs below (Makefile, the hosted VM) and (Makefile. starkernel, the bare-metal LithosAnanke kernel). TARGET profiles and platform mode (below) are hosted-only -- the kernel build has no equivalent. HISTORICAL: a third L4Re/Fiasco.OC platform mode existed under this variant through mid-2026; removed as an active target (see "Platform mode" choice below). config STARFORTH_VARIANT_HOSTED bool "Hosted VM (Linux)" config STARFORTH_VARIANT_KERNEL bool "LithosAnanke bare-metal kernel" endchoice if STARFORTH_VARIANT_HOSTED choice prompt "Optimization profile (TARGET=)" default TARGET_STANDARD help Selects the hosted Makefile's TARGET= build profile. "pgo" is not a simple flag set -- it drives a 6-stage instrument/ train/optimize recipe (see Makefile's pgo-build target) -- so selecting it here only picks which make recipe runs; it does not itself expand into CFLAGS the way the other profiles do. config TARGET_STANDARD bool "standard -- O2, LTO, safe default" config TARGET_FAST bool "fast -- O3, no LTO, easier debugging" config TARGET_FASTEST bool "fastest -- O3, ASM + LTO + direct threading, runs a benchmark after build" config TARGET_TURBO bool "turbo -- O3, ASM-optimized, no direct threading" config TARGET_PGO bool "pgo -- profile-guided optimization (multi-stage recipe)" config TARGET_ASAN bool "asan -- AddressSanitizer/UBSan instrumented" endchoice config TARGET_STRING string default "standard" if TARGET_STANDARD default "fast" if TARGET_FAST default "fastest" if TARGET_FASTEST default "turbo" if TARGET_TURBO default "pgo" if TARGET_PGO default "asan" if TARGET_ASAN choice prompt "Platform mode" default PLATFORM_DEFAULT help Mutually exclusive platform modes (hosted Makefile's MINIMAL=1 ifdef). MINIMAL swaps in freestanding-style platform sources. HISTORICAL: a third mode, PLATFORM_L4RE (L4RE=1 -- forced HEARTBEAT_THREAD_ENABLED off, dropped -pthread), existed here through mid-2026. L4Re/Fiasco.OC support has been removed as an active target; see Makefile's "Platform support" section for the commented-out restoration path if it's ever needed again. config PLATFORM_DEFAULT bool "Default (Linux hosted)" config PLATFORM_MINIMAL bool "Minimal (freestanding, no libc dependency surface) [DISABLED]" help DISABLED 2026-07-08: selecting this sets MINIMAL=1, which the Makefile now deliberately fails with $(error ...). The freestanding platform layer (src/platform/starforth_minimal.c) was never written -- only 5 of ~90 source files have any STARFORTH_MINIMAL awareness. Not a quick fix; see Makefile's "ifdef MINIMAL" comment for what a real fix would require. endchoice endif # STARFORTH_VARIANT_HOSTED endmenu