D260 - Each source compiles to its own object, keyed by a flags sentinel

Status: decided Date: 2026-09-26

host, module and eboot compile each source to its own object and link the objects. Each object depends on a per-target sentinel that is rewritten whenever the build's flag string (GEN, EXCLUDE, DISPLAY_MEM and the rest) changes, forcing a full recompile on any flag change.

Why: a monolithic compile recompiles everything on any edit and defeats a compiler cache. make decides freshness from file times, not flags, so reusing an object built with a different flag value would be a silently wrong binary - which costs a hardware cycle to notice.

Rejected: one compile-and-link per target - slow, and no incremental build. File targets without a flags sentinel - reuses objects across incompatible flag values.