From 9f837762cadbe763ea74d6c3690f99d02f55d923 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Sun, 30 Mar 2025 13:11:28 +0200 Subject: extend to support MODULEPATHS and JAVAMODULES --- _make/java.mk | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to '_make/java.mk') diff --git a/_make/java.mk b/_make/java.mk index bd3ae04..9d80e01 100644 --- a/_make/java.mk +++ b/_make/java.mk @@ -2,20 +2,32 @@ # # SPDX-License-Identifier: GPL-3.0-or-later # SPDX-FileCopyrightText: 2024-2025 Jonas Smedegaard +# +# Setup: +# In main Makefile... +# * set variable PROJECT +# * set variables PROJECT_FLAVORS CLASSPATHS MODULEPATHS JAVAMODULES +# if needed +# * include this make snippet STEMS = $(PROJECT) $(PROJECT_FLAVORS:%=$(PROJECT)%) $(EXTRASTEMS) CLASSES = $(STEMS:=.class) # account for one annoyingly popular class of non-POSIX system -PATH_SEPARATOR := $(if $(filter Windows%,$($(shell uname))),;,:) +_java_path_separator := $(if $(filter Windows%,$($(shell uname))),;,:) +_java_module_separator = , -CLASSPATH_FLAGS = --class-path $(subst $() ,$(PATH_SEPARATOR),$(CLASSPATHS)) +_java_flag = $(if $2,--$1 $(subst $() ,$3,$(strip $2))) +_java_common_flags = $(strip \ + $(call _java_flag,class-path,$(CLASSPATHS),$(_java_path_separator)) \ + $(call _java_flag,module-path,$(MODULEPATHS),$(_java_path_separator)) \ + $(call _java_flag,add-modules,$(JAVAMODULES),$(_java_module_separator))) # defaults overridable at make invocation JAVAC ?= javac JAVA ?= java -JAVACFLAGS ?= $(CLASSPATH_FLAGS) -g -Xlint -Xdoclint -JAVAFLAGS ?= $(CLASSPATH_FLAGS) +JAVACFLAGS ?= $(strip $(_java_common_flags) -Xlint -Xdoclint) +JAVAFLAGS ?= $(strip $(_java_common_flags)) all:: run-$(PROJECT) @@ -26,7 +38,7 @@ $(STEMS:%=check-%): check-%: checkstyle -c ./_checkstyle/checks.xml $*.java $(STEMS:%=run-%): run-%: %.class - $(or $(RUNTIME_ENV_$*),$(RUNTIME_ENV)) $(JAVA) $(JAVAFLAGS) $* $(or $(RUNTIME_ARGS_$*),$(RUNTIME_ARGS)) + $(or $(RUNTIME_ENV_$*),$(RUNTIME_ENV)) $(JAVA) $(JAVAFLAGS) $*.java $(or $(RUNTIME_ARGS_$*),$(RUNTIME_ARGS)) %.class: %.java $(JAVAC) $(JAVACFLAGS) $< -- cgit v1.2.3