# 
#  A set of tests for gawk - ST version of Makefile.
#  This makefile is known to work with gulam shell.
#  Before running ensure that $(RM) macro is defined to
#  an operation which deletes files unconditionally
#  and that pushd and popd are meaningful to your shell.
#  It is assumed that gawk executables are somewhere in your $PATH.
#

PUSHD=pushd
POPD=popd

all:	msg awft pearl swaplns delete argarray longwrds lispt \
	fixwt ignorec posixt compt manyt chemt arrayrft fstp

msg:
	@echo 'Any output from "diff" is bad news!'
	@echo 'be patient - some tests will take a longer while'

awft:
	$(PUSHD) awf
	awf.g
	$(POPD)

pearl:
	$(PUSHD) pearls
	gawk -f pearls >tmp
	diff good tmp; $(RM) tmp
	$(POPD)

resub:
	gawk -f re_gen.awk re_data >tmp
	diff t_re.goo tmp
	gawk -f sub_gen.awk sub_data >tmp
	diff t_sub.goo tmp

swaplns:
	@gawk -f swaplns.awk data >tmp
	diff swaplns.out tmp; $(RM) tmp

delete:
	@gawk -f delete.awk

messages:
	@gawk -f messages.awk >out2
	diff out1.good out1; diff out2.good out2
	@$(RM) out1 out2

argarray:
	setenv TEST test
	gawk -f argarray.awk >tmp
	diff argarray.out tmp
	unsetenv TEST
	@$(RM) tmp

longwrds:
	@gawk -f longwrds.awk manpage >tmp
	diff longwrds.out tmp ; $(RM) tmp

chemt:
	$(PUSHD) chem 
	gawk -f chem.awk *.p >tmp
	diff good tmp
	$(RM) tmp
	$(POPD)

lispt::
	$(PUSHD)  lisp 
	gawk -f walk *.w >tmp
	diff good tmp
	$(RM) tmp
	$(POPD)

fixwt::
	gawk -v 'FIELDWIDTHS=2 3 4' '{print $$2}' fieldw.in > tmp
	diff fieldw.out tmp
	$(RM) tmp
	

ignorec::
	gawk -v IGNORECASE=1 '{sub(/y/, ""); print}' ignorec.in > tmp
	diff ignorec.out tmp
	$(RM) tmp

posixt::
	gawk -f posix posix.in >tmp
	diff posix.goo tmp
	$(RM) tmp

compt::
	gawk -f compare.awk 0 1 compare.in > tmp 
	diff compare.goo tmp
	$(RM) tmp

manyt::
	mkdir junk
	gawk -f manyfile.awk manyf.in manyf.in
	gawk -f manychk.awk manychk.awk
	$(RM) junk\*
	rmdir junk

regt::
	regtest.g

arrayrft::
	gawk -f arrayref >tmp
	diff arrayref.goo tmp
	$(RM) tmp

fstp::
	gawk -f fstabpls fstabpls.in > tmp
	diff fstabpls.goo tmp
	$(RM) tmp

