diff options
Diffstat (limited to 'contrib/gdb/gdb/gdb_indent.sh')
-rwxr-xr-x | contrib/gdb/gdb/gdb_indent.sh | 34 |
1 files changed, 29 insertions, 5 deletions
diff --git a/contrib/gdb/gdb/gdb_indent.sh b/contrib/gdb/gdb/gdb_indent.sh index e54e08e..b210161 100755 --- a/contrib/gdb/gdb/gdb_indent.sh +++ b/contrib/gdb/gdb/gdb_indent.sh @@ -36,24 +36,48 @@ fi # Check that the indent found is both GNU and a reasonable version. # Different indent versions give different indentation. -case `${indent} --version 2>/dev/null < /dev/null` in - GNU*2.2.6 ) ;; - *GNU* ) echo "Incorrect version of GNU indent" 1>&2 ;; - * ) echo "Indent is not GNU" 1>&2 ;; +m1=2 +m2=2 +m3=9 + +version=`${indent} --version 2>/dev/null < /dev/null` +case "${version}" in + *GNU* ) ;; + * ) echo "error: GNU indent $m1.$m2.$m3 expected" 1>&2 ; exit 1;; esac +v1=`echo "${version}" | sed 's/^.* \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)$/\1/'` +v2=`echo "${version}" | sed 's/^.* \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)$/\2/'` +v3=`echo "${version}" | sed 's/^.* \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)$/\3/'` + +if test $m1 -ne $v1 -o $m2 -ne $v2 -o $m3 -gt $v3 +then + echo "error: Must be GNU indent version $m1.$m2.$m3 or later" 1>&2 + exit 1 +fi +if test $m3 -ne $v3 +then + echo "warning: GNU indent version $m1.$m2.$m3 recommended" 1>&2 +fi # Check that we're in the GDB source directory case `pwd` in */gdb ) ;; + */sim/* ) ;; * ) echo "Not in GDB directory" 1>&2 ; exit 1 ;; esac # Run indent per GDB specs -types="-T FILE `cat *.h | sed -n \ +types="\ +-T FILE \ +-T bfd -T asection -T pid_t \ +-T prgregset_t -T fpregset_t -T gregset_t -T sigset_t \ +-T td_thrhandle_t -T td_event_msg_t -T td_thr_events_t \ +-T td_notify_t -T td_thr_iter_f -T td_thrinfo_t \ +`cat *.h | sed -n \ -e 's/^.*[^a-z0-9_]\([a-z0-9_]*_ftype\).*$/-T \1/p' \ -e 's/^.*[^a-z0-9_]\([a-z0-9_]*_func\).*$/-T \1/p' \ -e 's/^typedef.*[^a-zA-Z0-9_]\([a-zA-Z0-9_]*[a-zA-Z0-9_]\);$/-T \1/p' \ |