SHELL = /bin/sh

SED=time ./sed
USED=./sed
SSED=time /usr/bin/sed
USSED=/usr/bin/sed

all: subs othersedcmds cmdlines clean fail 

subs:	enable sep inclib 8bit newjis cv-vars manis xabcx dollar noeol sub-num sub-all subwrite head middle maddingcrowd mac-mf

othersedcmds: khadafy spencer linecnt distrib writeout readin

cmdlines: help version file quiet

fail: 8to7

enable::
	$(SED) -f enable.sed < enable.inp > tmp
	cmp enable.good tmp
	$(SSED) -f enable.sed < enable.inp > tmp2
	cmp enable.good tmp2

sep::
	$(SED) -f sep.sed < sep.inp > tmp
	cmp sep.good tmp
	$(SSED) -f sep.sed < sep.inp > tmp2
	cmp sep.good tmp2

inclib::
	$(SED) -f inclib.sed < inclib.inp > tmp
	cmp inclib.good tmp
	$(SSED) -f inclib.sed < inclib.inp > tmp2
	cmp inclib.good tmp2

8bit::
	$(SED) -f 8bit.sed < 8bit.inp > tmp
	cmp 8bit.good tmp
	$(SSED) -f 8bit.sed < 8bit.inp > tmp2
	cmp 8bit.good tmp2

newjis::
	$(SED) -f newjis.sed < newjis.inp > tmp
	cmp newjis.good tmp
	$(SSED) -f newjis.sed < newjis.inp > tmp2
	cmp newjis.good tmp2

cv-vars::
	$(SED) -n -f cv-vars.sed < cv-vars.inp > tmp
	cmp cv-vars.good tmp
	$(SSED) -n -f cv-vars.sed < cv-vars.inp > tmp2
	cmp cv-vars.good tmp2

head::
	$(SED) -f head.sed < head.inp > tmp
	cmp head.good tmp
	$(SSED) -f head.sed < head.inp > tmp2
	cmp head.good tmp2

manis::
	$(SED) -f manis.sed < manis.inp > tmp
	cmp manis.inp tmp
	$(SSED) -f manis.sed < manis.inp > tmp2
	cmp manis.inp tmp2

xabcx::
	$(SED) -f xabcx.sed < xabcx.inp > tmp
	cmp xabcx.good tmp
	$(SSED) -f xabcx.sed < xabcx.inp > tmp2
	cmp xabcx.good tmp2

middle::
	$(SED) -n -f middle.sed < head.inp > tmp
	cmp middle.good tmp
	$(SSED) -n -f middle.sed < head.inp > tmp2
	cmp middle.good tmp2

dollar::
	$(SED) -f dollar.sed < dollar.inp > tmp
	cmp dollar.good tmp
	$(SSED) -f dollar.sed < dollar.inp > tmp2
	cmp dollar.good tmp2

noeol::
	$(SED) -f noeol.sed < noeol.inp > tmp
	cmp noeol.good tmp
	$(SSED) -f noeol.sed < noeol.inp > tmp2
	cmp noeol.good tmp2

sub-num::
	$(SED) -f sub-num.sed < sub-num.inp > tmp
	cmp sub-num.good tmp
	$(SSED) -f sub-num.sed < sub-num.inp > tmp2
	cmp sub-num.good tmp2

sub-all::
	$(SED) -f sub-all.sed < sub-num.inp > tmp
	cmp sub-all.good tmp
	$(SSED) -f sub-all.sed < sub-num.inp > tmp2
	cmp sub-all.good tmp2

subwrite::
	$(SED) -f subwrite.sed < subwrite.inp > tmp1
	cmp subwrite.good1 tmp1
	cmp subwrite.good2 tmp2
	$(SSED) -f subwrite.sed < subwrite.inp > tmp1
	cmp subwrite.good1 tmp1
	cmp subwrite.good2 tmp2

khadafy::
	$(SED) -f khadafy.sed < khadafy.inp > tmp
	cmp tmp khadafy.inp
	$(SSED) -f khadafy.sed < khadafy.inp > tmp2
	cmp tmp2 khadafy.inp

spencer::
	sh spencer.sh $(USED) <  spencer.inp > spencer.tmp 
	sh spencer.tmp

# this 1003.2 feature (l) hasn't been implemented yet, hence the
# -cmp instead of just cmp--we know it's going to fail.
8to7::
	$(SED) -f 8to7.sed < 8bit.inp > tmp
	-cmp tmp 8to7.good
	$(SSED) -f 8to7.sed < 8bit.inp > tmp2
	-cmp tmp2 8to7.good

linecnt::
	$(SED) -f linecnt.sed < linecnt.inp > tmp
	cmp tmp linecnt.good
	$(SSED) -f linecnt.sed < linecnt.inp > tmp2
	cmp tmp2 linecnt.good

distrib::
	sh distrib.sh $(USED) < distrib.inp > tmp
	cmp tmp distrib.good

writeout::
	$(SED) -f writeout.sed < writeout.inp >tmp1
	cmp tmp1 writeout.good1
	cmp tmp2 writeout.good2

readin::
	$(SED) -f readin.sed < readin.inp >tmp
	cmp tmp readin.good
	$(SSED) -f readin.sed < readin.inp >tmp2
	cmp tmp2 readin.good

maddingcrowd::
	$(SED) -f maddingcrowd.sed < maddingcrowd.inp > tmp
	cmp tmp maddingcrowd.good
	echo DO NOT $(SSED) -f maddingcrowd.sed < maddingcrowd.inp > tmp2
	echo sed 2.05....  t->+inf

mac-mf::
	$(SED) -f mac-mf.sed < mac-mf.inp > tmp
	cmp tmp mac-mf.good
	$(SSED) -f mac-mf.sed < mac-mf.inp > tmp2
	cmp tmp2 mac-mf.good

#
# cmdlines targets
#

help::
	$(USED) --help > tmp1
	$(USED) -h > tmp2
	-$(USED) > tmp3 2>&1
	cmp tmp1 tmp2
	cmp tmp2 tmp3
	-cmp tmp1 help.good

version::
	$(USED) --version  > tmp1 2>&1
	$(USED) -V > tmp2 2>&1
	cmp tmp1 tmp2
	-cmp tmp1 version.good

file::
	$(SED) --file=newjis.sed < newjis.inp > tmp
	cmp newjis.good tmp
	$(SSED) --file=newjis.sed < newjis.inp > tmp2
	cmp newjis.good tmp2

quiet::
	$(SED) --quiet -f cv-vars.sed < cv-vars.inp > tmp
	cmp cv-vars.good tmp
	$(SSED) --quiet -f cv-vars.sed < cv-vars.inp > tmp2
	cmp cv-vars.good tmp2

#
#
#

clean:
	rm -f tmp tmp1 tmp2 tmp3 core junk spencer.tmp
