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

Diff of /eclass/libtool.eclass

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

Revision 1.1 Revision 1.83
1#!/bin/bash 1# Copyright 1999-2007 Gentoo Foundation
2# Copyright 1999-2002 Gentoo Technologies, Inc.
3# Distributed under the terms of the GNU General Public License, v2 or later 2# Distributed under the terms of the GNU General Public License v2
4# Author: Martin Schlemmer <azarah@gentoo.org>
5# $Header: /var/cvsroot/gentoo-x86/eclass/libtool.eclass,v 1.1 2002/06/05 22:53:11 azarah Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/libtool.eclass,v 1.83 2009/05/03 20:03:10 loki_val Exp $
4#
5# Maintainer: base-system@gentoo.org
6#
6# This eclass patches ltmain.sh distributed with libtoolized packages with the 7# This eclass patches ltmain.sh distributed with libtoolized packages with the
7# relink and portage patch 8# relink and portage patch among others
8ECLASS=libtool 9#
9newdepend sys-devel/libtool 10# Note, this eclass does not require libtool as it only applies patches to
11# generated libtool files. We do not run the libtoolize program because that
12# requires a regeneration of the main autotool files in order to work properly.
10 13
11DESCRIPTION="Based on the ${ECLASS} eclass" 14DESCRIPTION="Based on the ${ECLASS} eclass"
12 15
16ELIBTOOL_VERSION="2.0.2"
13 17
14elibtoolize() { 18inherit toolchain-funcs
15 19
20ELT_PATCH_DIR="${ECLASSDIR}/ELT-patches"
21ELT_APPLIED_PATCHES=
22ELT_LTMAIN_SH=
23
24#
25# Returns all the directories containing ltmain.sh
26#
27ELT_find_ltmain_sh() {
16 local x="" 28 local x=
29 local dirlist=
30
31 for x in $(find "${S}" -name 'ltmain.sh') ; 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 file=$1
44 local patch=$2
45
46 # We only support patchlevel of 0 - why worry if its static patches?
47 if patch -p0 --dry-run "${file}" "${patch}" &> "${T}/elibtool.log" ; then
48 einfo " Applying $(basename "$(dirname "${patch}")")-${patch##*/}.patch ..."
49 patch -p0 -g0 --no-backup-if-mismatch "${file}" "${patch}" \
50 &> "${T}/elibtool.log"
51 ret=$?
52 export ELT_APPLIED_PATCHES="${ELT_APPLIED_PATCHES} ${patch##*/}"
53 else
54 ret=1
55 fi
56
57 return "${ret}"
58}
59
60#
61# Get string version of ltmain.sh or ltconfig (passed as $1)
62#
63ELT_libtool_version() {
64 local ltmain_sh=$1
65 local version=
66
67 version=$(eval $(grep -e '^[[:space:]]*VERSION=' "${ltmain_sh}"); \
68 echo "${VERSION}")
69 [[ -z ${version} ]] && version="0"
70
71 echo "${version}"
72}
73
74#
75# Run through the patches in $2 and see if any
76# apply to $1 ...
77#
78ELT_walk_patches() {
79 local x=
17 local y="" 80 local y=
18 local dopatch="no" 81 local ret=1
82 local file=$1
83 local patch_set=$2
84 local patch_dir=
85 local rem_int_dep=$3
19 86
20 for x in $(find_ltmain) 87 if [[ -n ${patch_set} ]] ; then
21 do 88 if [[ -d ${ELT_PATCH_DIR}/${patch_set} ]] ; then
22 cd ${x} 89 patch_dir="${ELT_PATCH_DIR}/${patch_set}"
23 einfo "Working directory: ${x}..." 90 else
24 dopatch="yes" 91 return "${ret}"
25 92 fi
26 for y in test_patch relink_patch portage_patch 93
27 do 94 # Go through the patches in reverse order (large to small)
28 if ! eval ${y} --test $>${T}/libtool.foo 95 for x in $(ls -d "${patch_dir}"/* 2> /dev/null | grep -v 'CVS' | sort -r) ; do
29 then 96 if [[ -n ${x} && -f ${x} ]] ; then
30 dopatch="no" 97 # For --remove-internal-dep ...
98 if [[ -n ${rem_int_dep} ]] ; then
99 # For replace @REM_INT_DEP@ with what was passed
100 # to --remove-internal-dep
101 sed -e "s|@REM_INT_DEP@|${rem_int_dep}|g" ${x} > \
102 "${T}/$$.rem_int_deps.patch"
103
104 x="${T}/$$.rem_int_deps.patch"
105 fi
106
107 if ELT_try_and_apply_patch "${file}" "${x}" ; then
108 ret=0
31 break 109 break
110 fi
32 fi 111 fi
33 done 112 done
113 fi
34 114
35 for y in test_patch relink_patch portage_patch 115 return "${ret}"
36 do 116}
37 if [ "${dopatch}" = "yes" ] 117
38 then 118elibtoolize() {
39 einfo "Applying libtool-${y/_patch/}.patch..." 119 local x=
40 eval ${y} $>${T}/libtool.foo 120 local y=
121 local do_portage="no"
122 local do_reversedeps="no"
123 local do_only_patches="no"
124 local do_uclibc="yes"
125 local deptoremove=
126 local my_dirlist=
127 local elt_patches="install-sh ltmain portage relink max_cmd_len sed test tmp cross as-needed"
128 local start_dir=${PWD}
129
130 my_dirlist=$(ELT_find_ltmain_sh)
131
132 for x in "$@" ; do
133 case "${x}" in
134 "--portage")
135 # Only apply portage patch, and don't
136 # 'libtoolize --copy --force' if all patches fail.
137 do_portage="yes"
138 ;;
139 "--reverse-deps")
140 # Apply the reverse-deps patch
141 # http://bugzilla.gnome.org/show_bug.cgi?id=75635
142 do_reversedeps="yes"
143 elt_patches="${elt_patches} fix-relink"
144 ;;
145 "--patch-only")
146 # Do not run libtoolize if none of the patches apply ..
147 do_only_patches="yes"
148 ;;
149 "^--remove-internal-dep="*)
150 # We will replace @REM_INT_DEP@ with what is needed
151 # in ELT_walk_patches() ...
152 deptoremove=$(echo "${x}" | sed -e 's|--remove-internal-dep=||')
153
154 # Add the patch for this ...
155 [[ -n ${deptoremove} ]] && elt_patches="${elt_patches} rem-int-dep"
156 ;;
157 "--shallow")
158 # Only patch the ltmain.sh in ${S}
159 if [[ -f ${S}/ltmain.sh ]] ; then
160 my_dirlist=${S}
41 else 161 else
42 libtoolize --copy --force 162 my_dirlist=
43 break 163 fi
164 ;;
165 "--no-uclibc")
166 do_uclibc="no"
167 ;;
168 *)
169 eerror "Invalid elibtoolize option: ${x}"
170 die "elibtoolize called with ${x} ??"
171 esac
172 done
173
174 [[ ${do_uclibc} == "yes" ]] && \
175 elt_patches="${elt_patches} uclibc-conf uclibc-ltconf"
176
177 [[ ${CHOST} == *"-freebsd"* ]] && \
178 elt_patches="${elt_patches} fbsd-conf fbsd-ltconf"
179
180 [[ ${CHOST} == *"-darwin"* ]] && \
181 elt_patches="${elt_patches} darwin-ltconf darwin-ltmain"
182
183 for x in ${my_dirlist} ; do
184 local tmp=$(echo "${x}" | sed -e "s|${WORKDIR}||")
185 export ELT_APPLIED_PATCHES=
186 export ELT_LTMAIN_SH="${x}/ltmain.sh"
187
188 [[ -f ${x}/.elibtoolized ]] && continue
189
190 cd ${x}
191 einfo "Running elibtoolize in: $(echo "/${tmp}" | sed -e 's|//|/|g; s|^/||')"
192
193 for y in ${elt_patches} ; do
194 local ret=0
195
196 case "${y}" in
197 "portage")
198 # Stupid test to see if its already applied ...
199 if [[ -z $(grep 'We do not want portage' "${x}/ltmain.sh") ]] ; then
200 ELT_walk_patches "${x}/ltmain.sh" "${y}"
201 ret=$?
202 fi
203 ;;
204 "rem-int-dep")
205 ELT_walk_patches "${x}/ltmain.sh" "${y}" "${deptoremove}"
206 ret=$?
207 ;;
208 "fix-relink")
209 # Do not apply if we do not have the relink patch applied ...
210 if [[ -n $(grep 'inst_prefix_dir' "${x}/ltmain.sh") ]] ; then
211 ELT_walk_patches "${x}/ltmain.sh" "${y}"
212 ret=$?
213 fi
214 ;;
215 "max_cmd_len")
216 # Do not apply if $max_cmd_len is not used ...
217 if [[ -n $(grep 'max_cmd_len' "${x}/ltmain.sh") ]] ; then
218 ELT_walk_patches "${x}/ltmain.sh" "${y}"
219 ret=$?
220 fi
221 ;;
222 "as-needed")
223 ELT_walk_patches "${x}/ltmain.sh" "${y}"
224 ret=$?
225 ;;
226 "uclibc-conf")
227 if [[ -e ${x}/configure && \
228 -n $(grep 'Transform linux' "${x}/configure") ]] ; then
229 ELT_walk_patches "${x}/configure" "${y}"
230 ret=$?
231 # ltmain.sh and co might be in a subdirectory ...
232 elif [[ ! -e ${x}/configure && -e ${x}/../configure && \
233 -n $(grep 'Transform linux' "${x}/../configure") ]] ; then
234 ELT_walk_patches "${x}/../configure" "${y}"
235 ret=$?
236 fi
237 ;;
238 "uclibc-ltconf")
239 # Newer libtoolize clears ltconfig, as not used anymore
240 if [[ -s ${x}/ltconfig ]] ; then
241 ELT_walk_patches "${x}/ltconfig" "${y}"
242 ret=$?
243 fi
244 ;;
245 "fbsd-conf")
246 if [[ -e ${x}/configure && \
247 -n $(grep 'version_type=freebsd-' "${x}/configure") ]] ; then
248 ELT_walk_patches "${x}/configure" "${y}"
249 ret=$?
250 # ltmain.sh and co might be in a subdirectory ...
251 elif [[ ! -e ${x}/configure && -e ${x}/../configure && \
252 -n $(grep 'version_type=freebsd-' "${x}/../configure") ]] ; then
253 ELT_walk_patches "${x}/../configure" "${y}"
254 ret=$?
255 fi
256 ;;
257 "fbsd-ltconf")
258 if [[ -s ${x}/ltconfig ]] ; then
259 ELT_walk_patches "${x}/ltconfig" "${y}"
260 ret=$?
261 fi
262 ;;
263 "darwin-ltconf")
264 # Newer libtoolize clears ltconfig, as not used anymore
265 if [[ -s ${x}/ltconfig ]] ; then
266 ELT_walk_patches "${x}/ltconfig" "${y}"
267 ret=$?
268 fi
269 ;;
270 "install-sh")
271 ELT_walk_patches "${x}/install-sh" "${y}"
272 ret=$?
273 ;;
274 "cross")
275 if tc-is-cross-compiler ; then
276 ELT_walk_patches "${x}/ltmain.sh" "${y}"
277 ret=$?
278 fi
279 ;;
280 *)
281 ELT_walk_patches "${x}/ltmain.sh" "${y}"
282 ret=$?
283 ;;
284 esac
285
286 if [[ ${ret} -ne 0 ]] ; then
287 case ${y} in
288 "relink")
289 local version=$(ELT_libtool_version "${x}/ltmain.sh")
290 # Critical patch, but could be applied ...
291 # FIXME: Still need a patch for ltmain.sh > 1.4.0
292 if [[ -z $(grep 'inst_prefix_dir' "${x}/ltmain.sh") && \
293 $(VER_to_int "${version}") -ge $(VER_to_int "1.4.0") ]] ; then
294 ewarn " Could not apply relink.patch!"
295 fi
296 ;;
297 "portage")
298 # Critical patch - for this one we abort, as it can really
299 # cause breakage without it applied!
300 if [[ ${do_portage} == "yes" ]] ; then
301 # Stupid test to see if its already applied ...
302 if [[ -z $(grep 'We do not want portage' "${x}/ltmain.sh") ]] ; then
303 echo
304 eerror "Portage patch requested, but failed to apply!"
305 eerror "Please bug azarah or vapier to add proper patch."
306 die "Portage patch requested, but failed to apply!"
307 fi
308 else
309 if [[ -n $(grep 'We do not want portage' "${x}/ltmain.sh") ]] ; then
310 # ewarn " Portage patch seems to be already applied."
311 # ewarn " Please verify that it is not needed."
312 :
313 else
314 local version=$( \
315 eval $(grep -e '^[[:space:]]*VERSION=' "${x}/ltmain.sh"); \
316 echo "${VERSION}")
317
318 echo
319 eerror "Portage patch failed to apply (ltmain.sh version ${version})!"
320 eerror "Please bug azarah or vapier to add proper patch."
321 die "Portage patch failed to apply!"
322 fi
323 # We do not want to run libtoolize ...
324 ELT_APPLIED_PATCHES="portage"
325 fi
326 ;;
327 "uclibc-"*)
328 [[ ${CHOST} == *"-uclibc" ]] && \
329 ewarn " uClibc patch set '${y}' failed to apply!"
330 ;;
331 "fbsd-"*)
332 if [[ ${CHOST} == *"-freebsd"* ]] ; then
333 if [[ -z $(grep 'Handle Gentoo/FreeBSD as it was Linux' \
334 "${x}/configure" "${x}/../configure" 2>/dev/null) ]]; then
335 eerror " FreeBSD patch set '${y}' failed to apply!"
336 die "FreeBSD patch set '${y}' failed to apply!"
337 fi
338 fi
339 ;;
340 "darwin-"*)
341 [[ ${CHOST} == *"-darwin"* ]] && \
342 ewarn " Darwin patch set '${y}' failed to apply!"
343 ;;
344 esac
44 fi 345 fi
45 done 346 done
347
348 if [[ -z ${ELT_APPLIED_PATCHES} ]] ; then
349 if [[ ${do_portage} == "no" && \
350 ${do_reversedeps} == "no" && \
351 ${do_only_patches} == "no" && \
352 ${deptoremove} == "" ]]
353 then
354 ewarn "Cannot apply any patches, please file a bug about this"
355 die
356 fi
357 fi
358
359 [[ -f ${x}/libtool ]] && rm -f "${x}/libtool"
360
361 >> "${x}/.elibtoolized"
46 done 362 done
47}
48 363
49# 364 cd "${start_dir}"
50# Returns all the directories containing ltmain.sh
51#
52find_ltmain() {
53
54 local x=""
55 local dirlist=""
56
57 for x in $(find ${S} -name 'ltmain.sh')
58 do
59 dirlist="${dirlist} ${x%/*}"
60 done
61
62 echo "${dirlist}"
63} 365}
64 366
65# 367uclibctoolize() {
66# Various patches we want to apply. 368 ewarn "uclibctoolize() is deprecated, please just use elibtoolize()!"
67# 369 elibtoolize
68# Contains: portage_patch 370}
69# relink_patch
70# test_patch
71#
72portage_patch() {
73 371
74 local opts="" 372darwintoolize() {
373 ewarn "darwintoolize() is deprecated, please just use elibtoolize()!"
374 elibtoolize
375}
75 376
76 if [ "${1}" = "--test" ] 377# char *VER_major(string)
77 then 378#
78 opts="--force --dry-run" 379# Return the Major (X of X.Y.Z) version
380#
381VER_major() {
382 [[ -z $1 ]] && return 1
383
384 local VER=$@
385 echo "${VER%%[^[:digit:]]*}"
386}
387
388# char *VER_minor(string)
389#
390# Return the Minor (Y of X.Y.Z) version
391#
392VER_minor() {
393 [[ -z $1 ]] && return 1
394
395 local VER=$@
396 VER=${VER#*.}
397 echo "${VER%%[^[:digit:]]*}"
398}
399
400# char *VER_micro(string)
401#
402# Return the Micro (Z of X.Y.Z) version.
403#
404VER_micro() {
405 [[ -z $1 ]] && return 1
406
407 local VER=$@
408 VER=${VER#*.*.}
409 echo "${VER%%[^[:digit:]]*}"
410}
411
412# int VER_to_int(string)
413#
414# Convert a string type version (2.4.0) to an int (132096)
415# for easy compairing or versions ...
416#
417VER_to_int() {
418 [[ -z $1 ]] && return 1
419
420 local VER_MAJOR=$(VER_major "$1")
421 local VER_MINOR=$(VER_minor "$1")
422 local VER_MICRO=$(VER_micro "$1")
423 local VER_int=$(( VER_MAJOR * 65536 + VER_MINOR * 256 + VER_MICRO ))
424
425 # We make version 1.0.0 the minimum version we will handle as
426 # a sanity check ... if its less, we fail ...
427 if [[ ${VER_int} -ge 65536 ]] ; then
428 echo "${VER_int}"
429 return 0
79 fi 430 fi
80 431
81 patch ${opts} -p0 <<-"ENDPATCH" 432 echo 1
82 --- ltmain.sh.orig Wed Apr 3 01:19:37 2002 433 return 1
83 +++ ltmain.sh Sun May 26 19:50:52 2002
84 @@ -3940,9 +3940,39 @@
85 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
86 exit 1
87 fi
88 - newdependency_libs="$newdependency_libs $libdir/$name"
89 + # We do not want portage's install root ($D) present. Check only for
90 + # this if the .la is being installed.
91 + if test "$installed" = yes; then
92 + mynewdependency_lib="`echo "$libdir/$name" |sed -e "s:${D}::g" -e 's://:/:g'`"
93 + else
94 + mynewdependency_lib="$libdir/$name"
95 + fi
96 + # Do not add duplicates
97 + if test -z "`echo $newdependency_libs |grep -e "$mynewdependency_lib"`"
98 + then
99 + newdependency_libs="$newdependency_libs $mynewdependency_lib"
100 + fi
101 + ;;
102 + *)
103 + if test "$installed" = yes; then
104 + # We do not want portage's build root ($S} present.
105 + if test -n "`echo $deplib |grep -e "${S}"`"
106 + then
107 + newdependency_libs=""
108 + # We do not want portage's install root ($D) present.
109 + elif test -n "`echo $deplib |grep -e "${D}"`"
110 + then
111 + mynewdependency_lib="`echo "$deplib" |sed -e "s:${D}::g" -e 's://:/:g'`"
112 + fi
113 + else
114 + mynewdependency_lib="$deplib"
115 + fi
116 + # Do not add duplicates
117 + if test -z "`echo $newdependency_libs |grep -e "$mynewdependency_lib"`"
118 + then
119 + newdependency_libs="$newdependency_libs $mynewdependency_lib"
120 + fi
121 ;;
122 - *) newdependency_libs="$newdependency_libs $deplib" ;;
123 esac
124 done
125 dependency_libs="$newdependency_libs"
126 @@ -3975,6 +4005,10 @@
127 case $host,$output,$installed,$module,$dlname in
128 *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
129 esac
130 + # Do not add duplicates
131 + if test "$installed" = yes; then
132 + install_libdir="`echo "$install_libdir" |sed -e "s:${D}::g" -e 's://:/:g'`"
133 + fi
134 $echo > $output "\
135 # $outputname - a libtool library file
136 # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
137 ENDPATCH
138} 434}
139
140relink_patch() {
141
142 local opts=""
143 local retval=0
144
145 if [ "${1}" = "--test" ]
146 then
147 opts="--force --dry-run"
148 fi
149
150 patch ${opts} -p0 <<-"ENDPATCH"
151 --- ltmain.sh Sun Aug 12 18:08:05 2001
152 +++ ltmain-relinkable.sh Tue Aug 28 18:55:13 2001
153 @@ -827,6 +827,7 @@
154 linker_flags=
155 dllsearchpath=
156 lib_search_path=`pwd`
157 + inst_prefix_dir=
158
159 avoid_version=no
160 dlfiles=
161 @@ -959,6 +960,11 @@
162 prev=
163 continue
164 ;;
165 + inst_prefix)
166 + inst_prefix_dir="$arg"
167 + prev=
168 + continue
169 + ;;
170 release)
171 release="-$arg"
172 prev=
173 @@ -1167,6 +1173,11 @@
174 continue
175 ;;
176
177 + -inst-prefix-dir)
178 + prev=inst_prefix
179 + continue
180 + ;;
181 +
182 # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
183 # so, if we see these flags be careful not to treat them like -L
184 -L[A-Z][A-Z]*:*)
185 @@ -2231,7 +2242,16 @@
186 if test "$hardcode_direct" = yes; then
187 add="$libdir/$linklib"
188 elif test "$hardcode_minus_L" = yes; then
189 - add_dir="-L$libdir"
190 + # Try looking first in the location we're being installed to.
191 + add_dir=
192 + if test -n "$inst_prefix_dir"; then
193 + case "$libdir" in
194 + [\\/]*)
195 + add_dir="-L$inst_prefix_dir$libdir"
196 + ;;
197 + esac
198 + fi
199 + add_dir="$add_dir -L$libdir"
200 add="-l$name"
201 elif test "$hardcode_shlibpath_var" = yes; then
202 case :$finalize_shlibpath: in
203 @@ -2241,7 +2261,16 @@
204 add="-l$name"
205 else
206 # We cannot seem to hardcode it, guess we'll fake it.
207 - add_dir="-L$libdir"
208 + # Try looking first in the location we're being installed to.
209 + add_dir=
210 + if test -n "$inst_prefix_dir"; then
211 + case "$libdir" in
212 + [\\/]*)
213 + add_dir="-L$inst_prefix_dir$libdir"
214 + ;;
215 + esac
216 + fi
217 + add_dir="$add_dir -L$libdir"
218 add="-l$name"
219 fi
220
221 @@ -4622,12 +4651,30 @@
222 dir="$dir$objdir"
223
224 if test -n "$relink_command"; then
225 + # Determine the prefix the user has applied to our future dir.
226 + inst_prefix_dir=`$echo "$destdir" | sed "s%$libdir\$%%"`
227 +
228 + # Don't allow the user to place us outside of our expected
229 + # location b/c this prevents finding dependent libraries that
230 + # are installed to the same prefix.
231 + if test "$inst_prefix_dir" = "$destdir"; then
232 + $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
233 + exit 1
234 + fi
235 +
236 + if test -n "$inst_prefix_dir"; then
237 + # Stick the inst_prefix_dir data into the link command.
238 + relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
239 + else
240 + relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%%"`
241 + fi
242 +
243 $echo "$modename: warning: relinking \`$file'" 1>&2
244 $show "$relink_command"
245 if $run eval "$relink_command"; then :
246 else
247 $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
248 - continue
249 + exit 1
250 fi
251 fi
252
253 @@ -4782,7 +4829,11 @@
254 if test "$finalize" = yes && test -z "$run"; then
255 tmpdir="/tmp"
256 test -n "$TMPDIR" && tmpdir="$TMPDIR"
257 - tmpdir="$tmpdir/libtool-$$"
258 + tmpdir=`mktemp -d $tmpdir/libtool-XXXXXX 2> /dev/null`
259 + if test $? = 0 ; then :
260 + else
261 + tmpdir="$tmpdir/libtool-$$"
262 + fi
263 if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
264 else
265 $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
266 ENDPATCH
267
268 retval=$?
269
270 # This one dont apply clean to libtool-1.4.2a, so do it manually.
271 if [ "${1}" != "--test" ] && [ "${retval}" -eq 0 ]
272 then
273 cp ltmain.sh ltmain.sh.orig
274 sed -e 's:cd `pwd`; $SHELL $0 --mode=relink $libtool_args:cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@:' \
275 ltmain.sh.orig > ltmain.sh
276 rm -f ltmain.sh.orig
277 fi
278
279 return ${retval}
280}
281
282test_patch() {
283
284 local opts=""
285
286 if [ "${1}" = "--test" ]
287 then
288 opts="--force --dry-run"
289 fi
290
291 patch ${opts} -p0 <<-"ENDPATCH"
292 --- ./ltmain.sh Tue May 29 19:16:03 2001
293 +++ ./ltmain.sh Tue May 29 21:26:50 2001
294 @@ -459,7 +459,7 @@
295 pic_mode=default
296 ;;
297 esac
298 - if test $pic_mode = no && test "$deplibs_check_method" != pass_all; then
299 + if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
300 # non-PIC code in shared libraries is not supported
301 pic_mode=default
302 fi
303 @@ -1343,7 +1343,7 @@
304 ;;
305 esac
306 for pass in $passes; do
307 - if test $linkmode = prog; then
308 + if test "$linkmode" = prog; then
309 # Determine which files to process
310 case $pass in
311 dlopen)
312 @@ -1360,11 +1360,11 @@
313 found=no
314 case $deplib in
315 -l*)
316 - if test $linkmode = oldlib && test $linkmode = obj; then
317 + if test "$linkmode" = oldlib && test "$linkmode" = obj; then
318 $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2
319 continue
320 fi
321 - if test $pass = conv; then
322 + if test "$pass" = conv; then
323 deplibs="$deplib $deplibs"
324 continue
325 fi
326 @@ -1384,7 +1384,7 @@
327 finalize_deplibs="$deplib $finalize_deplibs"
328 else
329 deplibs="$deplib $deplibs"
330 - test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs"
331 + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
332 fi
333 continue
334 fi
335 @@ -1393,16 +1393,16 @@
336 case $linkmode in
337 lib)
338 deplibs="$deplib $deplibs"
339 - test $pass = conv && continue
340 + test "$pass" = conv && continue
341 newdependency_libs="$deplib $newdependency_libs"
342 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
343 ;;
344 prog)
345 - if test $pass = conv; then
346 + if test "$pass" = conv; then
347 deplibs="$deplib $deplibs"
348 continue
349 fi
350 - if test $pass = scan; then
351 + if test "$pass" = scan; then
352 deplibs="$deplib $deplibs"
353 newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
354 else
355 @@ -1417,7 +1417,7 @@
356 continue
357 ;; # -L
358 -R*)
359 - if test $pass = link; then
360 + if test "$pass" = link; then
361 dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
362 # Make sure the xrpath contains only unique directories.
363 case "$xrpath " in
364 @@ -1430,7 +1430,7 @@
365 ;;
366 *.la) lib="$deplib" ;;
367 *.$libext)
368 - if test $pass = conv; then
369 + if test "$pass" = conv; then
370 deplibs="$deplib $deplibs"
371 continue
372 fi
373 @@ -1451,7 +1451,7 @@
374 continue
375 ;;
376 prog)
377 - if test $pass != link; then
378 + if test "$pass" != link; then
379 deplibs="$deplib $deplibs"
380 else
381 compile_deplibs="$deplib $compile_deplibs"
382 @@ -1462,7 +1462,7 @@
383 esac # linkmode
384 ;; # *.$libext
385 *.lo | *.$objext)
386 - if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
387 + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
388 # If there is no dlopen support or we're linking statically,
389 # we need to preload.
390 newdlprefiles="$newdlprefiles $deplib"
391 @@ -1512,13 +1512,13 @@
392
393 if test "$linkmode,$pass" = "lib,link" ||
394 test "$linkmode,$pass" = "prog,scan" ||
395 - { test $linkmode = oldlib && test $linkmode = obj; }; then
396 + { test "$linkmode" = oldlib && test "$linkmode" = obj; }; then
397 # Add dl[pre]opened files of deplib
398 test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
399 test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
400 fi
401
402 - if test $pass = conv; then
403 + if test "$pass" = conv; then
404 # Only check for convenience libraries
405 deplibs="$lib $deplibs"
406 if test -z "$libdir"; then
407 @@ -1537,7 +1537,7 @@
408 esac
409 tmp_libs="$tmp_libs $deplib"
410 done
411 - elif test $linkmode != prog && test $linkmode != lib; then
412 + elif test "$linkmode" != prog && test "$linkmode" != lib; then
413 $echo "$modename: \`$lib' is not a convenience library" 1>&2
414 exit 1
415 fi
416 @@ -1555,7 +1555,7 @@
417 fi
418
419 # This library was specified with -dlopen.
420 - if test $pass = dlopen; then
421 + if test "$pass" = dlopen; then
422 if test -z "$libdir"; then
423 $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
424 exit 1
425 @@ -1604,7 +1604,7 @@
426 name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
427
428 # This library was specified with -dlpreopen.
429 - if test $pass = dlpreopen; then
430 + if test "$pass" = dlpreopen; then
431 if test -z "$libdir"; then
432 $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
433 exit 1
434 @@ -1623,7 +1623,7 @@
435
436 if test -z "$libdir"; then
437 # Link the convenience library
438 - if test $linkmode = lib; then
439 + if test "$linkmode" = lib; then
440 deplibs="$dir/$old_library $deplibs"
441 elif test "$linkmode,$pass" = "prog,link"; then
442 compile_deplibs="$dir/$old_library $compile_deplibs"
443 @@ -1634,7 +1634,7 @@
444 continue
445 fi
446
447 - if test $linkmode = prog && test $pass != link; then
448 + if test "$linkmode" = prog && test "$pass" != link; then
449 newlib_search_path="$newlib_search_path $ladir"
450 deplibs="$lib $deplibs"
451
452 @@ -1671,7 +1671,7 @@
453 # Link against this shared library
454
455 if test "$linkmode,$pass" = "prog,link" ||
456 - { test $linkmode = lib && test $hardcode_into_libs = yes; }; then
457 + { test "$linkmode" = lib && test "$hardcode_into_libs" = yes; }; then
458 # Hardcode the library path.
459 # Skip directories that are in the system default run-time
460 # search path.
461 @@ -1693,7 +1693,7 @@
462 esac
463 ;;
464 esac
465 - if test $linkmode = prog; then
466 + if test "$linkmode" = prog; then
467 # We need to hardcode the library path
468 if test -n "$shlibpath_var"; then
469 # Make sure the rpath contains only unique directories.
470 @@ -1777,7 +1777,7 @@
471 linklib=$newlib
472 fi # test -n $old_archive_from_expsyms_cmds
473
474 - if test $linkmode = prog || test "$mode" != relink; then
475 + if test "$linkmode" = prog || test "$mode" != relink; then
476 add_shlibpath=
477 add_dir=
478 add=
479 @@ -1826,7 +1826,7 @@
480 *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
481 esac
482 fi
483 - if test $linkmode = prog; then
484 + if test "$linkmode" = prog; then
485 test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
486 test -n "$add" && compile_deplibs="$add $compile_deplibs"
487 else
488 @@ -1843,7 +1843,7 @@
489 fi
490 fi
491
492 - if test $linkmode = prog || test "$mode" = relink; then
493 + if test "$linkmode" = prog || test "$mode" = relink; then
494 add_shlibpath=
495 add_dir=
496 add=
497 @@ -1865,7 +1865,7 @@
498 add="-l$name"
499 fi
500
501 - if test $linkmode = prog; then
502 + if test "$linkmode" = prog; then
503 test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
504 test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
505 else
506 @@ -1873,7 +1873,7 @@
507 test -n "$add" && deplibs="$add $deplibs"
508 fi
509 fi
510 - elif test $linkmode = prog; then
511 + elif test "$linkmode" = prog; then
512 if test "$alldeplibs" = yes &&
513 { test "$deplibs_check_method" = pass_all ||
514 { test "$build_libtool_libs" = yes &&
515 @@ -1932,9 +1932,9 @@
516 fi
517 fi # link shared/static library?
518
519 - if test $linkmode = lib; then
520 + if test "$linkmode" = lib; then
521 if test -n "$dependency_libs" &&
522 - { test $hardcode_into_libs != yes || test $build_old_libs = yes ||
523 + { test "$hardcode_into_libs" != yes || test $build_old_libs = yes ||
524 test $link_static = yes; }; then
525 # Extract -R from dependency_libs
526 temp_deplibs=
527 @@ -1964,7 +1964,7 @@
528 tmp_libs="$tmp_libs $deplib"
529 done
530
531 - if test $link_all_deplibs != no; then
532 + if test "$link_all_deplibs" != no; then
533 # Add the search paths of all dependency libraries
534 for deplib in $dependency_libs; do
535 case $deplib in
536 @@ -2007,15 +2007,15 @@
537 fi # link_all_deplibs != no
538 fi # linkmode = lib
539 done # for deplib in $libs
540 - if test $pass = dlpreopen; then
541 + if test "$pass" = dlpreopen; then
542 # Link the dlpreopened libraries before other libraries
543 for deplib in $save_deplibs; do
544 deplibs="$deplib $deplibs"
545 done
546 fi
547 - if test $pass != dlopen; then
548 - test $pass != scan && dependency_libs="$newdependency_libs"
549 - if test $pass != conv; then
550 + if test "$pass" != dlopen; then
551 + test "$pass" != scan && dependency_libs="$newdependency_libs"
552 + if test "$pass" != conv; then
553 # Make sure lib_search_path contains only unique directories.
554 lib_search_path=
555 for dir in $newlib_search_path; do
556 @@ -2073,7 +2073,7 @@
557 deplibs=
558 fi
559 done # for pass
560 - if test $linkmode = prog; then
561 + if test "$linkmode" = prog; then
562 dlfiles="$newdlfiles"
563 dlprefiles="$newdlprefiles"
564 fi
565 @@ -2410,7 +2410,7 @@
566 ;;
567 *)
568 # Add libc to deplibs on all other systems if necessary.
569 - if test $build_libtool_need_lc = "yes"; then
570 + if test "$build_libtool_need_lc" = "yes"; then
571 deplibs="$deplibs -lc"
572 fi
573 ;;
574 @@ -2683,7 +2683,7 @@
575
576 # Test again, we may have decided not to build it any more
577 if test "$build_libtool_libs" = yes; then
578 - if test $hardcode_into_libs = yes; then
579 + if test "$hardcode_into_libs" = yes; then
580 # Hardcode the library paths
581 hardcode_libdirs=
582 dep_rpath=
583 ENDPATCH
584}
585

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.83

  ViewVC Help
Powered by ViewVC 1.1.20