54 lines
2.4 KiB
Markdown
54 lines
2.4 KiB
Markdown
# 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.
|