Не получается записать значения команды в переменную в makefile
Нужно записать значения выполнения в переменную в Makefile для дальнейшего использования, но почему-то постоянно пустая строка, перепробовал разные способы, уже попросту трачу время в пустую, не могу понять в чём проблема так как в консоли сама команда работает, но в переменой постоянно пустота, пример объявления:
#VARIABLES
var = $(echo $(date +%s | md5sum | head -c${1:-32};echo ;))
test:
echo "$(var)";
Если код выше не рабочий вариант, то возможно есть вариант как написать аналог, для генерации уникального хеша который будет работать в Makefail, ну конечно хотелось бы разобраться почему код выше именно при выполнении make команды не работает...
Ответы (1 шт):
Если цель просто сгенерить случайную строку, то можно глянуть на ответы тут https://unix.stackexchange.com/questions/230673/how-to-generate-a-random-string
Если просто исправить ваш код, то будет примерно так:
var := $(shell date +%s | md5sum | head -c32)
test:
echo "$(var)"
Выражение ${1:-32} это default substitution в bash и не имеет никакого смысла внутри Makefile, так что я его просто заменил на дефолтное значение — 32.