2016-11-06 3 views
1

U-Boot 프로젝트의 Makefile에 변수를 추가하려고합니다. 대부분의 대상에서 값을 다시 정의 할 필요가 없으며/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))) 

없음 I /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