覆盖 Makefile 命令行参数,用于`ifeq`
Overriding Makefile command line parameter, used in `ifeq`
我的 Makefile 可选地接收一个名为 COMPILE
的命令行参数,我想在 Makefile 脚本本身上覆盖它。
根据 this,我试过:override COMPILE=gcc
。
但是,COMPILE
用于 ifeq
的条件,并且设置 COMPILE
这种方式不会影响评估条件时的第一个 Make pass。
override COMPILE=gcc
ifeq ($(COMPILE), gcc)
... I never get here...
else
... Always here ...
endif
有没有办法正确覆盖条件中使用的 Make 参数?
@Chnossos 的回答给了我线索 - 寻找白色space.
问题不在于“ifeq ($(COMPILE), gcc)
”中的 space,而在于“override COMPILE=gcc_
”中的尾随 space。 (下划线表示 space 所在的位置)。
删除 =gcc
后的尾随 space 后,一切正常。
我的 Makefile 可选地接收一个名为 COMPILE
的命令行参数,我想在 Makefile 脚本本身上覆盖它。
根据 this,我试过:override COMPILE=gcc
。
但是,COMPILE
用于 ifeq
的条件,并且设置 COMPILE
这种方式不会影响评估条件时的第一个 Make pass。
override COMPILE=gcc
ifeq ($(COMPILE), gcc)
... I never get here...
else
... Always here ...
endif
有没有办法正确覆盖条件中使用的 Make 参数?
@Chnossos 的回答给了我线索 - 寻找白色space.
问题不在于“ifeq ($(COMPILE), gcc)
”中的 space,而在于“override COMPILE=gcc_
”中的尾随 space。 (下划线表示 space 所在的位置)。
删除 =gcc
后的尾随 space 后,一切正常。