Из документации GNU Make:
В make-файле появляется «правило», в котором указывается, когда и как следует преобразовывать определенные файлы, называемые «целями» правила (чаще всего по одному на правило).,В нем перечислены другие файлы, которые являются «предварительными условиями» цели, и «команды», используемые для создания или обновления цели.
То есть цель make rules должен сгенерировать target , который обычно является файлом результата какой-либо операции - будь то файл штампа, сигнализирующий о выполнении шага, или объектный файл из компиляции.
То, что вы хотите, сгенерировать цель result.o
для 2 различных зависимостей - это не совсем то, для чего предназначен make.
Что вы можете сделать, это сгенерировать цели 1.o
и 2.o
,которые, чем получить ссылку на result.o
в правиле более высокого уровня.Это означает, однако, что правила aaa
и bbb
должны зависеть от 1.o
и 2.o
, поскольку они должны иметь отдельных целей (которые по совпадению являются именами правила).