@@ -82,8 +82,17 @@ case $(uname) in
82
82
Darwin) njobs=$( sysctl -n hw.physicalcpu) ;;
83
83
esac
84
84
85
- mkdir -p " $WORKDIR "
86
- cd " $WORKDIR "
85
+ if test " $mpiname " = " mpich" ; then
86
+ mkdir -p " $WORKDIR " /libfabric && cd " $WORKDIR " /libfabric
87
+ echo running configure on libfabric
88
+ " $SOURCE " /modules/libfabric/configure --prefix=" $PREFIX "
89
+ echo running make with " ${njobs:- 1} " jobs on libfabric
90
+ make -j " ${njobs:- 1} " install DESTDIR=" $DESTDIR "
91
+ withofi=--with-libfabric=" ${DESTDIR}${PREFIX} "
92
+ options=(" ${options[@]/ --with-libfabric=embedded/ $withofi } " )
93
+ fi
94
+
95
+ mkdir -p " $WORKDIR " && cd " $WORKDIR "
87
96
88
97
echo running configure
89
98
" $SOURCE " /configure " ${options[@]} " || cat config.log
@@ -97,7 +106,7 @@ cd "${DESTDIR}${PREFIX}"
97
106
rm -f include/* cxx.h
98
107
rm -f include/* .mod
99
108
rm -f include/* f.h
100
- rm -fr include/rdma
109
+ rm -f bin/fi_ *
101
110
rm -f bin/mpif77
102
111
rm -f bin/mpif90
103
112
rm -f bin/mpifort
@@ -112,6 +121,12 @@ rm -f lib/lib*mpifort.*
112
121
rm -fr lib/pkgconfig
113
122
rm -fr share
114
123
124
+ cd " ${DESTDIR}${PREFIX} "
125
+ rm -fr include/rdma
126
+ rm -f bin/fi_*
127
+ rm -f lib/libfabric.a
128
+ rm -f lib/libfabric.la
129
+
115
130
cd " ${DESTDIR}${PREFIX} "
116
131
rm -f bin/io_demo
117
132
rm -f bin/ucx_read_profile
@@ -153,6 +168,19 @@ if test "$(uname)" = Linux; then
153
168
mv " $( readlink " $libmpi " ) " " $libmpi "
154
169
ln -sf " $libmpi " " ${libmpi% .* } "
155
170
fi
171
+ if test -f libfabric.so; then
172
+ patchelf --set-rpath " \$ ORIGIN" " $libmpi "
173
+ for lib in libfabric.so.? ; do
174
+ if test -f " $lib " .* .* ; then
175
+ mv " $( readlink " $lib " ) " " $lib "
176
+ ln -sf " $lib " " ${lib% .* } "
177
+ fi
178
+ patchelf --set-rpath " \$ ORIGIN" " $lib "
179
+ for exe in " ${executables[@]} " ; do
180
+ patchelf --remove-needed " $lib " " ../bin/$exe "
181
+ done
182
+ done
183
+ fi
156
184
if test -f libucp.so; then
157
185
patchelf --set-rpath " \$ ORIGIN" " $libmpi "
158
186
for lib in libuc[mpst]* .so.? ; do
@@ -180,18 +208,20 @@ if test "$(uname)" = Darwin; then
180
208
libdir=" $PREFIX /lib"
181
209
libmpi=" libmpi.12.dylib"
182
210
libpmpi=" libpmpi.12.dylib"
211
+ libfabric=" libfabric.1.dylib"
183
212
cd " ${DESTDIR}${PREFIX} /bin"
184
213
for exe in " ${executables[@]} " ; do
185
214
install_name_tool -change " $libdir /$libmpi " " @rpath/$libmpi " " $exe "
186
215
install_name_tool -change " $libdir /$libpmpi " " @rpath/$libpmpi " " $exe "
187
216
install_name_tool -add_rpath " @executable_path/../lib/" " $exe "
188
217
done
189
218
cd " ${DESTDIR}${PREFIX} /lib"
190
- for lib in " $libmpi " " $libpmpi " ; do
219
+ for lib in " $libmpi " " $libpmpi " " $libfabric " ; do
191
220
install_name_tool -id " @rpath/$lib " " $lib "
192
221
install_name_tool -add_rpath " @loader_path/" " $lib "
193
222
done
194
223
install_name_tool -change " $libdir /$libpmpi " " @rpath/$libpmpi " " $libmpi "
224
+ install_name_tool -change " $libdir /$libfabric " " @rpath/$libfabric " " $libmpi "
195
225
fi
196
226
197
227
} # fixup-mpich()
0 commit comments