diff options
-rw-r--r-- | Mk/Uses/python.mk | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/Mk/Uses/python.mk b/Mk/Uses/python.mk index bffb94c62e04..d2b0462b974f 100644 --- a/Mk/Uses/python.mk +++ b/Mk/Uses/python.mk @@ -235,12 +235,16 @@ # interpreter without dots, e.g. 27, 38, ... # Used for prefixes and suffixes. # +# PYTHON_BASESUFFIX - PYTHON_SUFFIX without the threaded ABI flag. +# # PYTHON_MAJOR_VER - The major release version of the chosen Python # interpreter, e.g. 2, 3, ... # # PYTHON_VER - The major-minor release version of the chosen Python # interpreter, e.g. 2.7, 3.9, ... # +# PYTHON_BASEVER - PYTHON_VER without the threaded ABI flag. +# # PYTHON_ABIVER - Additional ABI flags set by the chosen Python # interpreter, e.g. md # @@ -284,7 +288,9 @@ # PYTHON_PLATFORM=${PYTHON_PLATFORM} # PYTHON_SITELIBDIR=${PYTHONPREFIX_SITELIBDIR} # PYTHON_SUFFIX=${PYTHON_SUFFIX} +# PYTHON_BASESUFFIX=${PYTHON_BASESUFFIX} # PYTHON_VER=${PYTHON_VER} +# PYTHON_BASEVER=${PYTHON_BASEVER} # PYTHON_VERSION=${PYTHON_VERSION} # # where PYTHON_INCLUDEDIR, PYTHON_LIBDIR and PYTHON_SITELIBDIR have their PREFIX @@ -457,7 +463,7 @@ IGNORE= uses unknown USES=python arguments: ${_PYTHON_ARGS} . endif # Pattern to convert python versions (X.Y or X.YY) to comparable format X.YY -_VC= C/^([1-9]\.)([0-9])$$/\10\2/ +_VC= C/^([1-9]\.)([0-9])$$/\10\2/:S/t$/// .undef _PYTHON_VERSION_NONSUPPORTED . if !empty(_PYTHON_VERSION_MINIMUM) && (${_PYTHON_VERSION:${_VC}} < ${_PYTHON_VERSION_MINIMUM:${_VC}}) @@ -525,7 +531,7 @@ FLAVOR= ${FLAVORS:[1]} . endif . endif -. if ${FLAVOR:Mpy[23][0-9]}${FLAVOR:Mpy[23][1-9][0-9]} +. if ${FLAVOR:Mpy[23][0-9]}${FLAVOR:Mpy[23][1-9][0-9]}${FLAVOR:Mpy31[3-9]t} _PYTHON_VERSION= ${FLAVOR:S/py//:C/(.)/\1./} . endif @@ -548,7 +554,9 @@ PYTHON_VERSION= python${_PYTHON_VERSION} # Got the correct python version, set some publicly accessible variables PYTHON_VER= ${_PYTHON_VERSION} +PYTHON_BASEVER= ${PYTHON_VER:S/t$//} PYTHON_SUFFIX= ${_PYTHON_VERSION:S/.//g} +PYTHON_BASESUFFIX= ${PYTHON_SUFFIX:S/t$//} PYTHON_MAJOR_VER= ${PYTHON_VER:R} PYTHON_REL= # empty PYTHON_ABIVER= # empty @@ -556,12 +564,11 @@ PYTHON_PORTSDIR= ${_PYTHON_RELPORTDIR}${PYTHON_SUFFIX} # Protect partial checkouts from Mk/Scripts/functions.sh:export_ports_env(). . if !defined(_PORTS_ENV_CHECK) || exists(${PORTSDIR}/${PYTHON_PORTSDIR}) -.include "${PORTSDIR}/${PYTHON_PORTSDIR}/Makefile.version" +.include "${PORTSDIR}/${PYTHON_PORTSDIR:S/t$//}/Makefile.version" . endif # Create a 5 integer version string, prefixing 0 to the minor and patch # tokens if it's a single character. Only use the first 3 tokens of -# PORTVERSION to support pre-release versions (rc3, alpha4, etc) of -# any Python port (lang/pythonXY) +# DISTVERSION to stay consistent regardless of pre-release or ABI flags PYTHON_REL= ${PYTHON_DISTVERSION:C/^([0-9]+\.[0-9]+\.[0-9]+).*/\1/:C/\.([0-9])$/.0\1/:C/\.([0-9]\.[0-9]+)/.0\1/:S/.//g} # Might be overridden by calling ports @@ -573,7 +580,7 @@ PYTHON_ABIVER!= ${PYTHON_CMD}-config --abiflags . endif . if ${PYTHON_REL} >= 30807 -PYTHON_EXT_SUFFIX= .cpython-${PYTHON_SUFFIX} +PYTHON_EXT_SUFFIX= .cpython-${PYTHON_BASESUFFIX} . else PYTHON_EXT_SUFFIX= # empty . endif @@ -894,8 +901,10 @@ SUB_LIST+= PYTHON_INCLUDEDIR=${PYTHONPREFIX_INCLUDEDIR} \ PYTHON_PLATFORM=${PYTHON_PLATFORM} \ PYTHON_SITELIBDIR=${PYTHONPREFIX_SITELIBDIR} \ PYTHON_SUFFIX=${PYTHON_SUFFIX} \ + PYTHON_BASESUFFIX=${PYTHON_BASESUFFIX} \ PYTHON_EXT_SUFFIX=${PYTHON_EXT_SUFFIX} \ PYTHON_VER=${PYTHON_VER} \ + PYTHON_BASEVER=${PYTHON_BASEVER} \ PYTHON_VERSION=${PYTHON_VERSION} # Substitutions for pkg-plist @@ -906,8 +915,10 @@ PLIST_SUB+= PYTHON_INCLUDEDIR=${PYTHONPREFIX_INCLUDEDIR:S;${PREFIX}/;;} \ PYTHON_PLATFORM=${PYTHON_PLATFORM} \ PYTHON_SITELIBDIR=${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;} \ PYTHON_SUFFIX=${PYTHON_SUFFIX} \ + PYTHON_BASESUFFIX=${PYTHON_BASESUFFIX} \ PYTHON_EXT_SUFFIX=${PYTHON_EXT_SUFFIX} \ PYTHON_VER=${PYTHON_VER} \ + PYTHON_BASEVER=${PYTHON_BASEVER} \ PYTHON_VERSION=${PYTHON_VERSION} . if ${PYTHON_MAJOR_VER} < 3 SUB_LIST+= PYTHON2="" PYTHON3="@comment " |