The Makefile suggests that auto-generated dependencies are used. However, there are at least two bugs in this:
1. the compiler flags to generate the dependencies are wrong: it should be
CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" -MT"$@"
2. the generated files are not actually included, it should be
-include $(shell mkdir build 2>/dev/null) $(wildcard build/*.d)