5 TARGET
= arm-crux-linux-gnueabi
10 CLFS
= $(TOPDIR
)/..
/toolchain
/clfs
11 CROSSTOOLS
= $(TOPDIR
)/..
/toolchain
/crosstools
14 KERNEL_PATH
= $(TOPDIR
)/..
/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.14.3
20 .PHONY
: all check-root busybox initrd
clean distclean
24 clean: busybox-clean initrd-clean
26 dist-clean
: busybox-distclean initrd-distclean
29 @if
[ "$$UID" != "0" ]; then \
30 echo
"You need to be root to do this."; \
31 echo
"Now you should run 'make initrd' as root to finish compilation or 'sudo make initrd'."; \
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
$(TOPDIR
)/busybox-
$(BUSYBOX_VERSION
).config
$(WORK
)/busybox-
$(BUSYBOX_VERSION
)-make382.patch
39 tar -C
$(WORK
) -xvjf
$(WORK
)/busybox-
$(BUSYBOX_VERSION
).
tar.bz2
40 cd
$(WORK
)/busybox-
$(BUSYBOX_VERSION
) && \
41 patch
-p1
-i
$(WORK
)/busybox-
$(BUSYBOX_VERSION
)-make382.patch
42 cp
-v
$(TOPDIR
)/busybox-
$(BUSYBOX_VERSION
).config
$(WORK
)/busybox-
$(BUSYBOX_VERSION
)/.config
43 touch
$(WORK
)/busybox-
$(BUSYBOX_VERSION
).
tar.bz2
45 $(WORK
)/busybox-
$(BUSYBOX_VERSION
)/_install
: $(WORK
)/busybox-
$(BUSYBOX_VERSION
)
46 export PATH
=$(CROSSTOOLS
)/bin
:$$PATH && \
47 export LD_LIBRARY_PATH
=$(CROSSTOOLS
)/lib
:$$LD_LIBRARY_PATH && \
48 make
-C
$(WORK
)/busybox-
$(BUSYBOX_VERSION
) ARCH
=arm CROSS_COMPILE
=$(TARGET
)- install
49 touch
$(WORK
)/busybox-
$(BUSYBOX_VERSION
)/_install
51 busybox
: $(WORK
)/busybox-
$(BUSYBOX_VERSION
)/_install
54 rm -vrf
$(WORK
)/busybox-
$(BUSYBOX_VERSION
)
57 rm -vf
$(WORK
)/busybox-
$(BUSYBOX_VERSION
).
tar.bz2
62 $(WORK
)/initrd-
$(KERNEL_VERSION
).gz
: check-root busybox
$(KERNEL_PATH
) $(WORK
)/mnt
$(TOPDIR
)/filesystem
$(TOPDIR
)/mkinitrd.sh
63 sh mkinitrd.sh
--name
=$(WORK
)/initrd-
$(KERNEL_VERSION
).gz
--size
=4096
64 cd
$(WORK
) && gunzip
-v initrd-
$(KERNEL_VERSION
).gz
65 mount
-v
-t ext2
-o loop
,rw
$(WORK
)/initrd-
$(KERNEL_VERSION
) $(WORK
)/mnt
66 cp
-dRv
$(WORK
)/busybox-
$(BUSYBOX_VERSION
)/_install
/* $(WORK
)/mnt
67 #make -C $(KERNEL_PATH)/work/linux-$(KERNEL_VERSION) ARCH=arm INSTALL_MOD_PATH=$(WORK)/mnt modules_install
68 cp
-dRv
$(CLFS
)/lib
/libnss_
{files
*,dns
*} $(CLFS
)/lib
/libresolv
* $(WORK
)/mnt
/lib
69 install -v
-m
0644 $(TOPDIR
)/filesystem
/{fstab
,inittab
,profile
,protocols
,*.conf
} $(WORK
)/mnt
/etc
70 install -v
-m
0755 $(TOPDIR
)/filesystem
/rc
$(WORK
)/mnt
/etc
&& \
71 install -v
-m
0755 $(TOPDIR
)/filesystem
/crux
$(WORK
)/mnt
/usr
/bin
&& \
72 /sbin
/ldconfig
-r
$(WORK
)/mnt
74 cd
$(WORK
) && gzip
-v initrd-
$(KERNEL_VERSION
)
75 touch
$(WORK
)/initrd-
$(KERNEL_VERSION
).gz
77 initrd
: $(WORK
)/initrd-
$(KERNEL_VERSION
).gz
79 initrd-clean
: check-root
80 rm -rf initrd-
$(KERNEL_VERSION
).gz
82 initrd-distclean
: initrd-clean