/[gentoo-x86]/eclass/libtool.eclass
Gentoo

Diff of /eclass/libtool.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.20 Revision 1.33
1# Copyright 1999-2003 Gentoo Technologies, Inc. 1# Copyright 1999-2004 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/libtool.eclass,v 1.20 2003/02/16 04:26:21 vapier Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/libtool.eclass,v 1.33 2004/09/25 06:37:30 vapier Exp $
4# 4#
5# Author: Martin Schlemmer <azarah@gentoo.org> 5# Author: Martin Schlemmer <azarah@gentoo.org>
6# 6#
7# This eclass patches ltmain.sh distributed with libtoolized packages with the 7# This eclass patches ltmain.sh distributed with libtoolized packages with the
8# relink and portage patch 8# relink and portage patch among others
9 9
10ECLASS=libtool 10ECLASS="libtool"
11INHERITED="$INHERITED $ECLASS" 11INHERITED="${INHERITED} ${ECLASS}"
12 12
13newdepend "!bootstrap? ( sys-devel/libtool )" 13DEPEND="!bootstrap? ( sys-devel/libtool )"
14 14
15DESCRIPTION="Based on the ${ECLASS} eclass" 15DESCRIPTION="Based on the ${ECLASS} eclass"
16 16
17ELIBTOOL_VERSION=1.8.1 17ELIBTOOL_VERSION="2.0.1"
18
19
20ELT_PATCH_DIR="${PORTDIR}/eclass/ELT-patches"
21ELT_APPLIED_PATCHES=
22
23#
24# Returns all the directories containing ltmain.sh
25#
26ELT_find_ltmain_sh() {
27 local x=
28 local dirlist=
29
30 for x in $(find "${S}" -name 'ltmain.sh')
31 do
32 dirlist="${dirlist} ${x%/*}"
33 done
34
35 echo "${dirlist}"
36}
37
38#
39# See if we can apply $2 on $1, and if so, do it
40#
41ELT_try_and_apply_patch() {
42 local ret=0
43 local patch="$2"
44
45 # We only support patchlevel of 0 - why worry if its static patches?
46 if patch -p0 --dry-run $1 < ${patch} &>${T}/elibtool.log
47 then
48 einfo " Applying $(basename "$(dirname "${patch}")")-${patch##*/}.patch..."
49 patch -p0 $1 < ${patch} &>${T}/elibtool.log
50 ret=$?
51 export ELT_APPLIED_PATCHES="${ELT_APPLIED_PATCHES} ${patch##*/}"
52 else
53 ret=1
54 fi
55
56 return ${ret}
57}
58
59#
60# Run through the patches in $2 and see if any
61# apply to $1 ...
62#
63ELT_walk_patches() {
64 local x=
65 local y=
66 local ret=1
67 local patch_dir=
68
69 if [ -n "$2" ]
70 then
71 if [ -d "${ELT_PATCH_DIR}/$2" ]
72 then
73 patch_dir="${ELT_PATCH_DIR}/$2"
74 else
75 return ${ret}
76 fi
77
78 for x in $(ls -d "${patch_dir}"/* 2>/dev/null)
79 do
80 if [ -n "${x}" -a -f "${x}" ]
81 then
82 # For --remove-internal-dep ...
83 if [ -n "$3" ]
84 then
85 # For replace @REM_INT_DEP@ with what was passed
86 # to --remove-internal-dep
87 sed -e "s|@REM_INT_DEP@|$3|g" ${x} > \
88 ${T}/$$.rem_int_deps.patch
89
90 x="${T}/$$.rem_int_deps.patch"
91 fi
92
93 if ELT_try_and_apply_patch "$1" "${x}"
94 then
95 ret=0
96 break
97 fi
98 fi
99 done
100 fi
101
102 return ${ret}
103}
18 104
19elibtoolize() { 105elibtoolize() {
20
21 local x="" 106 local x=
22 local y="" 107 local y=
23 local dopatch="no"
24 local dotest="yes"
25 local dorelink="yes"
26 local dotmp="yes"
27 local doportage="yes"
28 local portage="no" 108 local do_portage="no"
29 local reversedeps="no" 109 local do_reversedeps="no"
30 local removeinternaldep="no" 110 local do_only_patches="no"
31 local deptoremove="" 111 local deptoremove=
32 local mylist="" 112 local my_dirlist=
113 local elt_patches="portage relink max_cmd_len sed test tmp"
114 local start_dir="${PWD}"
33 115
34 mylist="$(find_ltmain)" 116 my_dirlist="$(ELT_find_ltmain_sh)"
117
35 for x in ${*} 118 for x in "$@"
36 do 119 do
37 # Only apply portage patch, and dont "libtoolize --copy --force" 120 case "${x}" in
38 # if all patches fail. 121 "--portage")
39 if [ "${x}" = "--portage" ] 122 # Only apply portage patch, and don't
40 then 123 # 'libtoolize --copy --force' if all patches fail.
41 portage="yes" 124 do_portage="yes"
42 fi 125 ;;
126 "--reverse-deps")
43 # Apply the reverse-deps patch 127 # Apply the reverse-deps patch
44 #
45 # http://bugzilla.gnome.org/show_bug.cgi?id=75635 128 # http://bugzilla.gnome.org/show_bug.cgi?id=75635
46 if [ "${x}" = "--reverse-deps" ]
47 then
48 reversedeps="yes" 129 do_reversedeps="yes"
49 fi 130 elt_patches="${elt_patches} fix-relink"
50 if [ `echo ${x} | grep "^--remove-internal-dep="` ] 131 ;;
51 then 132 "--patch-only")
52 removeinternaldep="yes" 133 # Do not run libtoolize if none of the patches apply ..
53 deptoremove=`echo ${x} | sed -e 's/--remove-internal-dep=//'` 134 do_only_patches="yes"
54 fi 135 ;;
136 "^--remove-internal-dep="*)
137 # We will replace @REM_INT_DEP@ with what is needed
138 # in ELT_walk_patches() ...
139 deptoremove="$(echo "${x}" | sed -e 's|--remove-internal-dep=||')"
140
141 # Add the patch for this ...
142 [ -n "${deptoremove}" ] && elt_patches="${elt_patches} rem-int-dep"
143 ;;
144 "--shallow")
55 # Only patch the ltmain.sh in ${S} 145 # Only patch the ltmain.sh in ${S}
56 if [ "${x}" = "--shallow" ]
57 then
58 if [ -f ${S}/ltmain.sh ] 146 if [ -f "${S}/ltmain.sh" ]
59 then 147 then
60 mylist="${S}" 148 my_dirlist="${S}"
61 else 149 else
62 mylist="" 150 my_dirlist=
63 fi 151 fi
64 else 152 ;;
65 mylist="$(find_ltmain)" 153 esac
66 fi
67 done 154 done
68 155
69 for x in ${mylist} 156 for x in ${my_dirlist}
70 do 157 do
158 local tmp="$(echo "${x}" | sed -e "s|${S}||")"
159 export ELT_APPLIED_PATCHES=
160
71 cd ${x} 161 cd ${x}
72 einfo "Working directory: ${x}..." 162 einfo "Patching \${S}$(echo "/${tmp}/ltmain.sh" | sed -e 's|//|/|g')..."
73 dopatch="yes"
74 dotest="yes"
75 dorelink="yes"
76 dotmp="yes"
77 doportage="yes"
78 163
79 for y in test_patch relink_patch tmp_patch portage_patch 164 for y in ${elt_patches}
80 do 165 do
81 if ! eval ${y} --test $>${T}/elibtool.log 166 local ret=0
167
168 case "${y}" in
169 "rem-int-dep")
170 ELT_walk_patches "${x}/ltmain.sh" "${y}" "${deptoremove}"
171 ret=$?
172 ;;
173 "fix-relink")
174 # Do not apply if we do not have the relink patch applied ...
175 if [ -n "$(grep 'inst_prefix_dir' "${x}/ltmain.sh")" ]
176 then
177 ELT_walk_patches "${x}/ltmain.sh" "${y}"
178 ret=$?
179 fi
180 ;;
181 "max_cmd_len")
182 # Do not apply if $max_cmd_len is not used ...
183 if [ -n "$(grep 'max_cmd_len' "${x}/ltmain.sh")" ]
184 then
185 ELT_walk_patches "${x}/ltmain.sh" "${y}"
186 ret=$?
187 fi
188 ;;
189 *)
190 ELT_walk_patches "${x}/ltmain.sh" "${y}"
191 ret=$?
192 ;;
193 esac
194
195 if [ "${ret}" -ne 0 ]
82 then 196 then
83 case ${y} in 197 case ${y} in
84 test_patch)
85 # non critical patch
86 dotest="no"
87 ;;
88 relink_patch) 198 "relink")
89 # critical patch, but could be applied 199 # Critical patch, but could be applied ...
90 if [ -z "$(grep -e "inst_prefix_dir" ltmain.sh)" ] && \ 200 if [ -z "$(grep 'inst_prefix_dir' "${x}/ltmain.sh")" ]
91 [ "${portage}" = "no" ]
92 then 201 then
93 dopatch="no" 202 ewarn " Could not apply relink.patch!"
94 fi
95 dorelink="no"
96 ;;
97 tmp_patch)
98 # non critical patch
99 dotmp="no"
100 ;;
101 portage_patch)
102 # critical patch
103 if [ "${portage}" = "yes" ]
104 then
105 echo
106 eerror "Portage patch requested, but failed to apply!"
107 die
108 fi
109 dopatch="no"
110 doportage="no"
111 ;;
112 esac
113 fi
114 done
115
116# Only apply portage patch ... I think if other can apply, they should.
117# if [ "${portage}" = "yes" ]
118# then
119# dotest="no"
120# dorelink="no"
121# dotmp="no"
122# fi
123
124 for y in test_patch relink_patch tmp_patch portage_patch
125 do
126 if [ "${dopatch}" = "yes" ]
127 then
128 case ${y} in
129 test_patch)
130 if [ "${dotest}" = "no" ]
131 then
132 continue
133 fi 203 fi
134 ;; 204 ;;
135 relink_patch) 205 "portage")
206 # Critical patch - for this one we abort, as it can really
207 # cause breakage without it applied!
136 if [ "${dorelink}" = "no" ] 208 if [ "${do_portage}" = "yes" ]
137 then 209 then
138 continue 210 # Stupid test to see if its already applied ...
139 fi 211 if [ -z "$(grep 'We do not want portage' "${x}/ltmain.sh")" ]
140 ;;
141 tmp_patch)
142 if [ "${dotmp}" = "no" ]
143 then 212 then
144 continue 213 echo
214 eerror "Portage patch requested, but failed to apply!"
215 die "Portage patch requested, but failed to apply!"
145 fi 216 fi
146 ;; 217 else
147 portage_patch) 218 ewarn " Could not apply portage.patch!"
148 if [ "${doportage}" = "no" ] 219 ewarn " Please verify that it is not needed."
149 then
150 continue
151 fi 220 fi
152 ;; 221 ;;
153 esac 222 esac
154 223 fi
155 einfo "Applying libtool-${y/_patch/}.patch..." 224
156 eval ${y} $>${T}/elibtool.log 225 if [ -z "${ELT_APPLIED_PATCHES}" ]
157 elif [ "${portage}" = "no" ] && [ "${reversedeps}" = "no" ] && [ "${removeinternaldep}" = "no" ]
158 then 226 then
227 if [ "${do_portage}" = "no" -a \
228 "${do_reversedeps}" = "no" -a \
229 "${do_only_patches}" = "no" -a \
230 "${deptoremove}" = "" ]
231 then
159 # Sometimes ltmain.sh is in a subdirectory ... 232 # Sometimes ltmain.sh is in a subdirectory ...
160 if [ ! -f ${x}/configure.in -a ! -f ${x}/configure.ac ] 233 if [ ! -f ${x}/configure.in -a ! -f ${x}/configure.ac ]
161 then 234 then
162 if [ -f ${x}/../configure.in -o -f ${x}/../configure.ac ] 235 if [ -f ${x}/../configure.in -o -f ${x}/../configure.ac ]
163 then 236 then
164 cd ${x}/../ 237 cd ${x}/../
165 fi 238 fi
166 fi 239 fi
167 240
241 if which libtoolize &>/dev/null
242 then
168 ewarn "Cannot apply any patch, running libtoolize..." 243 ewarn "Cannot apply any patch, running libtoolize..."
169 libtoolize --copy --force 244 libtoolize --copy --force
245 fi
170 cd ${x} 246 cd ${x}
171 break 247 break
248 fi
172 fi 249 fi
173 done 250 done
174
175 if [ "${reversedeps}" = "yes" ]
176 then
177 if eval reversedeps_patch --test $>${T}/libtool.foo
178 then
179 einfo "Applying libtool-reverse-deps.patch..."
180 eval reversedeps_patch $>${T}/libtool.foo
181 else
182 ewarn "Not applying libtool-reverse-deps.patch..."
183 fi
184 fi
185
186 if [ "${removeinternaldep}" = "yes" ]
187 then
188 if eval remove_internal_dep_patch $deptoremove --test $>${T}/libtool.foo
189 then
190 einfo "Applying remove-internal-dep.patch (removing $deptoremove)..."
191 eval remove_internal_dep_patch $deptoremove $>${T}/libtool.foo
192 else
193 ewarn "Not applying libtool-remove-internal-dep.patch..."
194 fi
195 fi
196 done 251 done
197 252
198 if [ -f libtool ] 253 if [ -f libtool ]
199 then 254 then
200 rm -f libtool 255 rm -f libtool
201 fi 256 fi
202 257
203 # We need to change the pwd back to $S, as we may be called in 258 cd "${start_dir}"
204 # src_compile()
205 cd ${S}
206}
207 259
208# 260 uclibctoolize
209# Returns all the directories containing ltmain.sh 261}
210# 262
211find_ltmain() { 263uclibctoolize() {
212 264 local targets=""
213 local x="" 265 local x
214 local dirlist=""
215 266
216 for x in $(find ${S} -name 'ltmain.sh') 267 if [ -z "$@" ] ; then
217 do 268 targets="$(find ${S} -name configure -o -name ltconfig)"
218 dirlist="${dirlist} ${x%/*}"
219 done
220
221 echo "${dirlist}"
222}
223
224#
225# Various patches we want to apply.
226#
227# Contains: portage_patch
228# relink_patch
229# test_patch
230#
231portage_patch() {
232
233 local opts=""
234
235 if [ "${1}" = "--test" ]
236 then
237 opts="--force --dry-run"
238 fi 269 fi
239 270
240 patch ${opts} -p0 <<-"ENDPATCH" 271 einfo "Applying uClibc/libtool patches ..."
241 --- ltmain.sh.orig Wed Apr 3 01:19:37 2002 272 for x in ${targets} ; do
242 +++ ltmain.sh Sun May 26 19:50:52 2002 273 case $(basename "${x}") in
243 @@ -3940,9 +3940,46 @@ 274 configure)
244 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 275 if grep 'Transform linux' "${x}" >/dev/null ; then
245 exit 1 276 ebegin " Fixing \${S}${x/${S}}"
246 fi 277 patch -p0 "${x}" "${ELT_PATCH_DIR}/uclibc/configure.patch" > /dev/null
247 - newdependency_libs="$newdependency_libs $libdir/$name" 278 eend $? "PLEASE CHECK ${x}"
248 + # We do not want portage's install root ($D) present. Check only for
249 + # this if the .la is being installed.
250 + if test "$installed" = yes && test "$D"; then
251 + eval mynewdependency_lib="`echo "$libdir/$name" |sed -e "s:$D::g" -e 's://:/:g'`"
252 + else
253 + mynewdependency_lib="$libdir/$name"
254 + fi
255 + # Do not add duplicates
256 + if test "$mynewdependency_lib"; then
257 + if test -z "`echo $newdependency_libs |grep -e "$mynewdependency_lib"`"; then
258 + newdependency_libs="$newdependency_libs $mynewdependency_lib"
259 + fi
260 + fi
261 + ;;
262 + *)
263 + if test "$installed" = yes; then
264 + # Rather use S=WORKDIR if our version of portage supports it.
265 + # This is because some ebuild (gcc) do not use $S as buildroot.
266 + if test "$PWORKDIR"; then
267 + S="$PWORKDIR"
268 + fi
269 + # We do not want portage's build root ($S) present.
270 + if test -n "`echo $deplib |grep -e "$S"`" && test "$S"; then
271 + mynewdependency_lib=""
272 + # We do not want portage's install root ($D) present.
273 + elif test -n "`echo $deplib |grep -e "$D"`" && test "$D"; then
274 + eval mynewdependency_lib="`echo "$deplib" |sed -e "s:$D::g" -e 's://:/:g'`"
275 + else
276 + mynewdependency_lib="$deplib"
277 + fi
278 + else
279 + mynewdependency_lib="$deplib"
280 + fi
281 + # Do not add duplicates
282 + if test "$mynewdependency_lib"; then
283 + if test -z "`echo $newdependency_libs |grep -e "$mynewdependency_lib"`"; then
284 + newdependency_libs="$newdependency_libs $mynewdependency_lib"
285 + fi
286 + fi
287 ;;
288 - *) newdependency_libs="$newdependency_libs $deplib" ;;
289 esac
290 done
291 dependency_libs="$newdependency_libs"
292 @@ -3975,6 +4005,10 @@
293 case $host,$output,$installed,$module,$dlname in
294 *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
295 esac
296 + # Do not add duplicates
297 + if test "$installed" = yes && test "$D"; then
298 + install_libdir="`echo "$install_libdir" |sed -e "s:$D::g" -e 's://:/:g'`"
299 + fi
300 $echo > $output "\
301 # $outputname - a libtool library file
302 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
303 ENDPATCH
304}
305
306relink_patch() {
307
308 local opts=""
309 local retval=0
310
311 if [ "${1}" = "--test" ]
312 then
313 opts="--force --dry-run"
314 fi
315
316 patch ${opts} -p0 <<-"ENDPATCH"
317 --- ltmain.sh Sun Aug 12 18:08:05 2001
318 +++ ltmain-relinkable.sh Tue Aug 28 18:55:13 2001
319 @@ -827,6 +827,7 @@
320 linker_flags=
321 dllsearchpath=
322 lib_search_path=`pwd`
323 + inst_prefix_dir=
324
325 avoid_version=no
326 dlfiles=
327 @@ -959,6 +960,11 @@
328 prev=
329 continue
330 ;;
331 + inst_prefix)
332 + inst_prefix_dir="$arg"
333 + prev=
334 + continue
335 + ;;
336 release)
337 release="-$arg"
338 prev=
339 @@ -1167,6 +1173,11 @@
340 continue
341 ;;
342
343 + -inst-prefix-dir)
344 + prev=inst_prefix
345 + continue
346 + ;;
347 +
348 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
349 # so, if we see these flags be careful not to treat them like -L
350 -L[A-Z][A-Z]*:*)
351 @@ -2231,7 +2242,16 @@
352 if test "$hardcode_direct" = yes; then
353 add="$libdir/$linklib"
354 elif test "$hardcode_minus_L" = yes; then
355 - add_dir="-L$libdir"
356 + # Try looking first in the location we're being installed to.
357 + add_dir=
358 + if test -n "$inst_prefix_dir"; then
359 + case "$libdir" in
360 + [\\/]*)
361 + add_dir="-L$inst_prefix_dir$libdir"
362 + ;;
363 + esac
364 + fi
365 + add_dir="$add_dir -L$libdir"
366 add="-l$name"
367 elif test "$hardcode_shlibpath_var" = yes; then
368 case :$finalize_shlibpath: in
369 @@ -2241,7 +2261,16 @@
370 add="-l$name"
371 else
372 # We cannot seem to hardcode it, guess we'll fake it.
373 - add_dir="-L$libdir"
374 + # Try looking first in the location we're being installed to.
375 + add_dir=
376 + if test -n "$inst_prefix_dir"; then
377 + case "$libdir" in
378 + [\\/]*)
379 + add_dir="-L$inst_prefix_dir$libdir"
380 + ;;
381 + esac
382 + fi
383 + add_dir="$add_dir -L$libdir"
384 add="-l$name"
385 fi
386
387 @@ -4622,12 +4651,30 @@
388 dir="$dir$objdir"
389
390 if test -n "$relink_command"; then
391 + # Determine the prefix the user has applied to our future dir.
392 + inst_prefix_dir=`$echo "$destdir" | sed "s%$libdir\$%%"`
393 +
394 + # Don't allow the user to place us outside of our expected
395 + # location b/c this prevents finding dependent libraries that
396 + # are installed to the same prefix.
397 + if test "$inst_prefix_dir" = "$destdir"; then
398 + $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
399 + exit 1
400 + fi
401 +
402 + if test -n "$inst_prefix_dir"; then
403 + # Stick the inst_prefix_dir data into the link command.
404 + relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
405 + else
406 + relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%%"`
407 + fi
408 +
409 $echo "$modename: warning: relinking \`$file'" 1>&2
410 $show "$relink_command"
411 if $run eval "$relink_command"; then :
412 else
413 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
414 - continue
415 + exit 1
416 fi
417 fi 279 fi
418
419 ENDPATCH
420
421 retval=$?
422
423 # This one dont apply clean to libtool-1.4.2a, so do it manually.
424 if [ "${1}" != "--test" ] && [ "${retval}" -eq 0 ]
425 then
426 cp ltmain.sh ltmain.sh.orig
427 sed -e 's:cd `pwd`; $SHELL $0 --mode=relink $libtool_args:cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@:' \
428 ltmain.sh.orig > ltmain.sh
429 rm -f ltmain.sh.orig
430 fi
431
432 return ${retval}
433}
434
435tmp_patch() {
436
437 local opts=""
438
439 if [ "${1}" = "--test" ]
440 then
441 opts="--force --dry-run"
442 fi
443
444 patch ${opts} -p0 <<-"ENDPATCH"
445 --- ltmain.sh Sun Aug 12 18:08:05 2001
446 +++ ltmain-relinkable.sh Tue Aug 28 18:55:13 2001
447 @@ -4782,7 +4829,11 @@
448 if test "$finalize" = yes && test -z "$run"; then
449 tmpdir="/tmp"
450 test -n "$TMPDIR" && tmpdir="$TMPDIR"
451 - tmpdir="$tmpdir/libtool-$$"
452 + tmpdir=`mktemp -d $tmpdir/libtool-XXXXXX 2> /dev/null`
453 + if test $? = 0 ; then :
454 + else
455 + tmpdir="$tmpdir/libtool-$$"
456 + fi
457 if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
458 else
459 $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
460 ENDPATCH
461}
462
463test_patch() {
464
465 local opts=""
466
467 if [ "${1}" = "--test" ]
468 then
469 opts="--force --dry-run"
470 fi
471
472 patch ${opts} -p0 <<-"ENDPATCH"
473 --- ./ltmain.sh Tue May 29 19:16:03 2001
474 +++ ./ltmain.sh Tue May 29 21:26:50 2001
475 @@ -459,7 +459,7 @@
476 pic_mode=default
477 ;;
478 esac
479 - if test $pic_mode = no && test "$deplibs_check_method" != pass_all; then
480 + if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
481 # non-PIC code in shared libraries is not supported
482 pic_mode=default
483 fi
484 @@ -1343,7 +1343,7 @@
485 ;; 280 ;;
486 esac 281
487 for pass in $passes; do 282 ltconfig)
488 - if test $linkmode = prog; then 283 local ver="$(grep '^VERSION=' ${x})"
489 + if test "$linkmode" = prog; then 284 ver="${ver/VERSION=}"
490 # Determine which files to process 285 [ "${ver:0:3}" == "1.4" ] && ver="1.3" # 1.4 and 1.3 are compat
491 case $pass in 286 ebegin " Fixing \${S}${x/${S}}"
492 dlopen) 287 patch -p0 "${x}" "${ELT_PATCH_DIR}/uclibc/ltconfig-${ver:0:3}.patch" > /dev/null
493 @@ -1360,11 +1360,11 @@ 288 eend $? "PLEASE CHECK ${x}"
494 found=no 289 ;;
495 case $deplib in 290 esac
496 -l*)
497 - if test $linkmode = oldlib && test $linkmode = obj; then
498 + if test "$linkmode" = oldlib && test "$linkmode" = obj; then
499 $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2
500 continue
501 fi
502 - if test $pass = conv; then
503 + if test "$pass" = conv; then
504 deplibs="$deplib $deplibs"
505 continue
506 fi
507 @@ -1384,7 +1384,7 @@
508 finalize_deplibs="$deplib $finalize_deplibs"
509 else
510 deplibs="$deplib $deplibs"
511 - test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs"
512 + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
513 fi
514 continue
515 fi
516 @@ -1393,16 +1393,16 @@
517 case $linkmode in
518 lib)
519 deplibs="$deplib $deplibs"
520 - test $pass = conv && continue
521 + test "$pass" = conv && continue
522 newdependency_libs="$deplib $newdependency_libs"
523 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
524 ;;
525 prog)
526 - if test $pass = conv; then
527 + if test "$pass" = conv; then
528 deplibs="$deplib $deplibs"
529 continue
530 fi
531 - if test $pass = scan; then
532 + if test "$pass" = scan; then
533 deplibs="$deplib $deplibs"
534 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
535 else
536 @@ -1417,7 +1417,7 @@
537 continue
538 ;; # -L
539 -R*)
540 - if test $pass = link; then
541 + if test "$pass" = link; then
542 dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
543 # Make sure the xrpath contains only unique directories.
544 case "$xrpath " in
545 @@ -1430,7 +1430,7 @@
546 ;;
547 *.la) lib="$deplib" ;;
548 *.$libext)
549 - if test $pass = conv; then
550 + if test "$pass" = conv; then
551 deplibs="$deplib $deplibs"
552 continue
553 fi
554 @@ -1451,7 +1451,7 @@
555 continue
556 ;;
557 prog)
558 - if test $pass != link; then
559 + if test "$pass" != link; then
560 deplibs="$deplib $deplibs"
561 else
562 compile_deplibs="$deplib $compile_deplibs"
563 @@ -1462,7 +1462,7 @@
564 esac # linkmode
565 ;; # *.$libext
566 *.lo | *.$objext)
567 - if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
568 + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
569 # If there is no dlopen support or we're linking statically,
570 # we need to preload.
571 newdlprefiles="$newdlprefiles $deplib"
572 @@ -1512,13 +1512,13 @@
573
574 if test "$linkmode,$pass" = "lib,link" ||
575 test "$linkmode,$pass" = "prog,scan" ||
576 - { test $linkmode = oldlib && test $linkmode = obj; }; then
577 + { test "$linkmode" = oldlib && test "$linkmode" = obj; }; then
578 # Add dl[pre]opened files of deplib
579 test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
580 test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
581 fi
582
583 - if test $pass = conv; then
584 + if test "$pass" = conv; then
585 # Only check for convenience libraries
586 deplibs="$lib $deplibs"
587 if test -z "$libdir"; then
588 @@ -1537,7 +1537,7 @@
589 esac
590 tmp_libs="$tmp_libs $deplib"
591 done
592 - elif test $linkmode != prog && test $linkmode != lib; then
593 + elif test "$linkmode" != prog && test "$linkmode" != lib; then
594 $echo "$modename: \`$lib' is not a convenience library" 1>&2
595 exit 1
596 fi
597 @@ -1555,7 +1555,7 @@
598 fi
599
600 # This library was specified with -dlopen.
601 - if test $pass = dlopen; then
602 + if test "$pass" = dlopen; then
603 if test -z "$libdir"; then
604 $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
605 exit 1
606 @@ -1604,7 +1604,7 @@
607 name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
608
609 # This library was specified with -dlpreopen.
610 - if test $pass = dlpreopen; then
611 + if test "$pass" = dlpreopen; then
612 if test -z "$libdir"; then
613 $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
614 exit 1
615 @@ -1623,7 +1623,7 @@
616
617 if test -z "$libdir"; then
618 # Link the convenience library
619 - if test $linkmode = lib; then
620 + if test "$linkmode" = lib; then
621 deplibs="$dir/$old_library $deplibs"
622 elif test "$linkmode,$pass" = "prog,link"; then
623 compile_deplibs="$dir/$old_library $compile_deplibs"
624 @@ -1634,7 +1634,7 @@
625 continue
626 fi
627
628 - if test $linkmode = prog && test $pass != link; then
629 + if test "$linkmode" = prog && test "$pass" != link; then
630 newlib_search_path="$newlib_search_path $ladir"
631 deplibs="$lib $deplibs"
632
633 @@ -1671,7 +1671,7 @@
634 # Link against this shared library
635
636 if test "$linkmode,$pass" = "prog,link" ||
637 - { test $linkmode = lib && test $hardcode_into_libs = yes; }; then
638 + { test "$linkmode" = lib && test "$hardcode_into_libs" = yes; }; then
639 # Hardcode the library path.
640 # Skip directories that are in the system default run-time
641 # search path.
642 @@ -1693,7 +1693,7 @@
643 esac
644 ;;
645 esac
646 - if test $linkmode = prog; then
647 + if test "$linkmode" = prog; then
648 # We need to hardcode the library path
649 if test -n "$shlibpath_var"; then
650 # Make sure the rpath contains only unique directories.
651 @@ -1777,7 +1777,7 @@
652 linklib=$newlib
653 fi # test -n $old_archive_from_expsyms_cmds
654
655 - if test $linkmode = prog || test "$mode" != relink; then
656 + if test "$linkmode" = prog || test "$mode" != relink; then
657 add_shlibpath=
658 add_dir=
659 add=
660 @@ -1826,7 +1826,7 @@
661 *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
662 esac
663 fi
664 - if test $linkmode = prog; then
665 + if test "$linkmode" = prog; then
666 test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
667 test -n "$add" && compile_deplibs="$add $compile_deplibs"
668 else
669 @@ -1843,7 +1843,7 @@
670 fi
671 fi
672
673 - if test $linkmode = prog || test "$mode" = relink; then
674 + if test "$linkmode" = prog || test "$mode" = relink; then
675 add_shlibpath=
676 add_dir=
677 add=
678 @@ -1865,7 +1865,7 @@
679 add="-l$name"
680 fi
681
682 - if test $linkmode = prog; then
683 + if test "$linkmode" = prog; then
684 test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
685 test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
686 else
687 @@ -1873,7 +1873,7 @@
688 test -n "$add" && deplibs="$add $deplibs"
689 fi
690 fi
691 - elif test $linkmode = prog; then
692 + elif test "$linkmode" = prog; then
693 if test "$alldeplibs" = yes &&
694 { test "$deplibs_check_method" = pass_all ||
695 { test "$build_libtool_libs" = yes &&
696 @@ -1932,9 +1932,9 @@
697 fi
698 fi # link shared/static library?
699
700 - if test $linkmode = lib; then
701 + if test "$linkmode" = lib; then
702 if test -n "$dependency_libs" &&
703 - { test $hardcode_into_libs != yes || test $build_old_libs = yes ||
704 + { test "$hardcode_into_libs" != yes || test $build_old_libs = yes ||
705 test $link_static = yes; }; then
706 # Extract -R from dependency_libs
707 temp_deplibs=
708 @@ -1964,7 +1964,7 @@
709 tmp_libs="$tmp_libs $deplib"
710 done
711
712 - if test $link_all_deplibs != no; then
713 + if test "$link_all_deplibs" != no; then
714 # Add the search paths of all dependency libraries
715 for deplib in $dependency_libs; do
716 case $deplib in
717 @@ -2007,15 +2007,15 @@
718 fi # link_all_deplibs != no
719 fi # linkmode = lib
720 done # for deplib in $libs
721 - if test $pass = dlpreopen; then
722 + if test "$pass" = dlpreopen; then
723 # Link the dlpreopened libraries before other libraries
724 for deplib in $save_deplibs; do
725 deplibs="$deplib $deplibs"
726 done 291 done
727 fi
728 - if test $pass != dlopen; then
729 - test $pass != scan && dependency_libs="$newdependency_libs"
730 - if test $pass != conv; then
731 + if test "$pass" != dlopen; then
732 + test "$pass" != scan && dependency_libs="$newdependency_libs"
733 + if test "$pass" != conv; then
734 # Make sure lib_search_path contains only unique directories.
735 lib_search_path=
736 for dir in $newlib_search_path; do
737 @@ -2073,7 +2073,7 @@
738 deplibs=
739 fi
740 done # for pass
741 - if test $linkmode = prog; then
742 + if test "$linkmode" = prog; then
743 dlfiles="$newdlfiles"
744 dlprefiles="$newdlprefiles"
745 fi
746 @@ -2410,7 +2410,7 @@
747 ;;
748 *)
749 # Add libc to deplibs on all other systems if necessary.
750 - if test $build_libtool_need_lc = "yes"; then
751 + if test "$build_libtool_need_lc" = "yes"; then
752 deplibs="$deplibs -lc"
753 fi
754 ;;
755 @@ -2683,7 +2683,7 @@
756
757 # Test again, we may have decided not to build it any more
758 if test "$build_libtool_libs" = yes; then
759 - if test $hardcode_into_libs = yes; then
760 + if test "$hardcode_into_libs" = yes; then
761 # Hardcode the library paths
762 hardcode_libdirs=
763 dep_rpath=
764 ENDPATCH
765} 292}
766
767reversedeps_patch() {
768
769 local opts=""
770
771 if [ "${1}" = "--test" ]
772 then
773 opts="--force --dry-run"
774 fi
775
776 patch ${opts} -p0 <<-"ENDPATCH"
777 --- ltmain.sh.orig Sat Mar 23 22:48:45 2002
778 +++ ltmain.sh Sat Mar 23 22:45:38 2002
779 @@ -1553,6 +1553,8 @@
780 convenience="$convenience $ladir/$objdir/$old_library"
781 old_convenience="$old_convenience $ladir/$objdir/$old_library"
782 tmp_libs=
783 + # PKGW
784 + dependency_libs=
785 for deplib in $dependency_libs; do
786 deplibs="$deplib $deplibs"
787 case "$tmp_libs " in
788 @@ -1668,6 +1670,8 @@
789 fi
790
791 tmp_libs=
792 + #PKGW
793 + dependency_libs=
794 for deplib in $dependency_libs; do
795 case $deplib in
796 -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
797 @@ -2081,7 +2085,7 @@
798 -L*)
799 case " $tmp_libs " in
800 *" $deplib "*) ;;
801 - *) tmp_libs="$tmp_libs $deplib" ;;
802 + *) tmp_libs="$deplib $tmp_libs" ;;
803 esac
804 ;;
805 *) tmp_libs="$tmp_libs $deplib" ;;
806 ENDPATCH
807}
808
809remove_internal_dep_patch() {
810 local opts=""
811
812 if [ "${2}" = "--test" ]
813 then
814 opts="--force --dry-run"
815 fi
816
817 patch ${opts} -p0 <<-ENDPATCH
818 --- ltmain.sh.orig 2002-11-01 19:56:50.000000000 -0600
819 +++ ltmain.sh 2002-11-01 19:57:03.000000000 -0600
820 @@ -4551,6 +4551,8 @@
821 if test "\$installed" = yes && test "\$D"; then
822 install_libdir="\`echo "\$install_libdir" |sed -e "s:\$D::g" -e 's://:/:g'\`"
823 fi
824 + # Removing $1 from dependency_libs in .la
825 + dependency_libs=\`echo \$dependency_libs | \$Xsed -e 's%\([^ ]*lib${1}\.\(so\|la\|a\)\)\|\(-l${1}\)%%g'\`
826 \$echo > \$output "\\
827 # \$outputname - a libtool library file
828 # Generated by \$PROGRAM - GNU \$PACKAGE \$VERSION\$TIMESTAMP
829 ENDPATCH
830}
831

Legend:
Removed from v.1.20  
changed lines
  Added in v.1.33

  ViewVC Help
Powered by ViewVC 1.1.20