floppym     14/12/21 15:30:07

  Added:                ccache-config-3
  Log:
  ccache-config: Source /lib/gentoo/functions.sh, bug 504380.
  
  (Portage version: 2.2.15/cvs/Linux x86_64, signed Manifest commit with key 
0BBEEA1FEA4843A4)

Revision  Changes    Path
1.1                  dev-util/ccache/files/ccache-config-3

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-util/ccache/files/ccache-config-3?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-util/ccache/files/ccache-config-3?rev=1.1&content-type=text/plain

Index: ccache-config-3
===================================================================
#!/bin/sh
#
# ccache-config - helper script for ccache and its ebuild
#
# Copyright 2003-2014 Superlucidity Services, LLC
# Copyright 2013-2014 Gentoo Foundation
# This program licensed under the GNU GPL version 2.
#
# This script developed by Zachary T Welch at Superlucidity Services, LLC
#  it was cloned from the distcc-config script
#
# Additional features to come; this provides a starting point

EPREFIX=''

. "${EPREFIX}"/lib/gentoo/functions.sh 2>/dev/null || {
        ebegin() { echo " * $* ..."; }
        eend() {
                local r=${1:-$?}
                [ ${r} -eq 0 ] && echo " [ OK ]" || echo " [ !! ]"
                return $r
        }
}

LIBDIR="lib"

# this should be getopt'd someday (override with CC_QUIET=1)
CC_VERBOSE=1
unset _CC_QUIET
c_quiet() {
        [ -n "${CC_QUIET:-${_CC_QUIET}}" ] || [ -z "${CC_VERBOSE}" ]
}

c_ebegin() { c_quiet || ebegin "$@" ; }
c_eend()   { c_quiet || eend "$@" ; }

###
# the following functions manage the ccache symlinks
#  they allow the user or other scripts (namely gcc-config) to
#  automatically update ccache's links when upgrading toolchains
#
cc_path() {
        echo ${ROOT%/}${EPREFIX}/usr/${LIBDIR}/ccache/bin/$1
}
cc_remove_link() {
        local t=$(cc_path "$1")
        if [ -L ${t} ]; then
                c_ebegin "Removing ${t}"
                rm -f "${t}"
                c_eend

                # Trim the empty dir if possible. #517242
                t=${t%/*}
                if rmdir "${t}" 2>/dev/null; then
                        rmdir "${t%/*}" 2>/dev/null
                fi
                :
        fi
}
cc_install_link() {
        # Search the PATH for the specified compiler
        #  then create shadow link in /usr/lib/ccache/bin to ccache

        if command -v "$1" >/dev/null ; then
                # first be sure any old link is removed
                _CC_QUIET=1
                cc_remove_link "$1"
                unset _CC_QUIET

                # then create the new link
                local t=$(cc_path "$1")
                c_ebegin "Creating ccache shadow link ${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++ icc icpc clang clang++ ; do
                "cc_${1}_link" "${2}${2:+-}${a}"
        done
}

###
# main routine

case $1 in
        --install-links )
                cc_links install "$2"
                ;;
        --remove-links )
                cc_links remove "$2"
                ;;
        * )
                echo "usage: $0 {--install-links|--remove-links} [ CHOST ]"
                ;;
esac




Reply via email to