SRCS=$(wildcard *.cc)
DEPS=$(SRCS:.cc=.d)
EXES=array_size concat copy find_if next ptr_test write_args
CXX=clang++
CXXFLAGS=-std=c++14 -O3 -Wall -Wextra

all: $(EXES)

array_size: array_size.o

concat: concat.o

copy: copy.o

find_if: find_if.o

next: next.o

ptr_test: ptr_test.o

write_args: write_args.o

clean:
	rm -f *.o *.d

distclean:	clean
	rm -f $(EXES)

-include $(DEPS)

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

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

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

.PHONY: all clean distclean
