--- /usr/portage/dev-util/ccache/ccache-3.1.8.ebuild 2012-12-29 10:31:14.000000000 -0700 +++ ccache-3.1.8-r1.ebuild 2012-12-27 14:16:43.173550720 -0700 @@ -12,10 +12,12 @@ LICENSE="GPL-3" SLOT="0" -KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 ~sh sparc x86 ~x86-fbsd" -IUSE="" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~x64-solaris ~x86-solaris" +IUSE="clang icc" -RDEPEND="sys-libs/zlib" +RDEPEND="sys-libs/zlib + clang? ( sys-devel/clang ) + icc? ( dev-lang/icc )" DEPEND="${RDEPEND} app-arch/xz-utils" @@ -25,7 +27,8 @@ epatch "${FILESDIR}"/${PN}-3.1.7-no-perl.patch #421609 sed \ -e "/^LIBDIR=/s:lib:$(get_libdir):" \ - "${FILESDIR}"/ccache-config > ccache-config || die + -e "/^EPREFIX=/s:'':'${EPREFIX}':" \ + "${FILESDIR}"/ccache-config-2 > ccache-config || die } src_install() { @@ -36,13 +39,15 @@ } pkg_postinst() { - "${ROOT}"/usr/bin/ccache-config --install-links - "${ROOT}"/usr/bin/ccache-config --install-links ${CHOST} + "${EROOT}"/usr/bin/ccache-config --install-links + "${EROOT}"/usr/bin/ccache-config --install-links ${CHOST} + use icc && "${EROOT}"/usr/bin/ccache-config --install-links icc + use clang && "${EROOT}"/usr/bin/ccache-config --install-links clang # nuke broken symlinks from previous versions that shouldn't exist - rm -f "${ROOT}/usr/$(get_libdir)/ccache/bin/${CHOST}-cc" - [[ -d "${ROOT}/usr/$(get_libdir)/ccache.backup" ]] && \ - rm -rf "${ROOT}/usr/$(get_libdir)/ccache.backup" + rm -f "${EROOT}/usr/$(get_libdir)/ccache/bin/${CHOST}-cc" + [[ -d "${EROOT}/usr/$(get_libdir)/ccache.backup" ]] && \ + rm -rf "${EROOT}/usr/$(get_libdir)/ccache.backup" elog "To use ccache with **non-Portage** C compiling, add" elog "/usr/$(get_libdir)/ccache/bin to the beginning of your path, before /usr/bin." --- /usr/portage/dev-util/ccache/files/ccache-config 2010-11-21 13:33:31.000000000 -0700 +++ ccache-config-2 2012-12-28 14:22:23.620399420 -0700 @@ -10,7 +10,9 @@ # # Additional features to come; this provides a starting point -. /etc/init.d/functions.sh 2>/dev/null || { +EPREFIX='' + +. "${EPREFIX}"/etc/init.d/functions.sh 2>/dev/null || { ebegin() { echo " * $* ..."; } eend() { local r=${1:-$?} @@ -37,7 +39,7 @@ # automatically update ccache's links when upgrading toolchains # cc_path() { - echo ${ROOT%/}/usr/${LIBDIR}/ccache/bin/$1 + echo ${ROOT%/}${EPREFIX}/usr/${LIBDIR}/ccache/bin/$1 } cc_remove_link() { local t=$(cc_path "$1") @@ -60,13 +62,15 @@ # then create the new link local t=$(cc_path "$1") c_ebegin "Creating ccache shadow link ${t}" - mkdir -p -m 0755 "${t%/*}" && ln -s /usr/bin/ccache "${t}" + mkdir -p -m 0755 "${t%/*}" && ln -s "${EPREFIX}"/usr/bin/ccache "${t}" c_eend fi } cc_links() { - local a - for a in gcc cc c++ g++ ; do + local a compilers="gcc cc c++ g++" + [ "${2}" = icc ] && compilers="icc icpc" && set -- "$1" + [ "${2}" = clang ] && compilers="clang clang++" && set -- "$1" + for a in ${compilers} ; do if [ -n "${2}" ] ; then # gcc-config doesnt install ${CHOST}-cc, so until # it does, don't install a ccache symlink for it @@ -88,6 +92,6 @@ cc_links remove "${2}" ;; * ) - echo "usage: ${0} {--install-links|--remove-links} [ CHOST ]" + echo "usage: ${0} {--install-links|--remove-links} [ CHOST|clang|icc ]" ;; esac