home / docs / make.conf

make.conf

The single source of truth for a build.

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" # Mirrors for source tarballs SOURCE_MIRROR="https://mirror.keru.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