#	Makefile for generic Unix

CC=	cc
TC=	../build/tc

default:	txx txtrn.tcode ux.tcode txopt.tcode txopt2.tcode txpp.tcode \
	txinfo.tcode
	@echo done

txtrn.tcode:	txtrn.t
	$(TC) txtrn.t

ux.tcode:	ux.t
	$(TC) ux.t

txx:	txx.o lib.o txx_ext.h
	$(CC) -o txx txx.o lib.o

txx.o:	txx.c txx_ext.h
	$(CC) -DBASIC_EXT -o txx.o -c txx.c

txopt.tcode:	txopt.t
	$(TC) txopt.t

txpp.tcode:	txpp.t
	$(TC) txpp.t

txinfo.tcode:	txinfo.t
	$(TC) txinfo.t

bnf:
	yacc tx.bnf; rm y.tab.c

diff:
	./txtrn <txtrn.t >__stage_1
	./txx __stage_1 <txtrn.t >__stage_2
	cmp __stage_1 __stage_2 && rm __stage_1 __stage_2

hotdiff:
	./txtrn <txtrn.t >__txtrn.UNOPT
	./txopt <__txtrn.UNOPT >__txtrn
	./txtrn <txopt.t >__txopt.UNOPT
	./txopt <__txopt.UNOPT >__txopt
	./txx __txtrn < txtrn.t > __txtrn_2.UNOPT
	./txx __txopt <__txtrn_2.UNOPT >__txtrn_2
	cmp __txtrn.UNOPT __txtrn_2.UNOPT
	cmp __txtrn __txtrn_2
	rm -f __txtrn.UNOPT __txtrn __txtrn_2.UNOPT __txtrn_2 \
		__txopt.UNOPT __txopt

clean:
	rm -f *.core core *.o *.ERR

clobber:	clean
	rm -f *.tcode

