Wed Nov 22 14:13:13 2023 UTC ()
mk: Support openjdk21 and update for openjdk-bin-21.0.1


(ryoon)
diff -r1.136 -r1.137 pkgsrc/mk/java-vm.mk

cvs diff -r1.136 -r1.137 pkgsrc/mk/java-vm.mk (expand / switch to unified diff)

--- pkgsrc/mk/java-vm.mk 2023/11/18 15:07:17 1.136
+++ pkgsrc/mk/java-vm.mk 2023/11/22 14:13:13 1.137
@@ -1,47 +1,48 @@ @@ -1,47 +1,48 @@
1# $NetBSD: java-vm.mk,v 1.136 2023/11/18 15:07:17 abs Exp $ 1# $NetBSD: java-vm.mk,v 1.137 2023/11/22 14:13:13 ryoon Exp $
2# 2#
3# This Makefile fragment provides a Java VM, either at build-time or at 3# This Makefile fragment provides a Java VM, either at build-time or at
4# run-time, depending on the package's needs. 4# run-time, depending on the package's needs.
5# 5#
6# User-settable variables: 6# User-settable variables:
7# 7#
8# PKG_JVM_DEFAULT 8# PKG_JVM_DEFAULT
9# The JVM that should be used if nothing particular is specified. 9# The JVM that should be used if nothing particular is specified.
10# 10#
11# Possible values: kaffe openjdk8 11# Possible values: kaffe openjdk8
12# sun-jdk7 oracle-jdk8 12# sun-jdk7 oracle-jdk8
13# adoptopenjdk11-bin 13# adoptopenjdk11-bin
14# openjdk-bin openjdk11 14# openjdk-bin openjdk11
15# openjdk17 oracle-jdk17 15# openjdk17 oracle-jdk17
 16# openjdk21
16# Default value: (platform-dependent) 17# Default value: (platform-dependent)
17# 18#
18# Package-settable variables: 19# Package-settable variables:
19# 20#
20# USE_JAVA 21# USE_JAVA
21# When set to "yes", a build-time dependency on the JDK and 22# When set to "yes", a build-time dependency on the JDK and
22# a run-time dependency on the JRE are added. 23# a run-time dependency on the JRE are added.
23# When set to "run", a run-time dependency on the JRE is added. 24# When set to "run", a run-time dependency on the JRE is added.
24# When set to "build", a build-time dependency on the JRE is added. 25# When set to "build", a build-time dependency on the JRE is added.
25# 26#
26# Possible values: yes run build 27# Possible values: yes run build
27# Default value: yes 28# Default value: yes
28# 29#
29# USE_JAVA2 30# USE_JAVA2
30# When the package needs a Java 2 implementation, this variable 31# When the package needs a Java 2 implementation, this variable
31# should be set to "yes". It can also be set to "1.4", "1.5", "6", 32# should be set to "yes". It can also be set to "1.4", "1.5", "6",
32# "7", "8", "11" and "17" require an even more recent implementation. 33# "7", "8", "11" and "17" require an even more recent implementation.
33# 34#
34# Possible values: yes no 1.4 1.5 6 7 8 11 17 35# Possible values: yes no 1.4 1.5 6 7 8 11 17 21
35# Default value: no 36# Default value: no
36# 37#
37# PKG_JVMS_ACCEPTED 38# PKG_JVMS_ACCEPTED
38# The list of JVMs that may be used as possible implementations. 39# The list of JVMs that may be used as possible implementations.
39# 40#
40# Variables set by this file: 41# Variables set by this file:
41# 42#
42# JAVA_BINPREFIX 43# JAVA_BINPREFIX
43# The prefix for the Java binaries. The path to the real binaries 44# The prefix for the Java binaries. The path to the real binaries
44# is constructed by appending -${program} to it. 45# is constructed by appending -${program} to it.
45# 46#
46# Examples: 47# Examples:
47# * ${JAVA_BINPREFIX}-java is the path to the Java interpreter. 48# * ${JAVA_BINPREFIX}-java is the path to the Java interpreter.
@@ -65,31 +66,32 @@ _SYS_VARS.java= PKG_JVM PKG_JAVA_HOME J @@ -65,31 +66,32 @@ _SYS_VARS.java= PKG_JVM PKG_JAVA_HOME J
65_SORTED_VARS.java= PKG_JVMS_ACCEPTED 66_SORTED_VARS.java= PKG_JVMS_ACCEPTED
66 67
67.include "../../mk/bsd.prefs.mk" 68.include "../../mk/bsd.prefs.mk"
68 69
69USE_JAVA?= yes 70USE_JAVA?= yes
70USE_JAVA2?= no 71USE_JAVA2?= no
71 72
72PKG_JVM_DEFAULT?= # empty 73PKG_JVM_DEFAULT?= # empty
73PKG_JVMS_ACCEPTED?= ${_PKG_JVMS} 74PKG_JVMS_ACCEPTED?= ${_PKG_JVMS}
74 75
75# This is a list of all of the JDKs that may be used. 76# This is a list of all of the JDKs that may be used.
76# 77#
77# adoptopenjdk11-bin and openjdk-bin do not provide native NetBSD binaries 78# adoptopenjdk11-bin and openjdk-bin do not provide native NetBSD binaries
78_PKG_JVMS.17= openjdk17 oracle-jdk17 79_PKG_JVMS.21= openjdk21 openjdk-bin
 80_PKG_JVMS.17= ${_PKG_JVMS.21} openjdk17 oracle-jdk17
