shell_find_share_lib

#!/bim/sh
function add_dep_lib()
{
 local TARGET=$1
 local LIB_SEARCH_DIRS=$2
 local LIB_DIR=$3
 local USR_LIB_SEARCH_DIRS=$4
 local USR_LIB_DIR=$5

 

 local libs=`arm-none-linux-readelf -a ${TARGET} |grep "shared library" |awk /
        '{print $5}' |awk -F/ '{print $NF}' |sed 's//[//' |sed 's//]//'`

echo "processing libraries for [${TARGET}] ...." [ -z "${libs}" ] /
&& echo "not found depend libraries for [${TARGET}], let's return now" /
&& return

 echo "found depend library :${libs}"
 
 for lib in ${libs}
 do
 echo "looking for ${lib} ..."
 local exsit=0
        for lib_dir in ${LIB_DIR} ${USR_LIB_DIR}
        do [-r ${lib_dir}/${lib}] /
         &&    exsit=1 /
         &&    break
 done
 [${exsit} -eq 1] /
  &&    echo"${lib} aready existed, continue" /
  &&    comtinue

 


 local found=0
  for lib_dir in ${LIB_SEARCH_DIRS}
  do [-r ${lib_dir}/${lib}] /
   && found=1 /
    &&    cp -aL ${lib_dir}/${lib} ${LIB_DIR}

  local link_text=""
  local link_target=""
  [${found} -eq 1] /
   &&    ls -l ${lib_dir}/${lib} | grep "^l.*$">/dev/null /

   &&    link_text=`ls -l ${lib_dir}/${lib}`
  link_target=`echo ${link_text} |awk '{print $NF}'`
  ["${link_target}" !=""]  /
   &&    cp -L ${lib_dir}/${link_target} ${LIB_DIR}
  [${found} -eq 1] /
   &&    echo "copied ${lib}, Let't go deep " /     
   &&    add_dep_lib ${lib_dir}/${lib} ${LIB_SEARCH_DIRS} ${LIB_DIR} /
     ${USR_LIB_SEARCH_DIRS} ${USR_LIB_DIR}/
   &&    echo "${lib} depend library copeid break" /
   &&    break
  done
  [${found} -eq 1 ]   &&    continue
  for lib_dir in ${USR_LIB_SEARCH_DIRS}
  do
  [ -r ${lib_dir}/${lib} ] /
   &&    found =1 /
   &&    cp -aL ${lib_dir}/${lib} ${USR_LIB_DIR}
  local link_text=""
  local link_target=""
  [${found} -eq 1 ] /
   &&    ls -l ${lib_dir}/${lib} | grep "^l.*$" >/dev/null /
   &&    link_text=`ls -l ${lib_dir}/${lib}`
  link_target = `echo ${link_text} |awk '{print $NF}'`
  ["${link_target}"!=""]  /
   &&    cp -L ${lib_dir}/${link_target} ${USR_LIB_DIR}
  [${found} -eq 1 ] /
  $echo "copy ${lib}  go deep..." /
   &&    add_dep_lib ${lib_dir}/${lib} ${LIB_SEARCH_DIRS} ${LIB_DIR}
     ${USR_LIB_SEARCH_DIRS} ${USR_LIB_DIR}
   &&    echo "finish to process ${lib} depend library let's break" /
   &&    break
  done
  [${found} -eq 0] /
   &&    echo "error:not found ${lib}'s check search paths"
   &&    exit 1
  done
 }
LANG="en_US.utf8"
add_dep_lib $1 $2 $3 "$4" $5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值