名称中包含目标文件的 GNU Makefile 默认值变量
GNU Makefile default value variables with target files in their name
我正在尝试向 U-Boot 项目的 Makefile 添加一个变量。
在大多数目标中,该值不需要重新定义,可以保留默认值 /dev/null 但对于某些目标,需要将其定义为另一个值。
我能够完成该任务的第二部分,但遗憾的是我无法为未定义该变量的目标设置默认值。
MKIMAGEOUTPUT_$(@F) ?= /dev/null
quiet_cmd_mkimage = MKIMAGE $@
cmd_mkimage = $(objtree)/tools/mkimage $(MKIMAGEFLAGS_$(@F)) -d $< $@ \
$(if $(KBUILD_VERBOSE:1=), >$(MKIMAGEOUTPUT_$(@F)))
不,我只有几个目标需要覆盖 /dev/null
的值。
我通过添加以下行来实现这一点。
MKIMAGEOUTPUT_SPL = SPL.log
但对于所有其他目标,MKIMAGEOUTPUT_target
变量为空。
有人可以帮助我吗?
抱歉,我只是自己找到了解决方案。
以下几行是我想要的。
MKIMAGEOUTPUT ?= /dev/null
quiet_cmd_mkimage = MKIMAGE $@
cmd_mkimage = $(objtree)/tools/mkimage $(MKIMAGEFLAGS_$(@F)) -d $< $@ \
$(if $(KBUILD_VERBOSE:1=), >$(MKIMAGEOUTPUT))
加上目标特定值:
SPL: MKIMAGEOUTPUT = SPL.log
我正在尝试向 U-Boot 项目的 Makefile 添加一个变量。 在大多数目标中,该值不需要重新定义,可以保留默认值 /dev/null 但对于某些目标,需要将其定义为另一个值。
我能够完成该任务的第二部分,但遗憾的是我无法为未定义该变量的目标设置默认值。
MKIMAGEOUTPUT_$(@F) ?= /dev/null
quiet_cmd_mkimage = MKIMAGE $@
cmd_mkimage = $(objtree)/tools/mkimage $(MKIMAGEFLAGS_$(@F)) -d $< $@ \
$(if $(KBUILD_VERBOSE:1=), >$(MKIMAGEOUTPUT_$(@F)))
不,我只有几个目标需要覆盖 /dev/null
的值。
我通过添加以下行来实现这一点。
MKIMAGEOUTPUT_SPL = SPL.log
但对于所有其他目标,MKIMAGEOUTPUT_target
变量为空。
有人可以帮助我吗?
抱歉,我只是自己找到了解决方案。 以下几行是我想要的。
MKIMAGEOUTPUT ?= /dev/null
quiet_cmd_mkimage = MKIMAGE $@
cmd_mkimage = $(objtree)/tools/mkimage $(MKIMAGEFLAGS_$(@F)) -d $< $@ \
$(if $(KBUILD_VERBOSE:1=), >$(MKIMAGEOUTPUT))
加上目标特定值:
SPL: MKIMAGEOUTPUT = SPL.log