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.18.4
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
39 tar -C
$(WORK
) -xvjf
$(WORK
)/busybox-
$(BUSYBOX_VERSION
).
tar.bz2
40 cp
-v
$(TOPDIR
)/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
)
55 rm -vf
$(WORK
)/busybox-
$(BUSYBOX_VERSION
).
tar.bz2
60 $(WORK
)/initrd-
$(KERNEL_VERSION
).gz
: check-root busybox
$(KERNEL_PATH
) $(WORK
)/mnt
$(TOPDIR
)/filesystem
$(TOPDIR
)/mkinitrd.sh
61 sh mkinitrd.sh
--name
=$(WORK
)/initrd-
$(KERNEL_VERSION
).gz
--size
=4096
62 cd
$(WORK
) && gunzip
-v initrd-
$(KERNEL_VERSION
).gz
63 mount
-v
-t ext2
-o loop
,rw
$(WORK
)/initrd-
$(KERNEL_VERSION
) $(WORK
)/mnt
64 cp
-dRv
$(WORK
)/busybox-
$(BUSYBOX_VERSION
)/_install
/* $(WORK
)/mnt
65 #make -C $(KERNEL_PATH)/work/linux-$(KERNEL_VERSION) ARCH=arm INSTALL_MOD_PATH=$(WORK)/mnt modules_install
66 cp
-dRv
$(CLFS
)/lib
/libnss_
{files
*,dns
*} $(CLFS
)/lib
/libresolv
* $(WORK
)/mnt
/lib
67 install -v
-m
0644 $(TOPDIR
)/filesystem
/{fstab
,inittab
,profile
,protocols
,*.conf
} $(WORK
)/mnt
/etc
68 install -v
-m
0755 $(TOPDIR
)/filesystem
/rc
$(WORK
)/mnt
/etc
&& \
69 install -v
-m
0755 $(TOPDIR
)/filesystem
/crux
$(WORK
)/mnt
/usr
/bin
&& \
70 /sbin
/ldconfig
-r
$(WORK
)/mnt
72 cd
$(WORK
) && gzip
-v initrd-
$(KERNEL_VERSION
)
73 touch
$(WORK
)/initrd-
$(KERNEL_VERSION
).gz
75 initrd
: $(WORK
)/initrd-
$(KERNEL_VERSION
).gz
77 initrd-clean
: check-root
78 rm -rf initrd-
$(KERNEL_VERSION
).gz
80 initrd-distclean
: initrd-clean