#!/bin/sh -
#	$Id: s_recover,v 1.3 2000/03/30 05:24:36 krinsky Exp $
#
# Build the automatically generated logging/recovery files.

DIR="db btree hash log qam txn"

t=/tmp/__db_$$
loglist=../test/logtrack.list
rm -f $t
rm -f $loglist

trap 'rm -f $t; exit 1' 1 2 3 13 15

# Use the standard -k option if it works;
# otherwise fall back on the traditional notation.
if sort -k 1,1 /dev/null
then sort_2_etc='-k 2'
else sort_2_etc='+1'
fi

# Check to make sure we haven't duplicated a log record entry, and build
# the list of log record types that the test suite uses.
for i in $DIR; do
	p=none
	for f in ../$i/*.src; do
		# Grab the PREFIX;  there should only be one per file, and
		# so it's okay to just take the first.
		grep '^PREFIX' $f | sed q
		egrep '^DEPRECATED[	 ]|^BEGIN[	 ]' $f | \
		    awk '{print $1 "\t" $2 "\t" $3}'

	done
done > $loglist
grep -v '^PREFIX' $loglist | awk '{print $2 "\t" $3}' | \
    sort $sort_2_etc -n | \
    uniq -d -f 1 > $t
[ -s $t ] && {
	echo "DUPLICATE LOG VALUES:"
	cat $t
	rm -f $t
	exit 1
}
rm -f $t

for i in db btree hash log qam txn; do
	for f in ../$i/*.src; do
		subsystem=`basename $f .src`
		header_file=../include/${subsystem}_auto.h
		source_file=../$i/${subsystem}_auto.c
		template_file=template/rec_${subsystem}
		template_source=.

		echo "Building $source_file, $header_file, $template_file"
		rm -f $header_file $source_file $template_file
		awk -f gen_rec.awk \
		    -v subsystem=$subsystem \
		    -v source_file=$source_file \
		    -v header_file=$header_file \
		    -v template_file=$template_file \
		    -v template_dir=. < $f
		chmod 444 $header_file $source_file $template_file
	done
done
