summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2011-09-06 22:54:45 +0000
committerMike Frysinger <vapier@gentoo.org>2011-09-06 22:54:45 +0000
commit15abe77a02064ca17b98211d51a0f785951750b4 (patch)
tree8835a5694695929f3cfc4da1970da481527322a1 /eclass
parentMy email fixed (diff)
downloadgentoo-2-15abe77a02064ca17b98211d51a0f785951750b4.tar.gz
gentoo-2-15abe77a02064ca17b98211d51a0f785951750b4.tar.bz2
gentoo-2-15abe77a02064ca17b98211d51a0f785951750b4.zip
unify tc-getPROG and tc-getBUILD_CC implementations, and add new tc-getBUILD_{CPP,CXX} helpers on top of that
Diffstat (limited to 'eclass')
-rw-r--r--eclass/toolchain-funcs.eclass57
1 files changed, 27 insertions, 30 deletions
diff --git a/eclass/toolchain-funcs.eclass b/eclass/toolchain-funcs.eclass
index d5bf7232ac6c..5d2e3f3dc656 100644
--- a/eclass/toolchain-funcs.eclass
+++ b/eclass/toolchain-funcs.eclass
@@ -1,6 +1,6 @@
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/toolchain-funcs.eclass,v 1.104 2011/07/12 14:29:41 aballier Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/toolchain-funcs.eclass,v 1.105 2011/09/06 22:54:45 vapier Exp $
# @ECLASS: toolchain-funcs.eclass
# @MAINTAINER:
@@ -18,23 +18,31 @@ ___ECLASS_RECUR_TOOLCHAIN_FUNCS="yes"
DESCRIPTION="Based on the ${ECLASS} eclass"
-tc-getPROG() {
- local var=$1
- local prog=$2
+# tc-getPROG <VAR [search vars]> <default> [tuple]
+_tc-getPROG() {
+ local tuple=$1
+ local v var vars=$2
+ local prog=$3
- if [[ -n ${!var} ]] ; then
- echo "${!var}"
- return 0
- fi
+ var=${vars%% *}
+ for v in ${vars} ; do
+ if [[ -n ${!v} ]] ; then
+ export ${var}=${!v}
+ echo "${!v}"
+ return 0
+ fi
+ done
local search=
- [[ -n $3 ]] && search=$(type -p "$3-${prog}")
- [[ -z ${search} && -n ${CHOST} ]] && search=$(type -p "${CHOST}-${prog}")
+ [[ -n $4 ]] && search=$(type -p "$4-${prog}")
+ [[ -z ${search} && -n ${!tuple} ]] && search=$(type -p "${!tuple}-${prog}")
[[ -n ${search} ]] && prog=${search##*/}
export ${var}=${prog}
echo "${!var}"
}
+tc-getBUILD_PROG() { _tc-getPROG CBUILD "$@"; }
+tc-getPROG() { _tc-getPROG CHOST "$@"; }
# @FUNCTION: tc-getAR
# @USAGE: [toolchain prefix]
@@ -104,26 +112,15 @@ tc-getDLLWRAP() { tc-getPROG DLLWRAP dllwrap "$@"; }
# @FUNCTION: tc-getBUILD_CC
# @USAGE: [toolchain prefix]
# @RETURN: name of the C compiler for building binaries to run on the build machine
-tc-getBUILD_CC() {
- local v
- for v in CC_FOR_BUILD BUILD_CC HOSTCC ; do
- if [[ -n ${!v} ]] ; then
- export BUILD_CC=${!v}
- echo "${!v}"
- return 0
- fi
- done
-
- local search=
- if [[ -n ${CBUILD} ]] ; then
- search=$(type -p ${CBUILD}-gcc)
- search=${search##*/}
- fi
- search=${search:-gcc}
-
- export BUILD_CC=${search}
- echo "${search}"
-}
+tc-getBUILD_CC() { tc-getBUILD_PROG "BUILD_CC CC_FOR_BUILD HOSTCC" gcc "$@"; }
+# @FUNCTION: tc-getBUILD_CPP
+# @USAGE: [toolchain prefix]
+# @RETURN: name of the C preprocessor for building binaries to run on the build machine
+tc-getBUILD_CPP() { tc-getBUILD_PROG "BUILD_CPP CPP_FOR_BUILD HOSTCPP" cpp "$@"; }
+# @FUNCTION: tc-getBUILD_CXX
+# @USAGE: [toolchain prefix]
+# @RETURN: name of the C++ compiler for building binaries to run on the build machine
+tc-getBUILD_CXX() { tc-getBUILD_PROG "BUILD_CXX CXX_FOR_BUILD HOSTCXX" g++ "$@"; }
# @FUNCTION: tc-export
# @USAGE: <list of toolchain variables>