if-else 构造的 makefile 语法错误

Mee*_*eis 4 scripting make shell-script

嗨,我被这个问题困扰了很长时间。我期望这个 makefile 输出“ok”。但我在调用时遇到语法错误make

ifeq (0, 0)

/bin/sh: 1: 语法错误:单词意外(需要“)”)

make: *** [默认] 错误 2

代码:

CHK = 0

default:
    ifeq ($(CHK), 0)
        echo "ok"
    else
        echo "not ok"
    endif
Run Code Online (Sandbox Code Playgroud)

Ste*_*itt 10

这些是 Makefile 指令,而不是 shell 指令,因此它们不应以 \xe2\x80\x99 为制表符前缀:

\n\n
CHK = 0\n\ndefault:\nifeq ($(CHK), 0)\n    echo "ok"\nelse\n    echo "not ok"\nendif\n
Run Code Online (Sandbox Code Playgroud)\n\n

否则,Make 将它们传递给 shell,而不是自己处理它们。

\n