Magellan Linux

Annotation of /trunk/include/libtool.sminc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2 - (hide annotations) (download)
Fri Oct 10 13:29:42 2008 UTC (16 years ago) by niro
Original Path: trunk/core/include/libtool.sminc
File size: 1716 byte(s)
import repo
1 niro 2 # $Header: /magellan-cvs/smage/include/libtool.sminc,v 1.3 2008/04/02 16:30:00 niro Exp $
2     # libtool related functions
3    
4     # fixes broken dependencies in *.la files
5     # broken: dependency_libs=' -L/var/tmp/magebuild/gcc-4.2.3/build/i686-pc-linux-gnu/libstdc++-v3/src -L/var/tmp/magebuild/gcc-4.2.3/build/i686-pc-linux-gnu/libstdc++-v3/src/.libs -lm -lm -lm -L/var/tmp/magebuild/gcc-4.2.3/build/./gcc -L/usr/lib/gcc/i686-pc-linux-gnu/4.2.3 -L/usr/lib/gcc/i686-pc-linux-gnu/4.2.3/../../.. -lgcc_s -lc -lgcc_s -lm -lgcc_s -lc -lgcc_s'
6     # fixed: dependency_libs=' -lm -lm -lm -L/usr/lib/gcc/i686-pc-linux-gnu/4.2.3 -L/usr/lib/gcc/i686-pc-linux-gnu/4.2.3/../../.. -lgcc_s -lc -lgcc_s -lm -lgcc_s -lc -lgcc_s'
7     fix_la_file()
8     {
9     local file="$@"
10     local dependency_libs
11     local new_dependency_libs
12     local dep
13    
14     if [[ -f ${file} ]]
15     then
16     echo "Processing file '${file}' ..."
17     dependency_libs=$(egrep '^dependency_libs=' ${file} | sed -e "s:dependency_libs=::" -e "s:'::g" )
18    
19     for dep in ${dependency_libs}
20     do
21     # check for ${BINDIR}
22     [[ ${dep/${BINDIR}/} != ${dep} ]] && continue
23    
24     # check for ${BUILDDIR}
25     [[ ${dep/${BUILDDIR}/} != ${dep} ]] && continue
26    
27     # do not add any duplicates
28     check_dupes new_dependency_libs ${dep} || continue
29    
30     new_dependency_libs="${new_dependency_libs} ${dep}"
31     done
32    
33     echo "new deps: ${new_dependency_libs}"
34     sed -i "s:^\(dependency_libs=\).*:\1'${new_dependency_libs}':" ${file}
35     fi
36     }
37    
38     # checks a variable if it contains a given item
39     # check_dupes variablename item
40     check_dupes()
41     {
42     local variable="$1"
43     local item="$2"
44     local i
45    
46     for i in $(eval echo \$${variable})
47     do
48     # found so abort
49     [[ ${i} = ${item} ]] && return 1
50     done
51    
52     # if we get here, nothing was found
53     return 0
54     }