# $NetBSD: buffer,v 1.7 2004/01/30 13:44:52 jlam Exp $ # # Push arguments onto the argument stack and shift the arguments. The # next argument checked by the cache and logic files is take from the # the top of the stack. # if $test -z "$depth"; then arg="$1"; shift # # Marshall any group of consecutive arguments into a single # $arg to be checked in the cache and logic files. # . $marshall # # Push the argument onto the stack. # depth=${depth}0 eval stack${depth}="\$arg" fi argok=no while $test "$argok" = "no"; do # # Take $arg from the top of the stack. # eval arg="\$stack${depth}" depth=${depth%0} argok=yes case $arg in # # Change "-/path1:/path2" into # "-/path1 -/path2" so that # they can be checked correctly in the cache and logic # files. # -R*:*|-Wl,-R*:*|-Wl,-rpath,*:*|-Wl,-rpath-link,*:*|\ -Wl,--rpath,*:*|-Wl,--rpath-link,*:*) case $arg in -R*) R="-R" ;; -Wl,-R*) R="-Wl,-R" ;; -Wl,-rpath,*) R="-Wl,-rpath," ;; -Wl,-rpath-link,*) R="-Wl,-rpath-link," ;; -Wl,--rpath,*) R="-Wl,--rpath," ;; -Wl,--rpath-link,*) R="-Wl,--rpath-link," ;; esac arg=`$echo "X$arg" | $Xsed -e "s|^"$R"||g"` save_IFS="${IFS}"; IFS=":" revarg= for dir in $arg; do revarg="$dir $revarg" done IFS="${save_IFS}" for dir in $revarg; do depth=${depth}0 eval stack${depth}="\$R\$dir" done argok=no ;; esac done