# A test flex analyser
#

CC = gcc
CFLAGS = -O2
TARGET = asm
HEADERS = symbol.h expr.h forw.h emit.h
OBJS   = asmpar.tab.o lex.yy.o symbol.o expr.o forw.o emit.o

$(TARGET): $(OBJS) $(HEADERS)
	gcc -o $(TARGET) $(OBJS) -lfl -s
	cp $(TARGET) ../../bin

asmpar.tab.o: asmpar.tab.c $(HEADERS)

asmpar.tab.c: asmpar.y $(HEADERS)
	bison -d -v asmpar.y

lex.yy.o: lex.yy.c $(HEADERS)

lex.yy.c: asmlex.l asmpar.tab.h $(HEADERS)
	flex -f asmlex.l

symbol.o: symbol.c $(HEADERS)

expr.o: expr.c $(HEADERS)

forw.o: forw.c $(HEADERS)

emit.o: emit.c

clean:
	rm -f lex.yy.c asmpar.tab.c $(OBJS)
	rm -f asmpar.output $(TARGET)

# ... The End ...

