You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
2.3 KiB
74 lines
2.3 KiB
# |
|
# kbuild file for usr/ - including initramfs image |
|
# |
|
|
|
klibcdirs:; |
|
PHONY += klibcdirs |
|
|
|
|
|
# Bzip2 |
|
suffix_$(CONFIG_RD_BZIP2) = .bz2 |
|
|
|
# Lzma |
|
suffix_$(CONFIG_RD_LZMA) = .lzma |
|
|
|
# XZ |
|
suffix_$(CONFIG_RD_XZ) = .xz |
|
|
|
# Lzo |
|
suffix_$(CONFIG_RD_LZO) = .lzo |
|
|
|
# Lz4 |
|
suffix_$(CONFIG_RD_LZ4) = .lz4 |
|
|
|
# Gzip |
|
suffix_$(CONFIG_RD_GZIP) = .gz |
|
|
|
AFLAGS_initramfs_data.o += -DINITRAMFS_IMAGE="usr/initramfs_data.cpio$(suffix_y)" |
|
|
|
# Generate builtin.o based on initramfs_data.o |
|
obj-$(CONFIG_BLK_DEV_INITRD) := initramfs_data.o |
|
|
|
# initramfs_data.o contains the compressed initramfs_data.cpio image. |
|
# The image is included using .incbin, a dependency which is not |
|
# tracked automatically. |
|
$(obj)/initramfs_data.o: $(obj)/initramfs_data.cpio$(suffix_y) FORCE |
|
|
|
##### |
|
# Generate the initramfs cpio archive |
|
|
|
hostprogs-y := gen_init_cpio |
|
initramfs := $(CONFIG_SHELL) $(srctree)/scripts/gen_initramfs_list.sh |
|
ramfs-input := $(if $(filter-out "",$(CONFIG_INITRAMFS_SOURCE)), \ |
|
$(shell echo $(CONFIG_INITRAMFS_SOURCE)),-d) |
|
ramfs-args := \ |
|
$(if $(CONFIG_INITRAMFS_ROOT_UID), -u $(CONFIG_INITRAMFS_ROOT_UID)) \ |
|
$(if $(CONFIG_INITRAMFS_ROOT_GID), -g $(CONFIG_INITRAMFS_ROOT_GID)) |
|
|
|
# .initramfs_data.cpio.d is used to identify all files included |
|
# in initramfs and to detect if any files are added/removed. |
|
# Removed files are identified by directory timestamp being updated |
|
# The dependency list is generated by gen_initramfs.sh -l |
|
ifneq ($(wildcard $(obj)/.initramfs_data.cpio.d),) |
|
include $(obj)/.initramfs_data.cpio.d |
|
endif |
|
|
|
quiet_cmd_initfs = GEN $@ |
|
cmd_initfs = $(initramfs) -o $@ $(ramfs-args) $(ramfs-input) |
|
|
|
targets := initramfs_data.cpio.gz initramfs_data.cpio.bz2 \ |
|
initramfs_data.cpio.lzma initramfs_data.cpio.xz \ |
|
initramfs_data.cpio.lzo initramfs_data.cpio.lz4 \ |
|
initramfs_data.cpio |
|
# do not try to update files included in initramfs |
|
$(deps_initramfs): ; |
|
|
|
$(deps_initramfs): klibcdirs |
|
# 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) |
|
# 3) If gen_init_cpio are newer than initramfs_data.cpio |
|
# 4) arguments to gen_initramfs.sh changes |
|
$(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)
|
|
|