DOCUMENTS = delivery1 delivery2

JAVA_PROJECTMODULES = com.example.portfolio3 dk.biks.bachelorizer
JAVA_ROOT_portfolio3 = src/com.example.portfolio3
JAVA_EXTRACLASSES_portfolio3 = AbstractGraph AdjListGraph AdjMapGraph \
 Edge EdgeGraph GraphAlgorithms Graph Graphs MatrixGraph Vertex
JAVA_MODULEPATHS_bachelorizer = /usr/share/openjfx/lib
JAVA_ROOT_bachelorizer = src/dk.biks.bachelorizer
JAVA_MAINCLASSES_bachelorizer = Main Combi Window
JAVA_EXTRACLASSES_bachelorizer = Control GUI Person
JAVA_MODULES_bachelorizer = $(addprefix javafx.,base controls graphics)

ZIPNAME = bachelorizer
ZIPFILES += $(STEMS:=.java)

include _make/*.mk

# 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

# loading as modules works with JDK 22+, and is required with JDK 23+
ifeq ($(shell expr $(JAVA_MAJOR_VERSION) \>= 22), 1)
JAVA_MODULEPATHS_bachelorizer += mods/com.example.portfolio3
else
JAVA_CLASSPATHS_bachelorizer += mods/com.example.portfolio3
endif

# TODO: fix properly declare and resolve local interdependencies
runsrc-dk.biks.bachelorizer build-dk.biks.bachelorizer: \
 build-com.example.portfolio3