diff bsd.pypy.cffi.mk @ 25:ee6885d5bdcb

Allow to build CFFI extensions for PyPy3.7 also. PyPy3.7 has the same directory layout as PyPy2.7. PyPy3.8 has a new layout which is more similar to CPython. NOTE: PyPy3.9 will also name its shared library implementation with a version information in it. This will allow side-by-side installations.
author Franz Glasner <f.glasner@feldmann-mg.com>
date Wed, 05 Oct 2022 17:22:18 +0200
parents 246c2f328231
children 6cddc8f64f05
line wrap: on
line diff
--- a/bsd.pypy.cffi.mk	Wed Oct 05 15:29:19 2022 +0200
+++ b/bsd.pypy.cffi.mk	Wed Oct 05 17:22:18 2022 +0200
@@ -11,12 +11,6 @@
 FLAVORS=	pypy pypy3
 FLAVOR?=	${FLAVORS:[1]}
 
-.if ${FLAVOR} == pypy
-PLIST_FILES=	${PYPY_DIR}/lib_pypy/${CFFI_MODULE}_cffi.${PYPY_CFFI_VER}.so
-.else  # pypy3
-PLIST_FILES=	${PYPY_DIR}/lib/${PYTHON_IMPL_MINOR}/${CFFI_MODULE}_cffi.${PYPY_CFFI_VER}.so
-.endif
-
 PYTHON_IMPL=	${FLAVOR}
 PYTHON_PORTVERSION=	${DISTVERSION}
 PYTHON_PKGNAMEPREFIX=	${PYTHON_IMPL}-
@@ -24,20 +18,26 @@
 
 .include "${.CURDIR}/../../lang/pypy/bsd.pypy.mk"
 
+.if ${FLAVOR} == pypy || ${PORT_OPTIONS:MFORPYIMPL37}
+PLIST_FILES=	${PYPY_DIR}/lib_pypy/${CFFI_MODULE}_cffi.${PYPY_CFFI_VER}.so
+.else  # pypy3
+PLIST_FILES=	${PYPY_DIR}/lib/${PYTHON_IMPL_MINOR}/${CFFI_MODULE}_cffi.${PYPY_CFFI_VER}.so
+.endif
+
 do-build:
-.if ${FLAVOR} == pypy
+.if ${FLAVOR} == pypy || ${PORT_OPTIONS:MFORPYIMPL37}
 	${CP} ${LOCALBASE}/${PYPY_DIR}/lib_pypy/${CFFI_MODULE}_build.py ${WRKDIR}/${PORTNAME}.py
-.else     # pypy3
+.else     # newer pypy3
 	${CP} ${LOCALBASE}/${PYPY_DIR}/lib/${PYTHON_IMPL_MINOR}/${CFFI_MODULE}_build.py ${WRKDIR}/${PORTNAME}.py
 .endif
 	(cd ${WRKDIR}; \
 		${PYTHON_CMD} -c "from ${PORTNAME} import ${CFFI_NAME} as ffi; ffi.compile('${WRKDIR}');")
 
 do-install:
-.if ${FLAVOR} == pypy
+.if ${FLAVOR} == pypy || ${PORT_OPTIONS:MFORPYIMPL37}
 	${MKDIR} ${STAGEDIR}${PREFIX}/${PYPY_DIR}/lib_pypy/`dirname ${CFFI_MODULE}`/
 	${INSTALL_LIB} ${WRKDIR}/${CFFI_MODULE}_cffi.${PYPY_CFFI_VER}.so ${STAGEDIR}${PREFIX}/${PYPY_DIR}/lib_pypy/`dirname ${CFFI_MODULE}`/
-.else  # pypy3
+.else  # newer pypy3
 	${MKDIR} ${STAGEDIR}${PREFIX}/${PYPY_DIR}/lib/${PYTHON_IMPL_MINOR}/`dirname ${CFFI_MODULE}`/
 	${INSTALL_LIB} ${WRKDIR}/${CFFI_MODULE}_cffi.${PYPY_CFFI_VER}.so ${STAGEDIR}${PREFIX}/${PYPY_DIR}/lib/${PYTHON_IMPL_MINOR}/`dirname ${CFFI_MODULE}`/
 .endif