#!/bin/bash # # icecream-config - helper script for icecream and its ebuild # # Copyright 2003 Superlucidity Services, LLC # 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 to make ccache-config # and then modified by Marcus Furlong to configure icecream too. # # Additional features to come; this provides a starting point # this should be getopt'd someday (override with ICEC_QUIET=1) ICECC_VERBOSE=1 icecc_echo() { [ -z "${ICECC_QUIET}" -a -n "${ICECC_VERBOSE}" ] && echo "$*" } ### # the following functions manage the icecream symlinks # they allow the user or other scripts (namely gcc-config) to # automatically update icecream's links when upgrading toolchains # icecc_remove_link() { local t="/usr/lib/icecc/bin/${1}" if [ -L ${t} ]; then icecc_echo "Removing ${t}..." rm -f "${t}" fi } icecc_install_link() { # Search the PATH for the specified compiler # then create shadow link in /usr/lib/icecc/bin to icecc if [ -n "$(type -p ${1})" ]; then # first be sure any old link is removed ICECC_QUIET=1 icecc_remove_link "${1}" # then create the new link local t="/usr/lib/icecc/bin/${1}" icecc_echo "Creating icecream shadow link: ${t}..." ln -s /usr/bin/icecc "${t}" fi } icecc_links() { local a for a in gcc cc c++ g++ ; do [ -n "${2}" ] && a="${2}-${a}" eval "icecc_${1}_link" "${a}" done } ### # main routine case "${1}" in --install-links ) icecc_links install "${2}" ;; --remove-links ) icecc_links remove "${2}" ;; * ) echo "usage: ${0} {--install-links|--remove-links} [ CHOST ]" ;; esac