79.if ${OPSYS} == "NetBSD" 81.if ${OPSYS} == "NetBSD"
80_PKG_JVMS.11= ${_PKG_JVMS.17} openjdk11 adoptopenjdk11-bin openjdk-bin 82_PKG_JVMS.11= ${_PKG_JVMS.17} openjdk11 adoptopenjdk11-bin
81.else 83.else
82_PKG_JVMS.11= ${_PKG_JVMS.17} adoptopenjdk11-bin openjdk-bin openjdk11 84_PKG_JVMS.11= ${_PKG_JVMS.17} adoptopenjdk11-bin openjdk11
83.endif 85.endif
84_PKG_JVMS.8= ${_PKG_JVMS.11} openjdk8 oracle-jdk8 86_PKG_JVMS.8= ${_PKG_JVMS.11} openjdk8 oracle-jdk8
85_PKG_JVMS.7= ${_PKG_JVMS.8} sun-jdk7 87_PKG_JVMS.7= ${_PKG_JVMS.8} sun-jdk7
86_PKG_JVMS.6= ${_PKG_JVMS.7} jdk16 88_PKG_JVMS.6= ${_PKG_JVMS.7} jdk16
87_PKG_JVMS.1.5= ${_PKG_JVMS.6} jdk15 89_PKG_JVMS.1.5= ${_PKG_JVMS.6} jdk15
88_PKG_JVMS.1.4= ${_PKG_JVMS.1.5} 90_PKG_JVMS.1.4= ${_PKG_JVMS.1.5}
89_PKG_JVMS.yes= ${_PKG_JVMS.1.4} kaffe 91_PKG_JVMS.yes= ${_PKG_JVMS.1.4} kaffe
90_PKG_JVMS.no= ${_PKG_JVMS.yes} 92_PKG_JVMS.no= ${_PKG_JVMS.yes}
91_PKG_JVMS= ${_PKG_JVMS.${USE_JAVA2}} 93_PKG_JVMS= ${_PKG_JVMS.${USE_JAVA2}}
92 94
93# To be deprecated: if PKG_JVM is explicitly set, then use it as the 95# To be deprecated: if PKG_JVM is explicitly set, then use it as the
94# default JVM. Note that this has lower precedence than PKG_JVM_DEFAULT. 96# default JVM. Note that this has lower precedence than PKG_JVM_DEFAULT.
95# 97#
@@ -183,61 +185,65 @@ _ONLY_FOR_PLATFORMS.openjdk11= \ @@ -183,61 +185,65 @@ _ONLY_FOR_PLATFORMS.openjdk11= \
183 NetBSD-[8-9].*-x86_64 NetBSD-1[0-9].*-x86_64 \ 185 NetBSD-[8-9].*-x86_64 NetBSD-1[0-9].*-x86_64 \
184 NetBSD-[8-9].*-i386 NetBSD-1[0-9].*i386 \ 186 NetBSD-[8-9].*-i386 NetBSD-1[0-9].*i386 \
185 NetBSD-9.99.*-aarch64 NetBSD-1[0-9].*-aarch64 \ 187 NetBSD-9.99.*-aarch64 NetBSD-1[0-9].*-aarch64 \
186 NetBSD-9.99.*-earmv[67]hf NetBSD-1[0-9].*-earmv[67]hf 188 NetBSD-9.99.*-earmv[67]hf NetBSD-1[0-9].*-earmv[67]hf
187_ONLY_FOR_PLATFORMS.openjdk17= \ 189_ONLY_FOR_PLATFORMS.openjdk17= \
188 NetBSD-9.*-x86_64 NetBSD-1[0-9].*-x86_64 \ 190 NetBSD-9.*-x86_64 NetBSD-1[0-9].*-x86_64 \
189 NetBSD-9.*-i386 NetBSD-1[0-9].*-i386 \ 191 NetBSD-9.*-i386 NetBSD-1[0-9].*-i386 \
190 NetBSD-9.99.*-aarch64 NetBSD-1[0-9].*-aarch64 \ 192 NetBSD-9.99.*-aarch64 NetBSD-1[0-9].*-aarch64 \
191 NetBSD-9.99.*-earmv[67]hf NetBSD-1[0-9].*-earmv[67]hf 193 NetBSD-9.99.*-earmv[67]hf NetBSD-1[0-9].*-earmv[67]hf
192_ONLY_FOR_PLATFORMS.oracle-jdk17= \ 194_ONLY_FOR_PLATFORMS.oracle-jdk17= \
193 NetBSD-9.*-x86_64 NetBSD-1[0-9].*-x86_64 \ 195 NetBSD-9.*-x86_64 NetBSD-1[0-9].*-x86_64 \
194 Darwin-*-aarch64 Darwin-*-x86_64 \ 196 Darwin-*-aarch64 Darwin-*-x86_64 \
195 Linux-*-aarch64 Linux-*-x86_64 197 Linux-*-aarch64 Linux-*-x86_64
 198_ONLY_FOR_PLATFORMS.openjdk21= \
 199 NetBSD-9.*-x86_64 NetBSD-1[0-9].*-x86_64
