CFLAGS += -g --std=c++11 -Wall -Wfatal-errors

all: lexer-test parser-test unci-translate

unci-translate: generator-test.o autolexer.o uncilexer.o unciparser.o astnode.o astnode-generate.o astnode-validate.o
	g++ -g $^ -o $@

generator-test.o: uncilexer.h unciparser.h astnode.h

astnode-generate.o: astnode.h

astnode-validate.o: astnode.h

parser-test: parser-test.o autolexer.o uncilexer.o unciparser.o astnode.o astnode-generate.o astnode-validate.o
	g++ -g $^ -o $@

parser-test.o: uncilexer.h unciparser.h

unciparser.o: unciparser.h astnode.h

astnode.o: astnode.h

lexer-test: lexer-test.o autolexer.o uncilexer.o
	g++ -g $^ -o $@

lexer-test.o: tokens.h uncilexer.h

uncilexer.o: tokens.h uncilexer.h

autolexer.cpp: unci.ll uncilexer.h tokens.h
	flex -o$@ $<

%.o: %.cpp
	g++ $(CFLAGS) -c $<
