@@ -10,6 +10,7 @@ DESTDIR=${DESTDIR:-$PWD/package/install}
10
10
PREFIX=${PREFIX:- " /opt/$mpiname " }
11
11
12
12
if test " $mpiname " = " mpich" ; then
13
+ version=$( sed -n ' s/MPICH_VERSION=\(.*\)/\1/p' " $SOURCE " /maint/Version)
13
14
options=(
14
15
CC=cc
15
16
CXX=c++
@@ -24,7 +25,13 @@ if test "$mpiname" = "mpich"; then
24
25
--disable-static
25
26
--disable-doc
26
27
)
28
+ if test " ${version%% .* } " -lt 4; then
29
+ options=(" ${options[@]/ --disable-cxx} " )
30
+ export FCFLAGS=-fallow-argument-mismatch
31
+ export FFLAGS=-fallow-argument-mismatch
32
+ fi
27
33
if test " $( uname) " = Darwin; then
34
+ options+=(--disable-opencl --disable-libxml2)
28
35
export MPICH_MPICC_LDFLAGS=" -Wl,-rpath,$PREFIX /lib"
29
36
export MPICH_MPICXX_LDFLAGS=" -Wl,-rpath,$PREFIX /lib"
30
37
export MPICH_MPIFORT_LDFLAGS=" -Wl,-rpath,$PREFIX /lib"
@@ -65,6 +72,7 @@ cd "${DESTDIR}${PREFIX}"
65
72
rm -f include/* cxx.h
66
73
rm -f include/* .mod
67
74
rm -f include/* f.h
75
+ rm -fr include/rdma
68
76
rm -f bin/mpif77
69
77
rm -f bin/mpif90
70
78
rm -f bin/mpifort
@@ -86,22 +94,33 @@ rm -f lib/libuc[mpst]*.la
86
94
rm -f lib/ucx/libuct_* .la
87
95
rm -fr lib/cmake
88
96
97
+ headers=(mpi.h)
98
+ scripts=(mpicc mpicxx)
99
+ executables=(mpichversion mpivars)
100
+
101
+ cd " ${DESTDIR}${PREFIX} /include"
102
+ for header in " ${headers[@]} " ; do
103
+ sed -i.orig ' s:^#include "mpicxx.h"::g' " $header "
104
+ rm " $header " .orig
105
+ done
106
+
89
107
cd " ${DESTDIR}${PREFIX} /bin"
90
- for script in mpicc mpicxx ; do
108
+ for script in " ${scripts[@]} " ; do
91
109
# shellcheck disable=SC2016
92
110
topdir=' $(CDPATH= cd -- "$(dirname -- "$0")/.." \&\& pwd -P)'
93
- sed -i.orig s:^prefix=.* :prefix=" $topdir " : $script
94
- sed -i.orig s:" $PREFIX " :\"\$\{ prefix\}\" :g $script
95
- sed -i.orig s:-Wl,-commons,use_dylibs::g $script
96
- sed -i.orig s:/usr/bin/bash:/bin/bash:g $script
97
- rm $script .orig
111
+ sed -i.orig s:^prefix=.* :prefix=" $topdir " : " $script "
112
+ sed -i.orig s:" $PREFIX " :\"\$\{ prefix\}\" :g " $script "
113
+ sed -i.orig s:-Wl,-commons,use_dylibs::g " $script "
114
+ sed -i.orig s:/usr/bin/bash:/bin/bash:g " $script "
115
+ sed -i.orig s:-lmpicxx::g " $script "
116
+ rm " $script " .orig
98
117
done
99
118
100
119
if test " $( uname) " = Linux; then
101
120
libmpi=" libmpi.so.12"
102
121
cd " ${DESTDIR}${PREFIX} /bin"
103
- for exe in mpichversion mpivars ; do
104
- patchelf --set-rpath " \$ ORIGIN/../lib" $exe
122
+ for exe in " ${executables[@]} " ; do
123
+ patchelf --set-rpath " \$ ORIGIN/../lib" " $exe "
105
124
done
106
125
cd " ${DESTDIR}${PREFIX} /lib"
107
126
if test -f " $libmpi " .* .* ; then
@@ -116,7 +135,7 @@ if test "$(uname)" = Linux; then
116
135
ln -sf " $lib " " ${lib% .* } "
117
136
fi
118
137
patchelf --set-rpath " \$ ORIGIN" " $lib "
119
- for exe in mpichversion mpivars ; do
138
+ for exe in " ${executables[@]} " ; do
120
139
patchelf --remove-needed " $lib " " ../bin/$exe "
121
140
done
122
141
done
@@ -136,7 +155,7 @@ if test "$(uname)" = Darwin; then
136
155
libmpi=" libmpi.12.dylib"
137
156
libpmpi=" libpmpi.12.dylib"
138
157
cd " ${DESTDIR}${PREFIX} /bin"
139
- for exe in mpichversion mpivars ; do
158
+ for exe in " ${executables[@]} " ; do
140
159
install_name_tool -change " $libdir /$libmpi " " @rpath/$libmpi " " $exe "
141
160
install_name_tool -change " $libdir /$libpmpi " " @rpath/$libpmpi " " $exe "
142
161
install_name_tool -add_rpath " @executable_path/../lib/" " $exe "
@@ -147,20 +166,6 @@ if test "$(uname)" = Darwin; then
147
166
install_name_tool -add_rpath " @loader_path/" " $lib "
148
167
done
149
168
install_name_tool -change " $libdir /$libpmpi " " @rpath/$libpmpi " " $libmpi "
150
- if test -f libucp.dylib; then # TODO: UCX is not supported on macOS
151
- for lib in libuc[mpst]* .? .dylib; do
152
- install_name_tool -id " @rpath/$lib " " $lib "
153
- install_name_tool -add_rpath " @loader_path/" " $lib "
154
- for dep in libuc[mst].? .dylib; do
155
- install_name_tool -change " $libdir /$dep " " @rpath/$dep " " $lib "
156
- done
157
- done
158
- for exe in mpichversion mpivars; do
159
- for dep in libuc[mpst].? .dylib; do
160
- install_name_tool -change " $libdir /$dep " " /" " ../bin/$exe "
161
- done
162
- done
163
- fi
164
169
fi
165
170
166
171
} # fixup-mpich()
0 commit comments