198944Sobrien#!/bin/sh 298944Sobrien 398944Sobrien# Try to find a GNU indent. There could be a BSD indent in front of a 498944Sobrien# GNU gindent so when indent is found, keep looking. 598944Sobrien 698944Sobriengindent= 798944Sobrienindent= 898944Sobrienpaths=`echo $PATH | sed \ 998944Sobrien -e 's/::/:.:/g' \ 1098944Sobrien -e 's/^:/.:/' \ 1198944Sobrien -e 's/:$/:./' \ 1298944Sobrien -e 's/:/ /g'` 1398944Sobrienfor path in $paths 1498944Sobriendo 1598944Sobrien if test ! -n "${gindent}" -a -x ${path}/gindent 1698944Sobrien then 1798944Sobrien gindent=${path}/gindent 1898944Sobrien break 1998944Sobrien elif test ! -n "${indent}" -a -x ${path}/indent 2098944Sobrien then 2198944Sobrien indent=${path}/indent 2298944Sobrien fi 2398944Sobriendone 2498944Sobrien 2598944Sobrienif test -n "${gindent}" 2698944Sobrienthen 2798944Sobrien indent=${gindent} 2898944Sobrienelif test -n "${indent}" 2998944Sobrienthen 3098944Sobrien : 3198944Sobrienelse 3298944Sobrien echo "Indent not found" 1>&2 3398944Sobrienfi 3498944Sobrien 3598944Sobrien 3698944Sobrien# Check that the indent found is both GNU and a reasonable version. 3798944Sobrien# Different indent versions give different indentation. 3898944Sobrien 39130803Smarcelm1=2 40130803Smarcelm2=2 41130803Smarcelm3=9 42130803Smarcel 43130803Smarcelversion=`${indent} --version 2>/dev/null < /dev/null` 44130803Smarcelcase "${version}" in 45130803Smarcel *GNU* ) ;; 46130803Smarcel * ) echo "error: GNU indent $m1.$m2.$m3 expected" 1>&2 ; exit 1;; 4798944Sobrienesac 48130803Smarcelv1=`echo "${version}" | sed 's/^.* \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)$/\1/'` 49130803Smarcelv2=`echo "${version}" | sed 's/^.* \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)$/\2/'` 50130803Smarcelv3=`echo "${version}" | sed 's/^.* \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)$/\3/'` 5198944Sobrien 52130803Smarcelif test $m1 -ne $v1 -o $m2 -ne $v2 -o $m3 -gt $v3 53130803Smarcelthen 54130803Smarcel echo "error: Must be GNU indent version $m1.$m2.$m3 or later" 1>&2 55130803Smarcel exit 1 56130803Smarcelfi 5798944Sobrien 58130803Smarcelif test $m3 -ne $v3 59130803Smarcelthen 60130803Smarcel echo "warning: GNU indent version $m1.$m2.$m3 recommended" 1>&2 61130803Smarcelfi 62130803Smarcel 6398944Sobrien# Check that we're in the GDB source directory 6498944Sobrien 6598944Sobriencase `pwd` in 6698944Sobrien */gdb ) ;; 67130803Smarcel */sim/* ) ;; 6898944Sobrien * ) echo "Not in GDB directory" 1>&2 ; exit 1 ;; 6998944Sobrienesac 7098944Sobrien 7198944Sobrien 7298944Sobrien# Run indent per GDB specs 7398944Sobrien 74130803Smarceltypes="\ 75130803Smarcel-T FILE \ 76130803Smarcel-T bfd -T asection -T pid_t \ 77130803Smarcel-T prgregset_t -T fpregset_t -T gregset_t -T sigset_t \ 78130803Smarcel-T td_thrhandle_t -T td_event_msg_t -T td_thr_events_t \ 79130803Smarcel-T td_notify_t -T td_thr_iter_f -T td_thrinfo_t \ 80130803Smarcel`cat *.h | sed -n \ 8198944Sobrien -e 's/^.*[^a-z0-9_]\([a-z0-9_]*_ftype\).*$/-T \1/p' \ 8298944Sobrien -e 's/^.*[^a-z0-9_]\([a-z0-9_]*_func\).*$/-T \1/p' \ 8398944Sobrien -e 's/^typedef.*[^a-zA-Z0-9_]\([a-zA-Z0-9_]*[a-zA-Z0-9_]\);$/-T \1/p' \ 8498944Sobrien | sort -u`" 8598944Sobrien 8698944Sobrien${indent} ${types} "$@" 87