Этого можно добиться, определив FOOVAR
как рекурсивно расширенную переменную вместо просто расширенной переменной (т. Е. Используя вместо нее =
из :=
):
foo: FOOVAR = $(shell prog_to_execute_only_on_foo)
foo:
echo "foo"
Таким образом, prog_to_execute_only_on_foo
будет выполняться при расширении FOOVAR
.
Обратите внимание, однако, что prog_to_execute_only_on_foo
будет выполняться каждый раз, когда будет расширяться FOOVAR
, тогда как для просто расширенной переменной (т.е. :=
) это будет исполняться только один раз .