重写Makefile命令行参数,在`ifeq'中使用`

重写Makefile命令行参数,在`ifeq'中使用`,makefile,conditional,Makefile,Conditional,我的Makefile可以选择接收名为COMPILE的命令行参数,我希望在Makefile脚本本身上覆盖该参数 根据,我尝试过:override COMPILE=gcc 但是,COMPILE用于ifeq的条件,并且设置COMPILE这种方式不会影响计算条件时的第一次通过 override COMPILE=gcc ifeq ($(COMPILE), gcc) ... I never get here... else ... Always here ... endif 有没有一种

我的Makefile可以选择接收名为
COMPILE
的命令行参数,我希望在Makefile脚本本身上覆盖该参数

根据,我尝试过:
override COMPILE=gcc

但是,
COMPILE
用于
ifeq
的条件,并且设置
COMPILE
这种方式不会影响计算条件时的第一次通过

override COMPILE=gcc 

ifeq ($(COMPILE), gcc)
    ... I never get here...
else
    ... Always here ...
endif

有没有一种方法可以正确覆盖条件句中使用的Make参数?

@Chnossos-answer给了我一个线索-查找空格
问题不在于“
ifeq($(COMPILE),gcc)
”中的空格,而在于“
override COMPILE=gcc
”上的尾随空格。(下划线表示空间所在的位置)


删除
=gcc
之后的尾随空格后,一切都按预期进行。

@Chnossos-answer给了我线索-查找空格
问题不在于“
ifeq($(COMPILE),gcc)
”中的空格,而在于“
override COMPILE=gcc
”上的尾随空格。(下划线表示空间所在的位置)


删除
=gcc
之后的尾随空格后,一切都按预期进行。

@Chnossos-answer给了我线索-查找空格
问题不在于“
ifeq($(COMPILE),gcc)
”中的空格,而在于“
override COMPILE=gcc
”上的尾随空格。(下划线表示空间所在的位置)


删除
=gcc
之后的尾随空格后,一切都按预期进行。

@Chnossos-answer给了我线索-查找空格
问题不在于“
ifeq($(COMPILE),gcc)
”中的空格,而在于“
override COMPILE=gcc
”上的尾随空格。(下划线表示空间所在的位置)


删除
=gcc
之后的尾随空格后,一切都按预期进行。

对我来说很有效。不带
覆盖
指令的事件。您使用的是哪个版本的Make?如果你是硬编码
编译
,为什么你要把它作为条件呢?对我来说很有用。不带
覆盖
指令的事件。您使用的是哪个版本的Make?如果你是硬编码
编译
,为什么你要把它作为条件呢?对我来说很有用。不带
覆盖
指令的事件。您使用的是哪个版本的Make?如果你是硬编码
编译
,为什么你要把它作为条件呢?对我来说很有用。不带
覆盖
指令的事件。您使用的是哪个版本的Make?如果你是硬编码
编译
,为什么你要把它作为条件呢?