7 include $(PWD
)/..
/toolchain
/vars.mk
9 TARGET
= arm-crux-linux-gnueabi
13 CLFS
= $(PWD
)/..
/toolchain
/clfs
14 CROSSTOOLS
= $(PWD
)/..
/toolchain
/crosstools
17 KERNEL_PATH
= $(PWD
)/..
/kernel
/$(DEVICE
)
18 KERNEL_VERSION
= $(shell grep
'^KERNEL_VERSION = ' $(KERNEL_PATH
)/Makefile | sed
's|KERNEL_VERSION = ||')
20 BUSYBOX_VERSION
= 1.20.2
21 BUSYBOX_SOURCE
= http
://busybox.net
/downloads
/busybox-
$(BUSYBOX_VERSION
).
tar.bz2
23 .PHONY
: all check-root busybox gen_init_cpio initramfs
clean distclean
25 all: busybox gen_init_cpio initramfs
27 clean: busybox-clean gen_init_cpio-clean initramfs-clean
29 distclean: busybox-distclean gen_init_cpio-distclean initramfs-distclean
32 @if
[ "$$UID" != "0" ]; then \
33 echo
"You need to be root to do this."; \
34 echo
"Now you should run 'make initramfs' as root to finish compilation or 'sudo make initramfs'."; \
38 $(WORK
)/busybox-
$(BUSYBOX_VERSION
).
tar.bz2
:
39 wget
-P
$(WORK
) -c http
://busybox.net
/downloads
/busybox-
$(BUSYBOX_VERSION
).
tar.bz2
41 $(WORK
)/busybox-
$(BUSYBOX_VERSION
): $(WORK
)/busybox-
$(BUSYBOX_VERSION
).
tar.bz2
$(PWD
)/busybox-
$(BUSYBOX_VERSION
).config
42 tar -C
$(WORK
) -xvjf
$(WORK
)/busybox-
$(BUSYBOX_VERSION
).
tar.bz2
43 cp
-v
$(PWD
)/busybox-
$(BUSYBOX_VERSION
).config
$(WORK
)/busybox-
$(BUSYBOX_VERSION
)/.config
44 touch
$(WORK
)/busybox-
$(BUSYBOX_VERSION
).
tar.bz2
46 $(WORK
)/busybox-
$(BUSYBOX_VERSION
)/busybox
: $(WORK
)/busybox-
$(BUSYBOX_VERSION
)
47 export PATH
=$(CROSSTOOLS
)/bin
:$$PATH && \
48 export LD_LIBRARY_PATH
=$(CROSSTOOLS
)/lib
:$$LD_LIBRARY_PATH && \
49 make
-C
$(WORK
)/busybox-
$(BUSYBOX_VERSION
) ARCH
=arm CROSS_COMPILE
=$(TARGET
)- && \
50 $(TARGET
)-strip $(WORK
)/busybox-
$(BUSYBOX_VERSION
)/busybox
&& \
51 touch
$(WORK
)/busybox-
$(BUSYBOX_VERSION
)/busybox
53 busybox
: $(WORK
)/busybox-
$(BUSYBOX_VERSION
)/busybox
56 rm -vrf
$(WORK
)/busybox-
$(BUSYBOX_VERSION
)
58 busybox-distclean
: busybox-clean
59 rm -vf
$(WORK
)/busybox-
$(BUSYBOX_VERSION
).
tar.bz2
61 $(WORK
)/gen_init_cpio
: $(WORK
)/gen_init_cpio.c
63 $(CC
) $(CFLAGS
) -Wall
-o gen_init_cpio gen_init_cpio.c
65 gen_init_cpio
: $(WORK
)/gen_init_cpio
68 rm -rf
$(WORK
)/gen_init_cpio
70 gen_init_cpio-distclean
: gen_init_cpio-clean
72 $(WORK
)/initramfs
: check-root busybox
$(WORK
)/gen_init_cpio
$(PWD
)/init
$(PWD
)/initramfs.lst
73 sed
-e
"s/#KERNEL_VERSION#/$(KERNEL_VERSION)/g; s/#BUSYBOX_VERSION#/$(BUSYBOX_VERSION)/g" \
74 $(PWD
)/initramfs.lst
> $(WORK
)/initramfs.lst
75 $(WORK
)/gen_init_cpio
$(WORK
)/initramfs.lst
> $(WORK
)/initramfs
77 initramfs
: $(WORK
)/initramfs
80 rm -f
$(WORK
)/initramfs
$(WORK
)/initramfs.lst
82 initramfs-distclean
: initramfs-clean