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

Diff of /eclass/libtool.eclass

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

Revision 1.42 Revision 1.44
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.42 2005/01/31 03:02:13 vapier Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/libtool.eclass,v 1.44 2005/03/23 18:03:21 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
18# stageballs <3. if anybody decides to revert this, please attempt 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. 19# to find an alternate way of resolving that bug at the same time.
20 20
21DESCRIPTION="Based on the ${ECLASS} eclass" 21DESCRIPTION="Based on the ${ECLASS} eclass"
22 22
23ELIBTOOL_VERSION="2.0.1" 23ELIBTOOL_VERSION="2.0.2"
24 24
25ELT_PATCH_DIR="${PORTDIR}/eclass/ELT-patches" 25ELT_PATCH_DIR="${PORTDIR}/eclass/ELT-patches"
26ELT_APPLIED_PATCHES= 26ELT_APPLIED_PATCHES=
27 27
28# 28#
66ELT_walk_patches() { 66ELT_walk_patches() {
67 local x= 67 local x=
68 local y= 68 local y=
69 local ret=1 69 local ret=1
70 local patch_dir= 70 local patch_dir=
71 local version=$(eval $(grep -e '^[[:space:]]*VERSION=' $1); \
72 echo "${VERSION}")
71 73
72 if [[ -n $2 ]] ; then 74 if [[ -n $2 ]] ; then
73 if [[ -d ${ELT_PATCH_DIR}/$2 ]] ; then 75 if [[ -d ${ELT_PATCH_DIR}/$2 ]] ; then
74 patch_dir="${ELT_PATCH_DIR}/$2" 76 patch_dir="${ELT_PATCH_DIR}/$2"
75 else 77 else
76 return ${ret} 78 return ${ret}
77 fi 79 fi
78 80
81 if [[ -z ${version} ]] ; then
82 eerror "Could not get VERSION for ${1##*/}!"
83 die "Could not get VERSION for ${1##*/}!"
84 fi
85
86 # Go through the patches in reverse order (large to small)
79 for x in $(ls -d "${patch_dir}"/* 2> /dev/null) ; do 87 for x in $(ls -d "${patch_dir}"/* 2> /dev/null | sort -r) ; do
80 if [[ -n ${x} && -f ${x} ]] ; then 88 if [[ -n ${x} && -f ${x} ]] ; then
89 local ltver=$(VER_to_int "${version}")
90 local ptver=$(VER_to_int "${x##*/}")
91
92 # If libtool version smaller than patch version, skip patch.
93 [[ ${ltver} -lt ${ptver} ]] && continue
81 # For --remove-internal-dep ... 94 # For --remove-internal-dep ...
82 if [[ -n $3 ]] ; then 95 if [[ -n $3 ]] ; then
83 # For replace @REM_INT_DEP@ with what was passed 96 # For replace @REM_INT_DEP@ with what was passed
84 # to --remove-internal-dep 97 # to --remove-internal-dep
85 sed -e "s|@REM_INT_DEP@|$3|g" ${x} > \ 98 sed -e "s|@REM_INT_DEP@|$3|g" ${x} > \
316 eend $? "PLEASE CHECK ${x}" 329 eend $? "PLEASE CHECK ${x}"
317 ;; 330 ;;
318 esac 331 esac
319 done 332 done
320} 333}
334
335# char *VER_major(string)
336#
337# Return the Major (X of X.Y.Z) version
338#
339VER_major() {
340 [[ -z $1 ]] && return 1
341
342 local VER=$@
343 echo ${VER%%[^[:digit:]]*}
344}
345
346# char *VER_minor(string)
347#
348# Return the Minor (Y of X.Y.Z) version
349#
350VER_minor() {
351 [[ -z $1 ]] && return 1
352
353 local VER=$@
354 VER=${VER#*.}
355 echo ${VER%%[^[:digit:]]*}
356}
357
358# char *VER_micro(string)
359#
360# Return the Micro (Z of X.Y.Z) version.
361#
362VER_micro() {
363 [[ -z $1 ]] && return 1
364
365 local VER=$@
366 VER=${VER#*.*.}
367 echo ${VER%%[^[:digit:]]*}
368}
369
370# int VER_to_int(string)
371#
372# Convert a string type version (2.4.0) to an int (132096)
373# for easy compairing or versions ...
374#
375VER_to_int() {
376 [[ -z $1 ]] && return 1
377
378 local VER_MAJOR=$(VER_major "$1")
379 local VER_MINOR=$(VER_minor "$1")
380 local VER_MICRO=$(VER_micro "$1")
381 local VER_int=$(( VER_MAJOR * 65536 + VER_MINOR * 256 + VER_MICRO ))
382
383 # We make version 1.0.0 the minimum version we will handle as
384 # a sanity check ... if its less, we fail ...
385 if [[ ${VER_int} -ge 65536 ]] ; then
386 echo "${VER_int}"
387 return 0
388 fi
389
390 echo 1
391 return 1
392}

Legend:
Removed from v.1.42  
changed lines
  Added in v.1.44

  ViewVC Help
Powered by ViewVC 1.1.20