196 200
197# Set ONLY_FOR_PLATFORM based on accepted JVMs 201# Set ONLY_FOR_PLATFORM based on accepted JVMs
198.for _jvm_ in ${PKG_JVMS_ACCEPTED} 202.for _jvm_ in ${PKG_JVMS_ACCEPTED}
199ONLY_FOR_PLATFORM+= ${_ONLY_FOR_PLATFORMS.${_jvm_}} 203ONLY_FOR_PLATFORM+= ${_ONLY_FOR_PLATFORMS.${_jvm_}}
200.endfor 204.endfor
201 205
202# Set the accepted JVMs for this platform. 206# Set the accepted JVMs for this platform.
203.for _jvm_ in ${_PKG_JVMS} 207.for _jvm_ in ${_PKG_JVMS}
204. for _pattern_ in ${_ONLY_FOR_PLATFORMS.${_jvm_}} 208. for _pattern_ in ${_ONLY_FOR_PLATFORMS.${_jvm_}}
205. if !empty(MACHINE_PLATFORM:M${_pattern_}) 209. if !empty(MACHINE_PLATFORM:M${_pattern_})
206_PKG_JVMS_ACCEPTED+= ${PKG_JVMS_ACCEPTED:M${_jvm_}} 210_PKG_JVMS_ACCEPTED+= ${PKG_JVMS_ACCEPTED:M${_jvm_}}
207. endif 211. endif
208. endfor 212. endfor
209.endfor 213.endfor
210 214
211_JAVA_PKGBASE.kaffe= kaffe 215_JAVA_PKGBASE.kaffe= kaffe
212_JAVA_PKGBASE.openjdk8= openjdk8 216_JAVA_PKGBASE.openjdk8= openjdk8
213_JAVA_PKGBASE.sun-jdk7= sun-jre7 217_JAVA_PKGBASE.sun-jdk7= sun-jre7
214_JAVA_PKGBASE.oracle-jdk8= oracle-jre8 218_JAVA_PKGBASE.oracle-jdk8= oracle-jre8
215_JAVA_PKGBASE.adoptopenjdk11-bin= adoptopenjdk11-bin 219_JAVA_PKGBASE.adoptopenjdk11-bin= adoptopenjdk11-bin
216_JAVA_PKGBASE.openjdk-bin= openjdk-bin 220_JAVA_PKGBASE.openjdk-bin= openjdk-bin
217_JAVA_PKGBASE.openjdk11= openjdk11 221_JAVA_PKGBASE.openjdk11= openjdk11
218_JAVA_PKGBASE.openjdk17= openjdk17 222_JAVA_PKGBASE.openjdk17= openjdk17
219_JAVA_PKGBASE.oracle-jdk17= oracle-jdk17 223_JAVA_PKGBASE.oracle-jdk17= oracle-jdk17
 224_JAVA_PKGBASE.openjdk21= openjdk21
