diff options
author | Jonas Smedegaard <dr@jones.dk> | 2025-03-30 13:11:28 +0200 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2025-03-30 13:11:28 +0200 |
commit | 9f837762cadbe763ea74d6c3690f99d02f55d923 (patch) | |
tree | 2aa2e3ae37385ef224648fb5aaa15b91f0fafe04 /_make/java.mk | |
parent | c7826b5b60be9ae6236c41b9ca5b028f2c343603 (diff) |
extend to support MODULEPATHS and JAVAMODULES
Diffstat (limited to '_make/java.mk')
-rw-r--r-- | _make/java.mk | 22 |
1 files changed, 17 insertions, 5 deletions
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 <dr@jones.dk> +# +# 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) $< |