# Makefile for building Brevet card PDF in Docker IMAGE_NAME := brevetcard-builder TEX_FILE_FRONT := brevetkarte.tex TEX_FILE_BACK := brevetkarte-rueckseite.tex TEX_FILE_PERSONALIZED := brevetkarte-personalized.tex PDF_FILE_FRONT := brevetkarte.pdf PDF_FILE_BACK := brevetkarte-rueckseite.pdf PDF_FILE_PERSONALIZED := brevetkarte-personalized.pdf CSV_FILE := Export Brevetkarte.csv .PHONY: all build clean build-image build-front build-back generate build-personalized run shell help # Default target all: build # Build static demo front side (builds image if needed) build: build-image build-front # Build Docker image build-image: @echo "Building Docker image..." docker build -t $(IMAGE_NAME) . # Compile static demo front side PDF build-front: @echo "Compiling front side LaTeX to PDF..." docker run --rm \ -v $(PWD):/workspace \ $(IMAGE_NAME) \ pdflatex -interaction=nonstopmode $(TEX_FILE_FRONT) @echo "PDF generated: $(PDF_FILE_FRONT)" # Compile back side PDF (always generated from event.yml via generate) build-back: build-image @echo "Compiling back side LaTeX to PDF..." docker run --rm \ -v $(PWD):/workspace \ $(IMAGE_NAME) \ pdflatex -interaction=nonstopmode $(TEX_FILE_BACK) @echo "PDF generated: $(PDF_FILE_BACK)" # Generate all tex files from CSV + event.yml generate: @echo "Generating cards from $(CSV_FILE) + event.yml..." @if [ ! -f "$(CSV_FILE)" ]; then \ echo "Error: $(CSV_FILE) not found!"; \ exit 1; \ fi python3 generate_cards.py # Build personalized front + event back side PDFs build-personalized: generate build-image @echo "Compiling personalized front side to PDF..." docker run --rm \ -v $(PWD):/workspace \ $(IMAGE_NAME) \ pdflatex -interaction=nonstopmode $(TEX_FILE_PERSONALIZED) @echo "PDF generated: $(PDF_FILE_PERSONALIZED)" @echo "Compiling back side to PDF..." docker run --rm \ -v $(PWD):/workspace \ $(IMAGE_NAME) \ pdflatex -interaction=nonstopmode $(TEX_FILE_BACK) @echo "PDF generated: $(PDF_FILE_BACK)" # Run container interactively run: docker run --rm -it \ -v $(PWD):/workspace \ $(IMAGE_NAME) \ /bin/bash # Open shell in container for debugging shell: docker run --rm -it \ -v $(PWD):/workspace \ --entrypoint /bin/bash \ $(IMAGE_NAME) # Clean generated files clean: @echo "Cleaning generated files..." rm -f *.aux *.log *.out *.toc *.pdf # Clean everything including Docker image clean-all: clean @echo "Removing Docker image..." docker rmi $(IMAGE_NAME) 2>/dev/null || true # Rebuild from scratch rebuild: clean-all build # Show help help: @echo "Brevet Card PDF Builder" @echo "" @echo "Available targets:" @echo " make build - Build Docker image and compile static front side (default)" @echo " make build-image - Build Docker image only" @echo " make build-front - Compile static demo front side PDF" @echo " make generate - Generate tex files from CSV + event.yml" @echo " make build-personalized - Generate and compile front + back side PDFs" @echo " make build-back - Compile back side PDF (after generate)" @echo " make shell - Open interactive shell in container" @echo " make clean - Remove generated files (aux, log, pdf)" @echo " make clean-all - Remove all files and Docker image" @echo " make rebuild - Clean everything and rebuild" @echo " make help - Show this help message"