#! /bin/sh
#
# $Header: maketags,v 4.300 91/06/09 06:23:17 root Rel41 $ SONY;
#

#'
#  @(#)maketags	1.2 87/04/28 3.2/4.3NFSSRC
#  Make tags file for kernel.  Includes hacks for assembly language files
#'

DIRS="conf h krpc net netimp netinet netns nfs rpc rpcsvc \
	specfs sys ufs \
	news newsbm newsfb newshbdev newsif \
	newsiodev newsiop newsipc newskbms newsrd newsvme \
	newsvd newsxd"

for d in $DIRS
do
	echo "--- Directory $d ---"
	ctags ../$d/*.[ch]
	case $d in
	    news)
		ex - tags << EOF
%g/Locore.c/d
wq
EOF
		mv tags tags.news
		rm -f tags
		echo " --- news assembler files ---"
		for i in ../news/*.s
		do
			LABELS="`egrep \^_.\*: $i | sed -e s/\^_// -e s,\^/../,, -e s/:.\*//`"
			for j in $LABELS
			do
				LINE="`egrep \^_${j}: $i | sed -e s,/.\*,,`"
				echo "$j	$i	/^${LINE}$/" >> tags.news
			done
		done
#		# get stuff changed in the sed file
#		echo " --- news sed script ---"
#		i=../news/asm.sed
#		LABELS="`egrep ,_.\*/ $i | sed -e s/\^.*,_// -e s,/.*,,`"
#		for j in $LABELS
#		do
#			echo "$j	$i	/,_${j}/" >> tags.news
#		done
		;;
	    *)
		mv tags tags.$d
	esac
done

echo sorting into tags
sort tags.* > tags
rm tags.*
exit 0
