86 lines
2.4 KiB
Makefile
86 lines
2.4 KiB
Makefile
|
|
# Makefile for building Brevet card PDF in Docker
|
||
|
|
|
||
|
|
IMAGE_NAME := brevetcard-builder
|
||
|
|
CONTAINER_NAME := brevetcard-build
|
||
|
|
TEX_FILE_FRONT := brevetkarte.tex
|
||
|
|
TEX_FILE_BACK := brevetkarte-rueckseite.tex
|
||
|
|
PDF_FILE_FRONT := brevetkarte.pdf
|
||
|
|
PDF_FILE_BACK := brevetkarte-rueckseite.pdf
|
||
|
|
|
||
|
|
.PHONY: all build clean build-image build-pdf build-front build-back run shell help
|
||
|
|
|
||
|
|
# Default target
|
||
|
|
all: build
|
||
|
|
|
||
|
|
# Build both PDFs (builds image if needed, then compiles)
|
||
|
|
build: build-image build-front build-back
|
||
|
|
|
||
|
|
# Build Docker image
|
||
|
|
build-image:
|
||
|
|
@echo "Building Docker image..."
|
||
|
|
docker build -t $(IMAGE_NAME) .
|
||
|
|
|
||
|
|
# Compile both PDFs in Docker container
|
||
|
|
build-pdf: build-front build-back
|
||
|
|
|
||
|
|
# Compile 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
|
||
|
|
build-back:
|
||
|
|
@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)"
|
||
|
|
|
||
|
|
# 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 both PDFs (default)"
|
||
|
|
@echo " make build-image - Build Docker image only"
|
||
|
|
@echo " make build-pdf - Compile both front and back PDFs"
|
||
|
|
@echo " make build-front - Compile front side PDF only"
|
||
|
|
@echo " make build-back - Compile back side PDF only"
|
||
|
|
@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"
|