我有类似下面的代码片段的内容。如何通过 shell 脚本逻辑在 Makefile 中正确设置未定义的 ENV 变量?当脚本运行时环境变量已经在环境中定义时,一切似乎都可以工作,但如果没有,它不会将其设置为默认值(保持为空/未设置)。
我更愿意做类似的事情FROM_ENV_VAR=${FROM_ENV_VAR:-"default value"}
,但是 Makefile 语法是否有类似于从其他 ENV var 设置变量(当然可以是相同的 var)的内容,否则为其分配默认值。
MAKE_VAR=fromake
.PHONY: trial
trial:
if [ -z ${FROM_ENV_VAR} ]; then \
FROM_ENV_VAR="defaulting"; \
echo "setting VAR since not defined from ENV, val: ${FROM_ENV_VAR}"; \
echo "and make's VAR is ${MAKE_VAR}, from shell script"; \
else \
echo "using ENV VAR's defined value: ${FROM_ENV_VAR}"; \
echo "and make's VAR is ${MAKE_VAR}, from shell script"; \
fi
echo "in make, make var is $(MAKE_VAR)"
echo …
Run Code Online (Sandbox Code Playgroud) make ×1