1 # SPDX-License-Identifier: GPL-2.0 << 2 # << 3 # kbuild file for usr/ - including initramfs i << 4 # << 5 << 6 compress-y << 7 compress-$(CONFIG_INITRAMFS_COMPRESSION_GZIP) << 8 compress-$(CONFIG_INITRAMFS_COMPRESSION_BZIP2) << 9 compress-$(CONFIG_INITRAMFS_COMPRESSION_LZMA) << 10 compress-$(CONFIG_INITRAMFS_COMPRESSION_XZ) << 11 compress-$(CONFIG_INITRAMFS_COMPRESSION_LZO) << 12 compress-$(CONFIG_INITRAMFS_COMPRESSION_LZ4) << 13 compress-$(CONFIG_INITRAMFS_COMPRESSION_ZSTD) << 14 << 15 obj-$(CONFIG_BLK_DEV_INITRD) := initramfs_data << 16 << 17 $(obj)/initramfs_data.o: $(obj)/initramfs_inc_ << 18 << 19 ramfs-input := $(CONFIG_INITRAMFS_SOURCE) << 20 cpio-data := << 21 << 22 # If CONFIG_INITRAMFS_SOURCE is empty, generat << 23 # default contents. << 24 ifeq ($(ramfs-input),) << 25 ramfs-input := $(src)/default_cpio_list << 26 endif << 27 << 28 ifeq ($(words $(ramfs-input)),1) << 29 << 30 # If CONFIG_INITRAMFS_SOURCE specifies a singl << 31 # .cpio, use it directly as an initramfs. << 32 ifneq ($(filter %.cpio,$(ramfs-input)),) << 33 cpio-data := $(ramfs-input) << 34 endif << 35 << 36 # If CONFIG_INITRAMFS_SOURCE specifies a singl << 37 # .cpio.*, use it directly as an initramfs, an << 38 ifeq ($(words $(subst .cpio.,$(space),$(ramfs- << 39 cpio-data := $(ramfs-input) << 40 compress-y := copy << 41 endif << 42 << 43 endif << 44 << 45 # For other cases, generate the initramfs cpio << 46 # specified by CONFIG_INITRAMFS_SOURCE. << 47 ifeq ($(cpio-data),) << 48 << 49 cpio-data := $(obj)/initramfs_data.cpio << 50 << 51 hostprogs := gen_init_cpio << 52 << 53 # .initramfs_data.cpio.d is used to identify a << 54 # in initramfs and to detect if any files are << 55 # Removed files are identified by directory ti << 56 # The dependency list is generated by gen_init << 57 -include $(obj)/.initramfs_data.cpio.d << 58 << 59 # do not try to update files included in initr << 60 $(deps_initramfs): ; << 61 << 62 quiet_cmd_initfs = GEN $@ << 63 cmd_initfs = \ << 64 $(CONFIG_SHELL) $< -o $@ -l $(obj)/.in << 65 $(addprefix -u , $(CONFIG_INITRAMFS_RO << 66 $(addprefix -g , $(CONFIG_INITRAMFS_RO << 67 $(if $(KBUILD_BUILD_TIMESTAMP), -d "$( << 68 $(ramfs-input) << 69 << 70 # We rebuild initramfs_data.cpio if: << 71 # 1) Any included file is newer than initramfs << 72 # 2) There are changes in which files are incl << 73 # 3) If gen_init_cpio are newer than initramfs << 74 # 4) Arguments to gen_initramfs.sh changes << 75 $(obj)/initramfs_data.cpio: $(src)/gen_initram << 76 $(call if_changed,initfs) << 77 1 78 endif !! 2 obj-y := initramfs_data.o 79 3 80 $(obj)/initramfs_inc_data: $(cpio-data) FORCE !! 4 host-progs := gen_init_cpio 81 $(call if_changed,$(compress-y)) << 82 5 83 targets += initramfs_data.cpio initramfs_inc_d !! 6 clean-files := initramfs_data.cpio.gz >> 7 >> 8 # initramfs_data.o contains the initramfs_data.cpio.gz image. >> 9 # The image is included using .incbin, a dependency which is not >> 10 # tracked automatically. >> 11 $(obj)/initramfs_data.o: $(obj)/initramfs_data.cpio.gz FORCE >> 12 >> 13 # initramfs-y are the programs which will be copied into the CPIO >> 14 # archive. Currently, the filenames are hardcoded in gen_init_cpio, >> 15 # but we need the information for the build as well, so it's duplicated >> 16 # here. >> 17 >> 18 # Commented out for now >> 19 # initramfs-y := $(obj)/root/hello >> 20 >> 21 quiet_cmd_cpio = CPIO $@ >> 22 cmd_cpio = ./$< > $@ >> 23 >> 24 $(obj)/initramfs_data.cpio: $(obj)/gen_init_cpio $(initramfs-y) FORCE >> 25 $(call if_changed,cpio) >> 26 >> 27 targets += initramfs_data.cpio >> 28 >> 29 $(obj)/initramfs_data.cpio.gz: $(obj)/initramfs_data.cpio FORCE >> 30 $(call if_changed,gzip) >> 31 >> 32 targets += initramfs_data.cpio.gz 84 33 85 subdir-$(CONFIG_UAPI_HEADER_TEST) += include <<
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.