Зависит от вкуса марки. С GNU Make вы можете использовать :=
вместо =
, как в
TMP:=$(shell mktemp -d /tmp/.XXXXX)
Редактировать Как указывает Новелократ, назначение =
отличается от назначения :=
тем, что значения, назначенные с помощью =
, будут оцениваться во время замены (и, таким образом, каждый раз, когда переменная используется), тогда как :=
назначенные переменные будут оцениваться только один раз (во время назначения), и, следовательно, значения будут фиксированными после этого. См. документацию GNU Make для более подробного объяснения.
Для того чтобы значение было действительно постоянным после присваивания, оно не должно содержать каких-либо частей, которые могут быть особенными для оболочки (которые make
вызывает для фактического запуска правил обновления и т. Д.) В частности, обратные помехи лучше избегать. Вместо этого используйте встроенную функцию оболочки GNU make
и аналогичные для достижения своих целей.