Fri May 13 14:28:29 2022 UTC ()
mk: Enable openjdk17


(ryoon)
diff -r1.126 -r1.127 pkgsrc/mk/java-vm.mk

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

--- pkgsrc/mk/java-vm.mk 2022/03/19 14:10:51 1.126
+++ pkgsrc/mk/java-vm.mk 2022/05/13 14:28:29 1.127
@@ -1,46 +1,47 @@ @@ -1,46 +1,47 @@
1# $NetBSD: java-vm.mk,v 1.126 2022/03/19 14:10:51 rillig Exp $ 1# $NetBSD: java-vm.mk,v 1.127 2022/05/13 14:28:29 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
15# Default value: (platform-dependent) 16# Default value: (platform-dependent)
16# 17#
17# Package-settable variables: 18# Package-settable variables:
18# 19#
19# USE_JAVA 20# USE_JAVA
20# When set to "yes", a build-time dependency on the JDK and 21# When set to "yes", a build-time dependency on the JDK and
21# a run-time dependency on the JRE are added. 22# a run-time dependency on the JRE are added.
22# When set to "run", a run-time dependency on the JRE is added. 23# When set to "run", a run-time dependency on the JRE is added.
23# When set to "build", a build-time dependency on the JRE is added. 24# When set to "build", a build-time dependency on the JRE is added.
24# 25#
25# Possible values: yes run build 26# Possible values: yes run build
26# Default value: yes 27# Default value: yes
27# 28#
28# USE_JAVA2 29# USE_JAVA2
29# When the package needs a Java 2 implementation, this variable 30# When the package needs a Java 2 implementation, this variable
30# should be set to "yes". It can also be set to "1.4", "1.5", "6". 31# should be set to "yes". It can also be set to "1.4", "1.5", "6".
31# "7", "8" and "9" require an even more recent implementation. 32# "7", "8", "9" and "17" require an even more recent implementation.
32# 33#
33# Possible values: yes no 1.4 1.5 6 7 8 9 34# Possible values: yes no 1.4 1.5 6 7 8 9 17
34# Default value: no 35# Default value: no
35# 36#
36# PKG_JVMS_ACCEPTED 37# PKG_JVMS_ACCEPTED
37# The list of JVMs that may be used as possible implementations. 38# The list of JVMs that may be used as possible implementations.
38# 39#
39# Variables set by this file: 40# Variables set by this file:
40# 41#
41# JAVA_BINPREFIX 42# JAVA_BINPREFIX
42# The prefix for the Java binaries. The path to the real binaries 43# The prefix for the Java binaries. The path to the real binaries
43# is constructed by appending -${program} to it. 44# is constructed by appending -${program} to it.
44# 45#
45# Examples: 46# Examples:
46# * ${JAVA_BINPREFIX}-java is the path to the Java interpreter. 47# * ${JAVA_BINPREFIX}-java is the path to the Java interpreter.
@@ -64,30 +65,31 @@ _SYS_VARS.java= PKG_JVM PKG_JAVA_HOME J @@ -64,30 +65,31 @@ _SYS_VARS.java= PKG_JVM PKG_JAVA_HOME J
64_SORTED_VARS.java= PKG_JVMS_ACCEPTED 65_SORTED_VARS.java= PKG_JVMS_ACCEPTED
65 66
66.include "../../mk/bsd.prefs.mk" 67.include "../../mk/bsd.prefs.mk"
67 68
68USE_JAVA?= yes 69USE_JAVA?= yes
69USE_JAVA2?= no 70USE_JAVA2?= no
70 71
71PKG_JVM_DEFAULT?= # empty 72PKG_JVM_DEFAULT?= # empty
72PKG_JVMS_ACCEPTED?= ${_PKG_JVMS} 73PKG_JVMS_ACCEPTED?= ${_PKG_JVMS}
73 74
74# This is a list of all of the JDKs that may be used. 75# This is a list of all of the JDKs that may be used.
75# 76#
76# adoptopenjdk11-bin and openjdk-bin do not provide native NetBSD binaries 77# adoptopenjdk11-bin and openjdk-bin do not provide native NetBSD binaries
 78_PKG_JVMS.17= openjdk17
