Historia-Urbis/Makefile
Dane Sabo 0a029fe471 Doc restructure: split into design.tex (contract) and journal.tex (record)
design.tex carries the contract — invariants, algorithms, public API,
roadmap, the canonical D1..D19 decision index, and a new System
Walkthrough (§17) that derives the geometry from first principles for
a graduate-engineering reader: vector rotations and the inward-normal
formula, the shoelace signed area, segment intersection via Cramer,
Sutherland–Hodgman half-plane clipping, the DCEL next-pointer rule
with worked square example, per-edge depth-cap ray-cast, corner-parcel
construction in two flavors, frontage walk, the shared-vertex
registry, propose-then-apply deform, and end-to-end traces for both
subdivide_all and apply_road_edit(MoveNode).

journal.tex carries the live record — Self-Decisions Checklist at the
top, sessions 1-4 rewritten condensed with explanatory Rust snippets,
and a Spec Deviations Log indexed chronologically.

Makefile builds both PDFs (`make all`, `make design`, `make journal`,
`make watch-design`, `make watch-journal`, `make figs`).

Old single-file journal content lives in git history per user.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 13:19:03 -04:00

38 lines
932 B
Makefile

# Build the design document and the implementation journal.
# Requires: pdflatex, latexmk, and rsvg-convert for the figs target.
DOCS = design journal
.PHONY: all clean watch figs design journal
all: design journal
design: design.pdf
journal: journal.pdf
design.pdf: design.tex figures/*.pdf
latexmk -pdf -interaction=nonstopmode design.tex
journal.pdf: journal.tex figures/*.pdf
latexmk -pdf -interaction=nonstopmode journal.tex
# Convert any SVG figures generated by the Rust crate into PDFs for inclusion.
figs:
@for svg in figures/*.svg; do \
[ -f "$$svg" ] || continue; \
pdf="$${svg%.svg}.pdf"; \
echo "Converting $$svg -> $$pdf"; \
rsvg-convert -f pdf -o "$$pdf" "$$svg"; \
done
watch-design:
latexmk -pdf -pvc -interaction=nonstopmode design.tex
watch-journal:
latexmk -pdf -pvc -interaction=nonstopmode journal.tex
clean:
latexmk -C
rm -f *.aux *.log *.out *.toc *.fls *.fdb_latexmk *.synctex.gz