# Written with help from https://stackoverflow.com/questions/2481269/how-to-make-a-simple-c-makefile

CPPFLAGS=-g -std=c++11 -I$(DYNET) -I$(EIGEN) -I.
LDLIBS=-ldynet
LDFLAGS=-L$(DYNET)/build/dynet

SRCS=code/data.cc code/models.cc code/main.cc code/eval.cc
OBJS=$(subst src,bin,$(subst .cc,.o,$(SRCS)))

all: bin bin/predictor

bin:
	mkdir -p bin

bin/predictor: $(OBJS)
	$(CXX) $(LDFLAGS) -o bin/predictor $(OBJS) $(LDLIBS) -Wl,-rpath,$(DYNET)/build/dynet

bin/eval.o: code/eval.cc code/eval.h
	$(CXX) $(CPPFLAGS) -c -o $@ $<

bin/data.o: code/data.cc code/data.h code/eval.h
	$(CXX) $(CPPFLAGS) -c -o $@ $<

bin/models.o: code/models.cc code/models.h code/eval.h
	$(CXX) $(CPPFLAGS) -c -o $@ $<

bin/main.o: code/main.cc code/models.h code/data.h code/eval.h
	$(CXX) $(CPPFLAGS) -c -o $@ $<

clean:
	rm -rf bin