220 225
221# The following is copied from the respective JVM Makefiles. 226# The following is copied from the respective JVM Makefiles.
222_JAVA_NAME.kaffe= kaffe 227_JAVA_NAME.kaffe= kaffe
223_JAVA_NAME.openjdk8= openjdk8 228_JAVA_NAME.openjdk8= openjdk8
224_JAVA_NAME.sun-jdk7= sun7 229_JAVA_NAME.sun-jdk7= sun7
225_JAVA_NAME.oracle-jdk8= oracle8 230_JAVA_NAME.oracle-jdk8= oracle8
226_JAVA_NAME.adoptopenjdk11-bin= adoptopenjdk11-bin 231_JAVA_NAME.adoptopenjdk11-bin= adoptopenjdk11-bin
227_JAVA_NAME.openjdk-bin= openjdk-bin 232_JAVA_NAME.openjdk-bin= openjdk-bin
228_JAVA_NAME.openjdk11= openjdk11 233_JAVA_NAME.openjdk11= openjdk11
229_JAVA_NAME.openjdk17= openjdk17 234_JAVA_NAME.openjdk17= openjdk17
230_JAVA_NAME.oracle-jdk17= oracle-jdk17 235_JAVA_NAME.oracle-jdk17= oracle-jdk17
 236_JAVA_NAME.openjdk21= openjdk21
