Gentoo Archives: gentoo-commits

From: "Peter Alfredsen (loki_val)" <loki_val@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in dev-util/lafilefixer/files: lafilefixer-0.0.1
Date: Sun, 19 Apr 2009 15:48:24
Message-Id: E1LvZFm-0006nq-Fn@stork.gentoo.org
1 loki_val 09/04/19 15:48:22
2
3 Added: lafilefixer-0.0.1
4 Log:
5 Initial commit. Script and ebuild by me.
6 (Portage version: 2.2_rc28/cvs/Linux x86_64)
7
8 Revision Changes Path
9 1.1 dev-util/lafilefixer/files/lafilefixer-0.0.1
10
11 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/dev-util/lafilefixer/files/lafilefixer-0.0.1?rev=1.1&view=markup
12 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/dev-util/lafilefixer/files/lafilefixer-0.0.1?rev=1.1&content-type=text/plain
13
14 Index: lafilefixer-0.0.1
15 ===================================================================
16 #!/bin/bash
17
18 # Libtool does not support spaces in dependency_libs entries
19 # so we won't worry overly about them either.
20
21 fix_la_files() {
22 if ! grep --help &> /dev/null
23 then
24 echo "Grep not functional. Aborting."
25 return 1
26 elif ! sed --help &> /dev/null
27 then
28 echo "Sed not functional. Aborting."
29 return 1
30 elif ! uniq --help &> /dev/null
31 then
32 echo "Uniq not functional. Aborting."
33 elif ! sort --help &> /dev/null
34 then
35 echo "Sort not functional. Aborting."
36 fi
37 declare lafile
38 for lafile in "$@"
39 do
40 local dependency_libs=""
41 local inh_link_flags=""
42 local new_dep_libs=""
43 local libladir=""
44 local librpath=""
45 local dep_libs=""
46 local lib=""
47
48 dep_libs="$(grep '^dependency_libs=' $lafile)"
49 dep_libs="${dep_libs#dependency_libs=\'}"
50 dep_libs="${dep_libs%\'}"
51
52 inh_link_flags="$(grep '^inherited_linker_flags=' $lafile)"
53 inh_link_flags="${inh_link_flags#inherited_linker_flags=\'}"
54 inh_link_flags="${inh_link_flags%\'}"
55
56
57 for entry in $dep_libs
58 do
59 if [[ "${entry#-L}" != "${entry}" ]]
60 then
61 [[ ${entry/X11R6\/lib} != ${entry} ]] && entry="${entry/X11R6\/}"
62 [[ ${entry/local\/lib} != ${entry} ]] && entry="${entry/local\/}"
63 [[ ${entry/usr\/lib*\/pkgconfig\/..\/..} != ${entry} ]] && entry="${entry/\/lib*\/pkgconfig\/..\/..}"
64 [[ ${entry/usr\/lib*\/pkgconfig\/..} != ${entry} ]] && entry="${entry/\/pkgconfig\/..}"
65 libladir="${libladir} ${entry}"
66 elif [[ "${entry#-R}" != "${entry}" ]]
67 then
68 librpath="${librpath} ${entry}"
69 elif [[ "${entry#-l}" != "${entry}" ]]
70 then
71 new_dep_libs="${new_dep_libs} ${entry}"
72 elif [[ "${entry%.la}" != "${entry}" ]]
73 then
74 libladir="${libladir} -L${entry%/*.la}"
75 lib="${entry%.la}"
76 lib="${lib##*\/lib}"
77 lib="-l${lib}"
78 new_dep_libs="${new_dep_libs} ${lib}"
79
80 elif [[ "${entry}" == "-pthread" ]]
81 then
82 if [[ ${inh_link_flags} != *-pthread* ]]
83 then
84 inh_link_flags="${inh_link_flags} -pthread"
85 fi
86 else
87 echo $lafile
88 echo "${entry}"
89 echo "Holy Moley, Dorothy, we ain't in Kansas and Luke, I'm not your father"
90 return 1
91 fi
92 done
93 libladir=( $(printf '%s' "$(for i in ${libladir}; do printf '%s\n' $i; done)"|sort|uniq) )
94 librpath=( $(printf '%s' "$(for i in ${librpath}; do printf '%s\n' $i; done)"|sort|uniq) )
95 new_dep_libs=( ${librpath[@]} ${libladir[@]} ${new_dep_libs} )
96 new_dep_libs=" ${new_dep_libs[@]}"
97 sed -i \
98 -e "/^dependency_libs/ c\dependency_libs='${new_dep_libs}'" \
99 -e "/^inherited_linker_flags/ c\inherited_linker_flags='${inh_link_flags}'" \
100 ${lafile}
101 done
102 }
103
104 fix_la_files "$@"