Как сделать Makefile Pattern Rules со списком файлов - PullRequest
0 голосов
/ 21 мая 2018

Хотите знать, как применить что-то, такое как шаблонные правила , чтобы выполнить следующее в Makefile:

FILES := a b c d

$(FILES).c:
  run build $(FILE).c
  # use $(FILE) without .c extension, etc.

Без необходимости называть все значения в FILES как a.c, b.c и т. Д., Потому что я собираюсь использовать имена в другом месте.

Если я попробую выше с make a.c, я получу:

No rule to make target `a.c'.  Stop.

1 Ответ

0 голосов
/ 21 мая 2018

Здесь может быть полезна встроенная функция addsuffix, которая уже работает со списками:

targets := $(addsuffix .c,$(FILES))

Однако вместо этого вы можете просто использовать правила шаблона,Автоматическая переменная $* будет соответствовать стержню (то есть части %):

%.c:
   run build $@
   # use $* for filename without .c extension, etc.
...