diff mbox

[U-Boot,12/15] kbuild: use shorten logs for IMX images

Message ID 1391779780-22434-13-git-send-email-yamada.m@jp.panasonic.com
State Superseded
Delegated to: Tom Rini
Headers show

Commit Message

Masahiro Yamada Feb. 7, 2014, 1:29 p.m. UTC
Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
---

 Makefile                         |  4 +-
 arch/arm/cpu/arm1136/config.mk   |  2 +-
 arch/arm/cpu/arm926ejs/config.mk |  2 +-
 arch/arm/cpu/armv7/config.mk     |  2 +-
 arch/arm/imx-common/Makefile     | 85 ++++++++++++++++++++++++----------------
 spl/Makefile                     |  4 +-
 6 files changed, 58 insertions(+), 41 deletions(-)

Comments

Simon Glass Feb. 21, 2014, 1:51 p.m. UTC | #1
Hi Masahiro,

On 7 February 2014 05:29, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote:
> Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
> ---
>
>  Makefile                         |  4 +-
>  arch/arm/cpu/arm1136/config.mk   |  2 +-
>  arch/arm/cpu/arm926ejs/config.mk |  2 +-
>  arch/arm/cpu/armv7/config.mk     |  2 +-
>  arch/arm/imx-common/Makefile     | 85 ++++++++++++++++++++++++----------------
>  spl/Makefile                     |  4 +-
>  6 files changed, 58 insertions(+), 41 deletions(-)
>
...

> diff --git a/spl/Makefile b/spl/Makefile
> index 22d6323..e8c5938 100644
> --- a/spl/Makefile
> +++ b/spl/Makefile
> @@ -178,8 +178,8 @@ MKIMAGEFLAGS_MLO.byteswap = -T omapimage -n byteswap -a $(CONFIG_SPL_TEXT_BASE)
>  MLO MLO.byteswap: $(obj)/u-boot-spl.bin
>         $(call if_changed,mkimage)
>
> -$(objtree)/SPL: $(obj)/u-boot-spl.bin
> -       $(Q)$(MAKE) $(build)=spl/arch/arm/imx-common $@
> +SPL: $(obj)/u-boot-spl.bin
> +       $(Q)$(MAKE) $(build)=arch/arm/imx-common $@

This series looks good to me, but I would like to understand what is
happening here. Are you changing it to pick up the source from the
real arch/ directory instead of the spl copy?

>
>  ALL-y  += $(obj)/$(SPL_BIN).bin
>
> --
> 1.8.3.2
>

Regards,
Simon
Masahiro Yamada Feb. 24, 2014, 1:58 a.m. UTC | #2
Hello Simon,

Thanks for your close review.
This is always appreciated.


> > diff --git a/spl/Makefile b/spl/Makefile
> > index 22d6323..e8c5938 100644
> > --- a/spl/Makefile
> > +++ b/spl/Makefile
> > @@ -178,8 +178,8 @@ MKIMAGEFLAGS_MLO.byteswap = -T omapimage -n byteswap -a $(CONFIG_SPL_TEXT_BASE)
> >  MLO MLO.byteswap: $(obj)/u-boot-spl.bin
> >         $(call if_changed,mkimage)
> >
> > -$(objtree)/SPL: $(obj)/u-boot-spl.bin
> > -       $(Q)$(MAKE) $(build)=spl/arch/arm/imx-common $@
> > +SPL: $(obj)/u-boot-spl.bin
> > +       $(Q)$(MAKE) $(build)=arch/arm/imx-common $@
> 
> This series looks good to me, but I would like to understand what is
> happening here. Are you changing it to pick up the source from the
> real arch/ directory instead of the spl copy?

Two things are happening here:
 [1] drop $(objtree)/
 [2] modify $(build)=spl/arch/arm/imx-commot  to
    $(build)=arch/arm/imx-common

Let me explain the reason of each one by one.

[1]
$(objtree) ( and $(OBJTREE)) points to the absolute path of the
working directory.

I want short log should be like:
    UIMAGE  SPL
rather than
    UIMAGE  /home/yamada/workspace/SPL

That's why  I dropped $(objtree)/ and $(OBJTREE)/  prefixes
from all IMX related images.

