Files
2026-10-04 04:07:15 +00:00

64 lines
1.6 KiB
Makefile

PORTNAME= mpi4py
DISTVERSION= 4.1.2
CATEGORIES= net parallel python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
MAINTAINER= laurent@FreeBSD.org
COMMENT?= Python bindings for MPI (OpenMPI)
WWW= https://github.com/mpi4py/mpi4py
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/LICENSE.rst
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools>=42:devel/py-setuptools@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
USES= pkgconfig python
USE_PYTHON= autoplist concurrent cython pep517
LDFLAGS+= ${MPI_LIBS}
MP?= OPENMPI
.if ${MP} == "OPENMPI"
USES+= mpi:openmpi
CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}mpi4py-mpich-4*
MPIOPTIONS= --oversubscribe --stream-buffering 0
.elif ${MP} == "MPICH"
USES+= fortran mpi:mpich
CONFLICTS_INSTALL= ${PYTHON_PKGNAMEPREFIX}mpi4py-4*
MPIOPTIONS=
.else
BROKEN= invalid parameter MP
.endif
PORTDOCS= *
#SLAVEDIRS= net/py-mpi4py-mpich
OPTIONS_DEFINE= DOCS
.include <bsd.port.pre.mk>
.if ${MP} == "MPICH" && ${FORTRAN_DEFAULT} == gfortran
LDFLAGS+= ${LOCALBASE}/lib/gcc${GCC_DEFAULT}/libgcc_s.so
.endif
pre-configure:
${CP} ${FILESDIR}/mpi.cfg ${WRKSRC}/
${REINPLACE_CMD} -e 's|%%LOCALBASE%%/mpi/openmpi|${MPI_HOME}|' \
${WRKSRC}/mpi.cfg
do-install-DOCS-on:
${MKDIR} ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/README.rst ${STAGEDIR}${DOCSDIR}
(cd ${WRKSRC}/docs && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR})
post-install:
(cd ${STAGEDIR}${PYTHON_SITELIBDIR}/mpi4py && ${STRIP_CMD} *.so)
do-test:
(cd ${WRKSRC} && ${MPIEXEC} ${MPIOPTIONS} -n 5 ${PYTHON_CMD} test/main.py)
.include <bsd.port.post.mk>