#!/bin/sh
#
# Probe the compiler for vintage, version, etc. This is used for setting
# optional make knobs under the DEVELOPER knob.

CC="$*"

# we get something like (this is at least true for gcc and clang)
#
# FreeBSD clang version 3.4.1 (tags/RELEASE...)
get_version_line() {
	LANG=C LC_ALL=C $CC -v 2>&1 | grep ' version '
}

get_family() {
	get_version_line | sed 's/^\(.*\) version [0-9].*/\1/'
}

get_version() {
	get_version_line | sed 's/^.* version \([0-9][^ ]*\).*/\1/'
}

print_flags() {
	family=$1
	version=$(get_version | cut -f 1 -d .)

	# Print a feature flag not only for the current version, but also
	# for any prior versions we encompass. This avoids needing to do
	# numeric comparisons in make, which are awkward.
	while test "$version" -gt 0
	do
		echo $family$version
		version=$((version - 1))
	done
}

case "$(get_family)" in
gcc)
	print_flags gcc
	;;
clang | *" clang")
	print_flags clang
	;;
"Apple LLVM")
	print_flags clang
	;;
*)
	: unknown compiler family
	;;
esac
