Files
brevetcard/Makefile
T
Peter Adam a2b5c6dc4a Add blanko build target, fix preamble duplication, update event config and margins
- Add --blanko flag to generate_cards.py for blank cards (no CSV needed), 2-up layout
- Fix preamble duplication bug affecting both blanko and multi-participant personalized builds
- Add make build-blanko target; default make now builds personalized + blanko
- Reduce page margins from 0.8cm to 0.4cm for Kyocera P6026
- Widen tikzpicture columns (6.9→7.2cm) and tabular columns (6.6→7.0cm) to fill page width
- Update event.yml for BRM400 Bonn–Lüttich–Bastogne–Bonn, 9. Mai 2026, with 6 controls

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-05 09:33:04 +02:00

115 lines
3.6 KiB
Makefile

# Makefile for building Brevet card PDF in Docker
IMAGE_NAME := brevetcard-builder
TEX_FILE_PERSONALIZED := brevetkarte-personalized.tex
TEX_FILE_BLANKO := brevetkarte-blanko.tex
TEX_FILE_BACK := brevetkarte-rueckseite.tex
PDF_FILE_PERSONALIZED := brevetkarte-personalized.pdf
PDF_FILE_BLANKO := brevetkarte-blanko.pdf
PDF_FILE_BACK := brevetkarte-rueckseite.pdf
CSV_FILE := export_brevetcard.csv
.PHONY: all build clean build-image build-back generate build-personalized build-blanko run shell help
# Default target
all: build-personalized build-blanko
# Build Docker image
build-image:
@echo "Building Docker image..."
docker build -t $(IMAGE_NAME) .
# Compile back side PDF (after 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)"
# Build blank (blanko) front + event back side PDFs (no CSV required)
build-blanko: build-image
@echo "Generating blank card..."
python3 generate_cards.py --blanko
@echo "Compiling blank front side to PDF..."
docker run --rm \
-v $(PWD):/workspace \
$(IMAGE_NAME) \
pdflatex -interaction=nonstopmode $(TEX_FILE_BLANKO)
@echo "PDF generated: $(PDF_FILE_BLANKO)"
@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-personalized
# Show help
help:
@echo "Brevet Card PDF Builder"
@echo ""
@echo "Available targets:"
@echo " make - Generate and compile front + back side PDFs (default)"
@echo " make build-image - Build Docker image only"
@echo " make generate - Generate tex files from CSV + event.yml"
@echo " make build-personalized - Generate and compile front + back side PDFs"
@echo " make build-blanko - Generate and compile blank card (no CSV needed)"
@echo " make build-back - Compile back side PDF only (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"