|
@@ -5,14 +5,32 @@
|
|
klibcdirs:;
|
|
klibcdirs:;
|
|
PHONY += klibcdirs
|
|
PHONY += klibcdirs
|
|
|
|
|
|
|
|
+# Find out "preferred" ramdisk compressor. Order of preference is
|
|
|
|
+# 1. bzip2 efficient, and likely to be present
|
|
|
|
+# 2. gzip former default
|
|
|
|
+# 3. lzma
|
|
|
|
+# 4. none
|
|
|
|
+
|
|
|
|
+# None of the above
|
|
|
|
+suffix_y =
|
|
|
|
+
|
|
|
|
+# Lzma, but no gzip nor bzip2
|
|
|
|
+suffix_$(CONFIG_RD_LZMA) = .lzma
|
|
|
|
+
|
|
|
|
+# Gzip, but no bzip2
|
|
|
|
+suffix_$(CONFIG_RD_GZIP) = .gz
|
|
|
|
+
|
|
|
|
+# Bzip2
|
|
|
|
+suffix_$(CONFIG_RD_BZIP2) = .bz2
|
|
|
|
+
|
|
|
|
|
|
# Generate builtin.o based on initramfs_data.o
|
|
# Generate builtin.o based on initramfs_data.o
|
|
-obj-$(CONFIG_BLK_DEV_INITRD) := initramfs_data.o
|
|
|
|
|
|
+obj-$(CONFIG_BLK_DEV_INITRD) := initramfs_data$(suffix_y).o
|
|
|
|
|
|
-# initramfs_data.o contains the initramfs_data.cpio.gz image.
|
|
|
|
|
|
+# initramfs_data.o contains the compressed initramfs_data.cpio image.
|
|
# The image is included using .incbin, a dependency which is not
|
|
# The image is included using .incbin, a dependency which is not
|
|
# tracked automatically.
|
|
# tracked automatically.
|
|
-$(obj)/initramfs_data.o: $(obj)/initramfs_data.cpio.gz FORCE
|
|
|
|
|
|
+$(obj)/initramfs_data$(suffix_y).o: $(obj)/initramfs_data.cpio$(suffix_y) FORCE
|
|
|
|
|
|
#####
|
|
#####
|
|
# Generate the initramfs cpio archive
|
|
# Generate the initramfs cpio archive
|
|
@@ -25,28 +43,28 @@ ramfs-args := \
|
|
$(if $(CONFIG_INITRAMFS_ROOT_UID), -u $(CONFIG_INITRAMFS_ROOT_UID)) \
|
|
$(if $(CONFIG_INITRAMFS_ROOT_UID), -u $(CONFIG_INITRAMFS_ROOT_UID)) \
|
|
$(if $(CONFIG_INITRAMFS_ROOT_GID), -g $(CONFIG_INITRAMFS_ROOT_GID))
|
|
$(if $(CONFIG_INITRAMFS_ROOT_GID), -g $(CONFIG_INITRAMFS_ROOT_GID))
|
|
|
|
|
|
-# .initramfs_data.cpio.gz.d is used to identify all files included
|
|
|
|
|
|
+# .initramfs_data.cpio.d is used to identify all files included
|
|
# in initramfs and to detect if any files are added/removed.
|
|
# in initramfs and to detect if any files are added/removed.
|
|
# Removed files are identified by directory timestamp being updated
|
|
# Removed files are identified by directory timestamp being updated
|
|
# The dependency list is generated by gen_initramfs.sh -l
|
|
# The dependency list is generated by gen_initramfs.sh -l
|
|
-ifneq ($(wildcard $(obj)/.initramfs_data.cpio.gz.d),)
|
|
|
|
- include $(obj)/.initramfs_data.cpio.gz.d
|
|
|
|
|
|
+ifneq ($(wildcard $(obj)/.initramfs_data.cpio.d),)
|
|
|
|
+ include $(obj)/.initramfs_data.cpio.d
|
|
endif
|
|
endif
|
|
|
|
|
|
quiet_cmd_initfs = GEN $@
|
|
quiet_cmd_initfs = GEN $@
|
|
cmd_initfs = $(initramfs) -o $@ $(ramfs-args) $(ramfs-input)
|
|
cmd_initfs = $(initramfs) -o $@ $(ramfs-args) $(ramfs-input)
|
|
|
|
|
|
-targets := initramfs_data.cpio.gz
|
|
|
|
|
|
+targets := initramfs_data.cpio.gz initramfs_data.cpio.bz2 initramfs_data.cpio.lzma initramfs_data.cpio
|
|
# do not try to update files included in initramfs
|
|
# do not try to update files included in initramfs
|
|
$(deps_initramfs): ;
|
|
$(deps_initramfs): ;
|
|
|
|
|
|
$(deps_initramfs): klibcdirs
|
|
$(deps_initramfs): klibcdirs
|
|
-# We rebuild initramfs_data.cpio.gz if:
|
|
|
|
-# 1) Any included file is newer then initramfs_data.cpio.gz
|
|
|
|
|
|
+# We rebuild initramfs_data.cpio if:
|
|
|
|
+# 1) Any included file is newer then initramfs_data.cpio
|
|
# 2) There are changes in which files are included (added or deleted)
|
|
# 2) There are changes in which files are included (added or deleted)
|
|
-# 3) If gen_init_cpio are newer than initramfs_data.cpio.gz
|
|
|
|
|
|
+# 3) If gen_init_cpio are newer than initramfs_data.cpio
|
|
# 4) arguments to gen_initramfs.sh changes
|
|
# 4) arguments to gen_initramfs.sh changes
|
|
-$(obj)/initramfs_data.cpio.gz: $(obj)/gen_init_cpio $(deps_initramfs) klibcdirs
|
|
|
|
- $(Q)$(initramfs) -l $(ramfs-input) > $(obj)/.initramfs_data.cpio.gz.d
|
|
|
|
|
|
+$(obj)/initramfs_data.cpio$(suffix_y): $(obj)/gen_init_cpio $(deps_initramfs) klibcdirs
|
|
|
|
+ $(Q)$(initramfs) -l $(ramfs-input) > $(obj)/.initramfs_data.cpio.d
|
|
$(call if_changed,initfs)
|
|
$(call if_changed,initfs)
|
|
|
|
|