Вы не можете назначать переменные внутри рецептов правил.
Первое возможное решение состоит в том, чтобы инициализировать его где-то вне правила, а затем использовать его как обычный:
PHONE_VER = $(shell cat d:/path/to/workspace/common/phonegap/VERSION)
phonegap: pull_phonegap
@echo phonegap version: ${PHONE_VER}
pull_phonegap:
@cd ${SOURCE_PHONEGAP}; git pull
Это будет работать нормально, если PHONE_VER
рекурсивно развернуто (обратите внимание на знак =
в назначении), и фактический вызов shell cat ...
появится после выполнения условия pull_phonegap
.
Другая возможность: make PHONE_VER
variable target-specific
for phonegap
:
phonegap: PHONE_VER = $(shell cat d:/path/to/workspace/common/phonegap/VERSION)
phonegap: pull_phonegap
@echo phonegap version: ${PHONE_VER}
Наконец, если единственное, что вы хотите сделать - это напечатать версию загруженного репо, тогда будет проще вообще избавиться от переменных:
phonegap: pull_phonegap
@echo phonegap version:
@cat ${SOURCE_PHONEGAP}/VERSION
pull_phonegap:
@cd ${SOURCE_PHONEGAP}; git pull