image: add gzip-filename build recipe
[openwrt/openwrt.git] / include / image-commands.mk
index 6fe2890a1af51c9459acccf0c95843329fa27556..ff8acf96c4f316570572eb3c736b9056045cc7f3 100644 (file)
@@ -4,7 +4,7 @@ IMAGE_KERNEL = $(word 1,$^)
 IMAGE_ROOTFS = $(word 2,$^)
 
 define ModelNameLimit16
-$(shell expr substr "$(word 2, $(subst _, ,$(1)))" 1 16)
+$(shell printf %.16s "$(word 2, $(subst _, ,$(1)))")
 endef
 
 define rootfs_align
@@ -53,6 +53,7 @@ define Build/append-image-stage
        cp "$(BIN_DIR)/$(DEVICE_IMG_PREFIX)-$(1)" "$@.stripmeta"
        fwtool -s /dev/null -t "$@.stripmeta" || :
        fwtool -i /dev/null -t "$@.stripmeta" || :
+       mkdir -p "$(STAGING_DIR_IMAGE)"
        dd if="$@.stripmeta" of="$(STAGING_DIR_IMAGE)/$(BOARD)$(if $(SUBTARGET),-$(SUBTARGET))-$(DEVICE_NAME)-$(1)"
        dd if="$@.stripmeta" >> "$@"
        rm "$@.stripmeta"
@@ -218,6 +219,11 @@ define Build/copy-file
        cat "$(1)" > "$@"
 endef
 
+define Build/edimax-header
+       $(STAGING_DIR_HOST)/bin/mkedimaximg -i $@ -o $@.new $(1)
+       @mv $@.new $@
+endef
+
 define Build/elecom-product-header
        $(eval product=$(word 1,$(1)))
        $(eval fw=$(if $(word 2,$(1)),$(word 2,$(1)),$@))
@@ -291,6 +297,7 @@ define Build/fit
                -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
                $(if $(DEVICE_FDT_NUM),-n $(DEVICE_FDT_NUM)) \
                $(if $(DEVICE_DTS_DELIMITER),-l $(DEVICE_DTS_DELIMITER)) \
+               $(if $(DEVICE_DTS_LOADADDR),-s $(DEVICE_DTS_LOADADDR)) \
                $(if $(DEVICE_DTS_OVERLAY),$(foreach dtso,$(DEVICE_DTS_OVERLAY), -O $(dtso):$(KERNEL_BUILD_DIR)/image-$(dtso).dtb)) \
                -c $(if $(DEVICE_DTS_CONFIG),$(DEVICE_DTS_CONFIG),"config-1") \
                -A $(LINUX_KARCH) -v $(LINUX_VERSION)
@@ -299,9 +306,23 @@ define Build/fit
        @mv $@.new $@
 endef
 
+define Build/libdeflate-gzip
+       $(STAGING_DIR_HOST)/bin/libdeflate-gzip -f -12 -c $@ $(1) > $@.new
+       @mv $@.new $@
+endef
+
 define Build/gzip
-       gzip -f -9n -c $@ $(1) > $@.new
+       $(STAGING_DIR_HOST)/bin/gzip -f -9n -c $@ $(1) > $@.new
+       @mv $@.new $@
+endef
+
+define Build/gzip-filename
+       @mkdir -p $@.tmp
+       @cp $@ $@.tmp/$(word 1,$(1))
+       $(if $(SOURCE_DATE_EPOCH),touch -hcd "@$(SOURCE_DATE_EPOCH)" $@.tmp/$(word 1,$(1)) $(word 2,$(1)))
+       $(STAGING_DIR_HOST)/bin/gzip -f -9 -N -c $@.tmp/$(word 1,$(1)) $(word 2,$(1)) > $@.new
        @mv $@.new $@
+       @rm -rf $@.tmp
 endef
 
 define Build/install-dtb