blob: ff7e104c13b6b4db7b217c846252bc35f0f51d2a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
PORTNAME= mpich
DISTVERSION= 4.3.1
CATEGORIES= net parallel
MASTER_SITES= https://www.mpich.org/static/downloads/${DISTVERSION}/
MAINTAINER= laurent.chardon@gmail.com
COMMENT= Portable implementation of MPI-1, MPI-2 and MPI-3
WWW= https://www.mpich.org/
LICENSE= MPICH
LICENSE_NAME= MPICH
LICENSE_FILE= ${WRKSRC}/COPYRIGHT
LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
LIB_DEPENDS= libhwloc.so:devel/hwloc2 \
libjson-c.so:devel/json-c \
libfabric.so:net/libfabric \
libepoll-shim.so:devel/libepoll-shim
USES= compiler:c11 libtool localbase perl5 pkgconfig python:build
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --enable-fast="" \
--with-libfabric=${LOCALBASE} \
--with-libfabric-include=${WRKDIR}/include \
--with-hwloc=${LOCALBASE} \
pkgconfigdir="${PREFIX}/libdata/pkgconfig" \
MPICHLIB_CFLAGS="${CFLAGS}" \
CFLAGS="-I${LOCALBASE}/include/json-c ${CFLAGS_F2018}" \
MPICHLIB_CPPFLAGS="${CPPFLAGS}" CPPFLAGS="" \
MPICHLIB_CXXFLAGS="${CXXFLAGS}" CXXFLAGS="" \
MPICHLIB_FFLAGS="${FFLAGS}" FFLAGS="" \
MPICHLIB_FCFLAGS="${FCFLAGS}" FCFLAGS="" \
MPICHLIB_LDFLAGS="${LDFLAGS}" LDFLAGS="" \
MPICHLIB_LIBS="${LIBS}" \
LIBS="-L${LOCALBASE}/lib -lepoll-shim -ljson-c -lm" \
BASH_SHELL=${LOCALBASE}/bin/bash
INSTALL_TARGET= install-strip
TEST_TARGET= check
CONFLICTS= mpd
BINARY_ALIAS= python3=${PYTHON_CMD}
PORTDOCS= *
OPTIONS_DEFINE= DOCS FORTRAN SLURM L0
OPTIONS_DEFAULT= FORTRAN GFORKER HYDRA DHYDRA
OPTIONS_GROUP= PM
OPTIONS_GROUP_PM= GFORKER HYDRA
OPTIONS_RADIO= DEFAULTPM
OPTIONS_RADIO_DEFAULTPM=DGFORKER DHYDRA
OPTIONS_SUB= yes
DEFAULTPM_DESC= Default process manager
DGFORKER_DESC= Make gforker the default process manager
DHYDRA_DESC= Make hydra the default process manager
GFORKER_DESC= Simple local process manager
HYDRA_DESC= Parallel process manager
L0_DESC= oneAPI Level Zero support
PM_DESC= Process managers
SLURM_DESC= Extra Slurm support
MPICH_LDFLAGS= -Wl,-rpath=${LOCALBASE}/lib/gcc${_GCC_VER} \
-L${LOCALBASE}/lib/gcc${_GCC_VER} -B${LOCALBASE}/bin
FORTRAN_USES= fortran
FORTRAN_CONFIGURE_ON= \
MPICH_MPICC_LDFLAGS="${MPICH_LDFLAGS}" \
MPICH_MPICXX_LDFLAGS="${MPICH_LDFLAGS}" \
MPICH_MPIF77_LDFLAGS="${MPICH_LDFLAGS}" \
MPICH_MPIFORT_LDFLAGS="${MPICH_LDFLAGS}"
FORTRAN_CONFIGURE_ENABLE= fortran
L0_LIB_DEPENDS= libze_loader.so:devel/level-zero
L0_CONFIGURE_WITH= ze
SLURM_IMPLIES= HYDRA
SLURM_LIB_DEPENDS= libslurm.so:sysutils/slurm-wlm
SLURM_CONFIGURE_WITH= slurm
.include <bsd.port.pre.mk>
.if ${PORT_OPTIONS:ML0}
# PR 278869 - level-zero is broken
IGNORE= is currently not working with the L0 option. Unset L0
.endif
.if ${COMPILER_TYPE} == clang && (${COMPILER_VERSION} == 170 || ${COMPILER_VERSION} >= 181 && ${ARCH} == "i386")
# linker error when compiling with llvm 17.0.6 on CURRENT - PR 276035
# To be removed when all RELEASE and CURRENT no longer need it
# Error remains for i386 and llvm-181 on CURRENT
CONFIGURE_ENV+= ac_cv_sizeof___float128=0
.endif
.for pm in ${OPTIONS_GROUP_PM}
. if ${PORT_OPTIONS:M${pm}}
. if empty(PMLIST)
PMLIST= ${pm:tl}
. elif ${PORT_OPTIONS:MD${pm}}
PMLIST:= ${pm:tl},${PMLIST}
. else
PMLIST:= ${PMLIST},${pm:tl}
. endif
. endif
.endfor
.if empty(PMLIST)
CONFIGURE_ARGS+=--without-pm
PLIST_SUB+= EXEC="@comment " EXECGFORKER="@comment "
.else
CONFIGURE_ARGS+=--with-pm=${PMLIST}
PLIST_SUB+= EXEC=""
.if ${PMLIST:M*,gforker*}
PLIST_SUB+= EXECGFORKER=""
.else
PLIST_SUB+= EXECGFORKER="@comment "
.endif
.endif
post-extract:
${FIND} ${WRKSRC} -name "*.orig" -delete
post-patch:
# To avoid pollution from ${LOCALBASE}/include, set up the build to look in
# ${WRKDIR} for libfabric include/rdma/ header files (see --with-libfabric
# configure args).
# PR: 265684
${MKDIR} ${WRKDIR}/include && ${LN} -s ${LOCALBASE}/include/rdma ${WRKDIR}/include/
post-install:
${MV} ${STAGEDIR}${PREFIX}/etc/mpixxx_opts.conf ${STAGEDIR}${PREFIX}/etc/mpixxx_opts.conf.sample
.include <bsd.port.post.mk>
|