77.if ${OPSYS} == "NetBSD" 79.if ${OPSYS} == "NetBSD"
78_PKG_JVMS.9= openjdk11 adoptopenjdk11-bin openjdk-bin 80_PKG_JVMS.9= ${_PKG_JVMS.17} openjdk11 adoptopenjdk11-bin openjdk-bin
79.else 81.else
80_PKG_JVMS.9= adoptopenjdk11-bin openjdk-bin openjdk11 82_PKG_JVMS.9= ${_PKG_JVMS.17} adoptopenjdk11-bin openjdk-bin openjdk11
81.endif 83.endif
82_PKG_JVMS.8= ${_PKG_JVMS.9} openjdk8 oracle-jdk8 84_PKG_JVMS.8= ${_PKG_JVMS.9} openjdk8 oracle-jdk8
83_PKG_JVMS.7= ${_PKG_JVMS.8} sun-jdk7 85_PKG_JVMS.7= ${_PKG_JVMS.8} sun-jdk7
84_PKG_JVMS.6= ${_PKG_JVMS.7} jdk16 86_PKG_JVMS.6= ${_PKG_JVMS.7} jdk16
85_PKG_JVMS.1.5= ${_PKG_JVMS.6} jdk15 87_PKG_JVMS.1.5= ${_PKG_JVMS.6} jdk15
86_PKG_JVMS.1.4= ${_PKG_JVMS.1.5} 88_PKG_JVMS.1.4= ${_PKG_JVMS.1.5}
87_PKG_JVMS.yes= ${_PKG_JVMS.1.4} kaffe 89_PKG_JVMS.yes= ${_PKG_JVMS.1.4} kaffe
88_PKG_JVMS.no= ${_PKG_JVMS.yes} 90_PKG_JVMS.no= ${_PKG_JVMS.yes}
89_PKG_JVMS= ${_PKG_JVMS.${USE_JAVA2}} 91_PKG_JVMS= ${_PKG_JVMS.${USE_JAVA2}}
90 92
91# To be deprecated: if PKG_JVM is explicitly set, then use it as the 93# To be deprecated: if PKG_JVM is explicitly set, then use it as the
92# default JVM. Note that this has lower precedence than PKG_JVM_DEFAULT. 94# default JVM. Note that this has lower precedence than PKG_JVM_DEFAULT.
93# 95#
@@ -165,57 +167,62 @@ _ONLY_FOR_PLATFORMS.oracle-jdk8= \ @@ -165,57 +167,62 @@ _ONLY_FOR_PLATFORMS.oracle-jdk8= \
165 Linux-*-x86_64 \ 167 Linux-*-x86_64 \
166 NetBSD-[6-9]*-i386 NetBSD-[6-9]*-x86_64 \ 168 NetBSD-[6-9]*-i386 NetBSD-[6-9]*-x86_64 \
167 SunOS-5.11-x86_64 169 SunOS-5.11-x86_64
168_ONLY_FOR_PLATFORMS.adoptopenjdk11-bin= \ 170_ONLY_FOR_PLATFORMS.adoptopenjdk11-bin= \
169 Linux-*-x86_64 \ 171 Linux-*-x86_64 \
170 NetBSD-[6-9]*-x86_64 172 NetBSD-[6-9]*-x86_64
171_ONLY_FOR_PLATFORMS.openjdk-bin= \ 173_ONLY_FOR_PLATFORMS.openjdk-bin= \
172 Linux-*-x86_64 \ 174 Linux-*-x86_64 \
173 NetBSD-[6-9]*-x86_64 175 NetBSD-[6-9]*-x86_64
174_ONLY_FOR_PLATFORMS.openjdk11= \ 176_ONLY_FOR_PLATFORMS.openjdk11= \
175 NetBSD-[7-9]*-x86_64 \ 177 NetBSD-[7-9]*-x86_64 \
176 NetBSD-[7-9]*-i386 \ 178 NetBSD-[7-9]*-i386 \
177 NetBSD-*-aarch64 179 NetBSD-*-aarch64
 180_ONLY_FOR_PLATFORMS.openjdk17= \
 181 NetBSD-9*-x86_64 \
 182 NetBSD-10*-x86_64
