diff options
author | Jonas Smedegaard <dr@jones.dk> | 2025-03-27 20:36:20 +0100 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2025-03-28 14:03:49 +0100 |
commit | 31babe2ed0754b656b57a1a1d9976936eae1a1dd (patch) | |
tree | cadaec92b33c006163655d17c601b40e249e1a68 /_make/java.mk | |
parent | 63f48fb09435b3dcb0c313a5adc8d559232a3dd5 (diff) |
improve make
Diffstat (limited to '_make/java.mk')
-rw-r--r-- | _make/java.mk | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/_make/java.mk b/_make/java.mk new file mode 100644 index 0000000..8a476b7 --- /dev/null +++ b/_make/java.mk @@ -0,0 +1,34 @@ +# GNUMake snippet for java compilation and execution +# +# SPDX-License-Identifier: GPL-3.0-or-later +# SPDX-FileCopyrightText: 2024 Jonas Smedegaard <dr@jones.dk> + +STEMS = $(PROJECT) $(foreach f,$(PROJECT_FLAVORS),$(PROJECT)$f) $(EXTRASTEMS) +CLASSES = $(foreach s,$(STEMS),$(addsuffix .class,$s)) + +# account for one annoyingly popular class of non-POSIX system +PATH_SEPARATOR := $(if $(filter Windows%,$($(shell uname))),;,:) + +CLASSPATH_FLAGS = --class-path $(subst $() ,$(PATH_SEPARATOR),$(CLASSPATHS)) + +# defaults overridable at make invocation +JAVAC ?= javac +JAVA ?= java +JAVACFLAGS ?= $(CLASSPATH_FLAGS) -g -Xlint -Xdoclint +JAVAFLAGS ?= $(CLASSPATH_FLAGS) + +all:: run-$(PROJECT) + +clean:: + rm -f $(CLASSES) + +$(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)) + +%.class: %.java + $(JAVAC) $(JAVACFLAGS) $< + +.PHONY: all clean $(STEMS:%=run-%) |