image.mk: add a BuildDTB define
authorJonas Gorski <jogo@openwrt.org>
Thu, 16 Jul 2015 11:12:52 +0000 (11:12 +0000)
committerJonas Gorski <jogo@openwrt.org>
Thu, 16 Jul 2015 11:12:52 +0000 (11:12 +0000)
Add a Image/BuildDTB command that takes the path to an dts file and
applies the CPP using the default include directories, then uses dtc
to compile the dts as the specified output file.
Additional CPP and DTC flags can be supplied as additional arguments.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>
SVN-Revision: 46389

include/image.mk

index 6767e76dc15739263a638e3f0f354ad7719fe826..a20e090fe73f65148a46500ec4c3e189239eb860 100644 (file)
@@ -126,6 +126,22 @@ define Image/BuildKernel/MkFIT
        PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $(KDIR)/fit-$(1).its $(KDIR)/fit-$(1)$(7).itb
 endef
 
+# $(1) source dts file
+# $(2) target dtb file
+# $(3) extra CPP flags
+# $(4) extra DTC flags
+define Image/BuildDTB
+       $(CPP) -nostdinc -x assembler-with-cpp \
+               -I$(LINUX_DIR)/arch/$(ARCH)/boot/dts \
+               -I$(LINUX_DIR)/arch/$(ARCH)/boot/dts/include \
+               -undef -D__DTS__ $(3) \
+               -o $(2).tmp $(1)
+       $(LINUX_DIR)/scripts/dtc/dtc -O dtb \
+               -i$(dir $(1)) $(4) \
+               -o $(2) $(2).tmp
+       $(RM) $(2).tmp
+endef
+
 define Image/mkfs/jffs2/sub
                $(STAGING_DIR_HOST)/bin/mkfs.jffs2 $(3) --pad -e $(patsubst %k,%KiB,$(1)) -o $(KDIR)/root.jffs2-$(2) -d $(TARGET_DIR) -v 2>&1 1>/dev/null | awk '/^.+$$$$/'
                $(call add_jffs2_mark,$(KDIR)/root.jffs2-$(2))