5 TARGET
= arm-crux-linux-gnueabi
10 CLFS
= $(PWD
)/..
/toolchain
/clfs
11 CROSSTOOLS
= $(PWD
)/..
/toolchain
/crosstools
14 KERNEL_PATH
= $(PWD
)/..
/kernel
/$(DEVICE
)
15 KERNEL_VERSION
= $(shell grep
'^KERNEL_VERSION = ' $(KERNEL_PATH
)/Makefile | sed
's|KERNEL_VERSION = ||')
17 BUSYBOX_SOURCE
= http
://busybox.net
/downloads
/busybox-
$(BUSYBOX_VERSION
).
tar.bz2
18 BUSYBOX_VERSION
= 1.18.4
20 .PHONY
: all check-root busybox initramfs
clean distclean
22 all: busybox initramfs
24 clean: busybox-clean initramfs-clean
26 dist-clean
: busybox-distclean gen_init_cpio-distclean initramfs-distclean
29 @if
[ "$$UID" != "0" ]; then \
30 echo
"You need to be root to do this."; \
31 echo
"Now you should run 'make initramfs' as root to finish compilation or 'sudo make initramfs'."; \
35 $(WORK
)/busybox-
$(BUSYBOX_VERSION
).
tar.bz2
:
36 wget
-P
$(WORK
) -c http
://busybox.net
/downloads
/busybox-
$(BUSYBOX_VERSION
).
tar.bz2
38 $(WORK
)/busybox-
$(BUSYBOX_VERSION
): $(WORK
)/busybox-
$(BUSYBOX_VERSION
).
tar.bz2
$(PWD
)/busybox-
$(BUSYBOX_VERSION
).config
39 tar -C
$(WORK
) -xvjf
$(WORK
)/busybox-
$(BUSYBOX_VERSION
).
tar.bz2
40 cp
-v
$(PWD
)/busybox-
$(BUSYBOX_VERSION
).config
$(WORK
)/busybox-
$(BUSYBOX_VERSION
)/.config
41 touch
$(WORK
)/busybox-
$(BUSYBOX_VERSION
).
tar.bz2
43 $(WORK
)/busybox-
$(BUSYBOX_VERSION
)/_install
: $(WORK
)/busybox-
$(BUSYBOX_VERSION
)
44 export PATH
=$(CROSSTOOLS
)/bin
:$$PATH && \
45 export LD_LIBRARY_PATH
=$(CROSSTOOLS
)/lib
:$$LD_LIBRARY_PATH && \
46 make
-C
$(WORK
)/busybox-
$(BUSYBOX_VERSION
) ARCH
=arm CROSS_COMPILE
=$(TARGET
)- install
47 touch
$(WORK
)/busybox-
$(BUSYBOX_VERSION
)/_install
49 busybox
: $(WORK
)/busybox-
$(BUSYBOX_VERSION
)/_install
52 rm -vrf
$(WORK
)/busybox-
$(BUSYBOX_VERSION
)
54 busybox-distclean
: busybox-clean
55 rm -vf
$(WORK
)/busybox-
$(BUSYBOX_VERSION
).
tar.bz2
57 $(WORK
)/gen_init_cpio
: $(WORK
)/gen_init_cpio.c
59 $(CC
) $(CFLAGS
) -Wall
-o gen_init_cpio gen_init_cpio.c
61 gen_init_cpio
: $(WORK
)/gen_init_cpio
64 rm -rf
$(WORK
)/gen_init_cpio
66 gen_init_cpio-distclean
: gen_init_cpio-clean
68 $(WORK
)/initramfs.cpio.gz-
$(KERNEL_VERSION
): check-root
$(WORK
)/busybox-
$(BUSYBOX_VERSION
)/_install
$(KERNEL_PATH
) $(WORK
)/gen_init_cpio
$(WORK
)/initramfs.lst
70 cp
-drv
$(PWD
)/filesystem
/* $(WORK
)/busybox-
$(BUSYBOX_VERSION
)/_install
/* $(WORK
)/mnt
71 ln
-s
/bin
/busybox
$(WORK
)/mnt
/init
73 $(WORK
)/gen_init_cpio
$(WORK
)/initramfs.lst | cpio
-id
&& \
74 find
* | cpio
-H newc
-o
> $(WORK
)/initramfs.cpio
&& \
75 gzip
-v9
$(WORK
)/initramfs.cpio
76 mv
$(WORK
)/initramfs.cpio.gz
{,-$(KERNEL_VERSION
)}
79 initramfs
: $(WORK
)/initramfs.cpio.gz-
$(KERNEL_VERSION
)
82 rm -rf
$(WORK
)/initramfs-
$(KERNEL_VERSION
) $(WORK
)/mnt
$(WORK
)/initramfs.cpio.gz-
$(KERNEL_VERSION
)
84 initramfs-distclean
: initramfs-clean