Используйте% (подстановочный знак процента) в части рецепта правила - PullRequest
1 голос
/ 25 февраля 2020

Я хотел бы сделать что-то вроде этого:

PHONY += bar
bar:
    $(MAKE) foo_$@

PHONY += foo_%
foo_%:
    cp somedir/%.a someotherdir/

.PHONY: $(PHONY)

Но % не оценивается в рецепте (часть cp).

Мой обходной путь был создать фальшивую цель с тем же именем файла, который я хочу использовать, но я бы предпочел лучшее решение:

PHONY += bar
bar:
    $(MAKE) foo_$@

PHONY += foo_%
foo_%: %.a
    @:

PHONY += %.a
%.a:
    cp somedir/$@ someotherdir/

.PHONY: $(PHONY)

Есть ли способ передать расширение % в команду оболочки

...