kernel: backport ssb changes from 4.4-rc1
[openwrt/staging/chunkeey.git] / include / image.mk
index cf6717cf19c506e74b4a10a8a426e78311d7ebf9..fd5e3f4b62a4ca2d092c124fc354c6dcc3661b87 100644 (file)
@@ -89,6 +89,16 @@ define toupper
 $(shell echo $(1) | tr '[:lower:]' '[:upper:]')
 endef
 
+define tolower
+$(shell echo $(1) | tr '[:upper:]' '[:lower:]')
+endef
+
+define sanitize
+$(shell echo $(call tolower,$(1)) | sed 's/_/-/g')
+endef
+
+PROFILE_SANITIZED := $(call sanitize,$(PROFILE))
+
 define split_args
 $(foreach data, \
        $(subst |,$(space),\
@@ -245,7 +255,7 @@ define Image/mkfs/cpiogz
 endef
 
 define Image/mkfs/targz
-       $(TAR) -czpf $(BIN_DIR)/$(IMG_PREFIX)$(if $(PROFILE),-$(PROFILE))-rootfs.tar.gz --numeric-owner --owner=0 --group=0 -C $(TARGET_DIR)/ .
+       $(TAR) -czpf $(BIN_DIR)/$(IMG_PREFIX)$(if $(PROFILE_SANITIZED),-$(PROFILE_SANITIZED))-rootfs.tar.gz --numeric-owner --owner=0 --group=0 --sort=name -C $(TARGET_DIR)/ .
 endef
 
 E2SIZE=$(shell echo $$(($(CONFIG_TARGET_ROOTFS_PARTSIZE)*1024*1024)))
@@ -282,7 +292,7 @@ endef
 define BuildImage/mkfs
   install: mkfs-$(1)
   .PHONY: mkfs-$(1)
-  mkfs-$(1): mkfs_prepare
+  mkfs-$(1): kernel_prepare
        $(Image/mkfs/$(1))
        $(call Build/mkfs/default,$(1))
        $(call Build/mkfs/$(1),$(1))
@@ -337,6 +347,21 @@ define Build/gzip
        @mv $@.new $@
 endef
 
+define Build/jffs2
+       rm -rf $(KDIR_TMP)/$(DEVICE_NAME)/jffs2 && \
+               mkdir -p $(KDIR_TMP)/$(DEVICE_NAME)/jffs2/$$(dirname $(1)) && \
+               cp $@ $(KDIR_TMP)/$(DEVICE_NAME)/jffs2/$(1) && \
+               $(STAGING_DIR_HOST)/bin/mkfs.jffs2 --pad \
+                       $(if $(CONFIG_BIG_ENDIAN),--big-endian,--little-endian) \
+                       --squash-uids -v -e $(patsubst %k,%KiB,$(BLOCKSIZE)) \
+                       -o $@.new \
+                       -d $(KDIR_TMP)/$(DEVICE_NAME)/jffs2 \
+                       2>&1 1>/dev/null | awk '/^.+$$$$/' && \
+               $(STAGING_DIR_HOST)/bin/padjffs2 $@.new -J $(patsubst %k,,$(BLOCKSIZE))
+       -rm -rf $(KDIR_TMP)/$(DEVICE_NAME)/jffs2/
+       @mv $@.new $@
+endef
+
 define Build/kernel-bin
        rm -f $@
        cp $^ $@
@@ -359,7 +384,8 @@ define Build/append-ubi
                $(if $(KERNEL_IN_UBI),--kernel $(word 1,$^)) \
                $(word 2,$^) \
                $@.tmp \
-               -p $(BLOCKSIZE) -m $(PAGESIZE) -E 5
+               -p $(BLOCKSIZE) -m $(PAGESIZE) -E 5 \
+               $(if $(SUBPAGESIZE),-s $(SUBPAGESIZE))
        cat $@.tmp >> $@
        rm $@.tmp
 endef
@@ -422,6 +448,7 @@ define Device/Init
   KERNEL_IMAGE = $$(KERNEL_PREFIX)$$(KERNEL_SUFFIX)
   KERNEL_INITRAMFS_PREFIX = $$(IMAGE_PREFIX)-initramfs
   KERNEL_INITRAMFS_IMAGE = $$(KERNEL_INITRAMFS_PREFIX)$$(KERNEL_SUFFIX)
+  KERNEL_INITRAMFS_NAME = $$(KERNEL_NAME)-initramfs
   KERNEL_INSTALL :=
   KERNEL_NAME := vmlinux
   KERNEL_SIZE :=
@@ -448,11 +475,11 @@ 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
+  $(KDIR)/$$(KERNEL_INITRAMFS_NAME): image_prepare
   $(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE): $(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE)
        cp $$^ $$@
 
-  $(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE): $(KDIR)/$$(KERNEL_NAME)-initramfs
+  $(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE): $(KDIR)/$$(KERNEL_INITRAMFS_NAME)
        @rm -f $$@
        $$(call concat_cmd,$$(KERNEL_INITRAMFS))
 endef