检查 Makefile 中的环境变量值

检查 Makefile 中的环境变量值

我有一个 Makefile 目标,我必须在其中检查环境变量的值。但是,我不明白它的确切语法。很努力,但找不到。任何帮助表示赞赏。

环境变量名称:TEST,其值:“TRUE”

test_target: 
    ifeq ($(TEST),"TRUE")
            echo "Do something"
    endif

我收到以下错误:

/bin/sh: -c: line 0: syntax error near unexpected token `"TRUE","TRUE"'
/bin/sh: -c: line 0: `ifeq ("TRUE","TRUE")'

答案1

ifeq()指令必须位于第 1 列,删除所有前导空格,即

test_target: 
ifeq ($(TEST),"TRUE")
        echo "Do something"
endif

^ 没有空格

答案2

不能放在ifeqTAB 后面。允许有空格。读GNU Make 文档

test_target: 
ifeq ($(TEST),"TRUE")
    echo "Do something"
endif

另请注意,它$(TEST)"TRUE"原样进行比较:

$ make TEST=TRUE
make: Nothing to be done for 'test_target'.

$ make TEST='"TRUE"'
echo "Do something"
Do something

相关内容