.DEFAULT_GOAL := all

.PHONY: all clean watch

TYPST := typst
TYPST_FLAGS := --root . --font-path fonts

# Dateinamen nur hier ändern. Die PDF-Namen werden daraus abgeleitet.
COVERLETTER_SRC := Wartenberg-Robert-Anschreiben.typ
CV_SRC := Wartenberg-Robert-Lebenslauf.typ

# Leerzeichen schützen, sowohl für Make als auch für die Shell.
COVERLETTER_PATHS := Admin/$(COVERLETTER_SRC) Senior\ Developer/$(COVERLETTER_SRC)
CV_PATHS := Admin/$(CV_SRC) Senior\ Developer/$(CV_SRC)
SOURCES := $(COVERLETTER_PATHS) $(CV_PATHS)
PDFS := $(SOURCES:.typ=.pdf)

all: $(PDFS)

%.pdf: %.typ personal.typ template.typ Makefile
	$(TYPST) compile $(TYPST_FLAGS) "$<" "$@"

$(COVERLETTER_PATHS:.typ=.pdf): assets/signature.png

watch:
	@pids=""; \
	trap 'kill $$pids 2>/dev/null || true; wait' EXIT; \
	trap 'exit 130' INT; \
	trap 'exit 143' TERM; \
	for source in $(SOURCES); do \
		$(TYPST) watch $(TYPST_FLAGS) "$$source" "$${source%.typ}.pdf" & \
		pids="$$pids $$!"; \
	done; \
	wait

clean:
	rm -f $(PDFS)
