# tools/kconfig — vendored Linux kernel Kconfig tooling ## What this is This directory is a trimmed vendor drop of `scripts/kconfig/` from the Linux kernel (`torvalds/linux`, `master` at the time of vendoring). It provides the `Kconfig` language engine and three front ends: - `conf` — headless config (`config`/`oldconfig`/`defconfig`/etc.) - `mconf` — the ncurses `menuconfig` TUI (uses `lxdialog/`) - `qconf` — the Qt `xconfig` GUI ## License — read this before touching anything in this directory Every file here carries its own upstream `SPDX-License-Identifier: GPL-2.0` tag. The full license text is in `LICENSE` in this directory. This is **host-side build tooling only**. `conf`/`mconf`/`qconf` run on the machine building StarForth, read `Kconfig`/`.config`, and emit a generated Make-syntax config fragment (`build/$(ARCH)/include/config/auto.conf`). None of this code is compiled into, statically or dynamically linked into, or otherwise shipped as part of the `starforth` binary or the `starkernel_loader.efi` / kernel image — the same relationship StarForth already has with gcc, bison, flex, and make themselves. StarForth's own source is licensed under the Starship License 1.0 (see the repository root `LICENSE`); that license does not apply to this directory, and this directory's license does not apply to the rest of the repository. See `sbom.spdx` / `sbom.spdx.json` for the formal SBOM entry. ## What was trimmed from upstream Kept: the core engine (`parser.y`, `lexer.l`, `preprocess.c/h`, `symbol.c`, `expr.c/h`, `menu.c`, `confdata.c`, `lkc.h`, `lkc_proto.h`, `internal.h`, `util.c`), `conf.c`, `mconf.c` + `lxdialog/` + `mconf-cfg.sh`, `qconf.cc` + `qconf.h` + `qconf-cfg.sh`. Dropped: `gconf.c`/`gconf.ui` (GTK gconfig — not needed), `nconf.c` and friends (nconfig — not needed), kconfig's own `tests/` directory, and the upstream `Makefile` (kept alongside as `Makefile.upstream-reference` for comparison only — it isn't self-contained outside a full kernel source tree, since it depends on `scripts/Kbuild.include` and `scripts/Makefile.host` that aren't vendored here; this directory's real `Makefile` is a small bespoke one written for StarForth specifically). ## Updating this vendor drop ``` git clone --depth 1 --filter=blob:none --sparse https://github.com/torvalds/linux.git cd linux git sparse-checkout set scripts/kconfig ``` then re-copy the files listed above.