.PHONY: all clean

.DEFAULT_GOAL = all

PDFLATEX = lualatex
PDFTOPPM = pdftoppm

PDFTOPPM_FLAGS = -singlefile -png -r 300

COMMON_TEX_FILES = libs.tex colors.tex tikzcards.tex

CARDS_DIR = cards
CARD_SOURCES = $(shell find $(CARDS_DIR) -name "*.tex")

VERBOSE = @
PDF_DIR = ./build

CARD_PDFS = $(notdir $(CARD_SOURCES:.tex=.pdf))
CARD_PDFS_PREFIXED = $(addprefix $(PDF_DIR)/,$(CARD_PDFS))

CARD_PNGS = $(notdir $(CARD_SOURCES:.tex=.png))
CARD_PNGS_PREFIXED = $(addprefix $(PDF_DIR)/,$(CARD_PNGS))

MAKEFILE_LIST = Makefile

ASSETS_PATH = ./assets
PDFLATEX_ENV := TEXINPUTS=".:$(ASSETS_PATH):"

all: $(PDF_DIR)/cards.pdf $(CARD_PDFS_PREFIXED) $(CARD_PNGS_PREFIXED)

$(PDF_DIR)/cards.pdf: cards.tex $(CARD_SOURCES) $(COMMON_TEX_FILES) $(MAKEFILE_LIST)
	@echo "building ›  ›   $@"
	@if test \( ! \( -d $(@D) \) \) ;then mkdir -p $(@D);fi
	$(VERBOSE) $(PDFLATEX_ENV) $(PDFLATEX) --output-directory $(PDF_DIR) $^

$(PDF_DIR)/%.pdf : $(CARDS_DIR)/%.tex $(COMMON_TEX_FILES) $(MAKEFILE_LIST)
	@echo "card ›   $@"
	@if test \( ! \( -d $(@D) \) \) ;then mkdir -p $(@D);fi
	$(VERBOSE) $(PDFLATEX_ENV) $(PDFLATEX) --output-directory $(PDF_DIR) $(CARDS_DIR)/$*.tex

$(PDF_DIR)/%.png : $(PDF_DIR)/%.pdf $(MAKEFILE_LIST)
	@echo "png ›   $@"
	@if test \( ! \( -d $(@D) \) \) ;then mkdir -p $(@D);fi
	$(VERBOSE) $(PDFTOPPM) $(PDFTOPPM_FLAGS) $(PDF_DIR)/$*.pdf $(PDF_DIR)/$*

clean:
	rm -rf build/
