# Variablen für die Verzeichnisse und Dateien
SRC_DIRS = . adt oop graph
JAVA_FILES = $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.java))

# Einstellungen für Javadoc
DOC_DIR = docs
DOC_TITLE = "Programmieren lernen mit Java"
MATHJAX_SCRIPT = "<script type='text/javascript' id='MathJax-script' async src='https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js'></script>"

# Standard-Target (wird ausgeführt, wenn man nur 'make' aufruft)
all: compile docs

# 1. Kompilieren der Java-Dateien
compile:
	javac $(JAVA_FILES)

# 2. Generieren der Javadoc-Dokumentation
docs:
	javadoc -Xdoclint:all,-missing \
		-windowtitle $(DOC_TITLE) \
		--allow-script-in-comments \
		-header $(MATHJAX_SCRIPT) \
		-d $(DOC_DIR) \
		-author \
		-protected \
		$(JAVA_FILES)

# Bereinigen der kompilierten .class-Dateien und der Dokumentation
clean:
	rm -f $(foreach dir,$(SRC_DIRS),$(dir)/*.class)
	rm -rf $(DOC_DIR)/*

.PHONY: all compile docs clean
