Вы можете использовать так называемые целевые переменные :
foo: bar = 1
foo:
@echo $(bar)
Или, если они недостаточно гибки для вас, подумайтеиспользование eval
.
eval
создает / манипулирует глобальными переменными, поэтому, чтобы избежать коллизий имен, я бы использовал префикс для переменных, которые вы создаете с ним:
foo:
$(eval _local_bar = 1)
@echo $(_local_bar)