2015-09-19 49 views
0

我的Makefile可选地接收一个名为COMPILE的命令行参数,我想在Makefile脚本本身上覆盖它。按照this,我试过了:override COMPILE=gcc
但是,在ifeqCOMPILE的条件下使用COMPILE这种方式不会影响条件评估时的第一次通过。覆盖Makefile命令行参数,用于`ifeq`

override COMPILE=gcc 

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

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

+0

适合我。没有'override'指令的事件。 – akond

+0

您使用的是哪个版本的Make?如果你对'COMPILE'进行了硬编码,你为什么要对它做出任何条件? – Beta

回答

3

@Chnossos答案给了我线索 - 寻找空白
问题不在于“ifeq ($(COMPILE), gcc)”中的空格,而是在“override COMPILE=gcc_”的尾部空格中。 (下划线表示空间的位置)。

在删除=gcc后的空格后,所有内容都按预期工作。