$(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),\
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)))
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))
@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 $^ $@
$(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
endef
define Build/check-size
- @[ $$(($(subst k,* 1024,$(subst m, * 1024k,$(1))))) -gt "$$(stat -c%s $@)" ] || { \
+ @[ $$(($(subst k,* 1024,$(subst m, * 1024k,$(1))))) -ge "$$(stat -c%s $@)" ] || { \
echo "WARNING: Image file $@ is too big" >&2; \
rm -f $@; \
}
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 :=
$(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
endif
define Device/Build/check_size
- @[ $$(($(subst k,* 1024,$(subst m, * 1024k,$(1))))) -gt "$$(stat -c%s $@)" ] || { \
+ @[ $$(($(subst k,* 1024,$(subst m, * 1024k,$(1))))) -ge "$$(stat -c%s $@)" ] || { \
echo "WARNING: Image file $@ is too big" >&2; \
rm -f $@; \
}