xref: /dragonfly/libexec/customcc/cc.sh (revision 9ddb8543)
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="-isystem @@PREFIX2@@/include \
21			-isystem @@PREFIX2@@/libdata/gcc41"
22	elif [ "${CNAME}" = "cc" -o "${CNAME}" = "gcc" ]; then
23		exec ${CDIR}/../gcc41/cc $oldargs
24	fi
25fi
26
27. /etc/defaults/compilers.conf
28[ -f /etc/compilers.conf ] && . /etc/compilers.conf
29
30CUSTOM_CC=`eval echo \$\{${CCVER}_CC\}`
31CUSTOM_CFLAGS=`eval echo \$\{${CCVER}_CFLAGS\}`
32CUSTOM_CXX=`eval echo \$\{${CCVER}_CXX\}`
33CUSTOM_CXXFLAGS=`eval echo \$\{${CCVER}_CXXFLAGS\}`
34CUSTOM_CPP=`eval echo \$\{${CCVER}_CPP\}`
35CUSTOM_CPPFLAGS=`eval echo \$\{${CCVER}_CPPFLAGS\}`
36CUSTOM_VERSION=`eval echo \$\{${CCVER}_VERSION\}`
37
38if [ "${CUSTOM_VERSION}" != "" -a "$1" = "-dumpversion" ]; then
39	echo ${CUSTOM_VERSION}
40elif [ "${CNAME}" = "cc" -o "${CNAME}" = "gcc" ]; then
41	exec ${CUSTOM_CC} ${INCOPT} ${CUSTOM_CFLAGS} "$@"
42elif [ "${CNAME}" = "c++" -o "${CNAME}" = "g++" ]; then
43	exec ${CUSTOM_CXX} ${INCOPT} ${CUSTOM_CXXFLAGS} "$@"
44elif [ "${CNAME}" = "cpp" ]; then
45	exec ${CUSTOM_CPP} ${INCOPT} ${CUSTOM_CPPFLAGS} "$@"
46else
47	echo "unknown compiler ${CNAME}"
48	exit 1
49fi
50