CC = g++

CFLAGS = 

HFILES = compiler.h support.h morekinds.h Semantics.h Generate.h

all: Laddie

lex.yy.c:	tokenizer_lex $(HFILES)
		flex tokenizer_lex

y.tab.c:	parse.yac lex.yy.c $(HFILES)
		yacc -v parse.yac

y.tab.o: y.tab.c
	$(CC) $(CFLAGS) -c y.tab.c

Treewalk.o: Treewalk.cc $(HFILES)
	$(CC) $(CFLAGS) -c Treewalk.cc

Semantics.o:	Semantics.cc $(HFILES)
	$(CC) $(CFLAGS) -c Semantics.cc

support.o:	support.cc $(HFILES)
	$(CC) $(CFLAGS) -c support.cc

Generate.o:	Generate.cc $(HFILES)
	$(CC) $(CFLAGS) -c Generate.cc

main.o: main.cc $(HFILES)
	$(CC) $(CFLAGS) -c main.cc

Laddie:		y.tab.o Treewalk.o Semantics.o Generate.o main.o support.o 
		g++ main.o Treewalk.o Semantics.o Generate.o y.tab.o support.o -o Laddie -ll -ly;

clean:
	/bin/rm -f lex.yy.c y.tab.c y.output *.o Laddie
