xref: /OK3568_Linux_fs/buildroot/fs/cpio/cpio.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun################################################################################
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# cpio to archive target filesystem
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun################################################################################
6*4882a593Smuzhiyun
7*4882a593Smuzhiyunifeq ($(BR2_ROOTFS_DEVICE_CREATION_STATIC),y)
8*4882a593Smuzhiyun
9*4882a593Smuzhiyundefine ROOTFS_CPIO_ADD_INIT
10*4882a593Smuzhiyun	if [ ! -e $(TARGET_DIR)/init ]; then \
11*4882a593Smuzhiyun		ln -sf sbin/init $(TARGET_DIR)/init; \
12*4882a593Smuzhiyun	fi
13*4882a593Smuzhiyunendef
14*4882a593Smuzhiyun
15*4882a593Smuzhiyunelse
16*4882a593Smuzhiyun# devtmpfs does not get automounted when initramfs is used.
17*4882a593Smuzhiyun# Add a pre-init script to mount it before running init
18*4882a593Smuzhiyun# We must have /dev/console very early, even before /init runs,
19*4882a593Smuzhiyun# for stdin/stdout/stderr
20*4882a593Smuzhiyundefine ROOTFS_CPIO_ADD_INIT
21*4882a593Smuzhiyun	if [ ! -e $(TARGET_DIR)/init ]; then \
22*4882a593Smuzhiyun		$(INSTALL) -m 0755 fs/cpio/init $(TARGET_DIR)/init; \
23*4882a593Smuzhiyun	fi
24*4882a593Smuzhiyun	mkdir -p $(TARGET_DIR)/dev
25*4882a593Smuzhiyun	mknod -m 0622 $(TARGET_DIR)/dev/console c 5 1
26*4882a593Smuzhiyunendef
27*4882a593Smuzhiyun
28*4882a593Smuzhiyunendif # BR2_ROOTFS_DEVICE_CREATION_STATIC
29*4882a593Smuzhiyun
30*4882a593SmuzhiyunROOTFS_CPIO_PRE_GEN_HOOKS += ROOTFS_CPIO_ADD_INIT
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun# --reproducible option was introduced in cpio v2.12, which may not be
33*4882a593Smuzhiyun# available in some old distributions, so we build host-cpio
34*4882a593Smuzhiyunifeq ($(BR2_REPRODUCIBLE),y)
35*4882a593SmuzhiyunROOTFS_CPIO_DEPENDENCIES += host-cpio
36*4882a593SmuzhiyunROOTFS_CPIO_OPTS += --reproducible
37*4882a593Smuzhiyunendif
38*4882a593Smuzhiyun
39*4882a593Smuzhiyundefine ROOTFS_CPIO_CMD
40*4882a593Smuzhiyun	cd $(TARGET_DIR) && \
41*4882a593Smuzhiyun	find . \
42*4882a593Smuzhiyun	| LC_ALL=C sort \
43*4882a593Smuzhiyun	| cpio $(ROOTFS_CPIO_OPTS) --quiet -o -H newc \
44*4882a593Smuzhiyun	> $@
45*4882a593Smuzhiyunendef
46*4882a593Smuzhiyun
47*4882a593Smuzhiyunifeq ($(BR2_TARGET_ROOTFS_CPIO_UIMAGE),y)
48*4882a593SmuzhiyunROOTFS_CPIO_DEPENDENCIES += host-uboot-tools
49*4882a593Smuzhiyundefine ROOTFS_CPIO_UBOOT_MKIMAGE
50*4882a593Smuzhiyun	$(MKIMAGE) -A $(MKIMAGE_ARCH) -T ramdisk \
51*4882a593Smuzhiyun		-C none -d $@$(ROOTFS_CPIO_COMPRESS_EXT) $@.uboot
52*4882a593Smuzhiyunendef
53*4882a593SmuzhiyunROOTFS_CPIO_POST_GEN_HOOKS += ROOTFS_CPIO_UBOOT_MKIMAGE
54*4882a593Smuzhiyunendif
55*4882a593Smuzhiyun
56*4882a593Smuzhiyun$(eval $(rootfs))
57