# TikZ architecture diagrams → PDF → PNG (committed under ../png/).
#
# Requires: xelatex (fontspec + Source Sans 3), pdftoppm (poppler).
#
# Usage (from repo root):
#   make -C docs/source/diagrams/tikz all

TEX_SOURCES := architecture.tex architecture-overview.tex
PDF_OUTDIR := ../pdf
PNG_OUTDIR := ../png
LATEX := xelatex

PDFS := $(addprefix $(PDF_OUTDIR)/,$(TEX_SOURCES:.tex=.pdf))
PNGS := $(addprefix $(PNG_OUTDIR)/,$(TEX_SOURCES:.tex=.png))

.PHONY: all pdf png clean help

all: png

pdf: $(PDFS)

png: $(PNGS)

$(PDF_OUTDIR)/%.pdf: %.tex fonts/SourceSans3-Regular.otf fonts/SourceSans3-Bold.otf | $(PDF_OUTDIR)
	$(LATEX) -interaction=nonstopmode -halt-on-error -output-directory=$(PDF_OUTDIR) $<
	$(LATEX) -interaction=nonstopmode -halt-on-error -output-directory=$(PDF_OUTDIR) $<
	@rm -f $(PDF_OUTDIR)/$*.aux $(PDF_OUTDIR)/$*.log

$(PNG_OUTDIR)/%.png: $(PDF_OUTDIR)/%.pdf | $(PNG_OUTDIR)
	pdftoppm -png -r 200 -singlefile $< $(PNG_OUTDIR)/$*

$(PDF_OUTDIR) $(PNG_OUTDIR):
	mkdir -p $@

clean:
	rm -f $(PDFS) $(PDF_OUTDIR)/*.aux $(PDF_OUTDIR)/*.log
	rm -f $(PNGS)

help:
	@echo '  all   Build all PNGs (default)'
	@echo '  pdf   Build PDFs only'
	@echo '  png   Build PNGs from PDFs'
	@echo '  clean Remove generated PDF/PNG'
