diff options
author | Brian Harring <ferringb@gentoo.org> | 2006-02-03 05:08:20 +0000 |
---|---|---|
committer | Brian Harring <ferringb@gentoo.org> | 2006-02-03 05:08:20 +0000 |
commit | 4b20bbb73edd13b20629563ce3a0cb81d8acc235 (patch) | |
tree | 8bed193c47ce34e54c95fdcba06325abe38f0b17 /bin | |
parent | e152c669d0c38cab9c20f3c739dcbb2bb6515289 (diff) | |
download | portage-4b20bbb73edd13b20629563ce3a0cb81d8acc235.tar.gz portage-4b20bbb73edd13b20629563ce3a0cb81d8acc235.tar.bz2 portage-4b20bbb73edd13b20629563ce3a0cb81d8acc235.zip |
confcache, baby.
svn path=/main/trunk/; revision=2632
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/ebuild.sh | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/bin/ebuild.sh b/bin/ebuild.sh index 1d5c6f90c..a89b530c9 100755 --- a/bin/ebuild.sh +++ b/bin/ebuild.sh @@ -493,7 +493,32 @@ econf() { LOCAL_EXTRA_ECONF="--libdir=${CONF_LIBDIR_RESULT} ${LOCAL_EXTRA_ECONF}" fi - echo "${ECONF_SOURCE}/configure" \ + local TMP_CONFCACHE_DIR CONFCACHE_ARG + if hasq confcache $FEATURES && ! hasq confcache $RESTRICT; then + CONFCACHE="$(type -p confcache)" + if [ -z "${CONFCACHE}" ]; then + ewarn "disabling confcache, binary cannot be found" + else + CONFCACHE="${CONFCACHE/ /\ }" + TMP_CONFCACHE_DIR="${CONFCACHE:+${CONFCACHE_DIR:-${PORTAGE_TMPDIR}/confcache}}" + TMP_CONFCACHE_DIR="${TMP_CONFCACHE_DIR/ /\ }" + CONFCACHE_ARG="--confcache-dir" + local s + if [ -n "$CCACHE_DIR" ]; then + s="$CCACHE_DIR" + fi + if [ -n "$DISTCC_DIR" ]; then + s="${s:+${s}:}$DISTCC_DIR" + fi + if [ -n "$s" ]; then + CONFCACHE_ARG="--confcache-ignore $s $CONFCACHE_ARG" + fi + fi + else + CONFCACHE= + fi + + echo ${CONFCACHE} ${CONFCACHE_ARG} ${TMP_CONFCACHE_DIR} "${ECONF_SOURCE}/configure" \ --prefix=/usr \ --host=${CHOST} \ --mandir=/usr/share/man \ @@ -504,7 +529,7 @@ econf() { "$@" \ ${LOCAL_EXTRA_ECONF} - if ! "${ECONF_SOURCE}/configure" \ + if ! ${CONFCACHE} ${CONFCACHE_ARG} ${TMP_CONFCACHE_DIR} "${ECONF_SOURCE}/configure" \ --prefix=/usr \ --host=${CHOST} \ --mandir=/usr/share/man \ |