2

Возможно ли в GNU/Make задать одно правило для разных целей?

Например, имею две цели (1 исполнимый файл): targ0.axf и targ1.axf. Оба зависят от одних объектных файлов, оба собираются одинаково:

targ0.axf: file0.o file1.o
    $(LD) $^ -o $@ $(LFLAGS)

targ1.axf: file0.o file1.o
    $(LD) $^ -o $@ $(LFLAGS)

Это можно записать как-то короче?

Reffum
  • 419

1 Answers1

3

да, можно. например, так:

targ0.axf targ1.axf: file0.o file1.o
    $(LD) $^ -o $@ $(LFLAGS)
  • Только надо не забыть указать обе цели, например в all: для полной сборки – avp Sep 16 '15 at 12:34
  • @avp, это ценное замечание, правда не имеющее (прямого) отношения ни к вопросу, ни к ответу. – aleksandr barakin Sep 16 '15 at 12:37
  • @alexanderbarakin , Большое спасибо. У меня еще вопрос, а что если цели targ0.axf и targ1.axf собираются одинаково, но зависимости у них разные? – Reffum Sep 16 '15 at 13:23
  • @Reffum, тогда таким образом объединять нельзя. но, возможно, имена целей (targets) частично совпадают с именами зависимостей (prerequisites), тогда можно попробовать воспользоваться static pattern rules. – aleksandr barakin Sep 16 '15 at 13:35