SRCS=$(wildcard *.cc)
DEPS=$(SRCS:.cc=.d)
EXES=vec1 vec2 vec3 vec4
CXX=clang++
CXXFLAGS=-std=c++14 -O3 -Wall -Wextra

all: $(EXES)

clean:
	rm -f *.o *.d

distclean:	clean
	rm -f $(EXES)

vec1:	vec1.o

vec2:	vec2.o

vec3:	vec3.o

vec4:	vec4.o

-include $(DEPS)

%:	%.o
	$(CXX) $(CXXFLAGS) -o $@ $^

%.d:	%.cc
	$(CXX) $(CXXFLAGS) $< -MM -MT $(@:.d=.o) -MF $@

%.o:	%.cc
	$(CXX) $(CXXFLAGS) -c $<

.PHONY: all clean distclean
