Можно ли использовать шаблоны в Makefile для отображения середины имени файла от источника к цели?
У меня есть набор файлов, которые все выглядят так:
meta_UNIQID_set.xml.gz
и хотел бы использовать Makefile
сделать цели, которые выглядят как UNIQID.json.gz
, Обоснование заключается в том, чтобы вписаться в существующий многошаговый конвейер (где имена указаны в этой форме).
Я искал замены шаблонов в gnu make, которые допускают такого рода трансформацию, но я не нашел чего-то, что, похоже, будет делать то, что я хочу. Я могу сделать это преобразование с другими инструментами и даже написать конкретные правила, так как есть всего несколько файлов. Мне просто любопытно, есть ли прямой подход, который использует существующую функциональность GNU Make.
1 ответ
Вы можете использовать %
Происходящий персонаж вроде так:
%.json.gz: meta_%_set.xml.gz
echo "Processing $< to $@, stem is $*"
cp $< $@
Официальная документация называет это шаблонными правилами.