231 237
232# Mark the acceptable JVMs and check which JVM packages are installed. 238# Mark the acceptable JVMs and check which JVM packages are installed.
233.for _jvm_ in ${_PKG_JVMS_ACCEPTED} 239.for _jvm_ in ${_PKG_JVMS_ACCEPTED}
234_PKG_JVM_OK.${_jvm_}= yes 240_PKG_JVM_OK.${_jvm_}= yes
235_PKG_JVM_INSTALLED.${_jvm_}!= \ 241_PKG_JVM_INSTALLED.${_jvm_}!= \
236 if ${PKG_INFO} -qe ${_JAVA_PKGBASE.${_jvm_}}; then \ 242 if ${PKG_INFO} -qe ${_JAVA_PKGBASE.${_jvm_}}; then \
237 ${ECHO} yes; \ 243 ${ECHO} yes; \
238 else \ 244 else \
239 ${ECHO} no; \ 245 ${ECHO} no; \
240 fi 246 fi
241.endfor 247.endfor
242 248
243# Use one of the installed JVMs,... 249# Use one of the installed JVMs,...
@@ -276,36 +282,38 @@ _PKG_JVM= "none" @@ -276,36 +282,38 @@ _PKG_JVM= "none"
276.endif 282.endif
277 283
278BUILDLINK_API_DEPENDS.kaffe?= kaffe>=1.1.4 284BUILDLINK_API_DEPENDS.kaffe?= kaffe>=1.1.4
279BUILDLINK_API_DEPENDS.openjdk8?= openjdk8-[0-9]* 285BUILDLINK_API_DEPENDS.openjdk8?= openjdk8-[0-9]*
280BUILDLINK_API_DEPENDS.sun-jdk7?= sun-jdk7-[0-9]* 286BUILDLINK_API_DEPENDS.sun-jdk7?= sun-jdk7-[0-9]*
281BUILDLINK_API_DEPENDS.sun-jre7?= sun-jre7-[0-9]* 287BUILDLINK_API_DEPENDS.sun-jre7?= sun-jre7-[0-9]*
282BUILDLINK_API_DEPENDS.oracle-jdk8?= oracle-jdk8-[0-9]* 288BUILDLINK_API_DEPENDS.oracle-jdk8?= oracle-jdk8-[0-9]*
283BUILDLINK_API_DEPENDS.oracle-jre8?= oracle-jre8-[0-9]* 289BUILDLINK_API_DEPENDS.oracle-jre8?= oracle-jre8-[0-9]*
284BUILDLINK_API_DEPENDS.adoptopenjdk11-bin?= adoptopenjdk11-bin-[0-9]* 290BUILDLINK_API_DEPENDS.adoptopenjdk11-bin?= adoptopenjdk11-bin-[0-9]*
285BUILDLINK_API_DEPENDS.openjdk-bin?= openjdk-bin-[0-9]* 291BUILDLINK_API_DEPENDS.openjdk-bin?= openjdk-bin-[0-9]*
286BUILDLINK_API_DEPENDS.openjdk11?= openjdk11-[0-9]* 292BUILDLINK_API_DEPENDS.openjdk11?= openjdk11-[0-9]*
287BUILDLINK_API_DEPENDS.openjdk17?= openjdk17-[0-9]* 293BUILDLINK_API_DEPENDS.openjdk17?= openjdk17-[0-9]*
288BUILDLINK_API_DEPENDS.oracle-jdk17?= oracle-jdk17-[0-9]* 294BUILDLINK_API_DEPENDS.oracle-jdk17?= oracle-jdk17-[0-9]*
 295BUILDLINK_API_DEPENDS.openjdk21?= openjdk21-[0-9]*
289 296
290_JRE.kaffe= kaffe 297_JRE.kaffe= kaffe
291_JRE.openjdk8= openjdk8 298_JRE.openjdk8= openjdk8
292_JRE.sun-jdk7= sun-jre7 299_JRE.sun-jdk7= sun-jre7
293_JRE.oracle-jdk8= oracle-jre8 300_JRE.oracle-jdk8= oracle-jre8
294_JRE.adoptopenjdk11-bin= adoptopenjdk11-bin 301_JRE.adoptopenjdk11-bin= adoptopenjdk11-bin
295_JRE.openjdk-bin= openjdk-bin 302_JRE.openjdk-bin= openjdk-bin
296_JRE.openjdk11= openjdk11 303_JRE.openjdk11= openjdk11
297_JRE.openjdk17= openjdk17 304_JRE.openjdk17= openjdk17
298_JRE.oracle-jdk17= oracle-jdk17 305_JRE.oracle-jdk17= oracle-jdk17
 306_JRE.openjdk21= openjdk21
