Merge branch 'vendor/LIBPCAP'
[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="-nobuiltininc -nostdinc \
21                     -isysroot @@INCPREFIX@@ \
22                     -isystem /usr/include \
23                     -isystem /usr/libdata/gcc41 \
24                     -isystem /usr/include/c++/4.1"
25         elif [ "${CNAME}" = "cc" -o "${CNAME}" = "gcc" ]; then
26                 exec ${CDIR}/../gcc41/cc $oldargs
27         fi
28 elif [ "${CCVER}" = "clangsvn" ]; then
29         if [ "${CNAME}" = "cpp" ]; then
30                 exec ${CDIR}/../gcc41/cpp "$@"
31         else
32                 INCOPT="-nobuiltininc -nostdinc \
33                     -isysroot @@INCPREFIX@@ \
34                     -isystem /usr/include \
35                     -isystem /usr/include/c++/4.4"
36         fi
37 elif [ "${CCVER}" = "gcc46" ]; then
38         GCC46VER=`gnatc++ -dumpversion`
39         GCC46MAC=`gnatc++ -dumpmachine`
40         INCOPT="-nostdinc \
41             -isysroot @@INCPREFIX@@ \
42             -isystem /usr/include \
43             -isystem /usr/pkg/include/c++/${GCC46VER} \
44             -isystem /usr/pkg/include/c++/${GCC46VER}/${GCC46MAC}"
45 elif [ "${CCVER}" = "gcc47" ]; then
46         GCC47VER=`/usr/pkg/gcc-aux/bin/c++ -dumpversion`
47         GCC47MAC=`/usr/pkg/gcc-aux/bin/c++ -dumpmachine`
48         INCOPT="-nostdinc \
49             -isysroot @@INCPREFIX@@ \
50             -isystem /usr/include \
51             -isystem /usr/pkg/gcc-aux/include/c++/${GCC47VER} \
52             -isystem /usr/pkg/gcc-aux/include/c++/${GCC47VER}/${GCC47MAC}"
53 fi
54
55 . /etc/defaults/compilers.conf
56 [ -f /etc/compilers.conf ] && . /etc/compilers.conf
57
58 CUSTOM_CC=`eval echo \$\{${CCVER}_CC\}`
59 CUSTOM_CFLAGS=`eval echo \$\{${CCVER}_CFLAGS\}`
60 CUSTOM_CXX=`eval echo \$\{${CCVER}_CXX\}`
61 CUSTOM_CXXFLAGS=`eval echo \$\{${CCVER}_CXXFLAGS\}`
62 CUSTOM_CPP=`eval echo \$\{${CCVER}_CPP\}`
63 CUSTOM_CPPFLAGS=`eval echo \$\{${CCVER}_CPPFLAGS\}`
64 CUSTOM_VERSION=`eval echo \$\{${CCVER}_VERSION\}`
65
66 if [ "${CUSTOM_VERSION}" != "" -a "$1" = "-dumpversion" ]; then
67         echo ${CUSTOM_VERSION}
68 elif [ "${CNAME}" = "cc" -o "${CNAME}" = "gcc" ]; then
69         exec ${CUSTOM_CC} ${INCOPT} ${CUSTOM_CFLAGS} "$@"
70 elif [ "${CNAME}" = "c++" -o "${CNAME}" = "g++" ]; then
71         exec ${CUSTOM_CXX} ${INCOPT} ${CUSTOM_CXXFLAGS} "$@"
72 elif [ "${CNAME}" = "cpp" ]; then
73         exec ${CUSTOM_CPP} ${INCOPT} ${CUSTOM_CPPFLAGS} "$@"
74 fi