2015-09-19 51 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後的空格後,所有內容都按預期工作。