Capstone File Guide¶
Guide Fit¶
flowchart TD
family["Reproducible Research"] --> program["Deep Dive Make"]
program --> pressure["A concrete learner or reviewer question"]
pressure --> guide["Capstone File Guide"]
guide --> next["Modules, capstone, and reference surfaces"]
flowchart TD
question["Name the exact question you need answered"] --> skim["Skim only the sections that match that pressure"]
skim --> crosscheck["Open the linked module, proof surface, or capstone route"]
crosscheck --> next_move["Leave with one next decision, page, or command"]
Read the first diagram as a timing map: this guide is for a named pressure, not for wandering the whole course-book. Read the second diagram as the guide loop: arrive with a concrete question, use only the matching sections, then leave with one smaller and more honest next move.
Read the first diagram as a timing map: this guide is for a named pressure, not for wandering the whole course-book. Read the second diagram as the guide loop: arrive with a concrete question, use only the matching sections, then leave with one smaller and more honest next move.
Read the first diagram as a timing map: this guide is for a named pressure, not for wandering the whole course-book. Read the second diagram as the guide loop: arrive with a concrete question, use only the matching sections, then leave with one smaller and more honest next move.
This page explains which capstone files matter first and what responsibility each one holds.
Use it when the repository feels legible at a directory level but not yet at a file level.
Start With These Files¶
| File | Why it matters |
|---|---|
capstone/Makefile |
defines the public targets and the top-level build contract |
capstone/tests/run.sh |
shows what the build is required to prove |
capstone/mk/objects.mk |
models deterministic discovery and object mapping |
capstone/mk/stamps.mk |
models hidden inputs and boundary files |
capstone/mk/contract.mk |
declares portability and feature assumptions |
capstone/scripts/gen_dynamic_h.py |
provides the simplest generator boundary to inspect |
capstone/scripts/mkdist.py |
shows how release packaging is separated from ordinary build work |
Directory Responsibilities¶
| Path | Responsibility |
|---|---|
capstone/mk/ |
shared build mechanics split by concern |
capstone/src/ |
source files used to exercise build behavior |
capstone/include/ |
static headers for the small C project |
capstone/scripts/ |
explicit generator and packaging helpers |
capstone/tests/ |
proof harness for build-system behavior |
capstone/repro/ |
isolated failure demonstrations for teaching and debugging |
capstone/thirdparty/ |
controlled recursion and boundary examples |
Best Reading Order¶
capstone/Makefilecapstone/tests/run.shcapstone/mk/objects.mkcapstone/mk/stamps.mk- one file under
capstone/repro/ capstone/scripts/gen_dynamic_h.pycapstone/scripts/mkdist.py
This order keeps the learner anchored in contract, then proof, then mechanics, then examples.
Common Wrong Reading Order¶
Avoid starting with:
- random
mk/*.mkfiles without first reading the public targets - repro files before understanding what the healthy build promises
- scripts before understanding why the build calls them
That route teaches fragments without context.