1#!/bin/sh 2 3# Try to find a GNU indent. There could be a BSD indent in front of a 4# GNU gindent so when indent is found, keep looking. 5 6gindent= 7indent= 8paths=`echo $PATH | sed \ 9 -e 's/::/:.:/g' \ 10 -e 's/^:/.:/' \ 11 -e 's/:$/:./' \ 12 -e 's/:/ /g'` 13for path in $paths 14do 15 if test ! -n "${gindent}" -a -x ${path}/gindent 16 then 17 gindent=${path}/gindent 18 break 19 elif test ! -n "${indent}" -a -x ${path}/indent 20 then 21 indent=${path}/indent 22 fi 23done 24 25if test -n "${gindent}" 26then 27 indent=${gindent} 28elif test -n "${indent}" 29then 30 : 31else 32 echo "Indent not found" 1>&2 33fi 34 35 36# Check that the indent found is both GNU and a reasonable version. 37# Different indent versions give different indentation. 38 39m1=2 40m2=2 41m3=9 42 43version=`${indent} --version 2>/dev/null < /dev/null` 44case "${version}" in 45 *GNU* ) ;; 46 * ) echo "error: GNU indent $m1.$m2.$m3 expected" 1>&2 ; exit 1;; 47esac 48v1=`echo "${version}" | sed 's/^.* \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)$/\1/'` 49v2=`echo "${version}" | sed 's/^.* \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)$/\2/'` 50v3=`echo "${version}" | sed 's/^.* \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)$/\3/'` 51 52if test $m1 -ne $v1 -o $m2 -ne $v2 -o $m3 -gt $v3 53then 54 echo "error: Must be GNU indent version $m1.$m2.$m3 or later" 1>&2 55 exit 1 56fi 57 58if test $m3 -ne $v3 59then 60 echo "warning: GNU indent version $m1.$m2.$m3 recommended" 1>&2 61fi 62 63# Check that we're in the GDB source directory 64 65case `pwd` in 66 */gdb ) ;; 67 */sim/* ) ;; 68 * ) echo "Not in GDB directory" 1>&2 ; exit 1 ;; 69esac 70 71 72# Run indent per GDB specs 73 74types="\ 75-T FILE \ 76-T bfd -T asection -T pid_t \ 77-T prgregset_t -T fpregset_t -T gregset_t -T sigset_t \ 78-T td_thrhandle_t -T td_event_msg_t -T td_thr_events_t \ 79-T td_notify_t -T td_thr_iter_f -T td_thrinfo_t \ 80-T caddr_t \ 81`cat *.h | sed -n \ 82 -e 's/^.*[^a-z0-9_]\([a-z0-9_]*_ftype\).*$/-T \1/p' \ 83 -e 's/^.*[^a-z0-9_]\([a-z0-9_]*_func\).*$/-T \1/p' \ 84 -e 's/^typedef.*[^a-zA-Z0-9_]\([a-zA-Z0-9_]*[a-zA-Z0-9_]\);$/-T \1/p' \ 85 | sort -u`" 86 87${indent} ${types} "$@" 88