1*dd88ab32SMasahiro Yamada#!/bin/sh 2*dd88ab32SMasahiro Yamada# 3*dd88ab32SMasahiro Yamada# gcc-version [-p] gcc-command 4*dd88ab32SMasahiro Yamada# 5*dd88ab32SMasahiro Yamada# Prints the gcc version of `gcc-command' in a canonical 4-digit form 6*dd88ab32SMasahiro Yamada# such as `0295' for gcc-2.95, `0303' for gcc-3.3, etc. 7*dd88ab32SMasahiro Yamada# 8*dd88ab32SMasahiro Yamada# With the -p option, prints the patchlevel as well, for example `029503' for 9*dd88ab32SMasahiro Yamada# gcc-2.95.3, `030301' for gcc-3.3.1, etc. 10*dd88ab32SMasahiro Yamada# 11*dd88ab32SMasahiro Yamada 12*dd88ab32SMasahiro Yamadaif [ "$1" = "-p" ] ; then 13*dd88ab32SMasahiro Yamada with_patchlevel=1; 14*dd88ab32SMasahiro Yamada shift; 15*dd88ab32SMasahiro Yamadafi 16*dd88ab32SMasahiro Yamada 17*dd88ab32SMasahiro Yamadacompiler="$*" 18*dd88ab32SMasahiro Yamada 19*dd88ab32SMasahiro Yamadaif [ ${#compiler} -eq 0 ]; then 20*dd88ab32SMasahiro Yamada echo "Error: No compiler specified." 21*dd88ab32SMasahiro Yamada printf "Usage:\n\t$0 <gcc-command>\n" 22*dd88ab32SMasahiro Yamada exit 1 23*dd88ab32SMasahiro Yamadafi 24*dd88ab32SMasahiro Yamada 25*dd88ab32SMasahiro YamadaMAJOR=$(echo __GNUC__ | $compiler -E -xc - | tail -n 1) 26*dd88ab32SMasahiro YamadaMINOR=$(echo __GNUC_MINOR__ | $compiler -E -xc - | tail -n 1) 27*dd88ab32SMasahiro Yamadaif [ "x$with_patchlevel" != "x" ] ; then 28*dd88ab32SMasahiro Yamada PATCHLEVEL=$(echo __GNUC_PATCHLEVEL__ | $compiler -E -xc - | tail -n 1) 29*dd88ab32SMasahiro Yamada printf "%02d%02d%02d\\n" $MAJOR $MINOR $PATCHLEVEL 30*dd88ab32SMasahiro Yamadaelse 31*dd88ab32SMasahiro Yamada printf "%02d%02d\\n" $MAJOR $MINOR 32*dd88ab32SMasahiro Yamadafi 33