#!/bin/sh export LANG; LANG=C case $# in 0) exec make idtest-real;; esac srcdir=$1 buildir=$2 PATH=$buildir/src:$PATH f_ID="-f $buildir/ID" files="`find $srcdir -name \*.h; find $srcdir -name \*.c |egrep -v 'lib/ansi2knr\.c$'`" cmd="mkid $f_ID -m $srcdir/lib/language.map $files" echo $cmd eval $cmd errors= if idx $files |sort -u >ID.idx && lid $idfile_arg |sed -e 's/[ ].*//' |sort -u >ID.lid && cmp -s ID.idx ID.lid then rm -f ID.idx ID.lid echo "Good. idx and lid agree." else mv ID.idx ID.bad-idx mv ID.fid ID.bad-fid 1>&2 echo "Oops! idx and lid disagree--look in ID.bad-{idx,lid}" errors=t fi idx_file=$$.idx fid_file=$$.fid for file in $files do case x$file in x-*) scan_args="$scan_args $file" continue;; esac if fid $idfile_arg $file >$fid_file && idx $scan_args $file |sort -u >$idx_file && cmp -s $idx_file $fid_file; then echo "Good. idx and fid agree for $file" else 1>&2 echo "Oops! idx and fid disagree for $file--look in $file.bad-{idx,fid}" mv $idx_file $file.bad-idx mv $fid_file $file.bad-fid errors=t fi done rm -f $idx_file $fid_file case x$errors in xt) echo "Some checks failed." echo "mkid and friends are broken--boo hoo!" exit 1;; *) echo "All checks successful." echo "mkid and friends are happy!" exit 0;; esac