SRCS=$(wildcard *.cc)
DEPS=$(SRCS:.cc=.d)
EXES=grade_student grade_students extract_fails strings
CXX=clang++
CXXFLAGS=-std=c++14 -O3 -Wall -Wextra

all: $(EXES)

grade_student:	grade_student.o grade.o median.o
	$(CXX) $(CXXFLAGS) -o $@ $^

grade_students: grade_students.o grade.o median.o student_info.o
	$(CXX) $(CXXFLAGS) -o $@ $^

extract_fails: extract_fails.o grade.o median.o student_info.o
	$(CXX) $(CXXFLAGS) -o $@ $^

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

clean:
	rm -f *.o *.d

distclean:	clean
	rm -f $(EXES)

-include $(DEPS)

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

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

.PHONY: all clean distclean
