# Makefile für das Bildvergleichs-Projekt.
#
# Aufrufen z.B. mit:
#   make            alles bauen (Bilder, Webseite, README.html)
#   make images     nur die Bilddateien im Ordner img/ erzeugen
#   make webpage    nur index.html aus template.html erzeugen
#   make readme     nur README.html aus README.md erzeugen
#   make clean      erzeugte HTML-Dateien löschen
#   make clean-all  zusätzlich den Ordner img/ löschen
#
# Gebraucht werden die Python-Pakete Pillow, Jinja2 und Markdown:
#   pip install Pillow Jinja2 Markdown
#
# Falls "python" bei dir nicht funktioniert: make PYTHON=python3

PYTHON ?= python3
SOURCES := $(wildcard *.jpg)

.PHONY: all install images webpage readme clean clean-all

all: install images webpage readme

install:
	pip install Pillow Jinja2 Markdown

# Praktische Kurznamen für die eigentlichen Datei-Ziele darunter.
images: img/.stamp
webpage: index.html
readme: README.html

# Bilddateien (JPEG/WebP/AVIF in mehreren Größen) im Ordner img/ erzeugen.
# img/.stamp merkt sich den Zeitpunkt des letzten Baus, damit die Bilder nur
# neu erzeugt werden, wenn sich das Programm oder ein Ausgangsbild geändert hat.
img/.stamp: build_imagefiles.py $(SOURCES)
	$(PYTHON) build_imagefiles.py
	@touch img/.stamp

# Webseite index.html aus der Vorlage template.html und den Bildgrößen erzeugen.
index.html: build_webpage.py template.html img/.stamp
	$(PYTHON) build_webpage.py

# README.md nach README.html umwandeln.
README.html: README.md
	$(PYTHON) -m markdown README.md > README.html

# Erzeugte HTML-Dateien löschen (die Bilder in img/ bleiben erhalten).
clean:
	rm -f index.html README.html

# Zusätzlich die erzeugten Bilddateien löschen.
clean-all: clean
	rm -rf img
