在 Makefile 中检查环境变量的值

ATP*_*ATP 28 shell make

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

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

test_target: 
    ifeq ($(TEST),"TRUE")
            echo "Do something"
    endif
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

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

gwi*_*lie 36

ifeq()指令必须在第 1 列中,删除任何前导空格,即

test_target: 
ifeq ($(TEST),"TRUE")
        echo "Do something"
endif
Run Code Online (Sandbox Code Playgroud)

^ 没有空格


yae*_*shi 21

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

test_target: 
ifeq ($(TEST),"TRUE")
    echo "Do something"
endif
Run Code Online (Sandbox Code Playgroud)

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

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

$ make TEST='"TRUE"'
echo "Do something"
Do something
Run Code Online (Sandbox Code Playgroud)

  • 这一点特别有用 - 另请注意,它将 $(TEST) 与“TRUE”进行了比较:谢谢 (2认同)