CC 		= gcc
BISON	= bison
FLEX	= flex
CFLAGS 	= -Wall -ansi -pedantic
LFLAGS	= -lfl

OFILES	= main.o tree.o error.o memory.o weed.o symbol.o type.o defasn.o \
			resource.o code.o optimize.o emit.o

HFILES	= tree.h error.h memory.h weed.h symbol.h type.h defasn.h \
			resource.h code.h optimize.h emit.h

######################

main: y.tab.o lex.yy.o $(HFILES) $(OFILES)
	$(CC) lex.yy.o y.tab.o $(OFILES) $(LFLAGS) -o joos

y.tab.c y.tab.h: joos.y
	$(BISON) -y -d joos.y

lex.yy.c: joos.l y.tab.h 
	$(FLEX) joos.l


clean:
	@rm $(OFILES) joos lex.yy.o y.tab.o
