kbuild: use shorten logs objcopy rules
authorMasahiro Yamada <yamada.m@jp.panasonic.com>
Mon, 24 Feb 2014 02:12:14 +0000 (11:12 +0900)
committerTom Rini <trini@ti.com>
Tue, 25 Feb 2014 16:01:29 +0000 (11:01 -0500)
Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Makefile
examples/api/Makefile
examples/standalone/Makefile
spl/Makefile

index 05292ad..7a179cd 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -743,6 +743,9 @@ ifneq ($(CONFIG_SYS_TEXT_BASE),)
 LDFLAGS_u-boot += -Ttext $(CONFIG_SYS_TEXT_BASE)
 endif
 
+quiet_cmd_objcopy = OBJCOPY $@
+cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $(OBJCOPYFLAGS_$(@F)) $< $@
+
 all:           $(ALL-y)
 
 PHONY += dtbs
@@ -752,27 +755,31 @@ dtbs dts/dt.dtb: checkdtc u-boot
 u-boot-dtb.bin: u-boot.bin dts/dt.dtb
                cat $^ >$@
 
-u-boot.hex:    u-boot
-               $(OBJCOPY) $(OBJCOPYFLAGS) -O ihex $< $@
+OBJCOPYFLAGS_u-boot.hex := -O ihex
 
-u-boot.srec:   u-boot
-               $(OBJCOPY) $(OBJCOPYFLAGS) -O srec $< $@
+OBJCOPYFLAGS_u-boot.srec := -O srec
 
-u-boot.bin:    u-boot
-               $(OBJCOPY) $(OBJCOPYFLAGS) -O binary $< $@
-               $(call DO_STATIC_RELA,$<,$@,$(CONFIG_SYS_TEXT_BASE))
-               $(BOARD_SIZE_CHECK)
+u-boot.hex u-boot.srec: u-boot FORCE
+       $(call if_changed,objcopy)
+
+OBJCOPYFLAGS_u-boot.bin := -O binary
+
+u-boot.bin: u-boot FORCE
+       $(call if_changed,objcopy)
+       $(call DO_STATIC_RELA,$<,$@,$(CONFIG_SYS_TEXT_BASE))
+       $(BOARD_SIZE_CHECK)
 
 u-boot.ldr:    u-boot
                $(CREATE_LDR_ENV)
                $(LDR) -T $(CONFIG_BFIN_CPU) -c $@ $< $(LDR_FLAGS)
                $(BOARD_SIZE_CHECK)
 
-u-boot.ldr.hex:        u-boot.ldr
-               $(OBJCOPY) $(OBJCOPYFLAGS) -O ihex $< $@ -I binary
+OBJCOPYFLAGS_u-boot.ldr.hex := -I binary -O ihex
+
+OBJCOPYFLAGS_u-boot.ldr.srec := -I binary -O srec
 
-u-boot.ldr.srec:       u-boot.ldr
-               $(OBJCOPY) $(OBJCOPYFLAGS) -O srec $< $@ -I binary
+u-boot.ldr.hex u-boot.ldr.srec: u-boot.ldr FORCE
+       $(call if_changed,objcopy)
 
 #
 # U-Boot entry point, needed for booting of full-blown U-Boot
@@ -1253,6 +1260,16 @@ quiet_cmd_rmdirs = $(if $(wildcard $(rm-dirs)),CLEAN   $(wildcard $(rm-dirs)))
 quiet_cmd_rmfiles = $(if $(wildcard $(rm-files)),CLEAN   $(wildcard $(rm-files)))
       cmd_rmfiles = rm -f $(rm-files)
 
+# read all saved command lines
+
+targets := $(wildcard $(sort $(targets)))
+cmd_files := $(wildcard .*.cmd $(foreach f,$(targets),$(dir $(f)).$(notdir $(f)).cmd))
+
+ifneq ($(cmd_files),)
+  $(cmd_files): ;      # Do not try to update included dependency files
+  include $(cmd_files)
+endif
+
 # Shorthand for $(Q)$(MAKE) -f scripts/Makefile.clean obj=dir
 # Usage:
 # $(Q)$(MAKE) $(clean)=dir
