
1da1580e4c (Makefile: detect compiler and enable more warnings in DEVELOPER=1, 2018-04-14) uses the output of the compiler banner to detect the compiler family. Apple had since changed the wording used to refer to its compiler as clang instead of LLVM as shown by: $ cc --version Apple clang version 12.0.5 (clang-1205.0.22.9) Target: x86_64-apple-darwin20.6.0 Thread model: posix InstalledDir: /Library/Developer/CommandLineTools/usr/bin so update the script to match, and allow DEVELOPER=1 to work as expected again in macOS. Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
54 lines
1.0 KiB
Bash
Executable File
54 lines
1.0 KiB
Bash
Executable File
#!/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() {
|
|
$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)
|
|
print_flags clang
|
|
;;
|
|
"FreeBSD clang")
|
|
print_flags clang
|
|
;;
|
|
"Apple LLVM"|"Apple clang")
|
|
print_flags clang
|
|
;;
|
|
*)
|
|
: unknown compiler family
|
|
;;
|
|
esac
|