#!/bin/sh

test -f $PLAN9/config && . $PLAN9/config
usegcc()
{
	cc=${CC9:-gcc}
	ngflags=" \
		-O2 \
		-c \
		-Wall \
		-Wno-parentheses \
		-Wno-missing-braces \
		-Wno-switch \
		-Wno-comment \
		-Wno-sign-compare \
		-Wno-unknown-pragmas \
		-fno-omit-frame-pointer \
		-fsigned-char \
	"
	# want to put -fno-optimize-sibling-calls here but
	# that option only works with gcc3+ it seems
	cflags="$ngflags -ggdb"
}

quiet()
{
	# The uniq at the end is for gcc's strcmp/etc. built-in nonsense,
	# which multiplies single errors as a result of its expansion.
	# The "Cursor. is deprecated" kills off warnings from Apple
	# about using SetCursor/InitCursor.  (Okay, they're deprecated,
	# but you could at least tell us what to use instead, Apple!)

	ignore=': error: .Each undeclared identifier'
	ignore=$ignore'|: error: for each function it appears'
	ignore=$ignore'|is dangerous, better use'
	ignore=$ignore'|is almost always misused'
	ignore=$ignore'|: In function '
	ignore=$ignore'|: At top level:'
	ignore=$ignore'|support .long long.'
	ignore=$ignore'|In file included from'
	ignore=$ignore'|        from'
	ignore=$ignore'|use of C99 long long'
	ignore=$ignore'|ISO C forbids conversion'
	ignore=$ignore'|is deprecated'
	ignore=$ignore'|warn_unused_result'

	grep -v '__p9l_autolib_' $1 |
	egrep -v "$ignore" |
	sed 's/ .first use in this function.$//; s/\"\([^\"][^\"]*\)\", line \([0-9][0-9]*\)/\1:\2/g' |
	$(which uniq) 1>&2  # avoid built-in uniq on SunOS
}

useclang()
{
	cc=${CC9:-clang}
	ngflags=" \
		-O2 \
		-c \
		-Wall \
		-Wno-parentheses \
		-Wno-missing-braces \
		-Wno-switch \
		-Wno-comment \
		-Wno-sign-compare \
		-Wno-unknown-pragmas \
		-Wno-empty-body \
		-Wno-unused-value \
		-fsigned-char \
	"
	cflags="$ngflags -g"
}

tag="${SYSNAME:-`uname`}-${OBJTYPE:-`uname -m`}-${CC9:-cc}"
case "$tag" in
*FreeBSD*gcc*)	usegcc ;;
*FreeBSD*clang*)	useclang ;;
*BSD*)	usegcc ;;
*Darwin-x86_64*) usegcc
		cflags="$ngflags -g3 -no-cpp-precomp -m64" ;;
*Darwin*)	usegcc 
		cflags="$ngflags -g3 -no-cpp-precomp -m32" ;;
*HP-UX*)	cc=${CC9:-cc}; cflags="-g -O -c -Ae" ;;
*Linux*)	usegcc 
		case "${CC9:-gcc}" in
		tcc)
			cc=tcc
			cflags="-c -g"
			;;
		esac
		case "${SYSVERSION:-`uname -r`}" in
		2.4.*)
			cflags="$cflags -D__Linux24__"
			;;
		2.6.*)
			cflags="$cflags -D__Linux26__"
			;;
		esac
		;;
*OSF1*)		cc=${CC9:-cc}; cflags="-g -O -c" ;;
*SunOS*-cc)	cc=cc;
		cflags="-mt -g -O -c -xCC -D__sun__" 
		u=`uname`
		v=`uname -r`
		s=`echo $u$v | tr '. ' '__'`
		cflags="$cflags -D__${s}__"
		;;
*SunOS*-gcc)	usegcc
		u=`uname`
		v=`uname -r`
		s=`echo $u$v | tr '. ' '__'`
		cflags="$ngflags -g"
		cflags="$cflags -D__sun__ -D__${s}__"
		;;
*AIX*)		usegcc
		cflags="$ngflags -g -D__AIX__"
		;;
*)
	echo 9c does not know how to compile on "$tag" 1>&2
	exit 1
esac

# N.B. Must use temp file to avoid pipe; pipe loses status.
xtmp=/tmp/9c.$$.$USER.out
$cc -DPLAN9PORT -I$PLAN9/include $cflags "$@" 2>$xtmp
status=$?
quiet $xtmp
rm -f $xtmp
exit $status
