# Build output. Everything here is reproducible from `make`.
build/
schos.img
schos.iso
*.o
*.d
*.asm
*.sym

# The staged root filesystem. Assembled by the build from cmd/, lib/ and
# ports/ -- tracking it would mean committing a second copy of every binary
# on every build.
sysroot/

# Upstream tarballs, fetched not authored: musl, toybox, mksh, dash, the DOOM
# WADs and usb.ids. 61 MB of other people's release artefacts, all of which
# the build downloads again if they are missing. The patches that matter are
# under ports/*/patches/ and those *are* tracked.
dist/

# Test and screenshot output.
*.log
*.ppm
*.png.tmp

# Claude Code's per-machine settings (permissions granted on this host).
# .claude/memory/ IS tracked -- it is the project memory, and committing it is
# how it survives a directory rename and reaches the other machines.
.claude/settings.local.json

# Emacs lock files: dangling symlinks like .#README -> user@host.pid, left
# behind when a session ends badly. One was committed in the initial import.
.#*
*~
\#*\#

# Build output under projects/ -- these are programs that run on SchOS, and
# their binaries were tracked by accident.
projects/schcom/schcom
projects/schcom/schcom-demo

# A built ISO dropped next to the site for download.html. 62 MB; not source.
docs/Website/releases/

# Kernel modules, ever. docs/plan/ldls.md rule 1: LDLS ships the layer and
# never the thing it loads, and that applies to this tree as well as to an
# image. The loader's test input is built from ldls/test/refmod.c, which is
# ours; a .ko here would be someone else's GPL code in an Apache-2.0 repo.
*.ko
*.ko.xz
