PROGSRCS	=\
				test_chio.cc \
				test_parse.cc \
				$(NULL)
PROGOBJS	=	$(PROGSRCS:%.cc=%.o)
PROGS		=	$(PROGSRCS:%.cc=%)

CXXFLAGS	=	-m486 -g -O
CPPFLAGS	+= \
			-I.. \
			$(NULL)

LIBDEPEND = \
			../libchio.a \
			$(NULL)
LIBDIRS		= \
			.. \
			$(NULL)
LIBFILES	= \
			chio \
			$(NULL)
LDFLAGS		=	$(LIBDIRS:%=-L%)
LOADLIBES	=	$(LIBFILES:%=-l%)

TESTFILES	= \
			foo.gsm \
			bad.gsm \
			$(NULL)

CLEANFILES	= \
			*.o \
			*.d \
			Makefile.bak \
			$(PROGS) \
			$(NULL)

TIDYFILES	= \
			test_chio.out \
			foo.out.gsm \
			bad.out.gsm \
			core \
			a.out \
			$(NULL)

.PHONEY : all clean tidy run_test

all : $(PROGS)

test_chio : test_chio.o $(LIBDEPEND)
	g++ -o test_chio $(CXXFLAGS) $(LDFLAGS) test_chio.o $(LOADLIBES)

test_parse : test_parse.o $(LIBDEPEND)
	g++ -o test_parse $(CXXFLAGS) $(LDFLAGS) test_parse.o $(LOADLIBES)

clean :
	$(RM) $(CLEANFILES) $(TIDYFILES)

tidy :
	$(RM) $(TIDYFILES)

run_test : $(PROGS)
	test_chio > test_chio.out
	test_parse < foo.gsm > foo.out.gsm
	diff foo.gsm foo.out.gsm
	test_parse < bad.gsm > bad.out.gsm

%.d : %.cc
	@$(SHELL) -ec '$(CXX) -MM $(CPPFLAGS) $< \
		| sed '\''s/\($*\.o\)[ :]*/\1 $@ : /g'\'' > $@'

include $(PROGSRCS:.cc=.d)
