xref: /dragonfly/libexec/customcc/cc.sh (revision 678e8cc6)
1#!/bin/sh
2
3CDIR=$(dirname $0)
4CNAME=$(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#
11if [ "${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
28elif [ "${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
37elif [ "${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}"
45fi
46
47. /etc/defaults/compilers.conf
48[ -f /etc/compilers.conf ] && . /etc/compilers.conf
49
50CUSTOM_CC=`eval echo \$\{${CCVER}_CC\}`
51CUSTOM_CFLAGS=`eval echo \$\{${CCVER}_CFLAGS\}`
52CUSTOM_CXX=`eval echo \$\{${CCVER}_CXX\}`
53CUSTOM_CXXFLAGS=`eval echo \$\{${CCVER}_CXXFLAGS\}`
54CUSTOM_CPP=`eval echo \$\{${CCVER}_CPP\}`
55CUSTOM_CPPFLAGS=`eval echo \$\{${CCVER}_CPPFLAGS\}`
56CUSTOM_VERSION=`eval echo \$\{${CCVER}_VERSION\}`
57
58if [ "${CUSTOM_VERSION}" != "" -a "$1" = "-dumpversion" ]; then
59	echo ${CUSTOM_VERSION}
60elif [ "${CNAME}" = "cc" -o "${CNAME}" = "gcc" ]; then
61	exec ${CUSTOM_CC} ${INCOPT} ${CUSTOM_CFLAGS} "$@"
62elif [ "${CNAME}" = "c++" -o "${CNAME}" = "g++" ]; then
63	exec ${CUSTOM_CXX} ${INCOPT} ${CUSTOM_CXXFLAGS} "$@"
64elif [ "${CNAME}" = "cpp" ]; then
65	exec ${CUSTOM_CPP} ${INCOPT} ${CUSTOM_CPPFLAGS} "$@"
66fi
67