linux-imx/usr/Makefile
Masahiro Yamada 4538f41305 initramfs: add default_cpio_list, and delete -d option support
When CONFIG_INITRAMFS_SOURCE is empty, the Makefile passes the -d
option to gen_initramfs.sh to create the default initramfs, which
contains /dev, /dev/console, and /root.

This commit simplifies the default behavior; remove the -d option,
and add the default cpio list.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
2020-01-16 00:25:22 +09:00

2.1 KiB

SPDX-License-Identifier: GPL-2.0

kbuild file for usr/ - including initramfs image

suffix_y = $(subst $",,$(CONFIG_INITRAMFS_COMPRESSION)) datafile_y = initramfs_data.cpio$(suffix_y) datafile_d_y = .$(datafile_y).d AFLAGS_initramfs_data.o += -DINITRAMFS_IMAGE="usr/$(datafile_y)"

clean rules do not have CONFIG_INITRAMFS_COMPRESSION. So clean up after all

possible compression formats.

clean-files += initramfs_data.cpio*

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)/$(datafile_y) FORCE

Generate the initramfs cpio archive

hostprogs-y := gen_init_cpio ramfs-input := $(if $(filter-out "",$(CONFIG_INITRAMFS_SOURCE)),
$(shell echo $(CONFIG_INITRAMFS_SOURCE)),$(srctree)/$(src)/default_cpio_list) ramfs-args :=
$(if $(CONFIG_INITRAMFS_ROOT_UID), -u $(CONFIG_INITRAMFS_ROOT_UID))
$(if $(CONFIG_INITRAMFS_ROOT_GID), -g $(CONFIG_INITRAMFS_ROOT_GID))

$(datafile_d_y) 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)/$(datafile_d_y)),) include $(obj)/$(datafile_d_y) endif

quiet_cmd_initfs = GEN $@ cmd_initfs = $(CONFIG_SHELL) $< -o $@ -l $(obj)/$(datafile_d_y) $(ramfs-args) $(ramfs-input)

targets := $(datafile_y)

do not try to update files included in initramfs

$(deps_initramfs): ;

We rebuild initramfs_data.cpio if:

1) Any included file is newer than 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)/$(datafile_y): $(src)/gen_initramfs.sh $(obj)/gen_init_cpio $(deps_initramfs) FORCE $(call if_changed,initfs)

subdir-$(CONFIG_UAPI_HEADER_TEST) += include