# wants a (list of) dir(s) as the argument(s)# returns a list of libraries on stdout.# NEVER PUT ANYTHING HERE THAT ECHOS TO STDOUT OR STDERR.ldd_dir() { local BIN_PATH I while :; do [ $# -eq 0 ] && break [ ! -d ${1} ] && continue BIN_PATH=${1} && shift for I in ${BIN_PATH}/* ; do ldd -f "%p\n" ${I} 2>/dev/null || continue done done | sort -u}# this requires a DESTDIR (param 1)# this uses ldd_dir() to scan DESTDIR for libs to copy.# copies libs from the base system to the DESTDIR.libcopy() { local DESTDIR BINDIRS I [ $# -lt "2" ] && return 255 [ -d $1 ] || return 254 DESTDIR=$1 && shift for I in $*; do if [ -z "${BINDIRS}" ] ; then BINDIRS="${DESTDIR}/${I}" else BINDIRS="${BINDIRS} ${DESTDIR}/${I}" fi done shift $# for I in `ldd_dir ${BINDIRS}`; do cp ${VERBOPTS} -Rpf ${I} ${DESTDIR}/${I} liblink ${I} done return 0}