/[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.74
1#!/bin/bash 1# Copyright 1999-2005 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
3# $Header: /var/cvsroot/gentoo-x86/eclass/libtool.eclass,v 1.74 2007/03/01 18:48:02 grobian Exp $
4#
4# Author: Martin Schlemmer <azarah@gentoo.org> 5# 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 $ 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
11# 2004.09.25 rac
12# i have verified that at least one package can use this eclass and
13# build properly even without libtool installed yet, probably using
14# the files in the distribution. eliminating this dependency fixes
15# bug 65209, which is a showstopper for people doing installs using
16# stageballs <3. if anybody decides to revert this, please attempt
17# to find an alternate way of resolving that bug at the same time.
10 18
11DESCRIPTION="Based on the ${ECLASS} eclass" 19DESCRIPTION="Based on the ${ECLASS} eclass"
12 20
21ELIBTOOL_VERSION="2.0.2"
22
23ELT_PATCH_DIR="${ECLASSDIR}/ELT-patches"
24ELT_APPLIED_PATCHES=
25ELT_LTMAIN_SH=
26
27#
28# Returns all the directories containing ltmain.sh
29#
30ELT_find_ltmain_sh() {
31 local x=
32 local dirlist=
33
34 for x in $(find "${S}" -name 'ltmain.sh') ; do
35 dirlist="${dirlist} ${x%/*}"
36 done
37
38 echo "${dirlist}"
39}
40
41#
42# See if we can apply $2 on $1, and if so, do it
43#
44ELT_try_and_apply_patch() {
45 local ret=0
46 local file=$1
47 local patch=$2
48
49 # We only support patchlevel of 0 - why worry if its static patches?
50 if patch -p0 --dry-run "${file}" "${patch}" &> "${T}/elibtool.log" ; then
51 einfo " Applying $(basename "$(dirname "${patch}")")-${patch##*/}.patch ..."
52 patch -p0 -g0 --no-backup-if-mismatch "${file}" "${patch}" \
53 &> "${T}/elibtool.log"
54 ret=$?
55 export ELT_APPLIED_PATCHES="${ELT_APPLIED_PATCHES} ${patch##*/}"
56 else
57 ret=1
58 fi
59
60 return "${ret}"
61}
62
63#
64# Get string version of ltmain.sh or ltconfig (passed as $1)
65#
66ELT_libtool_version() {
67 local ltmain_sh=$1
68 local version=
69
70 version=$(eval $(grep -e '^[[:space:]]*VERSION=' "${ltmain_sh}"); \
71 echo "${VERSION}")
72 [[ -z ${version} ]] && version="0"
73
74 echo "${version}"
75}
76
77#
78# Run through the patches in $2 and see if any
79# apply to $1 ...
80#
81ELT_walk_patches() {
82 local x=
83 local y=
84 local ret=1
85 local file=$1
86 local patch_set=$2
87 local patch_dir=
88 local rem_int_dep=$3
89
90 if [[ -n ${patch_set} ]] ; then
91 if [[ -d ${ELT_PATCH_DIR}/${patch_set} ]] ; then
92 patch_dir="${ELT_PATCH_DIR}/${patch_set}"
93 else
94 return "${ret}"
95 fi
96
97 # Go through the patches in reverse order (large to small)
98 for x in $(ls -d "${patch_dir}"/* 2> /dev/null | grep -v 'CVS' | sort -r) ; do
99 if [[ -n ${x} && -f ${x} ]] ; then
100 # For --remove-internal-dep ...
101 if [[ -n ${rem_int_dep} ]] ; then
102 # For replace @REM_INT_DEP@ with what was passed
103 # to --remove-internal-dep
104 sed -e "s|@REM_INT_DEP@|${rem_int_dep}|g" ${x} > \
105 "${T}/$$.rem_int_deps.patch"
106
107 x="${T}/$$.rem_int_deps.patch"
108 fi
109
110 if ELT_try_and_apply_patch "${file}" "${x}" ; then
111 ret=0
112 break
113 fi
114 fi
115 done
116 fi
117
118 return "${ret}"
119}
13 120
14elibtoolize() { 121elibtoolize() {
15
16 local x="" 122 local x=
17 local y="" 123 local y=
124 local do_portage="no"
125 local do_reversedeps="no"
18 local dopatch="no" 126 local do_only_patches="no"
127 local do_uclibc="yes"
128 local deptoremove=
129 local my_dirlist=
130 local elt_patches="portage relink max_cmd_len sed test tmp"
131 local start_dir=${PWD}
19 132
20 for x in $(find_ltmain) 133 my_dirlist=$(ELT_find_ltmain_sh)
134
135 for x in "$@" ; do
136 case "${x}" in
137 "--portage")
138 # Only apply portage patch, and don't
139 # 'libtoolize --copy --force' if all patches fail.
140 do_portage="yes"
141 ;;
142 "--reverse-deps")
143 # Apply the reverse-deps patch
144 # http://bugzilla.gnome.org/show_bug.cgi?id=75635
145 do_reversedeps="yes"
146 elt_patches="${elt_patches} fix-relink"
147 ;;
148 "--patch-only")
149 # Do not run libtoolize if none of the patches apply ..
150 do_only_patches="yes"
151 ;;
152 "^--remove-internal-dep="*)
153 # We will replace @REM_INT_DEP@ with what is needed
154 # in ELT_walk_patches() ...
155 deptoremove=$(echo "${x}" | sed -e 's|--remove-internal-dep=||')
156
157 # Add the patch for this ...
158 [[ -n ${deptoremove} ]] && elt_patches="${elt_patches} rem-int-dep"
159 ;;
160 "--shallow")
161 # Only patch the ltmain.sh in ${S}
162 if [[ -f ${S}/ltmain.sh ]] ; then
163 my_dirlist=${S}
164 else
165 my_dirlist=
166 fi
167 ;;
168 "--no-uclibc")
169 do_uclibc="no"
170 ;;
171 *)
172 eerror "Invalid elibtoolize option: ${x}"
173 die "elibtoolize called with ${x} ??"
174 esac
21 do 175 done
176
177 [[ ${do_uclibc} == "yes" ]] && \
178 elt_patches="${elt_patches} uclibc-conf uclibc-ltconf"
179
180 [[ ${CHOST} == *"-freebsd"* ]] && \
181 elt_patches="${elt_patches} fbsd-conf fbsd-ltconf"
182
183 [[ ${CHOST} == *"-darwin"* ]] && \
184 elt_patches="${elt_patches} darwin-ltconf darwin-ltmain"
185
186 for x in ${my_dirlist} ; do
187 local tmp=$(echo "${x}" | sed -e "s|${WORKDIR}||")
188 export ELT_APPLIED_PATCHES=
189 export ELT_LTMAIN_SH="${x}/ltmain.sh"
190
191 [[ -f ${x}/.elibtoolized ]] && continue
192
22 cd ${x} 193 cd ${x}
23 einfo "Working directory: ${x}..." 194 einfo "Running elibtoolize in: $(echo "/${tmp}" | sed -e 's|//|/|g; s|^/||')"
24 dopatch="yes" 195
25 196 for y in ${elt_patches} ; do
26 for y in test_patch relink_patch portage_patch 197 local ret=0
198
199 case "${y}" in
200 "portage")
201 # Stupid test to see if its already applied ...
202 if [[ -z $(grep 'We do not want portage' "${x}/ltmain.sh") ]] ; then
203 ELT_walk_patches "${x}/ltmain.sh" "${y}"
204 ret=$?
205 fi
206 ;;
207 "rem-int-dep")
208 ELT_walk_patches "${x}/ltmain.sh" "${y}" "${deptoremove}"
209 ret=$?
210 ;;
211 "fix-relink")
212 # Do not apply if we do not have the relink patch applied ...
213 if [[ -n $(grep 'inst_prefix_dir' "${x}/ltmain.sh") ]] ; then
214 ELT_walk_patches "${x}/ltmain.sh" "${y}"
215 ret=$?
216 fi
217 ;;
218 "max_cmd_len")
219 # Do not apply if $max_cmd_len is not used ...
220 if [[ -n $(grep 'max_cmd_len' "${x}/ltmain.sh") ]] ; then
221 ELT_walk_patches "${x}/ltmain.sh" "${y}"
222 ret=$?
223 fi
224 ;;
225 "uclibc-conf")
226 if [[ -e ${x}/configure && \
227 -n $(grep 'Transform linux' "${x}/configure") ]] ; then
228 ELT_walk_patches "${x}/configure" "${y}"
229 ret=$?
230 # ltmain.sh and co might be in a subdirectory ...
231 elif [[ ! -e ${x}/configure && -e ${x}/../configure && \
232 -n $(grep 'Transform linux' "${x}/../configure") ]] ; then
233 ELT_walk_patches "${x}/../configure" "${y}"
234 ret=$?
235 fi
236 ;;
237 "uclibc-ltconf")
238 # Newer libtoolize clears ltconfig, as not used anymore
239 if [[ -s ${x}/ltconfig ]] ; then
240 ELT_walk_patches "${x}/ltconfig" "${y}"
241 ret=$?
242 fi
243 ;;
244 "fbsd-conf")
245 if [[ -e ${x}/configure && \
246 -n $(grep 'version_type=freebsd-' "${x}/configure") ]] ; then
247 ELT_walk_patches "${x}/configure" "${y}"
248 ret=$?
249 # ltmain.sh and co might be in a subdirectory ...
250 elif [[ ! -e ${x}/configure && -e ${x}/../configure && \
251 -n $(grep 'version_type=freebsd-' "${x}/../configure") ]] ; then
252 ELT_walk_patches "${x}/../configure" "${y}"
253 ret=$?
254 fi
255 ;;
256 "fbsd-ltconf")
257 if [[ -s ${x}/ltconfig ]] ; then
258 ELT_walk_patches "${x}/ltconfig" "${y}"
259 ret=$?
260 fi
261 ;;
262 "darwin-ltconf")
263 # Newer libtoolize clears ltconfig, as not used anymore
264 if [[ -s ${x}/ltconfig ]] ; then
265 ELT_walk_patches "${x}/ltconfig" "${y}"
266 ret=$?
267 fi
268 ;;
269 *)
270 ELT_walk_patches "${x}/ltmain.sh" "${y}"
271 ret=$?
272 ;;
273 esac
274
275 if [[ ${ret} -ne 0 ]] ; then
276 case ${y} in
277 "relink")
278 local version=$(ELT_libtool_version "${x}/ltmain.sh")
279 # Critical patch, but could be applied ...
280 # FIXME: Still need a patch for ltmain.sh > 1.4.0
281 if [[ -z $(grep 'inst_prefix_dir' "${x}/ltmain.sh") && \
282 $(VER_to_int "${version}") -ge $(VER_to_int "1.4.0") ]] ; then
283 ewarn " Could not apply relink.patch!"
284 fi
285 ;;
286 "portage")
287 # Critical patch - for this one we abort, as it can really
288 # cause breakage without it applied!
289 if [[ ${do_portage} == "yes" ]] ; then
290 # Stupid test to see if its already applied ...
291 if [[ -z $(grep 'We do not want portage' "${x}/ltmain.sh") ]] ; then
292 echo
293 eerror "Portage patch requested, but failed to apply!"
294 eerror "Please bug azarah or vapier to add proper patch."
295 die "Portage patch requested, but failed to apply!"
296 fi
297 else
298 if [[ -n $(grep 'We do not want portage' "${x}/ltmain.sh") ]] ; then
299 # ewarn " Portage patch seems to be already applied."
300 # ewarn " Please verify that it is not needed."
301 :
302 else
303 local version=$( \
304 eval $(grep -e '^[[:space:]]*VERSION=' "${x}/ltmain.sh"); \
305 echo "${VERSION}")
306
307 echo
308 eerror "Portage patch failed to apply (ltmain.sh version ${version})!"
309 eerror "Please bug azarah or vapier to add proper patch."
310 die "Portage patch failed to apply!"
311 fi
312 # We do not want to run libtoolize ...
313 ELT_APPLIED_PATCHES="portage"
314 fi
315 ;;
316 "uclibc-"*)
317 [[ ${CHOST} == *"-uclibc" ]] && \
318 ewarn " uClibc patch set '${y}' failed to apply!"
319 ;;
320 "fbsd-"*)
321 if [[ ${CHOST} == *"-freebsd"* ]] ; then
322 if [[ -z $(grep 'Handle Gentoo/FreeBSD as it was Linux' \
323 "${x}/configure" "${x}/../configure" 2>/dev/null) ]]; then
324 eerror " FreeBSD patch set '${y}' failed to apply!"
325 die "FreeBSD patch set '${y}' failed to apply!"
326 fi
327 fi
328 ;;
329 "darwin-"*)
330 [[ ${CHOST} == *"-darwin"* ]] && \
331 ewarn " Darwin patch set '${y}' failed to apply!"
332 ;;
333 esac
334 fi
27 do 335 done
28 if ! eval ${y} --test $>${T}/libtool.foo 336
337 if [[ -z ${ELT_APPLIED_PATCHES} ]] ; then
338 if [[ ${do_portage} == "no" && \
339 ${do_reversedeps} == "no" && \
340 ${do_only_patches} == "no" && \
341 ${deptoremove} == "" ]]
29 then 342 then
30 dopatch="no" 343 ewarn "Cannot apply any patches, please file a bug about this"
344 break
345
346 # Sometimes ltmain.sh is in a subdirectory ...
347 if [[ ! -f ${x}/configure.in && ! -f ${x}/configure.ac ]] ; then
348 if [[ -f ${x}/../configure.in || -f ${x}/../configure.ac ]] ; then
349 cd "${x}"/../
350 fi
351 fi
352
353 if type -p libtoolize &> /dev/null ; then
354 ewarn "Cannot apply any patches, running libtoolize..."
355 libtoolize --copy --force
356 fi
357 cd "${x}"
31 break 358 break
32 fi 359 fi
33 done
34
35 for y in test_patch relink_patch portage_patch
36 do
37 if [ "${dopatch}" = "yes" ]
38 then
39 einfo "Applying libtool-${y/_patch/}.patch..."
40 eval ${y} $>${T}/libtool.foo
41 else
42 libtoolize --copy --force
43 break
44 fi 360 fi
45 done 361
362 [[ -f ${x}/libtool ]] && rm -f "${x}/libtool"
363
364 touch "${x}/.elibtoolized"
46 done 365 done
47}
48 366
49# 367 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} 368}
64 369
65# 370uclibctoolize() {
66# Various patches we want to apply. 371 ewarn "uclibctoolize() is depreciated, please just use elibtoolize()!"
67# 372 elibtoolize
68# Contains: portage_patch 373}
69# relink_patch
70# test_patch
71#
72portage_patch() {
73 374
74 local opts="" 375darwintoolize() {
376 ewarn "darwintoolize() is depreciated, please just use elibtoolize()!"
377 elibtoolize
378}
75 379
76 if [ "${1}" = "--test" ] 380# char *VER_major(string)
77 then 381#
78 opts="--force --dry-run" 382# Return the Major (X of X.Y.Z) version
383#
384VER_major() {
385 [[ -z $1 ]] && return 1
386
387 local VER=$@
388 echo "${VER%%[^[:digit:]]*}"
389}
390
391# char *VER_minor(string)
392#
393# Return the Minor (Y of X.Y.Z) version
394#
395VER_minor() {
396 [[ -z $1 ]] && return 1
397
398 local VER=$@
399 VER=${VER#*.}
400 echo "${VER%%[^[:digit:]]*}"
401}
402
403# char *VER_micro(string)
404#
405# Return the Micro (Z of X.Y.Z) version.
406#
407VER_micro() {
408 [[ -z $1 ]] && return 1
409
410 local VER=$@
411 VER=${VER#*.*.}
412 echo "${VER%%[^[:digit:]]*}"
413}
414
415# int VER_to_int(string)
416#
417# Convert a string type version (2.4.0) to an int (132096)
418# for easy compairing or versions ...
419#
420VER_to_int() {
421 [[ -z $1 ]] && return 1
422
423 local VER_MAJOR=$(VER_major "$1")
424 local VER_MINOR=$(VER_minor "$1")
425 local VER_MICRO=$(VER_micro "$1")
426 local VER_int=$(( VER_MAJOR * 65536 + VER_MINOR * 256 + VER_MICRO ))
427
428 # We make version 1.0.0 the minimum version we will handle as
429 # a sanity check ... if its less, we fail ...
430 if [[ ${VER_int} -ge 65536 ]] ; then
431 echo "${VER_int}"
432 return 0
79 fi 433 fi
80 434
81 patch ${opts} -p0 <<-"ENDPATCH" 435 echo 1
82 --- ltmain.sh.orig Wed Apr 3 01:19:37 2002 436 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} 437}
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.74

  ViewVC Help
Powered by ViewVC 1.1.20