在我的makefile中,用户提供了一个称为EXEC (make target EXEC=something)
的参数。我希望这种情况发生:
if EXEC equals "server"
make the variable NOT equal to "client"
if EXEC equals "client"
make the variable NOT equal to "server"
我尝试这样做:
ifeq ($(EXEC),server)
NOT := client
endif
ifeq ($(EXEC),client)
NOT := server
endif
我这样说make -f build.mk EXEC=server
输出为:
NOT := client
make[2]: NOT: No such file or directory
为什么会发生此错误?
答案 0 :(得分:1)
似乎您已经用TAB字符缩进了变量赋值。这意味着该行被视为上一个目标的配方的一部分。
由于您没有提供整个Makefile,或者至少没有提供此之前/之后的Makefile部分,因此我们不能说更多。
但是,通常在makefile中,除非有意将其作为配方的一部分,否则切勿缩进带有TAB字符的任何行。