CPP = gcc
CFLAGS = -I../Include -c -g

SRCS = vBTee.cc vm.cc CardRecord.cc ListRecord.cc CommandScreen.cc \
	EditForm.cc ScrollPrompt.cc LLScrollPrompt.cc Terminal.cc \
	ParseExpr.y EvalExpr.cc Card.cc PTree.cc LList.cc

OBJS = vBTree.o vm.o CardRecord.o ListRecord.o CommandScreen.o \
	EditForm.o ScrollPrompt.o LLScrollPrompt.o Terminal.o \
	ParseExpr.o EvalExpr.o Card.o PTree.o LList.o

LIBR = liblibr.a

$(LIBR) : $(OBJS)
	ar rv $(LIBR) $(OBJS)
	ranlib $(LIBR)


vm.o : vm.cc ../Include/common.h ../Include/vm.h
	$(CPP) $(CFLAGS) vm.cc -o vm.o

vBTree.o : vBTree.cc ../Include/common.h ../Include/vm.h ../Include/vBTree.h
	$(CPP) $(CFLAGS) vBTree.cc -o vBTree.o

CardRecord.o : CardRecord.cc ../Include/common.h ../Include/Card.h \
		../Include/CardRecord.h
	$(CPP) $(CFLAGS) CardRecord.cc -o CardRecord.o

ListRecord.o : ListRecord.cc ../Include/common.h ../Include/ListRecord.h
	$(CPP) $(CFLAGS) ListRecord.cc -o ListRecord.o

Card.o : Card.cc ../Include/common.h ../Include/Card.h
	$(CPP) $(CFLAGS) Card.cc -o Card.o

LList.o : LList.cc ../Include/common.h ../Include/LList.h
	$(CPP) $(CFLAGS) LList.cc -o LList.o

PTree.o : PTree.cc ../Include/common.h ../Include/PTree.h
	$(CPP) $(CFLAGS) PTree.cc -o PTree.o

Terminal.o : Terminal.cc ../Include/common.h ../Include/Terminal.h
	$(CPP) $(CFLAGS) Terminal.cc -o Terminal.o

CommandScreen.o : CommandScreen.cc ../Include/common.h ../Include/Terminal.h \
		../Include/CommandScreen.h
	$(CPP) $(CFLAGS) CommandScreen.cc -o CommandScreen.o

EditForm.o : EditForm.cc ../Include/common.h ../Include/Terminal.h \
		../Include/EditForm.h
	$(CPP) $(CFLAGS) EditForm.cc -o EditForm.o

ScrollPrompt.o : ScrollPrompt.cc ../Include/common.h ../Include/Terminal.h \
		../Include/ScrollPrompt.h
	$(CPP) $(CFLAGS) ScrollPrompt.cc -o ScrollPrompt.o

LLScrollPrompt.o : LLScrollPrompt.cc ../Include/common.h ../Include/Terminal.h \
		../Include/LLScrollPrompt.h ../Include/LList.h
	$(CPP) $(CFLAGS) LLScrollPrompt.cc -o LLScrollPrompt.o

ParseExpr.o : ParseExpr.tab.cc ../Include/common.h ../Include/Card.h \
	      ../Include/PTree.h
	$(CPP) $(CFLAGS) -DYYDEBUG=1 ParseExpr.tab.cc -o ParseExpr.o

EvalExpr.o : EvalExpr.cc ../Include/common.h ../Include/Card.h \
	      ../Include/PTree.h
	$(CPP) $(CFLAGS) EvalExpr.cc -o EvalExpr.o

ParseExpr.tab.cc : ParseExpr.y
	bisonpp -vd ParseExpr.y

