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 "$@" |