diff options
author | Yuri Victorovich <yuri@FreeBSD.org> | 2018-09-21 03:48:57 +0000 |
---|---|---|
committer | Yuri Victorovich <yuri@FreeBSD.org> | 2018-09-21 03:48:57 +0000 |
commit | 3d517de43c272d92629535be05de2ccac6221d66 (patch) | |
tree | 251ab5ac9e43cd898efc2326c36680dc2196e826 /net/py-mpi4py | |
parent | www/grafana5: update to 5.2.4 (diff) |
New port: net/py-mpi4py: Python bindings for MPI
PR: 211768
Submitted by: Michael Danilov <mike.d.ft402@gmail.com>
Notes
Notes:
svn path=/head/; revision=480224
Diffstat (limited to 'net/py-mpi4py')
-rw-r--r-- | net/py-mpi4py/Makefile | 61 | ||||
-rw-r--r-- | net/py-mpi4py/distinfo | 3 | ||||
-rw-r--r-- | net/py-mpi4py/files/mpi.cfg | 6 | ||||
-rw-r--r-- | net/py-mpi4py/files/mpi2.cfg | 6 | ||||
-rw-r--r-- | net/py-mpi4py/files/patch-setup.py | 25 | ||||
-rw-r--r-- | net/py-mpi4py/pkg-descr | 5 |
6 files changed, 106 insertions, 0 deletions
diff --git a/net/py-mpi4py/Makefile b/net/py-mpi4py/Makefile new file mode 100644 index 000000000000..208ab795050c --- /dev/null +++ b/net/py-mpi4py/Makefile @@ -0,0 +1,61 @@ +# $FreeBSD$ + +PORTNAME= mpi4py +DISTVERSION= 3.0.0 +CATEGORIES= net parallel python +MASTER_SITES= CHEESESHOP +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} + +MAINTAINER= mike.d.ft402@gmail.com +COMMENT= Python bindings for MPI + +LICENSE= BSD2CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE.rst + +USES= python +USE_PYTHON= distutils cython autoplist concurrent + +OPTIONS_DEFINE= DOCS MANPAGES +OPTIONS_SINGLE= MP +OPTIONS_SINGLE_MP= MPICH2 OPENMPI OPENMPI2 +OPTIONS_DEFAULT= OPENMPI # the only non-failing MPI implementation +MP_DESC= MPI Implementation + +MPICH2_USES= fortran +MPICH2_LIB_DEPENDS= libmpich.so:net/mpich2 +MPICH2_LDFLAGS= ${LOCALBASE}/lib/gcc${GCC_DEFAULT}/libgcc_s.so + +OPENMPI_LIB_DEPENDS= libmpi.so:net/openmpi + +OPENMPI2_DESC= ${OPENMPI_DESC} 2.x +OPENMPI2_LIB_DEPENDS= libmpi.so:net/openmpi2 + +PORTDOCS= * + +do-patch-OPENMPI-on: + @${CP} ${FILESDIR}/mpi.cfg ${WRKSRC}/ + @${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|' ${WRKSRC}/mpi.cfg + +do-patch-OPENMPI2-on: + @${CP} ${FILESDIR}/mpi2.cfg ${WRKSRC}/mpi.cfg + @${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|' ${WRKSRC}/mpi.cfg + +do-install-DOCS-on: + @${MKDIR} ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/README.rst ${STAGEDIR}${DOCSDIR} + cd ${WRKSRC}/docs && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR} + @${RM} ${STAGEDIR}${DOCSDIR}/${PORTNAME}.1 + +do-install-MANPAGES-on: + ${INSTALL_MAN} ${WRKSRC}/docs/${PORTNAME}.1 ${STAGEDIR}${PREFIX}/man/man1 + @${ECHO} man/man1/mpi4py.1.gz >> ${TMPPLIST} + +post-install: + @cd ${STAGEDIR}${PYTHON_SITELIBDIR}/mpi4py && ${STRIP_CMD} dl.so MPI.so lib-pmpi/libvt-hyb.so lib-pmpi/libvt.so lib-pmpi/libvt-mpi.so lib-pmpi/libmpe.so + +do-test: + # tests fail with MPICH2=on: https://bitbucket.org/mpi4py/mpi4py/issues/110/tests-fail-with-mpich2-on-freebsd-error + # tests fail with OPENMPI2=on: https://bitbucket.org/mpi4py/mpi4py/issues/109/tests-fail-with-openmpi2-on-freebsd + @cd ${WRKSRC} && ${PYTHON_CMD} ${PYDISTUTILS_SETUP} test + +.include <bsd.port.mk> diff --git a/net/py-mpi4py/distinfo b/net/py-mpi4py/distinfo new file mode 100644 index 000000000000..36870cb6331a --- /dev/null +++ b/net/py-mpi4py/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1537487949 +SHA256 (mpi4py-3.0.0.tar.gz) = b457b02d85bdd9a4775a097fac5234a20397b43e073f14d9e29b6cd78c68efd7 +SIZE (mpi4py-3.0.0.tar.gz) = 1426843 diff --git a/net/py-mpi4py/files/mpi.cfg b/net/py-mpi4py/files/mpi.cfg new file mode 100644 index 000000000000..2057be4b343f --- /dev/null +++ b/net/py-mpi4py/files/mpi.cfg @@ -0,0 +1,6 @@ +[mpi] +mpi_dir = %%LOCALBASE%%/mpi/openmpi +mpicc = %(mpi_dir)s/bin/mpicc +mpicxx = %(mpi_dir)s/bin/mpicxx +library_dirs = %(mpi_dir)s/lib +runtime_library_dirs = %(library_dirs)s diff --git a/net/py-mpi4py/files/mpi2.cfg b/net/py-mpi4py/files/mpi2.cfg new file mode 100644 index 000000000000..3ce4d9df0afd --- /dev/null +++ b/net/py-mpi4py/files/mpi2.cfg @@ -0,0 +1,6 @@ +[mpi] +mpi_dir = %%LOCALBASE%%/mpi/openmpi2 +mpicc = %(mpi_dir)s/bin/mpicc +mpicxx = %(mpi_dir)s/bin/mpicxx +library_dirs = %(mpi_dir)s/lib +runtime_library_dirs = %(library_dirs)s diff --git a/net/py-mpi4py/files/patch-setup.py b/net/py-mpi4py/files/patch-setup.py new file mode 100644 index 000000000000..8eecac4eec0a --- /dev/null +++ b/net/py-mpi4py/files/patch-setup.py @@ -0,0 +1,25 @@ +--- setup.py.orig 2017-11-25 07:11:10 UTC ++++ setup.py +@@ -174,10 +174,10 @@ def configure_dl(ext, config_cmd): + log.info("checking for dlopen() availability ...") + ok = config_cmd.check_header('dlfcn.h') + if ok : ext.define_macros += [('HAVE_DLFCN_H', 1)] +- ok = config_cmd.check_library('dl') +- if ok: ext.libraries += ['dl'] ++ #ok = config_cmd.check_library('dl') ++ #if ok: ext.libraries += ['dl'] + ok = config_cmd.check_function('dlopen', +- libraries=['dl'], ++ #libraries=['dl'], + decl=1, call=1) + if ok: ext.define_macros += [('HAVE_DLOPEN', 1)] + +@@ -287,7 +287,7 @@ def configure_libvt(lib, config_cmd): + log_lib = 'vt.ompi' + else: + log_lib = 'vt.mpi' +- dep_libs = ('dl', 'z', 'otf',) ++ dep_libs = ('z', 'otf',) + ok = config_cmd.check_library(log_lib, lib.library_dirs) + if not ok: return + libraries = [] diff --git a/net/py-mpi4py/pkg-descr b/net/py-mpi4py/pkg-descr new file mode 100644 index 000000000000..43e33fe96b3c --- /dev/null +++ b/net/py-mpi4py/pkg-descr @@ -0,0 +1,5 @@ +This package provides Python bindings for the Message Passing Interface (MPI) +standard. It is implemented on top of the MPI-1/MPI-2 specification and +exposes an API which grounds on the standard MPI-2 C++ bindings + +WWW: https://bitbucket.org/mpi4py/mpi4py/ |