You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

94 lines
2.1 KiB

#!/bin/sh
gcc_version() {
local cc
if [ -z "$1" ]; then
cc=gcc
else
cc=$1-gcc
fi
local ver=
if command -v "$cc" 2>&1 >/dev/null; then
ver=$("$cc" --version | head -n 1)
fi
if [ -z "$ver" ]; then
ver=missing/error
fi
printf "%s" "$ver"
}
get_define() {
local cc="$1"
local line=
if command -v "$cc" 2>&1 >/dev/null; then
line=$(echo "$3" | "$cc" -x c -include "$2" -E -o - - 2>&1 | sed -e '/^[ ]*#/d' -e '/^[ ]*$/d')
fi
if [ -z "$line" ]; then
line=missing/error
fi
printf "%s" "$line"
}
newlib_version() {
if [ -z "$1" ]; then
cc=gcc
else
cc=$1-gcc
fi
printf "%s" "$(get_define "$cc" newlib.h _NEWLIB_VERSION)"
}
avr_libc_version() {
if [ -z "$1" ]; then
cc=gcc
else
cc=$1-gcc
fi
printf "%s (%s)" "$(get_define "$cc" avr/version.h __AVR_LIBC_VERSION_STRING__)" "$(get_define "$cc" avr/version.h __AVR_LIBC_DATE_STRING__)"
}
cppcheck_version() {
local cmd="cppcheck"
if command -v "$cmd" 2>&1 >/dev/null; then
ver=$("$cmd" --version | head -n 1)
else
ver="missing"
fi
printf "%s" "$ver"
}
spatch_version() {
local cmd="spatch"
if command -v "$cmd" 2>&1 >/dev/null; then
ver=$("$cmd" --version | head -n 1)
else
ver="missing"
fi
printf "%s" "$ver"
}
printf "%s\n" "Installed toolchain versions"
printf "%s\n" "----------------------------"
VER=$(gcc --version | head -n 1)
if [ -n "$VER" ]; then
printf "%20s: %s\n" "native gcc" "$VER"
fi
for p in msp430 avr arm-none-eabi mips-mti-elf; do
printf "%20s: %s\n" "$p-gcc" "$(gcc_version "$p")"
done
VER=$(clang --version | head -n 1)
if [ -n "$VER" ]; then
printf "%20s: %s\n" "clang" "$VER"
fi
for p in arm-none-eabi mips-mti-elf; do
printf "%20s: %s\n" "$p-newlib" "$(newlib_version "$p")"
done
for p in avr; do
printf "%20s: %s\n" "$p-libc" "$(avr_libc_version "$p")"
done
printf "%20s: %s\n" "cppcheck" "$(cppcheck_version)"
printf "%20s: %s\n" "coccinelle" "$(spatch_version)"
exit 0