CXX      := g++
CXXFLAGS := -std=c++17 -Wall -Wextra -O2
DBGFLAGS := -std=c++17 -Wall -Wextra -g -O0
CO3FLAGS := -std=c++17 -Wall -Wextra -O3


SRCS := main.cpp prim.cpp shake.cpp tsplib_graph.cpp vnd1.cpp vnd2.cpp vnd3.cpp vnd4.cpp
HDRS := $(wildcard *.hpp)

all: dckmst dckmst_exp dckmst_dbg dckmst_o3

dckmst: $(SRCS) $(HDRS)
	$(CXX) $(CXXFLAGS) -o $@ $(SRCS)

dckmst_exp: $(SRCS) $(HDRS)
	$(CXX) $(CXXFLAGS) -o $@ $(SRCS)

dckmst_o3: $(SRCS) $(HDRS)
	$(CXX) $(CO3FLAGS) -o $@ $(SRCS)

dckmst_dbg: $(SRCS) $(HDRS)
	$(CXX) $(DBGFLAGS) -o $@ $(SRCS)

clean:
	rm -f dckmst dckmst_exp dckmst_dbg dckmst_o3

.PHONY: all clean
