]> git.karo-electronics.de Git - karo-tx-linux.git/blob - usr/Makefile
Merge remote-tracking branch 'gfs2/for-next'
[karo-tx-linux.git] / usr / Makefile
1 #
2 # kbuild file for usr/ - including initramfs image
3 #
4
5 klibcdirs:;
6 PHONY += klibcdirs
7
8
9 # Bzip2
10 suffix_$(CONFIG_RD_BZIP2)  = .bz2
11
12 # Lzma
13 suffix_$(CONFIG_RD_LZMA)   = .lzma
14
15 # XZ
16 suffix_$(CONFIG_RD_XZ)     = .xz
17
18 # Lzo
19 suffix_$(CONFIG_RD_LZO)    = .lzo
20
21 # Lz4
22 suffix_$(CONFIG_RD_LZ4)    = .lz4
23
24 # Gzip
25 suffix_$(CONFIG_RD_GZIP)   = .gz
26
27 AFLAGS_initramfs_data.o += -DINITRAMFS_IMAGE="usr/initramfs_data.cpio$(suffix_y)"
28
29 # Generate builtin.o based on initramfs_data.o
30 obj-$(CONFIG_BLK_DEV_INITRD) := initramfs_data.o
31
32 # initramfs_data.o contains the compressed initramfs_data.cpio image.
33 # The image is included using .incbin, a dependency which is not
34 # tracked automatically.
35 $(obj)/initramfs_data.o: $(obj)/initramfs_data.cpio$(suffix_y) FORCE
36
37 #####
38 # Generate the initramfs cpio archive
39
40 hostprogs-y := gen_init_cpio
41 initramfs   := $(CONFIG_SHELL) $(srctree)/scripts/gen_initramfs_list.sh
42 ramfs-input := $(if $(filter-out "",$(CONFIG_INITRAMFS_SOURCE)), \
43                         $(shell echo $(CONFIG_INITRAMFS_SOURCE)),-d)
44 ramfs-args  := \
45         $(if $(CONFIG_INITRAMFS_ROOT_UID), -u $(CONFIG_INITRAMFS_ROOT_UID)) \
46         $(if $(CONFIG_INITRAMFS_ROOT_GID), -g $(CONFIG_INITRAMFS_ROOT_GID))
47
48 # .initramfs_data.cpio.d is used to identify all files included
49 # in initramfs and to detect if any files are added/removed.
50 # Removed files are identified by directory timestamp being updated
51 # The dependency list is generated by gen_initramfs.sh -l
52 ifneq ($(wildcard $(obj)/.initramfs_data.cpio.d),)
53         include $(obj)/.initramfs_data.cpio.d
54 endif
55
56 quiet_cmd_initfs = GEN     $@
57       cmd_initfs = $(initramfs) -o $@ $(ramfs-args) $(ramfs-input)
58
59 targets := initramfs_data.cpio.gz initramfs_data.cpio.bz2 \
60         initramfs_data.cpio.lzma initramfs_data.cpio.xz \
61         initramfs_data.cpio.lzo initramfs_data.cpio.lz4 \
62         initramfs_data.cpio
63 # do not try to update files included in initramfs
64 $(deps_initramfs): ;
65
66 $(deps_initramfs): klibcdirs
67 # We rebuild initramfs_data.cpio if:
68 # 1) Any included file is newer then initramfs_data.cpio
69 # 2) There are changes in which files are included (added or deleted)
70 # 3) If gen_init_cpio are newer than initramfs_data.cpio
71 # 4) arguments to gen_initramfs.sh changes
72 $(obj)/initramfs_data.cpio$(suffix_y): $(obj)/gen_init_cpio $(deps_initramfs) klibcdirs
73         $(Q)$(initramfs) -l $(ramfs-input) > $(obj)/.initramfs_data.cpio.d
74         $(call if_changed,initfs)