[2]
I guess it's difficult to understand what's happening here.
I hope the following explanation will be clear for you..

At this commit,
Both ./Makefile and spl/Makefile descend into arch/arm/imx-common.


From the ./Makefile, here

u-boot.imx: u-boot.bin
        $(Q)$(MAKE) $(build)=arch/arm/imx-common $@

u-boot-with-spl.imx u-boot-with-nand-spl.imx: spl/u-boot-spl.bin u-boot.bin
        $(Q)$(MAKE) $(build)=arch/arm/imx-common $@


And from spl/Makefile, here

SPL: $(obj)/u-boot-spl.bin
        $(Q)$(MAKE) $(build)=arch/arm/imx-common $@


I needed to specify "$(build)=arch/arm/imx-common" consistenty
to include ".*.cmd" files correctly.

I added 
   targets += $(addprefix ../../../,$(IMX_CONFIG) SPL u-boot.uim spl/u-boot-nand-spl.imx)
at the end of arch/arm/imx-common/Makefile.
(It may look weird. )

And it is prefixed (obj)/  at scripts/Makefile.lib  line 76
   targets         := $(addprefix $(obj)/,$(targets))

If I had not changed "$(build)=spl/arm/arm/imx-common",
$(targets) would have pointed to "spl/arch/arm/imx-common/../../../SPL),
that is, "spl/SPL".
But .SPL.cmd is not in spl/ directory.



Anyway, it is really complicated to descend into arch/arm/imx-common
from two Makefiles, ./Makefile and spl/Makefile.

So I moved the SPL rule from spl/Makefile to ./Makefile.


Best Regards
Masahiro Yamada
Simon Glass Feb. 25, 2014, 11:48 p.m. UTC | #3
Hi Masahiro,

On 23 February 2014 18:58, Masahiro Yamada <yamada.m@jp.panasonic.com> wrote:
> Hello Simon,
>
> Thanks for your close review.
> This is always appreciated.
>
>
>> > diff --git a/spl/Makefile b/spl/Makefile
>> > index 22d6323..e8c5938 100644
>> > --- a/spl/Makefile
>> > +++ b/spl/Makefile
>> > @@ -178,8 +178,8 @@ MKIMAGEFLAGS_MLO.byteswap = -T omapimage -n byteswap -a $(CONFIG_SPL_TEXT_BASE)
>> >  MLO MLO.byteswap: $(obj)/u-boot-spl.bin
>> >         $(call if_changed,mkimage)
>> >
>> > -$(objtree)/SPL: $(obj)/u-boot-spl.bin
>> > -       $(Q)$(MAKE) $(build)=spl/arch/arm/imx-common $@
>> > +SPL: $(obj)/u-boot-spl.bin
>> > +       $(Q)$(MAKE) $(build)=arch/arm/imx-common $@
>>
>> This series looks good to me, but I would like to understand what is
>> happening here. Are you changing it to pick up the source from the
>> real arch/ directory instead of the spl copy?
>
> Two things are happening here:
>  [1] drop $(objtree)/
>  [2] modify $(build)=spl/arch/arm/imx-commot  to
>     $(build)=arch/arm/imx-common
>
> Let me explain the reason of each one by one.
>
> [1]
> $(objtree) ( and $(OBJTREE)) points to the absolute path of the
> working directory.
>
> I want short log should be like:
>     UIMAGE  SPL
> rather than
>     UIMAGE  /home/yamada/workspace/SPL
>
> That's why  I dropped $(objtree)/ and $(OBJTREE)/  prefixes
> from all IMX related images.
>
> [2]
> I guess it's difficult to understand what's happening here.
> I hope the following explanation will be clear for you..
>
> At this commit,
> Both ./Makefile and spl/Makefile descend into arch/arm/imx-common.
>
>
> From the ./Makefile, here
>
> u-boot.imx: u-boot.bin
>         $(Q)$(MAKE) $(build)=arch/arm/imx-common $@
>
> u-boot-with-spl.imx u-boot-with-nand-spl.imx: spl/u-boot-spl.bin u-boot.bin
>         $(Q)$(MAKE) $(build)=arch/arm/imx-common $@
>
>
> And from spl/Makefile, here
>
> SPL: $(obj)/u-boot-spl.bin
>         $(Q)$(MAKE) $(build)=arch/arm/imx-common $@
>
>
> I needed to specify "$(build)=arch/arm/imx-common" consistenty
> to include ".*.cmd" files correctly.
>
> I added
>    targets += $(addprefix ../../../,$(IMX_CONFIG) SPL u-boot.uim spl/u-boot-nand-spl.imx)
> at the end of arch/arm/imx-common/Makefile.
> (It may look weird. )
>
> And it is prefixed (obj)/  at scripts/Makefile.lib  line 76
>    targets         := $(addprefix $(obj)/,$(targets))
>
> If I had not changed "$(build)=spl/arm/arm/imx-common",
> $(targets) would have pointed to "spl/arch/arm/imx-common/../../../SPL),
> that is, "spl/SPL".
> But .SPL.cmd is not in spl/ directory.
>
>
>
> Anyway, it is really complicated to descend into arch/arm/imx-common
> from two Makefiles, ./Makefile and spl/Makefile.
>
> So I moved the SPL rule from spl/Makefile to ./Makefile.

