aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2011-10-12 17:30:00 -0400
committerMike Frysinger <vapier@gentoo.org>2011-10-12 17:32:13 -0400
commitf4d0c96ff5510f0b70219fb634d354b694741891 (patch)
tree98f1af42c627f0f64c1696ac652659970f4ba8bf
parentcrossdev: only setup multilib env if requested (diff)
downloadcrossdev-f4d0c96ff5510f0b70219fb634d354b694741891.tar.gz
crossdev-f4d0c96ff5510f0b70219fb634d354b694741891.tar.bz2
crossdev-f4d0c96ff5510f0b70219fb634d354b694741891.zip
cross-emerge: optimize/fix portageq usage
Only execute portageq once to speed things up, and only remove the variables we are looking up from the env. Using the -i flag makes portage very unhappy when $PATH goes missing. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
-rwxr-xr-xwrappers/cross-emerge14
1 files changed, 9 insertions, 5 deletions
diff --git a/wrappers/cross-emerge b/wrappers/cross-emerge
index 85f847d..7af770b 100755
--- a/wrappers/cross-emerge
+++ b/wrappers/cross-emerge
@@ -1,5 +1,5 @@
#!/bin/sh
-# Copyright 2008-2010 Gentoo Foundation
+# Copyright 2008-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
if [ -z "${CHOST}" ] ; then
@@ -20,10 +20,14 @@ fi
# Portage defaults CBUILD to CHOST, so we have to remove CHOST
# from the env to get a "good" value for CBUILD
-: ${CBUILD=$(env -i portageq envvar CBUILD)}
-: ${BUILD_CFLAGS=$(env -i portageq envvar CFLAGS)}
-: ${BUILD_CXXFLAGS=$(env -i portageq envvar CXXFLAGS)}
-: ${BUILD_CPPFLAGS=$(env -i portageq envvar CPPFLAGS)}
+query_vars="CBUILD CFLAGS CXXFLAGS CPPFLAGS"
+clean_vars="${query_vars} CHOST SYSROOT PORTAGE_CONFIGROOT"
+eval $(env $(printf -- '-u %s ' ${clean_vars}) \
+ portageq envvar -v ${query_vars} | sed s:^:_E_:)
+: ${CBUILD=${_E_CBUILD}}
+: ${BUILD_CFLAGS=${_E_CFLAGS}}
+: ${BUILD_CXXFLAGS=${_E_CXXFLAGS}}
+: ${BUILD_CPPFLAGS=${_E_CPPFLAGS}}
export CBUILD BUILD_CFLAGS BUILD_CXXFLAGS BUILD_CPPFLAGS
FAKEROOT=