|
172 | 172 |
|
173 | 173 | AS_IF([test -n "$rpath_args"], |
174 | 174 | [WRAPPER_RPATH_SUPPORT=rpath |
175 | | - AC_MSG_RESULT([yes ($rpath_args)])], |
| 175 | + cat > $rpath_script <<EOF |
| 176 | +#!/bin/sh |
| 177 | + |
| 178 | +# Slurp in the libtool config into my environment |
| 179 | + |
| 180 | +# Apparently, "libtoool --config" calls "exit", so we can't source it |
| 181 | +# (because if script A sources script B, and B calls "exit", then both |
| 182 | +# B and A will exit). Instead, we have to send the output to a file |
| 183 | +# and then source that. |
| 184 | +$OPAL_TOP_BUILDDIR/libtool --tag=FC --config > $rpath_outfile |
| 185 | + |
| 186 | +chmod +x $rpath_outfile |
| 187 | +. ./$rpath_outfile |
| 188 | +rm -f $rpath_outfile |
| 189 | + |
| 190 | +# Evaluate \$hardcode_libdir_flag_spec, and substitute in LIBDIR for \$libdir |
| 191 | +libdir=LIBDIR |
| 192 | +flags="\`eval echo \$hardcode_libdir_flag_spec\`" |
| 193 | +echo \$flags |
| 194 | + |
| 195 | +# Done |
| 196 | +exit 0 |
| 197 | +EOF |
| 198 | + chmod +x $rpath_script |
| 199 | + rpath_fc_args=`./$rpath_script` |
| 200 | + rm -f $rpath_script |
| 201 | + AC_MSG_RESULT([yes ($rpath_args + $rpath_fc_args)])], |
176 | 202 | [WRAPPER_RPATH_SUPPORT=unnecessary |
177 | 203 | AC_MSG_RESULT([yes (no extra flags needed)])]) |
178 | 204 |
|
@@ -214,27 +240,31 @@ AC_DEFUN([OPAL_SETUP_RUNPATH],[ |
214 | 240 | # for each of them. Then also add in an RPATH for @{libdir} (which |
215 | 241 | # will be replaced by the wrapper compile to the installdir libdir at |
216 | 242 | # runtime), and the RUNPATH args, if we have them. |
217 | | -AC_DEFUN([RPATHIFY_LDFLAGS],[ |
| 243 | +AC_DEFUN([RPATHIFY_LDFLAGS_INTERNAL],[ |
218 | 244 | OPAL_VAR_SCOPE_PUSH([rpath_out rpath_dir rpath_tmp]) |
219 | 245 | AS_IF([test "$enable_wrapper_rpath" = "yes" && test "$WRAPPER_RPATH_SUPPORT" != "disabled" && test "$WRAPPER_RPATH_SUPPORT" != "unnecessary"], [ |
220 | 246 | rpath_out="" |
221 | 247 | for val in ${$1}; do |
222 | 248 | case $val in |
223 | 249 | -L*) |
224 | 250 | rpath_dir=`echo $val | cut -c3-` |
225 | | - rpath_tmp=`echo $rpath_args | sed -e s@LIBDIR@$rpath_dir@` |
| 251 | + rpath_tmp=`echo ${$2} | sed -e s@LIBDIR@$rpath_dir@` |
226 | 252 | rpath_out="$rpath_out $rpath_tmp" |
227 | 253 | ;; |
228 | 254 | esac |
229 | 255 | done |
230 | 256 |
|
231 | 257 | # Now add in the RPATH args for @{libdir}, and the RUNPATH args |
232 | | - rpath_tmp=`echo $rpath_args | sed -e s/LIBDIR/@{libdir}/` |
| 258 | + rpath_tmp=`echo ${$2} | sed -e s/LIBDIR/@{libdir}/` |
233 | 259 | $1="${$1} $rpath_out $rpath_tmp $runpath_args" |
234 | 260 | ]) |
235 | 261 | OPAL_VAR_SCOPE_POP |
236 | 262 | ]) |
237 | 263 |
|
| 264 | +AC_DEFUN([RPATHIFY_LDFLAGS],[RPATHIFY_LDFLAGS_INTERNAL([$1], [rpath_args])]) |
| 265 | + |
| 266 | +AC_DEFUN([RPATHIFY_FC_LDFLAGS],[RPATHIFY_LDFLAGS_INTERNAL([$1], [rpath_fc_args])]) |
| 267 | + |
238 | 268 |
|
239 | 269 | dnl |
240 | 270 | dnl Avoid some repetitive code below |
@@ -409,9 +439,12 @@ AC_DEFUN([OPAL_SETUP_WRAPPER_FINAL],[ |
409 | 439 |
|
410 | 440 | AC_MSG_CHECKING([for OMPI LDFLAGS]) |
411 | 441 | OMPI_WRAPPER_EXTRA_LDFLAGS="$ompi_mca_wrapper_extra_ldflags $wrapper_extra_ldflags $with_wrapper_ldflags" |
| 442 | + OMPI_WRAPPER_EXTRA_FC_LDFLAGS=$OMPI_WRAPPER_EXTRA_LDFLAGS |
412 | 443 | RPATHIFY_LDFLAGS([OMPI_WRAPPER_EXTRA_LDFLAGS]) |
413 | 444 | AC_SUBST([OMPI_WRAPPER_EXTRA_LDFLAGS]) |
414 | 445 | AC_MSG_RESULT([$OMPI_WRAPPER_EXTRA_LDFLAGS]) |
| 446 | + RPATHIFY_FC_LDFLAGS([OMPI_WRAPPER_EXTRA_FC_LDFLAGS]) |
| 447 | + AC_SUBST([OMPI_WRAPPER_EXTRA_FC_LDFLAGS]) |
415 | 448 |
|
416 | 449 | # Convert @{libdir} to ${libdir} for pkg-config |
417 | 450 | _OPAL_SETUP_WRAPPER_FINAL_PKGCONFIG([OMPI]) |
|
0 commit comments