make.conf is the file the installer writes and Kama reads. Every swappable choice in Keru lives here — it's the record of your crafted system, and hand-tuning it then rebuilding is fully supported.
Profile — the swappables
# Which init system gets installed
INIT=runit
# Which libc the toolchain and packages build against
LIBC=glibc
# Which filesystem the target root is formatted as
TARGET_FS=ext4
# Which kernel you want built
KERNEL=linux
# Which privilege-elevation tool gets installed
SUDO=doas
# Base package set pulled into every install
BASE_PACKAGES=(base toolchain openssh)
# Locale / clock / keymap applied to the target
LOCALE=en_US.UTF-8
TIMEZONE=UTC
KEYMAP=us
Build environment
# Compiler / linker flags passed to every recipe build
CFLAGS="-O2 -march=x86-64"
CXXFLAGS="$CFLAGS"
LDFLAGS="-s"
# Parallelism
JOBS=$(nproc)
MAKEFLAGS="-j$JOBS"
# Mirror for source tarballs (unset: fetch straight from upstream)
# SOURCE_MIRROR="https://mirror.example.org/sources"
# Where the new target root lives on the build host
ROOT=/tmp/keru/root
# Persistent source + build cache (survives across installs)
CACHEDIR=/var/cache/kama
Kama behaviour
# Remove temp build-time deps after use (AUR-style). Set to 0 to keep them.
PURGE_TEMP_DEPS=1
# Stop on first recipe failure
FAIL_FAST=1
Why it's "the source of truth"
- The installer writes it from your choices — every menu pick lands as a line here.
- Kama reads it to know flags, mirrors, cache, and where to install into.
- It's human-editable. The TUI is a convenience, not a gate. Edit, rebuild, repeat.
- It's reproducible. The same make.conf should build the same system.
The canonical template lives in profile/make.conf at the repo root — the copy above mirrors it, but the repository file is the source of truth.
The profile system · ← Docs