Magellan Linux

Contents of /trunk/mage/usr/lib/mage/autodepend.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3205 - (show annotations) (download) (as text)
Mon Aug 21 19:12:49 2023 UTC (8 months, 3 weeks ago) by niro
File MIME type: application/x-sh
File size: 1278 byte(s)
-always run ldconfig
1 #!/bin/bash
2 # $Id$
3
4 SCANELF="scanelf -LnyRB"
5 BINDIR="$1"
6
7 if [[ -z ${BINDIR} ]]
8 then
9 echo "No \$BINDIR given"
10 exit 1
11 fi
12
13 build_soname_list()
14 {
15 local sonames
16 local i
17 sonames="$(${SCANELF} ${BINDIR} | cut -d' ' -f2 | sed 's:,:\ :g')"
18
19 # now drop all duplicates
20 SONAME_LIST="$(for i in ${sonames}; do echo ${i}; done | sort -u)"
21 export SONAME_LIST
22 }
23
24 build_dep_list()
25 {
26 local soname
27 local libdir
28 local deps
29 local i
30 local prefix
31 local resolved
32
33 for soname in ${SONAME_LIST}
34 do
35 # if /lib /lib64 are symlinks than add a prefix to honor usr-move
36 libdir="${soname%/*}"
37 prefix=""
38 resolved=""
39 if [[ ${libdir} = /lib ]] || [[ ${libdir} = /lib64 ]] || [[ ${libdir} = /lib32 ]]
40 then
41 if [[ -L /lib ]] || [[ -L /lib64 ]] || [[ -L /lib32 ]]
42 then
43 prefix="/usr"
44 fi
45 fi
46
47 resolved="$(magequery -e ${prefix}${soname})"
48 if [[ -z ${resolved} ]]
49 then
50 # soname in the actual build included?
51 if [[ -z $(find ${BINDIR} -name $(basename ${soname})) ]]
52 then
53 resolved="${prefix}${soname}:_not_found"
54 fi
55 fi
56 deps+=" ${resolved}"
57 done
58 DEPNAME_LIST="$(for i in ${deps}; do echo ${i}; done | sort -u)"
59 export DEPNAME_LIST
60 }
61
62 ldconfig
63 build_soname_list
64 build_dep_list
65
66 #echo "${SONAME_LIST}"
67 echo "${DEPNAME_LIST}" | sed 's:\(.*\)-r.*:>= \1:'

Properties

Name Value
svn:executable *