index 09475f8..6c19830 100644 (file)
@@ -40,8 +40,10 @@ OBJS += $(addprefix $(obj)/,$(notdir $(EXT_SOBJ_FILES-y)))
 $(obj)/demo:   $(OBJS)
                $(LD) --gc-sections -Ttext $(LOAD_ADDR) -o $@ $^ $(PLATFORM_LIBS)
 
-$(obj)/demo.bin: $(obj)/demo
-               $(OBJCOPY) -O binary $< $@ 2>/dev/null
+# demo.bin is never genrated. Is this necessary?
+OBJCOPYFLAGS_demo.bin := -O binary
+$(obj)/demo.bin: $(obj)/demo FORCE
+       $(call if_changed,objcopy)
 
 # Rule to build generic library C files
 $(addprefix $(obj)/,$(notdir $(EXT_COBJ_FILES-y))): $(obj)/%.o: $(SRCTREE)/lib/%.c FORCE
index 47c9d54..5f61043 100644 (file)
@@ -72,8 +72,10 @@ $(obj)/%:    $(obj)/%.o $(LIB)
                        -o $@ -e $(SYM_PREFIX)$(notdir $(<:.o=)) $< $(LIB) \
                        -L$(gcclibdir) -lgcc
 
-$(obj)/%.srec: $(obj)/%
-               $(OBJCOPY) -O srec $< $@ 2>/dev/null
+$(obj)/%.srec: OBJCOPYFLAGS := -O srec
+$(obj)/%.srec: $(obj)/% FORCE
+       $(call if_changed,objcopy)
 
-$(obj)/%.bin:  $(obj)/%
-               $(OBJCOPY) -O binary $< $@ 2>/dev/null
+$(obj)/%.bin: OBJCOPYFLAGS := -O binary
+$(obj)/%.bin: $(obj)/% FORCE
+       $(call if_changed,objcopy)
index df4ecfa..94e721f 100644 (file)
@@ -200,8 +200,13 @@ $(obj)/$(BOARD)-spl.bin: $(obj)/u-boot-spl.bin
        $(OBJTREE)/tools/mkexynosspl) $(VAR_SIZE_PARAM) $< $@
 endif
 
-$(obj)/$(SPL_BIN).bin: $(obj)/$(SPL_BIN)
-       $(OBJCOPY) $(OBJCOPYFLAGS) $(SPL_OBJCFLAGS) -O binary $< $@
+quiet_cmd_objcopy = OBJCOPY $@
+cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $(OBJCOPYFLAGS_$(@F)) $< $@
+
+OBJCOPYFLAGS_$(SPL_BIN).bin = $(SPL_OBJCFLAGS) -O binary
+
+$(obj)/$(SPL_BIN).bin: $(obj)/$(SPL_BIN) FORCE
+       $(call if_changed,objcopy)
 
 LDFLAGS_$(SPL_BIN) += -T u-boot-spl.lds $(LDFLAGS_FINAL)
 ifneq ($(CONFIG_SPL_TEXT_BASE),)
@@ -229,6 +234,16 @@ cpp_flags := $(KBUILD_CPPFLAGS) $(CPPFLAGS) $(UBOOTINCLUDE) $(NOSTDINC_FLAGS)
 $(obj)/u-boot-spl.lds: $(LDSCRIPT) FORCE
        $(CPP) $(cpp_flags) $(LDPPFLAGS) -I$(obj). -ansi -D__ASSEMBLY__ -P - < $< > $@
 
+# read all saved command lines
+
+targets := $(wildcard $(sort $(targets)))
+cmd_files := $(wildcard $(obj)/.*.cmd $(foreach f,$(targets),$(dir $(f)).$(notdir $(f)).cmd))
+
+ifneq ($(cmd_files),)
+  $(cmd_files): ;      # Do not try to update included dependency files
+  include $(cmd_files)
+endif
+
 PHONY += FORCE
 FORCE: