@@ -82,8 +82,17 @@ case $(uname) in
8282 Darwin) njobs=$( sysctl -n hw.physicalcpu) ;;
8383esac
8484
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 "
8796
8897echo running configure
8998" $SOURCE " /configure " ${options[@]} " || cat config.log
@@ -97,7 +106,7 @@ cd "${DESTDIR}${PREFIX}"
97106rm -f include/* cxx.h
98107rm -f include/* .mod
99108rm -f include/* f.h
100- rm -fr include/rdma
109+ rm -f bin/fi_ *
101110rm -f bin/mpif77
102111rm -f bin/mpif90
103112rm -f bin/mpifort
@@ -112,6 +121,12 @@ rm -f lib/lib*mpifort.*
112121rm -fr lib/pkgconfig
113122rm -fr share
114123
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+
115130cd " ${DESTDIR}${PREFIX} "
116131rm -f bin/io_demo
117132rm -f bin/ucx_read_profile
@@ -153,6 +168,19 @@ if test "$(uname)" = Linux; then
153168 mv " $( readlink " $libmpi " ) " " $libmpi "
154169 ln -sf " $libmpi " " ${libmpi% .* } "
155170 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
156184 if test -f libucp.so; then
157185 patchelf --set-rpath " \$ ORIGIN" " $libmpi "
158186 for lib in libuc[mpst]* .so.? ; do
@@ -180,18 +208,20 @@ if test "$(uname)" = Darwin; then
180208 libdir=" $PREFIX /lib"
181209 libmpi=" libmpi.12.dylib"
182210 libpmpi=" libpmpi.12.dylib"
211+ libfabric=" libfabric.1.dylib"
183212 cd " ${DESTDIR}${PREFIX} /bin"
184213 for exe in " ${executables[@]} " ; do
185214 install_name_tool -change " $libdir /$libmpi " " @rpath/$libmpi " " $exe "
186215 install_name_tool -change " $libdir /$libpmpi " " @rpath/$libpmpi " " $exe "
187216 install_name_tool -add_rpath " @executable_path/../lib/" " $exe "
188217 done
189218 cd " ${DESTDIR}${PREFIX} /lib"
190- for lib in " $libmpi " " $libpmpi " ; do
219+ for lib in " $libmpi " " $libpmpi " " $libfabric " ; do
191220 install_name_tool -id " @rpath/$lib " " $lib "
192221 install_name_tool -add_rpath " @loader_path/" " $lib "
193222 done
194223 install_name_tool -change " $libdir /$libpmpi " " @rpath/$libpmpi " " $libmpi "
224+ install_name_tool -change " $libdir /$libfabric " " @rpath/$libfabric " " $libmpi "
195225fi
196226
197227} # fixup-mpich()
0 commit comments