299 307
300_JAVA_BASE_CLASSES= classes.zip 308_JAVA_BASE_CLASSES= classes.zip
301 309
302.if ${_PKG_JVM} == "kaffe" 310.if ${_PKG_JVM} == "kaffe"
303_JDK_PKGSRCDIR= ../../lang/kaffe 311_JDK_PKGSRCDIR= ../../lang/kaffe
304_JRE_PKGSRCDIR= ${_JDK_PKGSRCDIR} 312_JRE_PKGSRCDIR= ${_JDK_PKGSRCDIR}
305_JAVA_HOME= ${LOCALBASE}/java/kaffe 313_JAVA_HOME= ${LOCALBASE}/java/kaffe
306.elif ${_PKG_JVM} == "openjdk8" 314.elif ${_PKG_JVM} == "openjdk8"
307_JDK_PKGSRCDIR= ../../lang/openjdk8 315_JDK_PKGSRCDIR= ../../lang/openjdk8
308_JRE_PKGSRCDIR= ${_JDK_PKGSRCDIR} 316_JRE_PKGSRCDIR= ${_JDK_PKGSRCDIR}
309_JAVA_HOME= ${LOCALBASE}/java/openjdk8 317_JAVA_HOME= ${LOCALBASE}/java/openjdk8
310.elif ${_PKG_JVM} == "sun-jdk7" 318.elif ${_PKG_JVM} == "sun-jdk7"
311_JDK_PKGSRCDIR= ../../lang/sun-jdk7 319_JDK_PKGSRCDIR= ../../lang/sun-jdk7
@@ -331,26 +339,31 @@ _JDK_PKGSRCDIR= ../../lang/openjdk11 @@ -331,26 +339,31 @@ _JDK_PKGSRCDIR= ../../lang/openjdk11
331_JRE_PKGSRCDIR= ../../lang/openjdk11 339_JRE_PKGSRCDIR= ../../lang/openjdk11
332_JAVA_HOME= ${LOCALBASE}/java/openjdk11 340_JAVA_HOME= ${LOCALBASE}/java/openjdk11
333UNLIMIT_RESOURCES+= datasize virtualsize 341UNLIMIT_RESOURCES+= datasize virtualsize
334.elif ${_PKG_JVM} == "openjdk17" 342.elif ${_PKG_JVM} == "openjdk17"
335_JDK_PKGSRCDIR= ../../lang/openjdk17 343_JDK_PKGSRCDIR= ../../lang/openjdk17
336_JRE_PKGSRCDIR= ../../lang/openjdk17 344_JRE_PKGSRCDIR= ../../lang/openjdk17
337_JAVA_HOME= ${LOCALBASE}/java/openjdk17 345_JAVA_HOME= ${LOCALBASE}/java/openjdk17
338UNLIMIT_RESOURCES+= datasize virtualsize 346UNLIMIT_RESOURCES+= datasize virtualsize
339.elif ${_PKG_JVM} == "oracle-jdk17" 347.elif ${_PKG_JVM} == "oracle-jdk17"
340_JDK_PKGSRCDIR= ../../lang/oracle-jdk17 348_JDK_PKGSRCDIR= ../../lang/oracle-jdk17
341_JRE_PKGSRCDIR= ../../lang/oracle-jdk17 349_JRE_PKGSRCDIR= ../../lang/oracle-jdk17
342_JAVA_HOME= ${LOCALBASE}/java/oracle-jdk17 350_JAVA_HOME= ${LOCALBASE}/java/oracle-jdk17
343UNLIMIT_RESOURCES+= datasize virtualsize 351UNLIMIT_RESOURCES+= datasize virtualsize
 352.elif ${_PKG_JVM} == "openjdk21"
 353_JDK_PKGSRCDIR= ../../lang/openjdk21
 354_JRE_PKGSRCDIR= ../../lang/openjdk21
 355_JAVA_HOME= ${LOCALBASE}/java/openjdk21
 356UNLIMIT_RESOURCES+= datasize virtualsize
344.endif 357.endif
345 358
346# If we are not using Java for building, then we need a run-time dependency on 359# If we are not using Java for building, then we need a run-time dependency on
347# the JRE, otherwise, build-time dependency on the JRE. 360# the JRE, otherwise, build-time dependency on the JRE.
348.if defined(_JRE_PKGSRCDIR) 361.if defined(_JRE_PKGSRCDIR)
349. if exists(${_JRE_PKGSRCDIR}/buildlink3.mk) 362. if exists(${_JRE_PKGSRCDIR}/buildlink3.mk)
350. if !empty(USE_JAVA:M[bB][uU][iI][lL][dD]) 363. if !empty(USE_JAVA:M[bB][uU][iI][lL][dD])
351BUILDLINK_DEPMETHOD.${_JRE.${_PKG_JVM}}= build 364BUILDLINK_DEPMETHOD.${_JRE.${_PKG_JVM}}= build
352. endif 365. endif
353. include "${_JRE_PKGSRCDIR}/buildlink3.mk" 366. include "${_JRE_PKGSRCDIR}/buildlink3.mk"
354. endif 367. endif
355.endif 368.endif
356 369