Annotation of /trunk/ccache/ccache-config
Parent Directory | Revision Log
Revision 144 -
(hide annotations)
(download)
Tue May 8 20:06:05 2007 UTC (17 years, 5 months ago) by niro
File size: 1554 byte(s)
Tue May 8 20:06:05 2007 UTC (17 years, 5 months ago) by niro
File size: 1554 byte(s)
-import
1 | niro | 144 | #!/bin/bash |
2 | # | ||
3 | # ccache-config - helper script for ccache and its ebuild | ||
4 | # | ||
5 | # Copyright 2003 Superlucidity Services, LLC | ||
6 | # This program licensed under the GNU GPL version 2. | ||
7 | # | ||
8 | # This script developed by Zachary T Welch at Superlucidity Services, LLC | ||
9 | # it was cloned from the distcc-config script | ||
10 | # | ||
11 | # Additional features to come; this provides a starting point | ||
12 | |||
13 | # this should be getopt'd someday (override with CC_QUIET=1) | ||
14 | CC_VERBOSE=1 | ||
15 | |||
16 | cc_echo() { | ||
17 | [ -z "${CC_QUIET}" -a -n "${CC_VERBOSE}" ] && echo "$*" | ||
18 | } | ||
19 | |||
20 | ### | ||
21 | # the following functions manage the ccache symlinks | ||
22 | # they allow the user or other scripts (namely gcc-config) to | ||
23 | # automatically update ccache's links when upgrading toolchains | ||
24 | # | ||
25 | cc_remove_link() { | ||
26 | local t="/usr/lib/ccache/bin/${1}" | ||
27 | if [ -L ${t} ]; then | ||
28 | cc_echo "Removing ${t}..." | ||
29 | rm -f "${t}" | ||
30 | fi | ||
31 | } | ||
32 | cc_install_link() { | ||
33 | # Search the PATH for the specified compiler | ||
34 | # then create shadow link in /usr/lib/ccache/bin to ccache | ||
35 | |||
36 | if [ -n "$(type -p ${1})" ]; then | ||
37 | # first be sure any old link is removed | ||
38 | CC_QUIET=1 cc_remove_link "${1}" | ||
39 | |||
40 | # then create the new link | ||
41 | local t="/usr/lib/ccache/bin/${1}" | ||
42 | cc_echo "Creating ccache shadow link: ${t}..." | ||
43 | ln -s /usr/bin/ccache "${t}" | ||
44 | fi | ||
45 | } | ||
46 | cc_links() { | ||
47 | local a | ||
48 | for a in gcc cc c++ g++ ; do | ||
49 | [ -n "${2}" ] && a="${2}-${a}" | ||
50 | eval "cc_${1}_link" "${a}" | ||
51 | done | ||
52 | } | ||
53 | |||
54 | ### | ||
55 | # main routine | ||
56 | |||
57 | case "${1}" in | ||
58 | --install-links ) | ||
59 | cc_links install "${2}" | ||
60 | ;; | ||
61 | --remove-links ) | ||
62 | cc_links remove "${2}" | ||
63 | ;; | ||
64 | * ) | ||
65 | echo "usage: ${0} {--install-links|--remove-links} [ CHOST ]" | ||
66 | ;; | ||
67 | esac | ||
68 |