From 5fdfc0c9b1f1ed084cb084aed19be56a03698730 Mon Sep 17 00:00:00 2001
From: Jonas Smedegaard <dr@jones.dk>
Date: Sun, 27 Apr 2025 20:11:23 +0200
Subject: check javadoc only with JDK 23+ supporting Markdown-flavored javadoc

---
 _make/java.mk | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/_make/java.mk b/_make/java.mk
index 475ac6b..2bf0f1d 100644
--- a/_make/java.mk
+++ b/_make/java.mk
@@ -16,12 +16,23 @@
 # Variables may add suffix _$(PROJECTMODULE), in full or "host-only",
 # e.g. JAVA_MODULES_org.example.mydemo or JAVA_MODULES_mydemo.
 
+# resolve Java version
+JAVA_MAJOR_VERSION := $(shell $(JAVA) -version 2>&1 \
+ | grep -Pom1 '"\K\d+' )
+
 # defaults overridable at make invocation
 JAVA_ROOT ?= src/main/java
 JAVAC ?= javac
 JAVA ?= java
 JAR ?= jar
 
+# check javadoc only with JDK 23+ supporting Markdown-flavored javadoc
+ifeq ($(shell expr $(JAVA_MAJOR_VERSION) \>= 23), 1)
+JAVACFLAGS ?= -Xlint -Xdoclint -implicit:none
+else
+JAVACFLAGS ?= -Xlint -implicit:none
+endif
+
 # account for one annoyingly popular class of non-POSIX system
 _java_path_separator := $(if $(filter Windows%,$($(shell uname))),;,:)
 _java_module_separator = ,
@@ -61,7 +72,7 @@ $(JAVA_PROJECTMODULES:%=build-%): build-%:
 	rm -rf mods/$*
 	$(JAVAC) $(strip \
 	$(call _java_flag,module-source-path,JAVA_MODULESOURCEPATH) \
-	$(_java_common_flags) -Xlint -Xdoclint -implicit:none \
+	$(_java_common_flags) $(JAVACFLAGS) \
 	$(call _java_projvar,JAVACFLAGS) \
 	-d mods/$* \
 	$(wildcard $(_java_root)/module-info.java) \
-- 
cgit v1.2.3