我有一个 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
不能放在ifeq
TAB 后面。允许有空格。读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