PROJECT_ROOT = dk/biks/bachelorizer
PROJECT = $(addprefix $(PROJECT_ROOT)/,Main)
MODULEPATHS = /usr/share/openjfx/lib
JAVAMODULES = $(addprefix javafx.,base controls graphics)
EXTRASTEMS = $(addprefix $(PROJECT_ROOT)/,\
 Control model/Combi model/GUI model/Person view/Window)
DOCUMENTS = delivery1 delivery2
ZIPNAME = bachelorizer
ZIPFILES += $(STEMS:=.java)

include _make/*.mk

# resolve Java version
JAVA_MAJOR_VERSION := $(shell $(JAVA) -version 2>&1 \
 | grep -Pom1 '"\K\d+' )

# silence security restriction warning
JAVAFLAGS += --enable-native-access=javafx.graphics

# silence unsafe memory-access methods warning on recent JDKs
# @see <https://stackoverflow.com/a/79526038/18619283>
ifeq ($(shell expr $(JAVA_MAJOR_VERSION) \>= 23), 1)
JAVAFLAGS += --sun-misc-unsafe-memory-access=allow
endif

all:: render

render:
	quarto render

preview:
	quarto preview

lint-markdown:
	@mdl --ignore-front-matter --style .mdl.rb */*.qmd */*/*.qmd

.PHONY: all preview render lint-markdown