X-Git-Url: http://git.ipfire.org/?p=people%2Fms%2Fu-boot.git;a=blobdiff_plain;f=dts%2FMakefile;h=779c9ec5c3d102db719682003d768f29451f9d3c;hp=9907463fc6344d524d9ea415db5112573c6e1a8b;hb=20fa1dd386c891f7d6477e7d442dda76af6c765b;hpb=3e11350255d9c5d4bd03c2a65769da84c05d3294 diff --git a/dts/Makefile b/dts/Makefile index 9907463fc6..779c9ec5c3 100644 --- a/dts/Makefile +++ b/dts/Makefile @@ -12,17 +12,28 @@ ifeq ($(DEVICE_TREE),) DEVICE_TREE := unset endif -DTB := arch/$(ARCH)/dts/$(DEVICE_TREE).dtb +ARCH_PATH := arch/$(ARCH)/dts +dtb_depends := arch-dtbs -quiet_cmd_copy = COPY $@ - cmd_copy = cp $< $@ +ifneq ($(EXT_DTB),) +DTB := $(EXT_DTB) +else +DTB := $(ARCH_PATH)/$(DEVICE_TREE).dtb +dtb_depends += $(DTB:.dtb=.dts) +endif + +$(obj)/dt-spl.dtb: $(DTB) $(objtree)/tools/fdtgrep FORCE + $(call if_changed,fdtgrep) $(obj)/dt.dtb: $(DTB) FORCE - $(call if_changed,copy) + $(call if_changed,shipped) -targets += dt.dtb +targets += dt.dtb dt-spl.dtb -$(DTB): arch-dtbs +$(DTB): $(dtb_depends) +ifeq ($(EXT_DTB),) + $(Q)$(MAKE) $(build)=$(ARCH_PATH) $@ +endif $(Q)test -e $@ || ( \ echo >&2; \ echo >&2 "Device Tree Source is not correctly specified."; \ @@ -32,16 +43,24 @@ $(DTB): arch-dtbs /bin/false) arch-dtbs: - $(Q)$(MAKE) $(build)=arch/$(ARCH)/dts dtbs + $(Q)$(MAKE) $(build)=$(ARCH_PATH) dtbs -.SECONDARY: $(obj)/dt.dtb.S +.SECONDARY: $(obj)/dt.dtb.S $(obj)/dt-spl.dtb.S + +ifeq ($(CONFIG_SPL_BUILD),y) +obj-$(CONFIG_OF_EMBED) := dt-spl.dtb.o +# support "out-of-tree" build for dtb-spl +$(obj)/dt-spl.dtb.o: $(obj)/dt-spl.dtb.S FORCE + $(call if_changed_dep,as_o_S) +else obj-$(CONFIG_OF_EMBED) := dt.dtb.o +endif -dtbs: $(obj)/dt.dtb +dtbs: $(obj)/dt.dtb $(obj)/dt-spl.dtb @: -clean-files := dt.dtb.S +clean-files := dt.dtb.S dt-spl.dtb.S # Let clean descend into dts directories -subdir- += ../arch/*/dts +subdir- += ../arch/arm/dts ../arch/microblaze/dts ../arch/mips/dts ../arch/sandbox/dts ../arch/x86/dts