diff options
Diffstat (limited to 'Mk/bsd.java.mk')
-rw-r--r-- | Mk/bsd.java.mk | 219 |
1 files changed, 106 insertions, 113 deletions
diff --git a/Mk/bsd.java.mk b/Mk/bsd.java.mk index 188d7714dbe4..91ea9516c846 100644 --- a/Mk/bsd.java.mk +++ b/Mk/bsd.java.mk @@ -3,7 +3,6 @@ # # bsd.java.mk - Support for Java-based ports. # -# Created by: Ernst de Haan <znerd@FreeBSD.org> # # For FreeBSD committers: # Please send all suggested changes to the maintainer instead of committing @@ -23,8 +22,8 @@ Java_Include_MAINTAINER= java@FreeBSD.org # # JAVA_VERSION List of space-separated suitable java versions for the # port. An optional "+" allows you to specify a range of -# versions. (allowed values: 7[+] 8[+] 11[+] 12[+] 13[+] -# 14[+] 15[+] 16[+] 17[+]) +# versions. (allowed values: 8[+] 11[+] 17[+] 18[+] 19[+] +# 20[+] 21[+]) # # JAVA_OS List of space-separated suitable JDK port operating systems # for the port. (allowed values: native linux) @@ -127,11 +126,11 @@ Java_Include_MAINTAINER= java@FreeBSD.org # Stage 5: Define all settings for the port to use # -. if defined(USE_JAVA) +. if defined(USE_JAVA) -. if !defined(JAVA_VERSION) && empty(USE_JAVA:C/[0-9]*[\.]*[0-9]*[+]*//) +. if !defined(JAVA_VERSION) && empty(USE_JAVA:C/[0-9]*[\.]*[0-9]*[+]*//) JAVA_VERSION=${USE_JAVA} -. endif +. endif #------------------------------------------------------------------------------- # Stage 1: Define constants @@ -150,42 +149,38 @@ PLIST_SUB+= JAVASHAREDIR="${JAVASHAREDIR:S,^${PREFIX}/,,}" \ SUB_LIST+= JAVASHAREDIR="${JAVASHAREDIR}" \ JAVAJARDIR="${JAVAJARDIR}" \ JAVALIBDIR="${JAVALIBDIR}" -. if defined(JAVA_VERSION) +. if defined(JAVA_VERSION) SUB_LIST+= JAVA_VERSION="${JAVA_VERSION}" -. endif -. if defined(JAVA_VENDOR) +. endif +. if defined(JAVA_VENDOR) SUB_LIST+= JAVA_VENDOR="${JAVA_VENDOR}" -. endif -. if defined(JAVA_OS) +. endif +. if defined(JAVA_OS) SUB_LIST+= JAVA_OS="${JAVA_OS}" -. endif +. endif # The complete list of Java versions, os and vendors supported. -__JAVA_VERSION_LIST= 7 8 11 12 13 14 15 16 17 +__JAVA_VERSION_LIST= 8 11 17 18 19 20 21 _JAVA_VERSION_LIST= ${__JAVA_VERSION_LIST} ${__JAVA_VERSION_LIST:S/$/+/} _JAVA_OS_LIST= native linux _JAVA_VENDOR_LIST= openjdk oracle # Set all meta-information about JDK ports: # port location, corresponding JAVA_HOME, JDK version, OS, vendor -_JAVA_PORT_NATIVE_OPENJDK_JDK_7_INFO= PORT=java/openjdk7 HOME=${LOCALBASE}/openjdk7 \ - VERSION=7 OS=native VENDOR=openjdk _JAVA_PORT_NATIVE_OPENJDK_JDK_8_INFO= PORT=java/openjdk8 HOME=${LOCALBASE}/openjdk8 \ VERSION=8 OS=native VENDOR=openjdk _JAVA_PORT_NATIVE_OPENJDK_JDK_11_INFO= PORT=java/openjdk11 HOME=${LOCALBASE}/openjdk11 \ VERSION=11 OS=native VENDOR=openjdk -_JAVA_PORT_NATIVE_OPENJDK_JDK_12_INFO= PORT=java/openjdk12 HOME=${LOCALBASE}/openjdk12 \ - VERSION=12 OS=native VENDOR=openjdk -_JAVA_PORT_NATIVE_OPENJDK_JDK_13_INFO= PORT=java/openjdk13 HOME=${LOCALBASE}/openjdk13 \ - VERSION=13 OS=native VENDOR=openjdk -_JAVA_PORT_NATIVE_OPENJDK_JDK_14_INFO= PORT=java/openjdk14 HOME=${LOCALBASE}/openjdk14 \ - VERSION=14 OS=native VENDOR=openjdk -_JAVA_PORT_NATIVE_OPENJDK_JDK_15_INFO= PORT=java/openjdk15 HOME=${LOCALBASE}/openjdk15 \ - VERSION=15 OS=native VENDOR=openjdk -_JAVA_PORT_NATIVE_OPENJDK_JDK_16_INFO= PORT=java/openjdk16 HOME=${LOCALBASE}/openjdk16 \ - VERSION=16 OS=native VENDOR=openjdk _JAVA_PORT_NATIVE_OPENJDK_JDK_17_INFO= PORT=java/openjdk17 HOME=${LOCALBASE}/openjdk17 \ VERSION=17 OS=native VENDOR=openjdk +_JAVA_PORT_NATIVE_OPENJDK_JDK_18_INFO= PORT=java/openjdk18 HOME=${LOCALBASE}/openjdk18 \ + VERSION=18 OS=native VENDOR=openjdk +_JAVA_PORT_NATIVE_OPENJDK_JDK_19_INFO= PORT=java/openjdk19 HOME=${LOCALBASE}/openjdk19 \ + VERSION=19 OS=native VENDOR=openjdk +_JAVA_PORT_NATIVE_OPENJDK_JDK_20_INFO= PORT=java/openjdk20 HOME=${LOCALBASE}/openjdk20 \ + VERSION=20 OS=native VENDOR=openjdk +_JAVA_PORT_NATIVE_OPENJDK_JDK_21_INFO= PORT=java/openjdk21 HOME=${LOCALBASE}/openjdk21 \ + VERSION=21 OS=native VENDOR=openjdk _JAVA_PORT_LINUX_ORACLE_JDK_8_INFO= PORT=java/linux-oracle-jdk18 HOME=${LOCALBASE}/linux-oracle-jdk1.8.0 \ VERSION=8 OS=linux VENDOR=oracle @@ -202,12 +197,10 @@ __JAVA_PORTS_ALL= \ JAVA_PORT_NATIVE_OPENJDK_JDK_8 \ JAVA_PORT_NATIVE_OPENJDK_JDK_11 \ JAVA_PORT_NATIVE_OPENJDK_JDK_17 \ - JAVA_PORT_NATIVE_OPENJDK_JDK_12 \ - JAVA_PORT_NATIVE_OPENJDK_JDK_13 \ - JAVA_PORT_NATIVE_OPENJDK_JDK_14 \ - JAVA_PORT_NATIVE_OPENJDK_JDK_15 \ - JAVA_PORT_NATIVE_OPENJDK_JDK_16 \ - JAVA_PORT_NATIVE_OPENJDK_JDK_7 \ + JAVA_PORT_NATIVE_OPENJDK_JDK_18 \ + JAVA_PORT_NATIVE_OPENJDK_JDK_19 \ + JAVA_PORT_NATIVE_OPENJDK_JDK_20 \ + JAVA_PORT_NATIVE_OPENJDK_JDK_21 \ JAVA_PORT_LINUX_ORACLE_JDK_8 _JAVA_PORTS_ALL= ${JAVA_PREFERRED_PORTS} \ JAVA_PORT_NATIVE_OPENJDK_JDK_${JAVA_DEFAULT} \ @@ -225,106 +218,106 @@ _JDK_FILE=bin/javac # From here, the port is using bsd.java.mk v2.0 # Error checking: defined JAVA_{HOME,PORT,PORT_VERSION,PORT_VENDOR,PORT_OS} -. for variable in JAVA_HOME JAVA_PORT JAVA_PORT_VERSION JAVA_PORT_VENDOR JAVA_PORT_OS -. if defined(${variable}) +. for variable in JAVA_HOME JAVA_PORT JAVA_PORT_VERSION JAVA_PORT_VENDOR JAVA_PORT_OS +. if defined(${variable}) check-makevars:: @${ECHO_CMD} "${PKGNAME}: Environment error: \"${variable}\" should not be defined -- clearing." .undef ${variable} -. endif -. endfor +. endif +. endfor # Error checking: JAVA_VERSION -.if defined(JAVA_VERSION) -.if !defined(_JAVA_VERSION_LIST_REGEXP) +. if defined(JAVA_VERSION) +. if !defined(_JAVA_VERSION_LIST_REGEXP) _JAVA_VERSION_LIST_REGEXP= ${_JAVA_VERSION_LIST:C/\+/\\+/:ts|} -.endif +. endif check-makevars:: @( test ! -z "${JAVA_VERSION}" && ( ${ECHO_CMD} "${JAVA_VERSION}" | ${TR} " " "\n" | ${GREP} -Eq "${_JAVA_VERSION_LIST_REGEXP}")) || \ (${ECHO_CMD} "${PKGNAME}: Makefile error: \"${JAVA_VERSION}\" is not a valid value for JAVA_VERSION. It should be one or more of: ${__JAVA_VERSION_LIST} (with an optional \"+\" suffix.)"; ${FALSE}) -.endif +. endif # Error checking: JAVA_VENDOR -.if defined(JAVA_VENDOR) -.if !defined(_JAVA_VENDOR_LIST_REGEXP) +. if defined(JAVA_VENDOR) +. if !defined(_JAVA_VENDOR_LIST_REGEXP) _JAVA_VENDOR_LIST_REGEXP= ${_JAVA_VENDOR_LIST:ts|} -.endif +. endif check-makevars:: @( test ! -z "${JAVA_VENDOR}" && ( ${ECHO_CMD} "${JAVA_VENDOR}" | ${TR} " " "\n" | ${GREP} -Eq "${_JAVA_VENDOR_LIST_REGEXP}" )) || \ (${ECHO_CMD} "${PKGNAME}: Makefile error: \"${JAVA_VENDOR}\" is not a valid value for JAVA_VENDOR. It should be one or more of: ${_JAVA_VENDOR_LIST}"; \ ${FALSE}) -.endif +. endif # Error checking: JAVA_OS -.if defined(JAVA_OS) -.if !defined(_JAVA_OS_LIST_REGEXP) +. if defined(JAVA_OS) +. if !defined(_JAVA_OS_LIST_REGEXP) _JAVA_OS_LIST_REGEXP= ${_JAVA_OS_LIST:ts|} -.endif +. endif check-makevars:: @( test ! -z "${JAVA_OS}" && ( ${ECHO_CMD} "${JAVA_OS}" | ${TR} " " "\n" | ${GREP} -Eq "${_JAVA_OS_LIST_REGEXP}")) || \ (${ECHO_CMD} "${PKGNAME}: Makefile error: \"${JAVA_OS}\" is not a valid value for JAVA_OS. It should be one or more of: ${_JAVA_OS_LIST}"; \ ${FALSE}) -.endif +. endif # Set default values for JAVA_BUILD and JAVA_RUN # When nothing is set, assume JAVA_BUILD=jdk and JAVA_RUN=jre # (unless NO_BUILD is set) -. if !defined(JAVA_EXTRACT) && !defined(JAVA_BUILD) && !defined(JAVA_RUN) -. if !defined(NO_BUILD) +. if !defined(JAVA_EXTRACT) && !defined(JAVA_BUILD) && !defined(JAVA_RUN) +. if !defined(NO_BUILD) JAVA_BUILD= jdk -. endif +. endif JAVA_RUN= jre -. endif +. endif # JDK dependency setting . undef _JAVA_PORTS_INSTALLED . undef _JAVA_PORTS_POSSIBLE -. if defined(JAVA_VERSION) -_JAVA_VERSION= ${JAVA_VERSION:S/1.7+/1.7 1.8+/:S/1.8+/1.8 11+/:S/1.7/7/:S/1.8/8/:S/7+/7 8+/:S/8+/8 11+/:S/11+/11 12+/:S/12+/12 13+/:S/13+/13 14+/:S/14+/14 15+/:S/15+/15 16+/:S/16+/16 17+/:S/17+/17/} -. else +. if defined(JAVA_VERSION) +_JAVA_VERSION= ${JAVA_VERSION:S/^8+/8 11+/:S/^11+/11 17+/:S/^17+/17 18+/:S/^18+/18 19+/:S/^19+/19 20+/:S/^20+/20 21+/:S/^21+/21/} +. else _JAVA_VERSION= ${__JAVA_VERSION_LIST} -. endif -. if defined(JAVA_OS) +. endif +. if defined(JAVA_OS) _JAVA_OS= ${JAVA_OS} -. else +. else _JAVA_OS= ${_JAVA_OS_LIST} -. endif -. if defined(JAVA_VENDOR) +. endif +. if defined(JAVA_VENDOR) _JAVA_VENDOR= ${JAVA_VENDOR} -. else +. else _JAVA_VENDOR= ${_JAVA_VENDOR_LIST} -. endif +. endif -. for A_JAVA_PORT in ${_JAVA_PORTS_ALL} +. for A_JAVA_PORT in ${_JAVA_PORTS_ALL} A_JAVA_PORT_INFO:= ${A_JAVA_PORT:S/^/\${_/:S/$/_INFO}/} A_JAVA_PORT_HOME= ${A_JAVA_PORT_INFO:MHOME=*:S,HOME=,,} A_JAVA_PORT_VERSION= ${A_JAVA_PORT_INFO:MVERSION=*:S,VERSION=,,} A_JAVA_PORT_OS= ${A_JAVA_PORT_INFO:MOS=*:S,OS=,,} A_JAVA_PORT_VENDOR= ${A_JAVA_PORT_INFO:MVENDOR=*:S,VENDOR=,,} -.if !defined(_JAVA_PORTS_INSTALLED) && exists(${A_JAVA_PORT_HOME}/${_JDK_FILE}) +. if !defined(_JAVA_PORTS_INSTALLED) && exists(${A_JAVA_PORT_HOME}/${_JDK_FILE}) __JAVA_PORTS_INSTALLED+= ${A_JAVA_PORT} -.endif +. endif # Because variables inside for loops are special (directly replaced as strings), # we are allowed to use them inside modifiers, where normally ${FOO:M${BAR}} is # not allowed. # -.for ver in ${A_JAVA_PORT_VERSION} -.for os in ${A_JAVA_PORT_OS} -.for vendor in ${A_JAVA_PORT_VENDOR} -.if ${_JAVA_VERSION:M${ver}} && ${_JAVA_OS:M${os}} && ${_JAVA_VENDOR:M${vendor}} +. for ver in ${A_JAVA_PORT_VERSION} +. for os in ${A_JAVA_PORT_OS} +. for vendor in ${A_JAVA_PORT_VENDOR} +. if ${_JAVA_VERSION:M${ver}} && ${_JAVA_OS:M${os}} && ${_JAVA_VENDOR:M${vendor}} __JAVA_PORTS_POSSIBLE+= ${A_JAVA_PORT} -.endif -.endfor -.endfor -.endfor +. endif +. endfor +. endfor +. endfor -. endfor -.if !defined(_JAVA_PORTS_INSTALLED) +. endfor +. if !defined(_JAVA_PORTS_INSTALLED) _JAVA_PORTS_INSTALLED= ${__JAVA_PORTS_INSTALLED:C/ [ ]+/ /g} -.endif +. endif _JAVA_PORTS_POSSIBLE= ${__JAVA_PORTS_POSSIBLE:C/ [ ]+/ /g} @@ -336,27 +329,27 @@ _JAVA_PORTS_POSSIBLE= ${__JAVA_PORTS_POSSIBLE:C/ [ ]+/ /g} . undef _JAVA_PORTS_INSTALLED_POSSIBLE -. for A_JAVA_PORT in ${_JAVA_PORTS_POSSIBLE} +. for A_JAVA_PORT in ${_JAVA_PORTS_POSSIBLE} __JAVA_PORTS_INSTALLED_POSSIBLE+= ${_JAVA_PORTS_INSTALLED:M${A_JAVA_PORT}} -. endfor +. endfor _JAVA_PORTS_INSTALLED_POSSIBLE= ${__JAVA_PORTS_INSTALLED_POSSIBLE:C/[ ]+//g} -. if ${_JAVA_PORTS_INSTALLED_POSSIBLE} != "" -. for i in ${_JAVA_PORTS_INSTALLED_POSSIBLE} -. if !defined(_JAVA_PORTS_INSTALLED_POSSIBLE_shortcircuit) +. if ${_JAVA_PORTS_INSTALLED_POSSIBLE} != "" +. for i in ${_JAVA_PORTS_INSTALLED_POSSIBLE} +. if !defined(_JAVA_PORTS_INSTALLED_POSSIBLE_shortcircuit) _JAVA_PORT= $i _JAVA_PORTS_INSTALLED_POSSIBLE_shortcircuit= 1 -. endif -. endfor +. endif +. endfor # If no installed JDK port fits, then pick one from the list of possible ones -. else -. for i in ${_JAVA_PORTS_POSSIBLE} -. if !defined(_JAVA_PORTS_POSSIBLE_shortcircuit) +. else +. for i in ${_JAVA_PORTS_POSSIBLE} +. if !defined(_JAVA_PORTS_POSSIBLE_shortcircuit) _JAVA_PORT= $i _JAVA_PORTS_POSSIBLE_shortcircuit= 1 -. endif -. endfor -. endif +. endif +. endfor +. endif _JAVA_PORT_INFO:= ${_JAVA_PORT:S/^/\${_/:S/$/_INFO}/} JAVA_PORT= ${_JAVA_PORT_INFO:MPORT=*:S,PORT=,,} @@ -373,47 +366,47 @@ JAVA_PORT_OS_DESCRIPTION:= ${JAVA_PORT_OS:S/^/\${_JAVA_OS_/:S/$/}/} # # Ant Support: USE_ANT --> JAVA_BUILD=jdk -. if defined(USE_ANT) +. if defined(USE_ANT) JAVA_BUILD= jdk -. endif +. endif # Add the JDK port to the dependencies DEPEND_JAVA= ${JAVA}:${JAVA_PORT} -. if defined(JAVA_EXTRACT) +. if defined(JAVA_EXTRACT) EXTRACT_DEPENDS+= ${DEPEND_JAVA} -. endif -. if defined(JAVA_BUILD) -. if defined(NO_BUILD) +. endif +. if defined(JAVA_BUILD) +. if defined(NO_BUILD) check-makevars:: @${ECHO_CMD} "${PKGNAME}: Makefile error: JAVA_BUILD and NO_BUILD cannot be set at the same time."; @${FALSE} -. endif +. endif BUILD_DEPENDS+= ${DEPEND_JAVA} -. endif -. if defined(JAVA_RUN) +. endif +. if defined(JAVA_RUN) RUN_DEPENDS+= ${DEPEND_JAVA} -. endif +. endif # Ant support: default do-build target -. if defined(USE_ANT) +. if defined(USE_ANT) DESTDIRNAME?= -Dfreebsd.ports.destdir ANT?= ${LOCALBASE}/bin/ant MAKE_ENV+= JAVA_HOME=${JAVA_HOME} BUILD_DEPENDS+= ${ANT}:devel/apache-ant ALL_TARGET?= -. if !target(do-build) +. if !target(do-build) do-build: - @(cd ${BUILD_WRKSRC}; \ - ${SETENV} ${MAKE_ENV} ${ANT} ${MAKE_ARGS} ${ALL_TARGET}) -. endif -. if !target(do-test) && defined(TEST_TARGET) + @(cd ${BUILD_WRKSRC}; ${SETENVI} ${WRK_ENV} ${MAKE_ENV} \ + ${ANT} ${MAKE_ARGS} ${ALL_TARGET}) +. endif +. if !target(do-test) && defined(TEST_TARGET) TEST_DEPENDS+= ${DEPEND_JAVA} TEST_DEPENDS+= ${ANT}:devel/apache-ant do-test: - @(cd ${TEST_WRKSRC}; \ - ${SETENV} ${MAKE_ENV} ${ANT} ${MAKE_ARGS} ${TEST_TARGET}) -. endif -. endif + @(cd ${TEST_WRKSRC}; ${SETENVI} ${WRK_ENV} ${MAKE_ENV} \ + ${ANT} ${MAKE_ARGS} ${TEST_TARGET}) +. endif +. endif #----------------------------------------------------------------------------- # Stage 5: Define all settings for the port to use @@ -426,11 +419,11 @@ do-test: . undef JAVAC # Then test if a JAVAC has to be set (JAVA_BUILD==jdk) -. if defined(JAVA_BUILD) -. if (${JAVA_BUILD:tu} == "JDK") && !defined(JAVAC) +. if defined(JAVA_BUILD) +. if (${JAVA_BUILD:tu} == "JDK") && !defined(JAVAC) JAVAC?= ${JAVA_HOME}/bin/javac -. endif -. endif +. endif +. endif # Define the location of some more executables. APPLETVIEWER?= ${JAVA_HOME}/bin/appletviewer @@ -484,5 +477,5 @@ java-debug: @${ECHO_CMD} "JAVAC= ${JAVAC}" @${ECHO_CMD} "JAVA_CLASSES= ${JAVA_CLASSES}" -. endif +. endif .endif |