Files
keru/make-conf.html
Astral 4a32fab414
Deploy website to GitHub Pages / deploy (push) Failing after 3s
migrate website from KeruOS web to its own repo
2026-09-01 12:06:36 +02:00

97 lines
3.5 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>make.conf reference — Keru OS</title>
<meta name="description" content="The make.conf reference: the single source of truth for a Keru build, written by the installer and read by Kama.">
<link rel="stylesheet" href="assets/css/style.css">
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>ける</text></svg>">
</head>
<body>
<nav class="top" data-nav></nav>
<header class="pagehead">
<p class="crumbs"><a href="index.html">home</a> / <a href="docs.html">docs</a> / make.conf</p>
<h1>make.conf</h1>
<p>The single source of truth for a build.</p>
</header>
<section>
<div class="wrap">
<div class="prose">
<p><code>make.conf</code> 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.</p>
<h3>Profile — the swappables</h3>
<div class="code-block"># 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</div>
<h3>Build environment</h3>
<div class="code-block"># 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</div>
<h3>Kama behaviour</h3>
<div class="code-block"># 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</div>
<h3>Why it's "the source of truth"</h3>
<ul class="features">
<li><strong>The installer writes it</strong> from your choices — every menu pick lands as a line here.</li>
<li><strong>Kama reads it</strong> to know flags, mirrors, cache, and where to install into.</li>
<li><strong>It's human-editable.</strong> The TUI is a convenience, not a gate. Edit, rebuild, repeat.</li>
<li><strong>It's reproducible.</strong> The same make.conf should build the same system.</li>
</ul>
<div class="callout">The canonical template lives in <code>profile/make.conf</code> at the repo root — the copy above mirrors it, but the repository file is the source of truth.</div>
<p><a href="profile.html">The profile system</a> · <a href="docs.html">← Docs</a></p>
</div>
</div>
</section>
<footer data-footer></footer>
<noscript><div style="text-align:center;padding:16px">See the <a href="sitemap.html">sitemap</a> for all pages.</div></noscript>
<script src="assets/js/include.js" data-base="."></script>
</body>
</html>