YACC=			yacc
FLEX=			flex

main:			y.tab.o lex.yy.o main.o tree.h tree.o error.h error.o memory.h memory.o weed.h weed.o symbol.h symbol.o type.h type.o defasn.h defasn.o resource.h resource.o code.h code.o optimize.h optimize.o emit.h emit.o
			$(CC) lex.yy.o y.tab.o tree.o error.o memory.o weed.o symbol.o type.o defasn.o resource.o code.o optimize.o emit.o main.o -o joos -lfl

y.tab.c y.tab.h:	joos.y
			${YACC} -d joos.y

lex.yy.c:		joos.l y.tab.h 
			${FLEX} joos.l

clean:
			@rm *.o joos lex.yy.c y.tab.c y.tab.h
