image: fix device variable exports for initramfs images
[openwrt/staging/wigyori.git] / include / image.mk
index 287c679cfd12d8cfdae0ddb46cfcdea6f7577f5b..470a5dafeb83bc7989d91a7b2553260537faed23 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))
@@ -224,7 +240,7 @@ ifneq ($(CONFIG_TARGET_ROOTFS_UBIFS),)
 endif
 
 define Image/mkfs/cpiogz
-       ( cd $(TARGET_DIR); find . | cpio -o -H newc | gzip -9 >$(BIN_DIR)/$(IMG_PREFIX)-rootfs.cpio.gz )
+       ( cd $(TARGET_DIR); find . | cpio -o -H newc | gzip -9n >$(BIN_DIR)/$(IMG_PREFIX)-rootfs.cpio.gz )
 endef
 
 define Image/mkfs/targz
@@ -304,6 +320,11 @@ define Build/append-rootfs
        dd if=$(word 2,$^) $(if $(1),bs=$(1) conv=sync) >> $@
 endef
 
+define Build/pad-to
+       dd if=$@ of=$@.new bs=$(1) conv=sync
+       mv $@.new $@
+endef
+
 define Build/pad-rootfs
        $(call prepare_generic_squashfs,$@ $(1))
 endef
@@ -371,6 +392,7 @@ endef
 
 ifndef IB
 define Device/Build/initramfs
+  $(call Device/Export,$(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE),$(1))
   $$(_TARGET): $(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE)
 
   $(KDIR)/$$(KERNEL_NAME)-initramfs: image_prepare
@@ -418,7 +440,6 @@ endef
 define Device/Build/image
   $$(_TARGET): $(BIN_DIR)/$(call IMAGE_NAME,$(1),$(2))
   $(eval $(call Device/Export,$(KDIR)/$(KERNEL_IMAGE),$(1)))
-  $(eval $(call Device/Export,$(KDIR)/tmp/$(KERNEL_INITRAMFS_IMAGE),$(1)))
   $(eval $(call Device/Export,$(KDIR)/tmp/$(call IMAGE_NAME,$(1),$(2)),$(1)))
   $(KDIR)/tmp/$(call IMAGE_NAME,$(1),$(2)): $(KDIR)/$$(KERNEL_IMAGE) $(KDIR)/root.$(1)
        @rm -f $$@