I guess
    || (rm -f $@ && echo false)
... should be
    || (rm -f $@ && false)
In fact, no Makefile needs to delete a target explicitly on error.
It is automatically done since commit 
9c2af1c7377a ("kbuild: add
.DELETE_ON_ERROR special target").
I also reused equivalent cmd_shipped from scripts/Makefile.lib.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
 # Generate system.dtb from $(DTB).dtb
 ifneq ($(DTB),system)
 $(obj)/system.dtb: $(obj)/$(DTB).dtb
-       $(call if_changed,cp)
+       $(call if_changed,shipped)
 endif
 endif
 
-quiet_cmd_cp = CP      $< $@$2
-       cmd_cp = cat $< >$@$2 || (rm -f $@ && echo false)
-
 # Rule to build device tree blobs
 DTC_FLAGS := -p 1024