1# One-command reproduction. Each target is idempotent; raw downloads are verified by hash, never re-fetched.2PY=.venv/bin/python3.PHONY: all env fetch data measure econ sim figures paper test clean4all: fetch data measure econ sim figures paper5env:6 uv venv -p 3.12 .venv && uv pip install -p .venv/bin/python -e .7fetch:8 $(PY) -m wp35.acquisition.fetch9data:10 $(PY) -m wp35.harmonization.build_panels11measure:12 $(PY) -m wp35.measurement.build_indices13econ:14 $(PY) -m wp35.econometrics.run_all15sim:16 $(PY) -m wp35.simulations.run_experiments17figures:18 $(PY) -m wp35.visualization.make_all19paper:20 cd paper && latexmk -pdf main.tex21test:22 .venv/bin/pytest -q23clean:24 cd paper && latexmk -C25