如何在makefile中使用导出的变量?

时间:2014-09-30 05:15:51

标签: linux shell if-statement makefile

我在shell脚本中有一个构建文件,它有一个变量VAR,必须导出到一个makefile。

在构建文件中,

    if [ "$arg" == "something" ]; then
        export VAR=$arg
    fi 
    make

现在在makefile中,我需要在条件语句中使用该变量:

    ifeq ( $(VAR),something)
        CONFIGURE_OPTIONS = abcdef
    else
        CONFIGURE_OPTIONS = ghijkl
    endif

但是从来没有以这种方式检查过这种情况。我该如何使用这个导出的变量?

2 个答案:

答案 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中很重要。