97 lines
3.4 KiB
HTML
97 lines
3.4 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"
|
|
|
|
# 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</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> |