A dependency tree in software building shows how different parts of a software project need each other.
More Detail
make is a tool to help determine this dependency tree based on intermediate and source files.
If the timestamp of any of the dependencies of a parent file is newer than the parent then the parent needs to be regenerated
So for instance this is dependency tree for program called test. It is made by linking two object files main.o and life.o together.
main.o is compiled from main.cpp which #include life.h so main.o depends on life.h and main.cpp.
life.o is compiled from life.cpp which has #include life.h so it depends on life.h and life.cpp.
test
main.o
main.cpp
life.h
life.o
life.h
life.cpp