Правило шаблона Makefile, ссылающееся на стебель в зависимостях
Я хочу правило шаблона с зависимостями, построенными как из стебля, так и с помощью подстановочных знаков, т.е. что-то вроде
$(FILES): %.o: %.c $(wildcard %*.c)
Это не работает: стебель% не расширен в функции подстановки (см. http://www.gnu.org/software/make/manual/html_node/Pattern-Rules.html), в то время как автоматический переменная $*, похоже, не распознается при перечислении зависимостей.
Есть ли (не слишком kludgy) способ сделать что-то вроде этого?
Ответы
Ответ 1
Как указано в разделе 10.5.3 руководства GNU make, автоматические переменные (что и есть $*
) недоступны в предварительных требованиях, но также относятся к обходу, а именно к вторичному расширению.
Если я правильно понял (и вы), что-то вроде этого должно делать то, что вы хотите:
.SECONDEXPANSION:
$(FILES): %.o: %.c $$(wildcard $$**.c)