Make System Overview¶
The repository make system is the shared command language for local work, CI,
package dispatch, and release preparation. It begins at Makefile and becomes
more specific as responsibility moves into root fragments, reusable contracts,
and package bindings.
Layer Model¶
flowchart LR
root["Makefile"]
fragments["root make fragments"]
reusable["reusable target families"]
bindings["package bindings"]
result["local, ci, or release work"]
root --> fragments --> reusable --> bindings --> result
The overview should let a maintainer follow command ownership without reading the whole tree first. If the reader cannot tell where repository policy ends and package dispatch begins, the make surface has already become harder to trust than the work it is supposed to simplify.
Core Layers¶
Makefilefor the top-level entrypointmakes/root.mkfor repository assemblymakes/env.mkandmakes/packages.mkfor shared environment and package catalog setupmakes/bijux-py/for reusable contracts and target familiesmakes/packages/for canonical and compatibility package bindings
Why Layering Matters¶
A layered make tree keeps command ownership visible. A reviewer can tell whether
a target is repository policy, reusable infrastructure, package dispatch, or a
package-local binding instead of treating make as a bag of aliases.
First Proof Check¶
Makefilemakes/root.mkmakes/bijux-py/makes/packages/
Design Pressure¶
The make layer has to stay explicit enough that a reviewer can trace a target from entrypoint to delegated implementation. Once that route becomes opaque, command reuse turns into hidden policy.