Sorry I didn't reply earlier when I first read this, it looks good.
Thanks for the detailed explanation.

Regards,
Simon
diff mbox

Patch

diff --git a/Makefile b/Makefile
index 907b013..5acf538 100644
--- a/Makefile
+++ b/Makefile
@@ -816,7 +816,7 @@  u-boot.img u-boot.kwb u-boot.pbl: u-boot.bin FORCE
 	$(call if_changed,mkimage)
 
 u-boot.imx: u-boot.bin
-	$(Q)$(MAKE) $(build)=arch/arm/imx-common $(objtree)/$@
+	$(Q)$(MAKE) $(build)=arch/arm/imx-common $@
 
 u-boot.sha1:	u-boot.bin
 		tools/ubsha1 u-boot.bin
@@ -841,7 +841,7 @@  tpl/u-boot-with-tpl.bin: tpl/u-boot-tpl.bin u-boot.bin FORCE
 	$(call if_changed,pad_cat)
 
 u-boot-with-spl.imx u-boot-with-nand-spl.imx: spl/u-boot-spl.bin u-boot.bin
-	$(Q)$(MAKE) $(build)=arch/arm/imx-common $(objtree)/$@
+	$(Q)$(MAKE) $(build)=arch/arm/imx-common $@
 
 MKIMAGEFLAGS_u-boot.ubl = -n $(UBL_CONFIG) -T ublimage -e $(CONFIG_SYS_TEXT_BASE)
 
diff --git a/arch/arm/cpu/arm1136/config.mk b/arch/arm/cpu/arm1136/config.mk
index ab1fc4a..91b0ef3 100644
--- a/arch/arm/cpu/arm1136/config.mk
+++ b/arch/arm/cpu/arm1136/config.mk
@@ -11,7 +11,7 @@  PLATFORM_CPPFLAGS += -march=armv5
 ifneq ($(CONFIG_IMX_CONFIG),)
 ifdef CONFIG_SPL
 ifdef CONFIG_SPL_BUILD
-ALL-y	+= $(OBJTREE)/SPL
+ALL-y	+= SPL
 endif
 else
 ALL-y	+= u-boot.imx
diff --git a/arch/arm/cpu/arm926ejs/config.mk b/arch/arm/cpu/arm926ejs/config.mk
index f27ca15..918cdec 100644
--- a/arch/arm/cpu/arm926ejs/config.mk
+++ b/arch/arm/cpu/arm926ejs/config.mk
@@ -10,7 +10,7 @@  PLATFORM_CPPFLAGS += -march=armv5te
 ifneq ($(CONFIG_IMX_CONFIG),)
 ifdef CONFIG_SPL
 ifdef CONFIG_SPL_BUILD
-ALL-y	+= $(OBJTREE)/SPL
+ALL-y	+= SPL
 endif
 else
 ALL-y	+= u-boot.imx
