Определение толщины двоеточия в определении файла Makefile
Я вижу ряд правил в Makefile, которые выглядят следующим образом:
$(PATH)/foo.inc:;
include $(PATH)/foo.inc
$(PATH)/bar.inc:;
include $(PATH)/bar.inc
Является ли запятая в конце определения правила no-op или имеет конкретный смысл?
Ответ 1
Точка с запятой на линии с предварительным условием назначения является первой командной строкой, выполняемой для этого правила, по крайней мере, в GNU make.
Из главы 5 руководства:
Команды правила состоят из команд командной строки оболочки, которые должны выполняться по одному. Каждая командная строка должна начинаться с вкладки, за исключением того, что первая командная строка может быть привязана к целевым и предварительным требованиям строка с точкой с запятой между ними.
В вашем случае, поскольку после запятой нет команды, она становится не-op.