+ -n '$(if $(UIMAGE_NAME),$(UIMAGE_NAME),$(call toupper,$(LINUX_KARCH)) $(VERSION_DIST) Linux-$(LINUX_VERSION))' -d $@ $@.new
+ mv $@.new $@
+endef
+
+define Build/buffalo-enc
+ $(eval product=$(word 1,$(1)))
+ $(eval version=$(word 2,$(1)))
+ $(eval args=$(wordlist 3,$(words $(1)),$(1)))
+ $(STAGING_DIR_HOST)/bin/buffalo-enc \
+ -p $(product) -v $(version) $(args) \
+ -i $@ -o $@.new
+ mv $@.new $@
+endef
+
+define Build/buffalo-enc-tag
+ $(call Build/buffalo-enc,'' '' -S 152 $(1))
+endef
+
+define Build/buffalo-tag-dhp
+ $(eval product=$(word 1,$(1)))
+ $(eval region=$(word 2,$(1)))
+ $(eval language=$(word 3,$(1)))
+ $(STAGING_DIR_HOST)/bin/buffalo-tag \
+ -d 0x01000000 -w 1 \
+ -a $(BUFFALO_TAG_PLATFORM) \
+ -v $(BUFFALO_TAG_VERSION) -m $(BUFFALO_TAG_MINOR) \
+ -b $(product) -p $(product) \
+ -r $(region) -r $(region) -l $(language) \
+ -I $@ -o $@.new
+ mv $@.new $@
+endef
+
+define Build/buffalo-dhp-image
+ $(STAGING_DIR_HOST)/bin/mkdhpimg $@ $@.new
+ mv $@.new $@
+endef
+
+# blow up binary to given size and put a given string at its end:
+# cameo-factory <size[k]> <string>
+define Build/cameo-factory
+ factory_stamp=$(word 2,$(1)); \
+ ((reduced_size=$(subst k,*1024,$(word 1,$(1)))-$${#factory_stamp})); \
+ ( \
+ dd if=$@ bs=$$reduced_size conv=sync; \
+ echo -n $$factory_stamp; \
+ ) > $@.new && \
+ mv $@.new $@
+endef
+
+define Build/eva-image
+ $(STAGING_DIR_HOST)/bin/lzma2eva $(KERNEL_LOADADDR) $(KERNEL_LOADADDR) $@ $@.new
+ mv $@.new $@
+endef
+
+define Build/zyxel-ras-image
+ let \
+ newsize="$(subst k,* 1024,$(RAS_ROOTFS_SIZE))"; \
+ $(STAGING_DIR_HOST)/bin/mkrasimage \
+ -b $(RAS_BOARD) \
+ -v $(RAS_VERSION) \
+ -r $@ \
+ -s $$newsize \
+ -o $@.new \
+ $(if $(findstring separate-kernel,$(word 1,$(1))),-k $(IMAGE_KERNEL)) \
+ && mv $@.new $@