comparison 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
comparison
equal deleted inserted replaced
24:d2d396c79e9f 25:ee6885d5bdcb
9 CFFI_MODULE?= _${PORTNAME} 9 CFFI_MODULE?= _${PORTNAME}
10 10
11 FLAVORS= pypy pypy3 11 FLAVORS= pypy pypy3
12 FLAVOR?= ${FLAVORS:[1]} 12 FLAVOR?= ${FLAVORS:[1]}
13 13
14 .if ${FLAVOR} == pypy
15 PLIST_FILES= ${PYPY_DIR}/lib_pypy/${CFFI_MODULE}_cffi.${PYPY_CFFI_VER}.so
16 .else # pypy3
17 PLIST_FILES= ${PYPY_DIR}/lib/${PYTHON_IMPL_MINOR}/${CFFI_MODULE}_cffi.${PYPY_CFFI_VER}.so
18 .endif
19
20 PYTHON_IMPL= ${FLAVOR} 14 PYTHON_IMPL= ${FLAVOR}
21 PYTHON_PORTVERSION= ${DISTVERSION} 15 PYTHON_PORTVERSION= ${DISTVERSION}
22 PYTHON_PKGNAMEPREFIX= ${PYTHON_IMPL}- 16 PYTHON_PKGNAMEPREFIX= ${PYTHON_IMPL}-
23 PYTHON_CMD= ${LOCALBASE}/bin/${PYTHON_IMPL} 17 PYTHON_CMD= ${LOCALBASE}/bin/${PYTHON_IMPL}
24 18
25 .include "${.CURDIR}/../../lang/pypy/bsd.pypy.mk" 19 .include "${.CURDIR}/../../lang/pypy/bsd.pypy.mk"
26 20
21 .if ${FLAVOR} == pypy || ${PORT_OPTIONS:MFORPYIMPL37}
22 PLIST_FILES= ${PYPY_DIR}/lib_pypy/${CFFI_MODULE}_cffi.${PYPY_CFFI_VER}.so
23 .else # pypy3
24 PLIST_FILES= ${PYPY_DIR}/lib/${PYTHON_IMPL_MINOR}/${CFFI_MODULE}_cffi.${PYPY_CFFI_VER}.so
25 .endif
26
27 do-build: 27 do-build:
28 .if ${FLAVOR} == pypy 28 .if ${FLAVOR} == pypy || ${PORT_OPTIONS:MFORPYIMPL37}
29 ${CP} ${LOCALBASE}/${PYPY_DIR}/lib_pypy/${CFFI_MODULE}_build.py ${WRKDIR}/${PORTNAME}.py 29 ${CP} ${LOCALBASE}/${PYPY_DIR}/lib_pypy/${CFFI_MODULE}_build.py ${WRKDIR}/${PORTNAME}.py
30 .else # pypy3 30 .else # newer pypy3
31 ${CP} ${LOCALBASE}/${PYPY_DIR}/lib/${PYTHON_IMPL_MINOR}/${CFFI_MODULE}_build.py ${WRKDIR}/${PORTNAME}.py 31 ${CP} ${LOCALBASE}/${PYPY_DIR}/lib/${PYTHON_IMPL_MINOR}/${CFFI_MODULE}_build.py ${WRKDIR}/${PORTNAME}.py
32 .endif 32 .endif
33 (cd ${WRKDIR}; \ 33 (cd ${WRKDIR}; \
34 ${PYTHON_CMD} -c "from ${PORTNAME} import ${CFFI_NAME} as ffi; ffi.compile('${WRKDIR}');") 34 ${PYTHON_CMD} -c "from ${PORTNAME} import ${CFFI_NAME} as ffi; ffi.compile('${WRKDIR}');")
35 35
36 do-install: 36 do-install:
37 .if ${FLAVOR} == pypy 37 .if ${FLAVOR} == pypy || ${PORT_OPTIONS:MFORPYIMPL37}
38 ${MKDIR} ${STAGEDIR}${PREFIX}/${PYPY_DIR}/lib_pypy/`dirname ${CFFI_MODULE}`/ 38 ${MKDIR} ${STAGEDIR}${PREFIX}/${PYPY_DIR}/lib_pypy/`dirname ${CFFI_MODULE}`/
39 ${INSTALL_LIB} ${WRKDIR}/${CFFI_MODULE}_cffi.${PYPY_CFFI_VER}.so ${STAGEDIR}${PREFIX}/${PYPY_DIR}/lib_pypy/`dirname ${CFFI_MODULE}`/ 39 ${INSTALL_LIB} ${WRKDIR}/${CFFI_MODULE}_cffi.${PYPY_CFFI_VER}.so ${STAGEDIR}${PREFIX}/${PYPY_DIR}/lib_pypy/`dirname ${CFFI_MODULE}`/
40 .else # pypy3 40 .else # newer pypy3
41 ${MKDIR} ${STAGEDIR}${PREFIX}/${PYPY_DIR}/lib/${PYTHON_IMPL_MINOR}/`dirname ${CFFI_MODULE}`/ 41 ${MKDIR} ${STAGEDIR}${PREFIX}/${PYPY_DIR}/lib/${PYTHON_IMPL_MINOR}/`dirname ${CFFI_MODULE}`/
42 ${INSTALL_LIB} ${WRKDIR}/${CFFI_MODULE}_cffi.${PYPY_CFFI_VER}.so ${STAGEDIR}${PREFIX}/${PYPY_DIR}/lib/${PYTHON_IMPL_MINOR}/`dirname ${CFFI_MODULE}`/ 42 ${INSTALL_LIB} ${WRKDIR}/${CFFI_MODULE}_cffi.${PYPY_CFFI_VER}.so ${STAGEDIR}${PREFIX}/${PYPY_DIR}/lib/${PYTHON_IMPL_MINOR}/`dirname ${CFFI_MODULE}`/
43 .endif 43 .endif