в общем, как всегда хочется странного, а именно примерно такой конструкции в Makefile
SRCS := a.c b.c c.c
define my_template =
__tmp_target := список операций над $(1)
$(__tmp_target): $(1)
тут фигня для сборки цели
clean_files += $(__tmp_target)
endef # my_template
$(foreach src,$(SRCS),$(eval $(call my_template,$(src))))
Проблема возникает из-за временной переменной __tmp_target: цели получаются типа таких
a.o:
bla-bla-bla
b.o: a.c
bla-bla-bla
c.o: b.c
bla-bla-bla
И вот понять я не могу — почему переменная __tmp_target себя так ведет?