1 #############################################################
3 # busybox image for initramfs
5 #############################################################
6 ifeq ($(BR2_PACKAGE_BUSYBOX_INITRAMFS
),y
)
8 BUSYBOX_INITRAMFS_DIR
:=$(BUSYBOX_DIR
)-initramfs
9 BR2_INITRAMFS_DIR
:=$(PROJECT_BUILD_DIR
)/initramfs
10 BB_INITRAMFS_TARGET
:=$(IMAGE
).initramfs_lst
12 $(BUSYBOX_INITRAMFS_DIR
)/.unpacked
: $(DL_DIR
)/$(BUSYBOX_SOURCE
)
13 rm -rf
$(BUILD_DIR
)/tmp
$(BUSYBOX_INITRAMFS_DIR
)
14 mkdir
-p
$(BUILD_DIR
)/tmp
15 $(BUSYBOX_UNZIP
) $(DL_DIR
)/$(BUSYBOX_SOURCE
) |
tar -C
$(BUILD_DIR
)/tmp
$(TAR_OPTIONS
) -
16 ifeq ($(BR2_PACKAGE_BUSYBOX_SNAPSHOT
),y
)
17 mv
$(BUILD_DIR
)/tmp
/busybox
$(BUSYBOX_INITRAMFS_DIR
)
19 mv
$(BUILD_DIR
)/tmp
/busybox-
$(BUSYBOX_VERSION
) $(BUSYBOX_INITRAMFS_DIR
)
21 ifeq ($(BR2_USE_UPDATES
),y
)
22 (cd
$(@D
) && $(SVN_UP
))
26 $(BUSYBOX_INITRAMFS_DIR
)/.config
$(BUSYBOX_INITRAMFS_DIR
)/.configured
: $(BUSYBOX_INITRAMFS_DIR
)/.unpacked
27 $(MAKE
) HOSTCC
="$(HOSTCC) $(HOST_CFLAGS)" \
28 CC
=$(TARGET_CC
) CROSS_COMPILE
="$(TARGET_CROSS)" \
29 CROSS
="$(TARGET_CROSS)" -C
$(BUSYBOX_INITRAMFS_DIR
) \
31 mv
$(BUSYBOX_INITRAMFS_DIR
)/.config
$(BUSYBOX_INITRAMFS_DIR
)/.config.no
32 (echo CONFIG_PREFIX
=\"$(BR2_INITRAMFS_DIR
)\"; \
33 echo CONFIG_NITPICK
=y
; \
34 echo CONFIG_FEATURE_BUFFERS_USE_MALLOC
=y
; \
35 echo CONFIG_INCLUDE_SUSv2
=n
; \
37 echo CONFIG_CHROOT
=y
; \
39 echo CONFIG_FEATURE_DD_IBS_OBS
=y
; \
40 echo CONFIG_FALSE
=y
; \
41 echo CONFIG_GUNZIP
=y
; \
44 echo CONFIG_INSMOD
=y
; \
48 echo CONFIG_MKDIR
=y
; \
49 echo CONFIG_MKFIFO
=y
; \
50 echo CONFIG_MKNOD
=y
; \
51 echo CONFIG_MODPROBE
=y
; \
52 echo CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS
=y
; \
53 echo CONFIG_FEATURE_MODPROBE_FANCY_ALIAS
=y
; \
54 echo CONFIG_FEATURE_CHECK_TAINTED_MODULE
=n
; \
55 echo CONFIG_FEATURE_2_4_MODULES
=n
; \
56 echo CONFIG_MOUNT
=y
; \
58 echo CONFIG_FEATURE_SH_IS_MSH
=y
; \
60 echo CONFIG_READLINK
=y
; \
61 echo CONFIG_RMMOD
=y
; \
62 echo CONFIG_STATIC
=y
; \
63 echo CONFIG_SWITCH_ROOT
=y
; \
66 echo CONFIG_FEATURE_TFTP_GET
=y
; \
67 echo CONFIG_FEATURE_TFTP_PUT
=y
; \
69 echo CONFIG_UMOUNT
=y
; \
70 echo CONFIG_FEATURE_UMOUNT_ALL
=y
; \
71 echo CONFIG_UNAME
=y
; \
72 ) > $(BUSYBOX_INITRAMFS_DIR
)/.config
73 cp
-f
$(BUSYBOX_INITRAMFS_DIR
)/.config \
74 $(BUSYBOX_INITRAMFS_DIR
)/.config.prune
75 $(SED
) 's|\([^=]*\)=.*|/\1[^_]*/d|g' \
76 $(BUSYBOX_INITRAMFS_DIR
)/.config.prune
77 $(SED
) '' -f
$(BUSYBOX_INITRAMFS_DIR
)/.config.prune \
78 $(BUSYBOX_INITRAMFS_DIR
)/.config.no
79 cat
$(BUSYBOX_INITRAMFS_DIR
)/.config.no
>> \
80 $(BUSYBOX_INITRAMFS_DIR
)/.config
81 yes
"" |
$(MAKE
) CC
=$(TARGET_CC
) CROSS_COMPILE
="$(TARGET_CROSS)" \
82 HOSTCC
="$(HOSTCC) $(HOST_CFLAGS)" \
83 CROSS
="$(TARGET_CROSS)" -C
$(BUSYBOX_INITRAMFS_DIR
) \
88 $(BUSYBOX_INITRAMFS_DIR
)/busybox
: $(BUSYBOX_INITRAMFS_DIR
)/.configured
89 $(MAKE
) HOSTCC
="$(HOSTCC) $(HOST_CFLAGS)" \
90 CC
=$(TARGET_CC
) CROSS_COMPILE
="$(TARGET_CROSS)" \
91 CROSS
="$(TARGET_CROSS)" PREFIX
="$(TARGET_DIR)" \
93 EXTRA_CFLAGS
="$(TARGET_CFLAGS)" -C
$(BUSYBOX_INITRAMFS_DIR
) \
95 ifeq ($(BR2_PREFER_IMA
)$(BR2_PACKAGE_BUSYBOX_SNAPSHOT
),yy
)
97 $(MAKE
) HOSTCC
="$(HOSTCC) $(HOST_CFLAGS)" \
98 CC
=$(TARGET_CC
) CROSS_COMPILE
="$(TARGET_CROSS)" \
99 CROSS
="$(TARGET_CROSS)" PREFIX
="$(TARGET_DIR)" \
100 ARCH
=$(KERNEL_ARCH
) STRIP
="$(STRIPCMD)" \
101 EXTRA_CFLAGS
="$(TARGET_CFLAGS)" -C
$(BUSYBOX_INITRAMFS_DIR
) \
102 -f scripts
/Makefile.IMA
105 $(BR2_INITRAMFS_DIR
)/bin
/busybox
: $(BUSYBOX_INITRAMFS_DIR
)/busybox
106 $(MAKE
) HOSTCC
="$(HOSTCC) $(HOST_CFLAGS)" \
107 CC
=$(TARGET_CC
) CROSS_COMPILE
="$(TARGET_CROSS)" \
108 CROSS
="$(TARGET_CROSS)" \
109 ARCH
=$(KERNEL_ARCH
) STRIP
="$(STRIPCMD)" \
110 EXTRA_CFLAGS
="$(TARGET_CFLAGS)" -C
$(BUSYBOX_INITRAMFS_DIR
) \
112 $(STRIPCMD
) $(STRIP_STRIP_ALL
) $@
115 $(BB_INITRAMFS_TARGET
): host-fakeroot
$(BR2_INITRAMFS_DIR
)/bin
/busybox
116 ln
-fs bin
/busybox
$(PROJECT_BUILD_DIR
)/initramfs
/init
117 mkdir
-p
$(PROJECT_BUILD_DIR
)/initramfs
/etc
118 cat target
/generic
/target_busybox_skeleton
/etc
/inittab
> \
119 $(PROJECT_BUILD_DIR
)/initramfs
/etc
/inittab
120 rm -f
$(PROJECT_BUILD_DIR
)/_fakeroot.
$(notdir $(BB_INITRAMFS_TARGET
))
121 (echo
"chown -R 0:0 $(PROJECT_BUILD_DIR)/initramfs"; \
122 echo
"$(STAGING_DIR)/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(PROJECT_BUILD_DIR)/initramfs"; \
123 echo
"$(CONFIG_SHELL) target/initramfs/gen_initramfs_list.sh -u 0 -g 0 $(PROJECT_BUILD_DIR)/initramfs > $(BB_INITRAMFS_TARGET)"; \
124 ) > $(PROJECT_BUILD_DIR
)/_fakeroot.
$(notdir $(BB_INITRAMFS_TARGET
))
125 chmod
+x
$(PROJECT_BUILD_DIR
)/_fakeroot.
$(notdir $(BB_INITRAMFS_TARGET
))
126 $(STAGING_DIR
)/usr
/bin
/fakeroot
-- \
127 $(PROJECT_BUILD_DIR
)/_fakeroot.
$(notdir $(BB_INITRAMFS_TARGET
))
128 rm -f
$(PROJECT_BUILD_DIR
)/_fakeroot.
$(notdir $(BB_INITRAMFS_TARGET
))
131 $(PROJECT_BUILD_DIR
)/.initramfs_done
: $(BR2_INITRAMFS_DIR
)/bin
/busybox \
132 $(BB_INITRAMFS_TARGET
)
135 busybox-initramfs-source
:
136 busybox-initramfs
: uclibc
$(PROJECT_BUILD_DIR
)/.initramfs_done
138 busybox-initramfs-menuconfig
: host-sed
$(BUILD_DIR
) busybox-source
$(BUSYBOX_INITRAMFS_DIR
)/.configured
139 $(MAKE
) HOSTCC
="$(HOSTCC) $(HOST_CFLAGS)" __TARGET_ARCH
=$(ARCH
) \
140 -C
$(BUSYBOX_INITRAMFS_DIR
) menuconfig
142 busybox-initramfs-clean
:
143 rm -f
$(BUSYBOX_INITRAMFS_DIR
)/busybox
$(PROJECT_BUILD_DIR
)/.initramfs_
*
144 rm -rf
$(BR2_INITRAMFS_DIR
) $(BB_INITRAMFS_TARGET
)
145 -$(MAKE
) -C
$(BUSYBOX_INITRAMFS_DIR
) clean
147 busybox-initramfs-dirclean
:
148 rm -rf
$(BUSYBOX_INITRAMFS_DIR
) $(BR2_INITRAMFS_DIR
) \
149 $(PROJECT_BUILD_DIR
)/.initramfs_
*
151 #############################################################
153 # Toplevel Makefile options
155 #############################################################
156 ifeq ($(BR2_PACKAGE_BUSYBOX_INITRAMFS
),y
)
157 TARGETS
+=busybox-initramfs