2016-11-06 113 views
1

我試圖向U-Boot項目的Makefiles添加一個變量。 在大多數目標中,該值不需要重新定義,並且可以保留/ dev/null的默認值,但對於某些目標,需要將其定義爲另一個值。GNU Makefile默認值變量名稱中包含目標文件

我能夠實現該任務的第二部分,但不幸的是我無法爲未定義該變量的目標設置默認值。

MKIMAGEOUTPUT_$(@F) ?= /dev/null 

quiet_cmd_mkimage = MKIMAGE [email protected] 
cmd_mkimage = $(objtree)/tools/mkimage $(MKIMAGEFLAGS_$(@F)) -d $< [email protected] \ 
    $(if $(KBUILD_VERBOSE:1=), >$(MKIMAGEOUTPUT_$(@F))) 

不,我只有幾個目標需要覆蓋/dev/null的值。 我通過添加以下行來實現此目的。

MKIMAGEOUTPUT_SPL = SPL.log 

但是對於所有其他目標,MKIMAGEOUTPUT_target變量爲空。 有人能幫助我嗎?

回答

1

對不起,我自己找到了解決方案。 以下幾行代碼就是我想要的。

MKIMAGEOUTPUT ?= /dev/null 

quiet_cmd_mkimage = MKIMAGE [email protected] 
cmd_mkimage = $(objtree)/tools/mkimage $(MKIMAGEFLAGS_$(@F)) -d $< [email protected] \ 
    $(if $(KBUILD_VERBOSE:1=), >$(MKIMAGEOUTPUT)) 

加上將目標特定值:

SPL: MKIMAGEOUTPUT = SPL.log