Очень часто конечный двоичный файл будет зависеть от различных исходных кодов и исходных файлов заголовков. Зависимости важны, потому что они позволяют узнать об источнике для любой цели. Рассмотрим следующий пример —
hello: main.o factorial.o hello.o $(CC) main.o factorial.o hello.o -o hello
Здесь мы говорим make, что hello зависит от файлов main.o, factorial.o и hello.o. Следовательно, всякий раз, когда происходит изменение в любом из этих объектных файлов, make будет действовать.
В то же время нам нужно указать make как подготовить файлы .o. Следовательно, мы должны определить эти зависимости также следующим образом: