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

Diff of /eclass/libtool.eclass

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

Revision 1.33 Revision 1.41
1# Copyright 1999-2004 Gentoo Foundation 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.33 2004/09/25 06:37:30 vapier Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/libtool.eclass,v 1.41 2004/11/22 14:55:57 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 among others 8# relink and portage patch among others
9 9
10ECLASS="libtool" 10ECLASS="libtool"
11INHERITED="${INHERITED} ${ECLASS}" 11INHERITED="${INHERITED} ${ECLASS}"
12 12
13# 2004.09.25 rac
14# i have verified that at least one package can use this eclass and
15# build properly even without libtool installed yet, probably using
16# the files in the distribution. eliminating this dependency fixes
17# bug 65209, which is a showstopper for people doing installs using
18# stageballs <3. if anybody decides to revert this, please attempt
19# to find an alternate way of resolving that bug at the same time.
20
13DEPEND="!bootstrap? ( sys-devel/libtool )" 21#DEPEND="!bootstrap? ( sys-devel/libtool )"
14 22
15DESCRIPTION="Based on the ${ECLASS} eclass" 23DESCRIPTION="Based on the ${ECLASS} eclass"
16 24
17ELIBTOOL_VERSION="2.0.1" 25ELIBTOOL_VERSION="2.0.1"
18 26
43 local patch="$2" 51 local patch="$2"
44 52
45 # We only support patchlevel of 0 - why worry if its static patches? 53 # We only support patchlevel of 0 - why worry if its static patches?
46 if patch -p0 --dry-run $1 < ${patch} &>${T}/elibtool.log 54 if patch -p0 --dry-run $1 < ${patch} &>${T}/elibtool.log
47 then 55 then
48 einfo " Applying $(basename "$(dirname "${patch}")")-${patch##*/}.patch..." 56 einfo " Applying $(basename "$(dirname "${patch}")")-${patch##*/}.patch ..."
49 patch -p0 $1 < ${patch} &>${T}/elibtool.log 57 patch -p0 $1 < ${patch} &>${T}/elibtool.log
50 ret=$? 58 ret=$?
51 export ELT_APPLIED_PATCHES="${ELT_APPLIED_PATCHES} ${patch##*/}" 59 export ELT_APPLIED_PATCHES="${ELT_APPLIED_PATCHES} ${patch##*/}"
52 else 60 else
53 ret=1 61 ret=1
148 my_dirlist="${S}" 156 my_dirlist="${S}"
149 else 157 else
150 my_dirlist= 158 my_dirlist=
151 fi 159 fi
152 ;; 160 ;;
161 "--no-uclibc")
162 NO_UCLIBCTOOLIZE=1
163 ;;
153 esac 164 esac
154 done 165 done
166
167 if use ppc-macos ; then
168 glibtoolize --copy --force
169 darwintoolize
170 fi
155 171
156 for x in ${my_dirlist} 172 for x in ${my_dirlist}
157 do 173 do
158 local tmp="$(echo "${x}" | sed -e "s|${S}||")" 174 local tmp="$(echo "${x}" | sed -e "s|${S}||")"
159 export ELT_APPLIED_PATCHES= 175 export ELT_APPLIED_PATCHES=
160 176
161 cd ${x} 177 cd ${x}
162 einfo "Patching \${S}$(echo "/${tmp}/ltmain.sh" | sed -e 's|//|/|g')..." 178 einfo "Patching \${S}$(echo "/${tmp}/ltmain.sh" | sed -e 's|//|/|g') ..."
163 179
164 for y in ${elt_patches} 180 for y in ${elt_patches}
165 do 181 do
166 local ret=0 182 local ret=0
167 183
259 275
260 uclibctoolize 276 uclibctoolize
261} 277}
262 278
263uclibctoolize() { 279uclibctoolize() {
280 [ -n "${NO_UCLIBCTOOLIZE}" ] && return 0
281
282 local errmsg=""
283 [ "${PORTAGE_LIBC}" = "uClibc" ] \
284 && errmsg="PLEASE CHECK" \
285 || errmsg="Already patched"
264 local targets="" 286 local targets=""
265 local x 287 local x
266 288
267 if [ -z "$@" ] ; then 289 if [ -z "$@" ] ; then
268 targets="$(find ${S} -name configure -o -name ltconfig)" 290 targets="$(find ${S} -name configure -o -name ltconfig)"
269 fi 291 fi
270 292
271 einfo "Applying uClibc/libtool patches ..." 293 einfo "Applying uClibc/libtool patches ..."
272 for x in ${targets} ; do 294 for x in ${targets} ; do
295 [ ! -s "${x}" ] && continue
273 case $(basename "${x}") in 296 case $(basename "${x}") in
274 configure) 297 configure)
275 if grep 'Transform linux' "${x}" >/dev/null ; then 298 if grep 'Transform linux' "${x}" >/dev/null ; then
276 ebegin " Fixing \${S}${x/${S}}" 299 ebegin " Fixing \${S}${x/${S}}"
277 patch -p0 "${x}" "${ELT_PATCH_DIR}/uclibc/configure.patch" > /dev/null 300 patch -p0 "${x}" "${ELT_PATCH_DIR}/uclibc/configure.patch" > /dev/null
278 eend $? "PLEASE CHECK ${x}" 301 eend $? "${errmsg} ${x}"
279 fi 302 fi
280 ;; 303 ;;
281 304
282 ltconfig) 305 ltconfig)
283 local ver="$(grep '^VERSION=' ${x})" 306 local ver="$(grep '^VERSION=' ${x})"
284 ver="${ver/VERSION=}" 307 ver="${ver/VERSION=}"
285 [ "${ver:0:3}" == "1.4" ] && ver="1.3" # 1.4 and 1.3 are compat 308 [ "${ver:0:3}" == "1.4" ] && ver="1.3" # 1.4 and 1.3 are compat
286 ebegin " Fixing \${S}${x/${S}}" 309 ebegin " Fixing \${S}${x/${S}}"
287 patch -p0 "${x}" "${ELT_PATCH_DIR}/uclibc/ltconfig-${ver:0:3}.patch" > /dev/null 310 patch -p0 "${x}" "${ELT_PATCH_DIR}/uclibc/ltconfig-${ver:0:3}.patch" > /dev/null
311 eend $? "${errmsg} ${x}"
312 ;;
313 esac
314 done
315}
316
317darwintoolize() {
318 local targets=""
319 local x
320
321 if [ -z "$@" ] ; then
322 targets="$(find ${S} -name ltmain.sh -o -name ltconfig)"
323 fi
324
325 einfo "Applying Darwin/libtool patches ..."
326 for x in ${targets} ; do
327 [ ! -s "${x}" ] && continue
328 case $(basename "${x}") in
329 ltmain.sh|ltconfig)
330 local ver="$(grep '^VERSION=' ${x})"
331 ver="${ver/VERSION=}"
332 if [ "${ver:0:3}" == "1.4" -o "${ver:0:3}" == "1.5" ];
333 then
334 ver="1.3" # 1.4, 1.5 and 1.3 are compat
335 fi
336
337 ebegin " Fixing \${S}${x/${S}}"
338 patch -p0 "${x}" "${ELT_PATCH_DIR}/darwin/$(basename "${x}")-${ver:0:3}.patch" > /dev/null
288 eend $? "PLEASE CHECK ${x}" 339 eend $? "PLEASE CHECK ${x}"
289 ;; 340 ;;
290 esac 341 esac
291 done 342 done
292} 343}

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

  ViewVC Help
Powered by ViewVC 1.1.20