		CC=gcc
		CXX=g++
		LEX=flex -I
		YACC=bison -d
		CFLAGS=-gstabs+
		CXXFLAGS=-gstabs+
		LDFLAGS=-gstabs+
		LOADLIBES=-ll -ly -lg++

scm:		scm.o read.o read.tab.o eval.o print.o objects.o lex.yy.o symboltable.o
	$(CXX) -o scm $(LDFLAGS) $^ $(LOADLIBES)

scm.o:		scm.cc objects.h read.extern.h symboltable.h

eval.o:		eval.cc objects.h

print.o:	print.cc objects.h

objects.o:	objects.cc objects.h

read.o:         read.cc read.extern.h

symboltable.o:	symboltable.cc symboltable.h objects.h

lex.yy.o:	lex.yy.c
	$(CXX) $(CXXFLAGS) -c lex.yy.c

read.tab.o:     read.tab.c read.tab.h
	$(CXX) $(CXXFLAGS) -c read.tab.c

lex.yy.c:	read.l read.tab.h top
	$(LEX) read.l
	cat top read.tab.h > outtemp
	mv outtemp read.tab.h

read.tab.c:      read.y par.h
	$(YACC) read.y

mostlyclean:
	rm -f *.o scm

clean:	mostlyclean
	rm -f lex.yy.c



# eval.cc: RCS/eval.cc,v
# 	co -rv3 eval.cc
objects.cc: RCS/objects.cc,v
	co -rv3 objects.cc
objects.h: RCS/objects.h,v
	co -rv3 objects.h
par.h: RCS/par.h,v
	co -rv3 par.h
print.cc: RCS/print.cc,v
	co -rv3 print.cc
read.cc: RCS/read.cc,v
	co -rv3 read.cc
read.extern.h: RCS/read.extern.h,v
	co -rv3 read.extern.h
read.l: RCS/read.l,v
	co -rv3 read.l
read.y: RCS/read.y,v
	co -rv3 read.y
scm.cc: RCS/scm.cc,v
	co -rv3 scm.cc
symboltable.cc: RCS/symboltable.cc,v
	co -rv3 symboltable.cc
symboltable.h: RCS/symboltable.h,v
	co -rv3 symboltable.h