178 183
179# Set ONLY_FOR_PLATFORM based on accepted JVMs 184# Set ONLY_FOR_PLATFORM based on accepted JVMs
180.for _jvm_ in ${PKG_JVMS_ACCEPTED} 185.for _jvm_ in ${PKG_JVMS_ACCEPTED}
181ONLY_FOR_PLATFORM+= ${_ONLY_FOR_PLATFORMS.${_jvm_}} 186ONLY_FOR_PLATFORM+= ${_ONLY_FOR_PLATFORMS.${_jvm_}}
182.endfor 187.endfor
183 188
184# Set the accepted JVMs for this platform. 189# Set the accepted JVMs for this platform.
185.for _jvm_ in ${_PKG_JVMS} 190.for _jvm_ in ${_PKG_JVMS}
186. for _pattern_ in ${_ONLY_FOR_PLATFORMS.${_jvm_}} 191. for _pattern_ in ${_ONLY_FOR_PLATFORMS.${_jvm_}}
187. if !empty(MACHINE_PLATFORM:M${_pattern_}) 192. if !empty(MACHINE_PLATFORM:M${_pattern_})
188_PKG_JVMS_ACCEPTED+= ${PKG_JVMS_ACCEPTED:M${_jvm_}} 193_PKG_JVMS_ACCEPTED+= ${PKG_JVMS_ACCEPTED:M${_jvm_}}
189. endif 194. endif
190. endfor 195. endfor
191.endfor 196.endfor
192 197
193_JAVA_PKGBASE.kaffe= kaffe 198_JAVA_PKGBASE.kaffe= kaffe
194_JAVA_PKGBASE.openjdk8= openjdk8 199_JAVA_PKGBASE.openjdk8= openjdk8
195_JAVA_PKGBASE.sun-jdk7= sun-jre7 200_JAVA_PKGBASE.sun-jdk7= sun-jre7
196_JAVA_PKGBASE.oracle-jdk8= oracle-jre8 201_JAVA_PKGBASE.oracle-jdk8= oracle-jre8
197_JAVA_PKGBASE.adoptopenjdk11-bin= adoptopenjdk11-bin 202_JAVA_PKGBASE.adoptopenjdk11-bin= adoptopenjdk11-bin
198_JAVA_PKGBASE.openjdk-bin= openjdk-bin 203_JAVA_PKGBASE.openjdk-bin= openjdk-bin
199_JAVA_PKGBASE.openjdk11= openjdk11 204_JAVA_PKGBASE.openjdk11= openjdk11
 205_JAVA_PKGBASE.openjdk17= openjdk17
200 206
201# The following is copied from the respective JVM Makefiles. 207# The following is copied from the respective JVM Makefiles.
202_JAVA_NAME.kaffe= kaffe 208_JAVA_NAME.kaffe= kaffe
203_JAVA_NAME.openjdk8= openjdk8 209_JAVA_NAME.openjdk8= openjdk8
204_JAVA_NAME.sun-jdk7= sun7 210_JAVA_NAME.sun-jdk7= sun7
205_JAVA_NAME.oracle-jdk8= oracle8 211_JAVA_NAME.oracle-jdk8= oracle8
206_JAVA_NAME.adoptopenjdk11-bin= adoptopenjdk11-bin 212_JAVA_NAME.adoptopenjdk11-bin= adoptopenjdk11-bin
207_JAVA_NAME.openjdk-bin= openjdk-bin 213_JAVA_NAME.openjdk-bin= openjdk-bin
208_JAVA_NAME.openjdk11= openjdk11 214_JAVA_NAME.openjdk11= openjdk11
 215_JAVA_NAME.openjdk17= openjdk17
