Если ваша версия Make имеет вторичное расширение , это, вероятно, сработает (я не могу это проверить, потому что сегодня мне пригодилась только старая версия).
.SECONDEXPANSION:
%.foo: $$(addsuffix .bar, $$(DATA_$$*))
@echo $^
Без этого я не вижу лучшего способа сделать это, чем это:
define FOO_RULE
$(1).foo: $(addsuffix .bar,$(DATA_$(1)))
endef
FOO_TYPES = test real whatever
$(foreach t,$(FOO_TYPES),$(eval $(call FOO_RULE,$(t))))
%.foo:
@echo building $@ from $^