SHELL := /bin/bash .SHELLFLAGS := -eu -o pipefail -c .DEFAULT_GOAL := pdf BOOK_DIR := $(abspath $(dir $(firstword $(MAKEFILE_LIST)))) INFRA_DIR := $(abspath $(dir $(lastword $(MAKEFILE_LIST)))) BOOK_SLUG ?= $(notdir $(BOOK_DIR)) BOOK_LABEL ?= AgentTeam book BUILD_DIR := $(BOOK_DIR)/build DIST_DIR := $(BOOK_DIR)/dist PDF := $(DIST_DIR)/$(BOOK_SLUG).pdf .PHONY: all pdf b5-proof check bootstrap doctor clean help all: pdf pdf: check @BOOK_DIR="$(BOOK_DIR)" BOOK_SLUG="$(BOOK_SLUG)" INFRA_DIR="$(INFRA_DIR)" "$(INFRA_DIR)/scripts/build.sh" b5-proof: check @BOOK_DIR="$(BOOK_DIR)" BOOK_SLUG="$(BOOK_SLUG)" INFRA_DIR="$(INFRA_DIR)" BOOK_PRINT_PROFILE=b5-proof "$(INFRA_DIR)/scripts/build.sh" check: @BOOK_DIR="$(BOOK_DIR)" BOOK_SLUG="$(BOOK_SLUG)" INFRA_DIR="$(INFRA_DIR)" "$(INFRA_DIR)/scripts/check.sh" bootstrap: @INFRA_DIR="$(INFRA_DIR)" "$(INFRA_DIR)/scripts/bootstrap.sh" doctor: @INFRA_DIR="$(INFRA_DIR)" "$(INFRA_DIR)/scripts/bootstrap.sh" --check-only clean: @BOOK_DIR="$(BOOK_DIR)" BOOK_SLUG="$(BOOK_SLUG)" INFRA_DIR="$(INFRA_DIR)" "$(INFRA_DIR)/scripts/clean.sh" help: @printf '%s\n' \ '$(BOOK_LABEL) targets:' \ ' make Validate and build dist/$(BOOK_SLUG).pdf' \ ' make b5-proof Build an ISO B5 print proof without replacing the A4 PDF' \ ' make check Validate sources, SUMMARY.md, and media references' \ ' make bootstrap Show missing dependencies and optionally install them' \ ' make doctor Check required tools without installing anything' \ ' make clean Remove generated build/ and dist/ files'