2016-11-06 4 views
1

Ich versuche, eine Variable zu den Makefiles des U-Boot-Projekts hinzuzufügen. In den meisten Zielen muss der Wert nicht neu definiert werden und kann den Standardwert von/dev/null beibehalten, für einige Ziele muss er jedoch auf einen anderen Wert festgelegt werden.GNU Makefile Default-Wert-Variablen mit Zieldateien in ihrem Namen

Ich bin in der Lage, den zweiten Teil dieser Aufgabe zu erreichen, aber leider kann ich keinen Standardwert für Ziele festlegen, die diese Variable nicht definieren.

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))) 

Nein, ich habe nur ein paar Ziele, die den Wert von /dev/null überschrieben werden müssen. Ich erreiche dies, indem ich die folgende Zeile hinzufüge.

MKIMAGEOUTPUT_SPL = SPL.log 

Aber für alle anderen Ziele ist die MKIMAGEOUTPUT_target Variable leer. Kann mir jemand helfen?

Antwort

1

Sorry, aber ich habe die Lösung selbst gefunden. Die folgenden Zeilen machen was ich wollte.

MKIMAGEOUTPUT ?= /dev/null 

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

plus Zugabe des Ziel bestimmten Wert:

SPL: MKIMAGEOUTPUT = SPL.log 
Verwandte Themen