| 1 |
|
| 2 | obj-y := initramfs_data.o
|
| 3 |
|
| 4 | hostprogs-y := gen_init_cpio
|
| 5 |
|
| 6 | clean-files := initramfs_data.cpio.gz initramfs_list
|
| 7 |
|
| 8 |
|
| 9 |
|
| 10 |
|
| 11 | $(obj)/initramfs_data.o: $(obj)/initramfs_data.cpio.gz FORCE
|
| 12 |
|
| 13 | ifdef CONFIG_INITRAMFS_ROOT_UID
|
| 14 | gen_initramfs_args += -u $(CONFIG_INITRAMFS_ROOT_UID)
|
| 15 | endif
|
| 16 |
|
| 17 | ifdef CONFIG_INITRAMFS_ROOT_GID
|
| 18 | gen_initramfs_args += -g $(CONFIG_INITRAMFS_ROOT_GID)
|
| 19 | endif
|
| 20 |
|
| 21 |
|
| 22 |
|
| 23 |
|
| 24 |
|
| 25 | quotefixed_initramfs_source := $(shell echo $(CONFIG_INITRAMFS_SOURCE))
|
| 26 |
|
| 27 | filechk_initramfs_list = $(CONFIG_SHELL) \
|
| 28 | $(srctree)/scripts/gen_initramfs_list.sh $(gen_initramfs_args) $(quotefixed_initramfs_source)
|
| 29 |
|
| 30 | $(obj)/initramfs_list: FORCE
|
| 31 | $(call filechk,initramfs_list)
|
| 32 |
|
| 33 | quiet_cmd_cpio = CPIO $@
|
| 34 | cmd_cpio = ./$< $(obj)/initramfs_list > $@
|
| 35 |
|
| 36 |
|
| 37 |
|
| 38 | ifneq (,$(findstring .cpio,$(quotefixed_initramfs_source)))
|
| 39 |
|
| 40 |
|
| 41 | ifneq (1,$(words $(quotefixed_initramfs_source)))
|
| 42 | $(error Only a single file may be specified in CONFIG_INITRAMFS_SOURCE (="$(quotefixed_initramfs_source)") when a cpio archive is directly specified.)
|
| 43 | endif
|
| 44 |
|
| 45 | initramfs_data_cpio = $(quotefixed_initramfs_source)
|
| 46 | targets += $(quotefixed_initramfs_source)
|
| 47 |
|
| 48 | else
|
| 49 |
|
| 50 |
|
| 51 | $(obj)/initramfs_data.cpio: $(obj)/gen_init_cpio \
|
| 52 | $(initramfs-y) $(obj)/initramfs_list FORCE
|
| 53 | $(call if_changed,cpio)
|
| 54 |
|
| 55 | targets += initramfs_data.cpio
|
| 56 | initramfs_data_cpio = $(obj)/initramfs_data.cpio
|
| 57 |
|
| 58 | endif
|
| 59 |
|
| 60 |
|
| 61 | $(obj)/initramfs_data.cpio.gz: $(initramfs_data_cpio) FORCE
|
| 62 | $(call if_changed,gzip)
|
| 63 |
|
| 64 | targets += initramfs_data.cpio.gz
|
| 65 |
|