view bsd.pypy.cffi.mk @ 45:5e046980990d

Call the package.py script with WRKSRC as the CWD. This removes the need for patching sysconfig.py and package.py (PyPy3) because files that are created by the scripts in the CWD now are created in WRKSRC. This is also consistent with other build stept, where an explicit change of the CWD to WRKSRC is done.
author Franz Glasner <fzglas.hg@dom66.de>
date Sun, 09 Oct 2022 19:11:04 +0200
parents 6cddc8f64f05
children b0ce0cf90f22
line wrap: on
line source

# NOTE: Also includes bsd.pypy.mk and (indirectly) bsd.port.pre.mk

PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
DISTFILES=

BUILD_DEPENDS+=	${PYTHON_IMPL}:lang/${PYTHON_IMPL}
RUN_DEPENDS+=	${PYTHON_IMPL}:lang/${PYTHON_IMPL}

CFFI_MODULE?=	_${PORTNAME}

FLAVORS=	pypy pypy3
FLAVOR?=	${FLAVORS:[1]}

PYTHON_IMPL=	${FLAVOR}
PYTHON_PORTVERSION=	${DISTVERSION}
PYTHON_PKGNAMEPREFIX=	${PYTHON_IMPL}-
PYTHON_CMD=	${LOCALBASE}/bin/${PYTHON_IMPL}

.include "${.CURDIR}/../../lang/pypy/bsd.pypy.mk"

#
# Check that this port's build selected option FORPYIMPL37, FORPYIMPL38 or FORPYIMPL39
# is compatible to the corresponding build option of the installed pypy3.
#
.if ${FLAVOR} == pypy3 && exists(${LOCALBASE}/bin/pypy3)
_PYPY_SC_PLATSTDLIB=	${:!${LOCALBASE}/bin/pypy3 -c 'import sysconfig; print(sysconfig.get_path("platstdlib"))'!}
.  if ${PORT_OPTIONS:MFORPYIMPL37}
.    if ${_PYPY_SC_PLATSTDLIB:T} != lib_pypy
IGNORE=		Port option mismatch: must match FORPYIMPLxx of the installed lang/pypy3
.    endif
.  else
.    if ${_PYPY_SC_PLATSTDLIB:T} != ${PYTHON_IMPL_MINOR}
IGNORE=		Port option mismatch: must match FORPYIMPLxx of the installed lang/pypy3
.    endif
.  endif
.endif

.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 || ${PORT_OPTIONS:MFORPYIMPL37}
	${CP} ${LOCALBASE}/${PYPY_DIR}/lib_pypy/${CFFI_MODULE}_build.py ${WRKDIR}/${PORTNAME}.py
.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 || ${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  # 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