我的Makefile可选地接收一个名为COMPILE
的命令行参数,我想在Makefile脚本本身上覆盖它。
根据this,我尝试过:override COMPILE=gcc
但是,在COMPILE
条件下使用ifeq
并设置COMPILE
这种方式不会影响评估条件时的第一个Make传递。
override COMPILE=gcc
ifeq ($(COMPILE), gcc)
... I never get here...
else
... Always here ...
endif
有没有办法正确覆盖条件中使用的Make参数?
答案 0 :(得分:3)
@Chnossos回答给了我线索 - 寻找空白。
问题不在于" ifeq ($(COMPILE), gcc)
"中的空格,而在" override COMPILE=gcc_
"的尾随空格中。 (下划线表示空间的位置)。
删除=gcc
之后的尾随空格后,一切都按预期工作。