Subject: Re: [PATCH 1/13] powerpc: Add Makefile rules to wrap dts file in zImage

From: David Gibson <[email-masked]>
Date: Mon, 14 May 2007 10:33:32 +1000

On Fri, May 11, 2007 at 05:53:36PM -0700, Mark A. Greer wrote:
> 
> Add 'zImage.dts' and 'zImage.dts_initrd' build rules that automatically
> compile and wrap a dts file from arch/powerpc/boot/dts into the zImage file.
> The resulting zImage will be arch/powerpc/boot/zImage.dts.<platform> and
> arch/powerpc/boot/zImage.dts_initrd.<platform>, respectively.
> 
> Having separate rules allows the user to choose whether to include a device
> tree--and which device tree--at build time.  This is useful when one Makefile
> target builds a zImage that runs on several platforms except for differing
> device trees.  By just setting CONFIG_DEVICE_TREE and running "make zImage.dts"
> the exact zImage you want is built without Makefile bloat or manually running
> the wrapper script.
> 
> The dts file is expected to be arch/powerpc/boot/dts/$(CONFIG_DEVICE_TREE)
> 
> Signed-off-by: Mark A. Greer <[email-masked]>
> ---
> 
>  arch/powerpc/Makefile      |    2 +-
>  arch/powerpc/boot/Makefile |   25 ++++++++++++++++++++++++-
>  2 files changed, 25 insertions(+), 2 deletions(-)
> 
> Index: powerpc/arch/powerpc/boot/Makefile
> ===================================================================
> --- powerpc.orig/arch/powerpc/boot/Makefile
> +++ powerpc/arch/powerpc/boot/Makefile
> @@ -154,9 +154,27 @@ targets	+= $(image-y) $(initrd-y)
>  
>  $(addprefix $(obj)/, $(initrd-y)): $(obj)/ramdisk.image.gz
>  
> +dts-  := $(patsubst zImage%, zImage.dts%, $(image-n) $(image-))
> +dts-y := $(patsubst zImage%, zImage.dts%, $(image-y))
> +dts-y := $(filter-out $(image-y), $(dts-y))
> +targets	+= $(image-y) $(dts-y)
> +
> +dts_initrd-  := $(patsubst zImage%, zImage.dts_initrd%, $(image-n) $(image-))
> +dts_initrd-y := $(patsubst zImage%, zImage.dts_initrd%, $(image-y))
> +dts_initrd-y := $(filter-out $(image-y), $(dts_initrd-y))
> +targets	+= $(image-y) $(dts_initrd-y)
> +
> +$(addprefix $(obj)/, $(dts_initrd-y)): $(obj)/ramdisk.image.gz
> +
>  # Don't put the ramdisk on the pattern rule; when its missing make will try
>  # the pattern rule with less dependencies that also matches (even with the
>  # hard dependency listed).
> +$(obj)/zImage.dts_initrd.%: vmlinux $(wrapperbits) $(dts) $(obj)/ramdisk.image.gz
> +	$(call if_changed,wrap,$*,$(dts),,$(obj)/ramdisk.image.gz)
> +
> +$(obj)/zImage.dts.%: vmlinux $(wrapperbits) $(dts)
> +	$(call if_changed,wrap,$*,$(dts))
> +
>  $(obj)/zImage.initrd.%: vmlinux $(wrapperbits)
>  	$(call if_changed,wrap,$*,,,$(obj)/ramdisk.image.gz)
>  
> @@ -195,13 +213,18 @@ $(obj)/zImage:		$(addprefix $(obj)/, $(i
>  	@rm -f $@; ln $< $@
>  $(obj)/zImage.initrd:	$(addprefix $(obj)/, $(initrd-y))
>  	@rm -f $@; ln $< $@
> +$(obj)/zImage.dts:	$(addprefix $(obj)/, $(dts-y))
> +	@rm -f $@; ln $< $@
> +$(obj)/zImage.dts_initrd:	$(addprefix $(obj)/, $(dts_initrd-y))
> +	@rm -f $@; ln $< $@
> +

I thought you said you were going to drop this bit?

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson