| 1 | # Copyright 1999-2005 Gentoo Foundation |
1 | # Copyright 1999-2005 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.59 2005/09/05 22:23:10 azarah Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/libtool.eclass,v 1.60 2005/10/04 15:48:05 azarah 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 |
| … | |
… | |
| 192 | elt_patches="${elt_patches} uclibc-conf uclibc-ltconf" |
192 | elt_patches="${elt_patches} uclibc-conf uclibc-ltconf" |
| 193 | |
193 | |
| 194 | [[ ${CHOST} == *"-freebsd"* ]] && \ |
194 | [[ ${CHOST} == *"-freebsd"* ]] && \ |
| 195 | elt_patches="${elt_patches} fbsd-conf" |
195 | elt_patches="${elt_patches} fbsd-conf" |
| 196 | |
196 | |
| 197 | if use ppc-macos ; then |
197 | if useq ppc-macos ; then |
| 198 | local opts |
198 | local opts |
| 199 | [[ -f Makefile.am ]] && opts="--automake" |
199 | [[ -f Makefile.am ]] && opts="--automake" |
| 200 | glibtoolize --copy --force ${opts} |
200 | glibtoolize --copy --force ${opts} |
| 201 | darwintoolize |
201 | |
|
|
202 | elt_patches="${elt_patches} darwin-ltconf darwin-ltmain" |
| 202 | fi |
203 | fi |
| 203 | |
204 | |
| 204 | for x in ${my_dirlist} ; do |
205 | for x in ${my_dirlist} ; do |
| 205 | local tmp=$(echo "${x}" | sed -e "s|${WORKDIR}||") |
206 | local tmp=$(echo "${x}" | sed -e "s|${WORKDIR}||") |
| 206 | export ELT_APPLIED_PATCHES= |
207 | export ELT_APPLIED_PATCHES= |
| … | |
… | |
| 244 | ELT_walk_patches "${x}/../configure" "${y}" |
245 | ELT_walk_patches "${x}/../configure" "${y}" |
| 245 | ret=$? |
246 | ret=$? |
| 246 | fi |
247 | fi |
| 247 | ;; |
248 | ;; |
| 248 | "uclibc-ltconf") |
249 | "uclibc-ltconf") |
|
|
250 | # Newer libtoolize clears ltconfig, as not used anymore |
| 249 | if [[ -e ${x}/ltconfig ]] ; then |
251 | if [[ -s ${x}/ltconfig ]] ; then |
| 250 | ELT_walk_patches "${x}/ltconfig" "${y}" |
252 | ELT_walk_patches "${x}/ltconfig" "${y}" |
| 251 | ret=$? |
253 | ret=$? |
| 252 | fi |
254 | fi |
| 253 | ;; |
255 | ;; |
| 254 | "fbsd-conf") |
256 | "fbsd-conf") |
| … | |
… | |
| 258 | ret=$? |
260 | ret=$? |
| 259 | # ltmain.sh and co might be in a subdirectory ... |
261 | # ltmain.sh and co might be in a subdirectory ... |
| 260 | elif [[ ! -e ${x}/configure && -e ${x}/../configure && \ |
262 | elif [[ ! -e ${x}/configure && -e ${x}/../configure && \ |
| 261 | -n $(grep 'version_type=freebsd-' "${x}/../configure") ]] ; then |
263 | -n $(grep 'version_type=freebsd-' "${x}/../configure") ]] ; then |
| 262 | ELT_walk_patches "${x}/../configure" "${y}" |
264 | ELT_walk_patches "${x}/../configure" "${y}" |
|
|
265 | ret=$? |
|
|
266 | fi |
|
|
267 | ;; |
|
|
268 | "darwin-ltconf") |
|
|
269 | # Newer libtoolize clears ltconfig, as not used anymore |
|
|
270 | if [[ -s ${x}/ltconfig ]] ; then |
|
|
271 | ELT_walk_patches "${x}/ltconfig" "${y}" |
| 263 | ret=$? |
272 | ret=$? |
| 264 | fi |
273 | fi |
| 265 | ;; |
274 | ;; |
| 266 | *) |
275 | *) |
| 267 | ELT_walk_patches "${x}/ltmain.sh" "${y}" |
276 | ELT_walk_patches "${x}/ltmain.sh" "${y}" |
| … | |
… | |
| 311 | "uclibc-"*) |
320 | "uclibc-"*) |
| 312 | [[ ${CHOST} == *"-uclibc" ]] && \ |
321 | [[ ${CHOST} == *"-uclibc" ]] && \ |
| 313 | ewarn " uClibc patch set '${y}' failed to apply!" |
322 | ewarn " uClibc patch set '${y}' failed to apply!" |
| 314 | ;; |
323 | ;; |
| 315 | "fbsd-"*) |
324 | "fbsd-"*) |
| 316 | [[ ${CHOST} == *"-freebsd"* ]] && \ |
325 | if [[ ${CHOST} == *"-freebsd"* ]] ; then |
| 317 | eerror " FreeBSD patch set '${y}' failed to apply!" |
326 | eerror " FreeBSD patch set '${y}' failed to apply!" |
| 318 | die "FreeBSD patch set '${y}' failed to apply!" |
327 | die "FreeBSD patch set '${y}' failed to apply!" |
|
|
328 | fi |
|
|
329 | ;; |
|
|
330 | "darwin-"*) |
|
|
331 | useq ppc-macos && \ |
|
|
332 | ewarn " Darwin patch set '${y}' failed to apply!" |
| 319 | ;; |
333 | ;; |
| 320 | esac |
334 | esac |
| 321 | fi |
335 | fi |
| 322 | done |
336 | done |
| 323 | |
337 | |
| … | |
… | |
| 353 | |
367 | |
| 354 | cd "${start_dir}" |
368 | cd "${start_dir}" |
| 355 | } |
369 | } |
| 356 | |
370 | |
| 357 | uclibctoolize() { |
371 | uclibctoolize() { |
| 358 | ewarn "uclibctoolize() is depreciated, please just use libtoolize()!" |
372 | ewarn "uclibctoolize() is depreciated, please just use elibtoolize()!" |
| 359 | elibtoolize |
373 | elibtoolize |
| 360 | } |
374 | } |
| 361 | |
375 | |
| 362 | darwintoolize() { |
376 | darwintoolize() { |
| 363 | local targets="" |
377 | ewarn "darwintoolize() is depreciated, please just use elibtoolize()!" |
| 364 | local x |
378 | elibtoolize |
| 365 | |
|
|
| 366 | if [[ -z $* ]] ; then |
|
|
| 367 | targets=$(find ${S} -name ltmain.sh -o -name ltconfig) |
|
|
| 368 | fi |
|
|
| 369 | |
|
|
| 370 | einfo "Applying Darwin/libtool patches ..." |
|
|
| 371 | for x in ${targets} ; do |
|
|
| 372 | [[ ! -s ${x} ]] && continue |
|
|
| 373 | case ${x##*/} in |
|
|
| 374 | ltmain.sh|ltconfig) |
|
|
| 375 | local ver=$(grep '^VERSION=' ${x}) |
|
|
| 376 | ver=${ver/VERSION=} |
|
|
| 377 | if [[ ${ver:0:3} == "1.4" || ${ver:0:3} == "1.5" ]] ; then |
|
|
| 378 | ver="1.3" # 1.4, 1.5 and 1.3 are compat |
|
|
| 379 | fi |
|
|
| 380 | |
|
|
| 381 | ebegin " Fixing \${S}${x/${S}}" |
|
|
| 382 | patch -p0 "${x}" "${ELT_PATCH_DIR}/darwin/${x##*/}-${ver:0:3}.patch" > /dev/null |
|
|
| 383 | eend $? "PLEASE CHECK ${x}" |
|
|
| 384 | ;; |
|
|
| 385 | esac |
|
|
| 386 | done |
|
|
| 387 | } |
379 | } |
| 388 | |
380 | |
| 389 | # char *VER_major(string) |
381 | # char *VER_major(string) |
| 390 | # |
382 | # |
| 391 | # Return the Major (X of X.Y.Z) version |
383 | # Return the Major (X of X.Y.Z) version |