Makefile (5a84d159061d914c8dd4aa372ac6e9529c2be453) Makefile (a26ee60f90daffe1de6be0d093af86e7279b3dfd)
1#
2# kbuild file for usr/ - including initramfs image
3#
4
5klibcdirs:;
6PHONY += klibcdirs
7
1#
2# kbuild file for usr/ - including initramfs image
3#
4
5klibcdirs:;
6PHONY += klibcdirs
7
8# Find out "preferred" ramdisk compressor. Order of preference is
9# 1. bzip2 efficient, and likely to be present
10# 2. gzip former default
11# 3. lzma
12# 4. none
8
13
14# None of the above
15suffix_y =
16
17# Lzma, but no gzip nor bzip2
18suffix_$(CONFIG_RD_LZMA) = .lzma
19
20# Gzip, but no bzip2
21suffix_$(CONFIG_RD_GZIP) = .gz
22
23# Bzip2
24suffix_$(CONFIG_RD_BZIP2) = .bz2
25
26
9# Generate builtin.o based on initramfs_data.o
27# Generate builtin.o based on initramfs_data.o
10obj-$(CONFIG_BLK_DEV_INITRD) := initramfs_data.o
28obj-$(CONFIG_BLK_DEV_INITRD) := initramfs_data$(suffix_y).o
11
29
12# initramfs_data.o contains the initramfs_data.cpio.gz image.
30# initramfs_data.o contains the compressed initramfs_data.cpio image.
13# The image is included using .incbin, a dependency which is not
14# tracked automatically.
31# The image is included using .incbin, a dependency which is not
32# tracked automatically.
15$(obj)/initramfs_data.o: $(obj)/initramfs_data.cpio.gz FORCE
33$(obj)/initramfs_data$(suffix_y).o: $(obj)/initramfs_data.cpio$(suffix_y) FORCE
16
17#####
18# Generate the initramfs cpio archive
19
20hostprogs-y := gen_init_cpio
21initramfs := $(CONFIG_SHELL) $(srctree)/scripts/gen_initramfs_list.sh
22ramfs-input := $(if $(filter-out "",$(CONFIG_INITRAMFS_SOURCE)), \
23 $(shell echo $(CONFIG_INITRAMFS_SOURCE)),-d)
24ramfs-args := \
25 $(if $(CONFIG_INITRAMFS_ROOT_UID), -u $(CONFIG_INITRAMFS_ROOT_UID)) \
26 $(if $(CONFIG_INITRAMFS_ROOT_GID), -g $(CONFIG_INITRAMFS_ROOT_GID))
27
34
35#####
36# Generate the initramfs cpio archive
37
38hostprogs-y := gen_init_cpio
39initramfs := $(CONFIG_SHELL) $(srctree)/scripts/gen_initramfs_list.sh
40ramfs-input := $(if $(filter-out "",$(CONFIG_INITRAMFS_SOURCE)), \
41 $(shell echo $(CONFIG_INITRAMFS_SOURCE)),-d)
42ramfs-args := \
43 $(if $(CONFIG_INITRAMFS_ROOT_UID), -u $(CONFIG_INITRAMFS_ROOT_UID)) \
44 $(if $(CONFIG_INITRAMFS_ROOT_GID), -g $(CONFIG_INITRAMFS_ROOT_GID))
45
28# .initramfs_data.cpio.gz.d is used to identify all files included
46# .initramfs_data.cpio.d is used to identify all files included
29# in initramfs and to detect if any files are added/removed.
30# Removed files are identified by directory timestamp being updated
31# The dependency list is generated by gen_initramfs.sh -l
47# in initramfs and to detect if any files are added/removed.
48# Removed files are identified by directory timestamp being updated
49# The dependency list is generated by gen_initramfs.sh -l
32ifneq ($(wildcard $(obj)/.initramfs_data.cpio.gz.d),)
33 include $(obj)/.initramfs_data.cpio.gz.d
50ifneq ($(wildcard $(obj)/.initramfs_data.cpio.d),)
51 include $(obj)/.initramfs_data.cpio.d
34endif
35
36quiet_cmd_initfs = GEN $@
37 cmd_initfs = $(initramfs) -o $@ $(ramfs-args) $(ramfs-input)
38
52endif
53
54quiet_cmd_initfs = GEN $@
55 cmd_initfs = $(initramfs) -o $@ $(ramfs-args) $(ramfs-input)
56
39targets := initramfs_data.cpio.gz
57targets := initramfs_data.cpio.gz initramfs_data.cpio.bz2 initramfs_data.cpio.lzma initramfs_data.cpio
40# do not try to update files included in initramfs
41$(deps_initramfs): ;
42
43$(deps_initramfs): klibcdirs
58# do not try to update files included in initramfs
59$(deps_initramfs): ;
60
61$(deps_initramfs): klibcdirs
44# We rebuild initramfs_data.cpio.gz if:
45# 1) Any included file is newer then initramfs_data.cpio.gz
62# We rebuild initramfs_data.cpio if:
63# 1) Any included file is newer then initramfs_data.cpio
46# 2) There are changes in which files are included (added or deleted)
64# 2) There are changes in which files are included (added or deleted)
47# 3) If gen_init_cpio are newer than initramfs_data.cpio.gz
65# 3) If gen_init_cpio are newer than initramfs_data.cpio
48# 4) arguments to gen_initramfs.sh changes
66# 4) arguments to gen_initramfs.sh changes
49$(obj)/initramfs_data.cpio.gz: $(obj)/gen_init_cpio $(deps_initramfs) klibcdirs
50 $(Q)$(initramfs) -l $(ramfs-input) > $(obj)/.initramfs_data.cpio.gz.d
67$(obj)/initramfs_data.cpio$(suffix_y): $(obj)/gen_init_cpio $(deps_initramfs) klibcdirs
68 $(Q)$(initramfs) -l $(ramfs-input) > $(obj)/.initramfs_data.cpio.d
51 $(call if_changed,initfs)
52
69 $(call if_changed,initfs)
70