Re: [PATCH v3 6/9] kbuild: consolidate Devicetree dtb build rules
From: Rob Herring
Date: Mon Oct 01 2018 - 09:25:19 EST
On Mon, Oct 1, 2018 at 12:49 AM Masahiro Yamada
<yamada.masahiro@xxxxxxxxxxxxx> wrote:
>
> Hi Rob,
>
>
> 2018å9æ29æ(å) 0:43 Rob Herring <robh@xxxxxxxxxx>:
>
> > +#
> > ---------------------------------------------------------------------------
> > +# Devicetree files
> > +
> > +ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/boot/dts/),)
> > +dtstree := arch/$(SRCARCH)/boot/dts
> > +endif
> > +
> > +ifneq ($(dtstree),)
> > +
> > +%.dtb : scripts_dtc
>
> %.dtb: prepare3 prepare
I assume you didn't mean to drop scripts_dtc as that doesn't work.
Why "prepare" here and not on dtbs?
> because we need to make sure KERNELRELEASE
> is correctly defined before dtbs_install happens.
Yes, indeed. With prepare3 added I get:
cp: cannot create regular file
'/boot/dtbs/4.19.0-rc3-00009-g0afba9b7b2ea-dirty': No such file or
directory
vs. with it:
cp: cannot create regular file '/boot/dtbs/': Not a directory
>
>
> > + $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
> > +
> > +PHONY += dtbs dtbs_install
> > +dtbs: scripts_dtc
>
>
> dtbs: prepare3 scripts_dtc
>
>
>
> > + $(Q)$(MAKE) $(build)=$(dtstree)
> > +
> > +dtbs_install: dtbs
>
>
> Please do not have dtbs_install to depend on dtbs.
>
> No install targets should ever trigger building anything
> in the source tree.
>
>
> For the background, see the commit log of
> 19514fc665ffbce624785f76ee7ad0ea6378a527
Okay, thanks.
Rob