Я читал, немецкая статья о "Делают" на Википедию и нашел следующие 2 строки:
.c.o:
$(CC) $(CFLAGS) -c -o $@ $<
Почему выражение зависимости не учтено и почему цель использует двойное расширение файла?
Это фактически определяет суффиксное правило ... оно определяет, как создать файл, заканчивающийся на ".o", из соответствующего файла, заканчивающегося на ".c", что указывает программе make сделать вывод, что « filename .c», если он существует, является зависимостью для « filename .o» для любого такого имени файла, и что « filename .o» файл может быть построен из его * .c-зависимости с предоставленным правилом.
Я должен отметить, однако, что эта строка совершенно не нужна и, по сути, не является чем-то, что нужно помещать в Makefile, поскольку Make уже способна вывести такой тип зависимости. Возможно, вас заинтересует мой учебник по Makefile , поскольку в нем довольно подробно рассказывается обо всех вещах, которые Make может вывести.
Это то, что называется «суффиксным правилом» и используется для создания цели со вторым суффиксом из источника с первым суффиксом, если как известно, делают суффиксы. См. Суффиксные правила в make
руководстве для более подробного описания