209 216
210# Mark the acceptable JVMs and check which JVM packages are installed. 217# Mark the acceptable JVMs and check which JVM packages are installed.
211.for _jvm_ in ${_PKG_JVMS_ACCEPTED} 218.for _jvm_ in ${_PKG_JVMS_ACCEPTED}
212_PKG_JVM_OK.${_jvm_}= yes 219_PKG_JVM_OK.${_jvm_}= yes
213_PKG_JVM_INSTALLED.${_jvm_}!= \ 220_PKG_JVM_INSTALLED.${_jvm_}!= \
214 if ${PKG_INFO} -qe ${_JAVA_PKGBASE.${_jvm_}}; then \ 221 if ${PKG_INFO} -qe ${_JAVA_PKGBASE.${_jvm_}}; then \
215 ${ECHO} yes; \ 222 ${ECHO} yes; \
216 else \ 223 else \
217 ${ECHO} no; \ 224 ${ECHO} no; \
218 fi 225 fi
219.endfor 226.endfor
220 227
221# Use one of the installed JVMs,... 228# Use one of the installed JVMs,...
@@ -252,34 +259,36 @@ _PKG_JVM= ${_PKG_JVM_FIRSTACCEPTED} @@ -252,34 +259,36 @@ _PKG_JVM= ${_PKG_JVM_FIRSTACCEPTED}
252PKG_FAIL_REASON+= "no acceptable JVM found" 259PKG_FAIL_REASON+= "no acceptable JVM found"
253_PKG_JVM= "none" 260_PKG_JVM= "none"
254.endif 261.endif
255 262
256BUILDLINK_API_DEPENDS.kaffe?= kaffe>=1.1.4 263BUILDLINK_API_DEPENDS.kaffe?= kaffe>=1.1.4
257BUILDLINK_API_DEPENDS.openjdk8?= openjdk8-[0-9]* 264BUILDLINK_API_DEPENDS.openjdk8?= openjdk8-[0-9]*
258BUILDLINK_API_DEPENDS.sun-jdk7?= sun-jdk7-[0-9]* 265BUILDLINK_API_DEPENDS.sun-jdk7?= sun-jdk7-[0-9]*
259BUILDLINK_API_DEPENDS.sun-jre7?= sun-jre7-[0-9]* 266BUILDLINK_API_DEPENDS.sun-jre7?= sun-jre7-[0-9]*
260BUILDLINK_API_DEPENDS.oracle-jdk8?= oracle-jdk8-[0-9]* 267BUILDLINK_API_DEPENDS.oracle-jdk8?= oracle-jdk8-[0-9]*
261BUILDLINK_API_DEPENDS.oracle-jre8?= oracle-jre8-[0-9]* 268BUILDLINK_API_DEPENDS.oracle-jre8?= oracle-jre8-[0-9]*
262BUILDLINK_API_DEPENDS.adoptopenjdk11-bin?= adoptopenjdk11-bin-[0-9]* 269BUILDLINK_API_DEPENDS.adoptopenjdk11-bin?= adoptopenjdk11-bin-[0-9]*
263BUILDLINK_API_DEPENDS.openjdk-bin?= openjdk-bin-[0-9]* 270BUILDLINK_API_DEPENDS.openjdk-bin?= openjdk-bin-[0-9]*
264BUILDLINK_API_DEPENDS.openjdk11?= openjdk11-[0-9]* 271BUILDLINK_API_DEPENDS.openjdk11?= openjdk11-[0-9]*
 272BUILDLINK_API_DEPENDS.openjdk17?= openjdk17-[0-9]*
265 273
266_JRE.kaffe= kaffe 274_JRE.kaffe= kaffe
267_JRE.openjdk8= openjdk8 275_JRE.openjdk8= openjdk8
268_JRE.sun-jdk7= sun-jre7 276_JRE.sun-jdk7= sun-jre7
269_JRE.oracle-jdk8= oracle-jre8 277_JRE.oracle-jdk8= oracle-jre8
270_JRE.adoptopenjdk11-bin= adoptopenjdk11-bin 278_JRE.adoptopenjdk11-bin= adoptopenjdk11-bin
271_JRE.openjdk-bin= openjdk-bin 279_JRE.openjdk-bin= openjdk-bin
272_JRE.openjdk11= openjdk11 280_JRE.openjdk11= openjdk11
 281_JRE.openjdk17= openjdk17
273 282
274_JAVA_BASE_CLASSES= classes.zip 283_JAVA_BASE_CLASSES= classes.zip
275 284
276.if ${_PKG_JVM} == "kaffe" 285.if ${_PKG_JVM} == "kaffe"
277_JDK_PKGSRCDIR= ../../lang/kaffe 286_JDK_PKGSRCDIR= ../../lang/kaffe
278_JRE_PKGSRCDIR= ${_JDK_PKGSRCDIR} 287_JRE_PKGSRCDIR= ${_JDK_PKGSRCDIR}
279_JAVA_HOME= ${LOCALBASE}/java/kaffe 288_JAVA_HOME= ${LOCALBASE}/java/kaffe
280.elif ${_PKG_JVM} == "openjdk8" 289.elif ${_PKG_JVM} == "openjdk8"
281_JDK_PKGSRCDIR= ../../lang/openjdk8 290_JDK_PKGSRCDIR= ../../lang/openjdk8
282_JRE_PKGSRCDIR= ${_JDK_PKGSRCDIR} 291_JRE_PKGSRCDIR= ${_JDK_PKGSRCDIR}
283_JAVA_HOME= ${LOCALBASE}/java/openjdk8 292_JAVA_HOME= ${LOCALBASE}/java/openjdk8
284.elif ${_PKG_JVM} == "sun-jdk7" 293.elif ${_PKG_JVM} == "sun-jdk7"
285_JDK_PKGSRCDIR= ../../lang/sun-jdk7 294_JDK_PKGSRCDIR= ../../lang/sun-jdk7
@@ -295,26 +304,31 @@ UNLIMIT_RESOURCES+= datasize virtualsize @@ -295,26 +304,31 @@ UNLIMIT_RESOURCES+= datasize virtualsize
295_JDK_PKGSRCDIR= ../../lang/adoptopenjdk11-bin 304_JDK_PKGSRCDIR= ../../lang/adoptopenjdk11-bin
296_JRE_PKGSRCDIR= ../../lang/adoptopenjdk11-bin 305_JRE_PKGSRCDIR= ../../lang/adoptopenjdk11-bin
297_JAVA_HOME= ${LOCALBASE}/java/adoptopenjdk11-bin 306_JAVA_HOME= ${LOCALBASE}/java/adoptopenjdk11-bin
298.elif ${_PKG_JVM} == "openjdk-bin" 307.elif ${_PKG_JVM} == "openjdk-bin"
299_JDK_PKGSRCDIR= ../../lang/openjdk-bin 308_JDK_PKGSRCDIR= ../../lang/openjdk-bin
300_JRE_PKGSRCDIR= ../../lang/openjdk-bin 309_JRE_PKGSRCDIR= ../../lang/openjdk-bin
301_JAVA_HOME= ${LOCALBASE}/java/openjdk-bin 310_JAVA_HOME= ${LOCALBASE}/java/openjdk-bin
302UNLIMIT_RESOURCES+= datasize virtualsize 311UNLIMIT_RESOURCES+= datasize virtualsize
303.elif ${_PKG_JVM} == "openjdk11" 312.elif ${_PKG_JVM} == "openjdk11"
304_JDK_PKGSRCDIR= ../../lang/openjdk11 313_JDK_PKGSRCDIR= ../../lang/openjdk11
305_JRE_PKGSRCDIR= ../../lang/openjdk11 314_JRE_PKGSRCDIR= ../../lang/openjdk11
306_JAVA_HOME= ${LOCALBASE}/java/openjdk11 315_JAVA_HOME= ${LOCALBASE}/java/openjdk11
307UNLIMIT_RESOURCES+= datasize virtualsize 316UNLIMIT_RESOURCES+= datasize virtualsize
 317.elif ${_PKG_JVM} == "openjdk17"
 318_JDK_PKGSRCDIR= ../../lang/openjdk17
 319_JRE_PKGSRCDIR= ../../lang/openjdk17
 320_JAVA_HOME= ${LOCALBASE}/java/openjdk17
 321UNLIMIT_RESOURCES+= datasize virtualsize
308.endif 322.endif
309 323
310# If we are not using Java for building, then we need a run-time dependency on 324# If we are not using Java for building, then we need a run-time dependency on
311# the JRE, otherwise, build-time dependency on the JRE. 325# the JRE, otherwise, build-time dependency on the JRE.
312.if defined(_JRE_PKGSRCDIR) 326.if defined(_JRE_PKGSRCDIR)
313. if exists(${_JRE_PKGSRCDIR}/buildlink3.mk) 327. if exists(${_JRE_PKGSRCDIR}/buildlink3.mk)
314. if !empty(USE_JAVA:M[bB][uU][iI][lL][dD]) 328. if !empty(USE_JAVA:M[bB][uU][iI][lL][dD])
315BUILDLINK_DEPMETHOD.${_JRE.${_PKG_JVM}}= build 329BUILDLINK_DEPMETHOD.${_JRE.${_PKG_JVM}}= build
316. endif 330. endif
317. include "${_JRE_PKGSRCDIR}/buildlink3.mk" 331. include "${_JRE_PKGSRCDIR}/buildlink3.mk"
318. endif 332. endif
319.endif 333.endif
320 334