CXX = g++
CPPFLAGS += `pkg-config --cflags protobuf grpc`
CXXFLAGS += -std=c++11
INC      = /opt/gurobi751/linux64/include/
CARGS    = -m64 -g
CPPLIB   = -L/opt/gurobi751/linux64/lib -lgurobi_c++ -lgurobi75

ifeq ($(SYSTEM),Darwin)
LDFLAGS += -L/usr/local/lib `pkg-config --libs protobuf grpc++`\
           -lgrpc++_reflection\
           -ldl
else
LDFLAGS += -L/usr/local/lib `pkg-config --libs protobuf grpc++`\
           -Wl,--no-as-needed -lgrpc++_reflection -Wl,--as-needed\
           -ldl
endif
PROTOCOL_PATH = ../protocol

all: aco_solver ilp_solver

aco_solver: helpers.cpp route.cpp solution.cpp vrp_solver.cpp aco_main.cpp $(PROTOCOL_PATH)/vrp.pb.o $(PROTOCOL_PATH)/vrp.grpc.pb.o $(PROTOCOL_PATH)/vrp_protocol.cpp
	$(CXX) $(CXXFLAGS) $^ $(LDFLAGS) -o ../bin/$@

ilp_solver: helpers.cpp route.cpp solution.cpp vrp_solver.cpp ilp_main.cpp $(PROTOCOL_PATH)/vrp.pb.o $(PROTOCOL_PATH)/vrp.grpc.pb.o $(PROTOCOL_PATH)/vrp_protocol.cpp
	$(CXX) $(CXXFLAGS) $(CARGS) $^ $(LDFLAGS) -I$(INC) $(CPPLIB) -lm -o ../bin/$@