diff --git a/arch/arm/cpu/armv7/config.mk b/arch/arm/cpu/armv7/config.mk
index d01f3d9..852f83c 100644
--- a/arch/arm/cpu/armv7/config.mk
+++ b/arch/arm/cpu/armv7/config.mk
@@ -17,7 +17,7 @@  PLATFORM_NO_UNALIGNED := $(PF_NO_UNALIGNED)
 ifneq ($(CONFIG_IMX_CONFIG),)
 ifdef CONFIG_SPL
 ifdef CONFIG_SPL_BUILD
-ALL-y	+= $(OBJTREE)/SPL
+ALL-y	+= SPL
 endif
 else
 ALL-y	+= u-boot.imx
diff --git a/arch/arm/imx-common/Makefile b/arch/arm/imx-common/Makefile
index 88d6c0b..16809fe 100644
--- a/arch/arm/imx-common/Makefile
+++ b/arch/arm/imx-common/Makefile
@@ -23,37 +23,54 @@  endif
 obj-$(CONFIG_CMD_BMODE) += cmd_bmode.o
 obj-$(CONFIG_CMD_HDMIDETECT) += cmd_hdmidet.o
 
-$(OBJTREE)/$(patsubst "%",%,$(CONFIG_IMX_CONFIG)).cfgtmp: $(OBJTREE)/%.cfgtmp : $(SRCTREE)/%
-	mkdir -p $(dir $@)
-	$(CPP) $(cpp_flags) -x c -o $@ $<
-
-$(OBJTREE)/u-boot.imx: $(OBJTREE)/u-boot.bin $(OBJTREE)/$(patsubst "%",%,$(CONFIG_IMX_CONFIG)).cfgtmp
-	$(OBJTREE)/tools/mkimage -n $(filter-out %.bin,$^) -T imximage \
-	-e $(CONFIG_SYS_TEXT_BASE) -d $< $@
-
-$(OBJTREE)/SPL: $(OBJTREE)/spl/u-boot-spl.bin $(OBJTREE)/$(patsubst "%",%,$(CONFIG_IMX_CONFIG)).cfgtmp
-	$(OBJTREE)/tools/mkimage -n $(filter-out %.bin,$^) -T imximage \
-	-e $(CONFIG_SPL_TEXT_BASE) -d $< $@
-
-$(OBJTREE)/u-boot-with-spl.imx: $(OBJTREE)/SPL $(OBJTREE)/u-boot.bin
-	$(OBJCOPY) $(OBJCOPYFLAGS) --pad-to=$(CONFIG_SPL_PAD_TO) \
-		-I binary -O binary $< $(OBJTREE)/spl/u-boot-spl-pad.imx
-	$(OBJTREE)/tools/mkimage -A arm -O U-Boot -a $(CONFIG_SYS_TEXT_BASE) \
-		-e $(CONFIG_SYS_TEXT_BASE) -C none -d $(OBJTREE)/u-boot.bin \
-		$(OBJTREE)/u-boot.uim
-	cat $(OBJTREE)/spl/u-boot-spl-pad.imx $(OBJTREE)/u-boot.uim > $@
-	rm $(OBJTREE)/spl/u-boot-spl-pad.imx $(OBJTREE)/u-boot.uim
-
-$(OBJTREE)/u-boot-with-nand-spl.imx: $(OBJTREE)/SPL $(OBJTREE)/u-boot.bin
-	(echo -ne '\x00\x00\x00\x00\x46\x43\x42\x20\x01' && \
-			dd bs=1015 count=1 if=/dev/zero 2>/dev/null) | \
-		cat - $< > $(OBJTREE)/spl/u-boot-nand-spl.imx
-	$(OBJCOPY) $(OBJCOPYFLAGS) --pad-to=$(CONFIG_SPL_PAD_TO) \
-		-I binary -O binary $(OBJTREE)/spl/u-boot-nand-spl.imx \
-		$(OBJTREE)/spl/u-boot-nand-spl-pad.imx
-	rm $(OBJTREE)/spl/u-boot-nand-spl.imx
-	$(OBJTREE)/tools/mkimage -A arm -O U-Boot -a $(CONFIG_SYS_TEXT_BASE) \
-		-e $(CONFIG_SYS_TEXT_BASE) -C none -d $(OBJTREE)/u-boot.bin \
-		$(OBJTREE)/u-boot.uim
-	cat $(OBJTREE)/spl/u-boot-nand-spl-pad.imx $(OBJTREE)/u-boot.uim > $@
-	rm $(OBJTREE)/spl/u-boot-nand-spl-pad.imx $(OBJTREE)/u-boot.uim
+quiet_cmd_cpp_cfg = CFGS    $@
+      cmd_cpp_cfg = $(CPP) $(cpp_flags) -x c -o $@ $<
+
+IMX_CONFIG = $(CONFIG_IMX_CONFIG:"%"=%).cfgtmp
+
+$(IMX_CONFIG): %.cfgtmp: % FORCE
+	$(Q)mkdir -p $(dir $@)
+	$(call if_changed_dep,cpp_cfg)
+
+quiet_cmd_mkimage = UIMAGE  $@
+cmd_mkimage = $(objtree)/tools/mkimage $(MKIMAGEFLAGS_$(@F)) -d $< $@ \
+	$(if $(KBUILD_VERBOSE:1=), >/dev/null)
+
+MKIMAGEFLAGS_u-boot.imx = -n $(filter-out $< $(PHONY),$^) -T imximage \
+	-e $(CONFIG_SYS_TEXT_BASE)
+
+u-boot.imx: u-boot.bin $(IMX_CONFIG) FORCE
+	$(call if_changed,mkimage)
+
+MKIMAGEFLAGS_SPL = -n $(filter-out $< $(PHONY),$^) -T imximage \
+	-e $(CONFIG_SPL_TEXT_BASE)
+
+SPL: spl/u-boot-spl.bin $(IMX_CONFIG) FORCE
+	$(call if_changed,mkimage)
+
+MKIMAGEFLAGS_u-boot.uim = -A arm -O U-Boot -a $(CONFIG_SYS_TEXT_BASE) \
+		-e $(CONFIG_SYS_TEXT_BASE) -C none
+
+u-boot.uim: u-boot.bin FORCE
+	$(call if_changed,mkimage)
+
+OBJCOPYFLAGS += -I binary -O binary --pad-to=$(CONFIG_SPL_PAD_TO)
+append = cat $(filter-out $< $(PHONY), $^) >> $@
+
+quiet_cmd_pad_cat = CAT     $@
+cmd_pad_cat = $(cmd_objcopy) && $(append) || rm -f $@
+
+u-boot-with-spl.imx: SPL u-boot.uim FORCE
+	$(call if_changed,pad_cat)
+
+u-boot-with-nand-spl.imx: spl/u-boot-nand-spl.imx u-boot.uim FORCE
+	$(call if_changed,pad_cat)
+
+quiet_cmd_u-boot-nand-spl_imx = GEN     $@
+cmd_u-boot-nand-spl_imx = (echo -ne '\x00\x00\x00\x00\x46\x43\x42\x20\x01' && \
+	dd bs=1015 count=1 if=/dev/zero 2>/dev/null) | cat - $< > $@
+
+spl/u-boot-nand-spl.imx: SPL FORCE
+	$(call if_changed,u-boot-nand-spl_imx)
+
+targets += $(addprefix ../../../,$(IMX_CONFIG) SPL u-boot.uim spl/u-boot-nand-spl.imx)
diff --git a/spl/Makefile b/spl/Makefile
index 22d6323..e8c5938 100644
--- a/spl/Makefile
+++ b/spl/Makefile
@@ -178,8 +178,8 @@  MKIMAGEFLAGS_MLO.byteswap = -T omapimage -n byteswap -a $(CONFIG_SPL_TEXT_BASE)
 MLO MLO.byteswap: $(obj)/u-boot-spl.bin
 	$(call if_changed,mkimage)
 
-$(objtree)/SPL: $(obj)/u-boot-spl.bin
-	$(Q)$(MAKE) $(build)=spl/arch/arm/imx-common $@
+SPL: $(obj)/u-boot-spl.bin
+	$(Q)$(MAKE) $(build)=arch/arm/imx-common $@
 
 ALL-y	+= $(obj)/$(SPL_BIN).bin