我在shell脚本中有一个构建文件,它有一个变量VAR,必须导出到一个makefile。
在构建文件中,
if [ "$arg" == "something" ]; then
export VAR=$arg
fi
make
现在在makefile中,我需要在条件语句中使用该变量:
ifeq ( $(VAR),something)
CONFIGURE_OPTIONS = abcdef
else
CONFIGURE_OPTIONS = ghijkl
endif
但是从来没有以这种方式检查过这种情况。我该如何使用这个导出的变量?
答案 0 :(得分:3)
在shell脚本中,
export VAR=hello
make all
在makefile中,
all :
ifeq ($(VAR),hello)
$(eval var1:="hello world in if block")
else
$(eval var1:="hello world in else block")
endif
@echo "$(var1)"
答案 1 :(得分:2)
您的代码无法按照预期的方式运行,因为您在$(VAR)
之前有一个额外的空间 - 它应该是:
ifeq ($(VAR),something)
空格有时在makefile中很重要。