generalArguments = -std=c++17

main.out: main.o Tools.o Exceptions.o Record.o Date.o Student.o StudentInfoManager.o ListDisplay.o
	clang++ $(generalArguments) -g $^ -o main.out

main.o: main.cpp ListE.hpp Node.hpp
	clang++ $(generalArguments) -g -c main.cpp -o main.o

Exceptions.o: Exceptions.cpp Exceptions.hpp
	clang++ $(generalArguments) -g -c Exceptions.cpp -o Exceptions.o

Record.o: Record.cpp Record.hpp Date.hpp Student.hpp Tools.hpp
	clang++ $(generalArguments) -g -c Record.cpp -o Record.o

Date.o: Date.cpp Date.hpp Exceptions.hpp
	clang++ $(generalArguments) -g -c Date.cpp -o Date.o

Tools.o: Tools.cpp Tools.hpp
	clang++ $(generalArguments) -g -c Tools.cpp -o Tools.o

ListDisplay.o: ListDisplay.cpp ListDisplay.hpp Date.hpp Student.hpp
	clang++ $(generalArguments) -g -c ListDisplay.cpp -o ListDisplay.o

Student.o: Student.cpp Student.hpp
	clang++ $(generalArguments) -g -c Student.cpp -o Student.o

StudentInfoManager.o: StudentInfoManager.cpp StudentInfoManager.hpp ListDisplay.o
	clang++ $(generalArguments) -g -c StudentInfoManager.cpp -o StudentInfoManager.o