SRCS=$(wildcard *.cc)
DEPS=$(SRCS:.cc=.d)
EXES=binary_search copy find grade_students_1 grade_students_2 io_streams
EXES+=median replace reverse split
CXX=clang++
CXXFLAGS=-std=c++14 -O3 -Wall -Wextra

all: $(EXES)

binary_search: binary_search.o

copy:	copy.o

find:	find.o

grade_students_1: grade_students_1.o Student_info_1.o grade.o

grade_students_2: grade_students_2.o Student_info_2.o grade.o

io_streams: io_streams.o

median: median.o

replace: replace.o

reverse: reverse.o

split:	split.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
