Зачем путать себя с переменными, специфичными для шаблона?Обычный подойдет и упростит загрузку.
В рецепте шаблонного правила $*
расширяется до того, что соответствует %
в правиле.(Здесь я буду использовать статическое шаблонное правило, просто потому что они лучше, чем обычные шаблонные правила, ИМХО.)
${BINDIR}/test1.gz ${BINDIR}/test2.gz: ${BINDIR}/%.gz:
@echo "logfile for $@ is $*.dir/$*.log"
Естественно, переменная или две могут несколько привести это в порядок:
logfile = $*.dir/$*.log
targets := $(patsubst %,${BINDIR}/test%.gz,1 2)
${targets}: ${BINDIR}/%.gz:
@echo "logfile for $@ is ${logfile}"