Merge branch 'vendor/MPFR' into gcc441
[dragonfly.git] / libexec / customcc / cc.sh
1 #!/bin/sh
2
3 CDIR=$(dirname $0)
4 CNAME=$(basename $0)
5
6 # XXX clang needs some special handling
7 #
8 # it is called only for "cc" and "gcc" and even then it could have been
9 # run on c++ files
10 #
11 if [ "${CCVER}" = "clang" ]; then
12         if [ "${CNAME}" = "cpp" ]; then
13                 exec ${CDIR}/../gcc41/cpp "$@"
14         elif [ "${CNAME}" = "c++" -o "${CNAME}" = "g++" ]; then
15                 exec ${CDIR}/../gcc41/c++ "$@"
16         elif [ -z $beenhere ]; then
17                 export beenhere=1
18                 oldargs="$@"
19                 export oldargs
20                 INCOPT="-isystem @@PREFIX2@@/include \
21                         -isystem @@PREFIX2@@/libdata/gcc41"
22         elif [ "${CNAME}" = "cc" -o "${CNAME}" = "gcc" ]; then
23                 exec ${CDIR}/../gcc41/cc $oldargs
24         fi
25 fi
26
27 . /etc/defaults/compilers.conf
28 [ -f /etc/compilers.conf ] && . /etc/compilers.conf
29
30 CUSTOM_CC=`eval echo \$\{${CCVER}_CC\}`
31 CUSTOM_CFLAGS=`eval echo \$\{${CCVER}_CFLAGS\}`
32 CUSTOM_CXX=`eval echo \$\{${CCVER}_CXX\}`
33 CUSTOM_CXXFLAGS=`eval echo \$\{${CCVER}_CXXFLAGS\}`
34 CUSTOM_CPP=`eval echo \$\{${CCVER}_CPP\}`
35 CUSTOM_CPPFLAGS=`eval echo \$\{${CCVER}_CPPFLAGS\}`
36 CUSTOM_VERSION=`eval echo \$\{${CCVER}_VERSION\}`
37
38 if [ "${CUSTOM_VERSION}" != "" -a "$1" = "-dumpversion" ]; then
39         echo ${CUSTOM_VERSION}
40 elif [ "${CNAME}" = "cc" -o "${CNAME}" = "gcc" ]; then
41         exec ${CUSTOM_CC} ${INCOPT} ${CUSTOM_CFLAGS} "$@"
42 elif [ "${CNAME}" = "c++" -o "${CNAME}" = "g++" ]; then
43         exec ${CUSTOM_CXX} ${INCOPT} ${CUSTOM_CXXFLAGS} "$@"
44 elif [ "${CNAME}" = "cpp" ]; then
45         exec ${CUSTOM_CPP} ${INCOPT} ${CUSTOM_CPPFLAGS} "$@"
46 else
47         echo "unknown compiler ${CNAME}"
48         exit 1
49 fi