CFLAGS=$(FLAGS) -DLINUX -g
CPPFLAGS= -DLINUX -g
HDRS=y.tab.h defs.h pd.h
OBJS=y.tab.o trees.o sym.o error.o parse_dispatch.o checkfuncs.o yywrap.o funderflow.o
CPPOBJS=rtdispatch.o main.o checkInsts.o traverse.o ../rtstuff/heap/rtHeap.o
PARSEOBJS=y.tab.o trees.o sym.o graf.main.o error.o
SRCS=y.tab.c trees.c sym.c error.c parse_dispatch.c checkfuncs.c yywrap.c funderflow.c
CPPSRCS=rtdispatch.C main.C checkInsts.C traverse.C
YSRC=p.y
LSRC=lex.l


YFLAGS=-vd
LIBS=-lfl $(LDFLAGS)


all: parse load

parse: $(PARSEOBJS)
	$(CC) $(PARSEOBJS) $(LIBS) -o parse -lm

load: m.o 

m.o: $(OBJS) $(CPPOBJS)
	ld -r $(CPPOBJS) $(OBJS) -o m.o 

lex.yy.c: $(LSRC)
	lex $(LSRC)

# remove #include for unistd.h from y.tab.c after creation

y.tab.c: $(YSRC)
	yacc $(YFLAGS) $(YSRC)
	@mv y.tab.c y.tab.c.orig
	@sed '/unistd/d' y.tab.c.orig > y.tab.c

install:
	cp parse ${DESTDIR}

clean:
	rm -f *.o *~ core parse graf.main.o m.o lex.yy.[co] y.tab.[co] \
		y.tab.c.orig y.output

depend:
	grep '^#[ 	]*include[ 	]*"' ${SRCS} ${HDRS} ${YSRC} ${LSRC}| \
	      sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' \
	          -e 's/\.c/.o/' \
		  -e 's,../[a-z]*/,,' | \
	awk ' { if ($$1 != prev) { print rec; rec = $$0; prev = $$1; } \
		else { if (length(rec $$2) > 78) { print rec; rec = $$0; } \
		       else rec = rec " " $$2 } } \
	      END { print rec } ' > Makedep
	echo '/^# DO NOT DELETE THIS LINE/+2,$$d' >eddep
	echo '$$r Makedep' >>eddep
	echo 'w' >>eddep
	cp Makefile Makefile.bak
	ed - Makefile < eddep
	rm eddep Makedep
	echo '# DEPENDENCIES MUST END AT END OF FILE' >> Makefile
	echo '# IF YOU PUT STUFF HERE IT WILL GO AWAY' >> Makefile
	echo '# see make depend above' >> Makefile


# DO NOT DELETE THIS LINE


y.tab.o: defs.h lex.yy.c ext.h
trees.o: defs.h
sym.o: defs.h
main.o: ../H/ugens.h defs.h
error.o: defs.h
p.y: defs.h lex.yy.o ext.h
lex.l: y.tab.h
# DEPENDENCIES MUST END AT END OF FILE
# IF YOU PUT STUFF HERE IT WILL GO AWAY
# see make depend above




