7 include $(TOPDIR
)/..
/toolchain
/vars.mk
9 TARGET
= arm-crux-linux-gnueabi
13 CLFS
= $(TOPDIR
)/..
/toolchain
/clfs
14 CROSSTOOLS
= $(TOPDIR
)/..
/toolchain
/crosstools
16 BUSYBOX_VERSION
= 1.20.2
17 BUSYBOX_SOURCE
= http
://busybox.net
/downloads
/busybox-
$(BUSYBOX_VERSION
).
tar.bz2
19 DIALOG_VERSION
= 1.1-20120706
20 DIALOG_SOURCE
= ftp
://dickey.his.com
/dialog
/dialog-
$(DIALOG_VERSION
).tgz
22 NCURSES_HEADER
= $(CLFS
)/usr
/include/ncurses.h
24 .PHONY
: all check-root busybox dialog initrd
clean distclean
28 clean: busybox-clean dialog-clean initrd-clean
30 distclean: busybox-distclean dialog-distclean initrd-distclean
33 @if
[ "$$UID" != "0" ]; then \
34 echo
"You need to be root to do this."; \
35 echo
"Now you should run 'make initrd' as root to finish compilation or 'sudo make initrd'."; \
39 $(WORK
)/busybox-
$(BUSYBOX_VERSION
).
tar.bz2
:
40 wget
-P
$(WORK
) -c
$(BUSYBOX_SOURCE
)
42 $(WORK
)/busybox-
$(BUSYBOX_VERSION
): $(WORK
)/busybox-
$(BUSYBOX_VERSION
).
tar.bz2
$(TOPDIR
)/busybox-
$(BUSYBOX_VERSION
).config
43 tar -C
$(WORK
) -xvjf
$(WORK
)/busybox-
$(BUSYBOX_VERSION
).
tar.bz2
44 cd
$(WORK
)/busybox-
$(BUSYBOX_VERSION
) && \
45 patch
-p1
-i
$(WORK
)/fix-resource_header.patch
46 cp
-v
$(TOPDIR
)/busybox-
$(BUSYBOX_VERSION
).config
$(WORK
)/busybox-
$(BUSYBOX_VERSION
)/.config
47 touch
$(WORK
)/busybox-
$(BUSYBOX_VERSION
)
49 $(WORK
)/busybox-
$(BUSYBOX_VERSION
)/_install
/bin
/busybox
: $(WORK
)/busybox-
$(BUSYBOX_VERSION
)
50 export PATH
=$(CROSSTOOLS
)/bin
:$$PATH && \
51 export LD_LIBRARY_PATH
=$(CROSSTOOLS
)/lib
:$$LD_LIBRARY_PATH && \
52 make
-C
$(WORK
)/busybox-
$(BUSYBOX_VERSION
) ARCH
=arm CROSS_COMPILE
=$(TARGET
)- install && \
53 install -D
-m
0755 $(WORK
)/busybox-
$(BUSYBOX_VERSION
)/examples
/udhcp
/simple.script
$(WORK
)/busybox-
$(BUSYBOX_VERSION
)/_install
/usr
/share
/udhcpc
/default.script
&& \
54 $(TARGET
)-strip $(WORK
)/busybox-
$(BUSYBOX_VERSION
)/_install
/bin
/busybox
&& \
55 touch
$(WORK
)/busybox-
$(BUSYBOX_VERSION
)/_install
/bin
/busybox
57 busybox
: $(WORK
)/busybox-
$(BUSYBOX_VERSION
)/_install
/bin
/busybox
60 rm -vrf
$(WORK
)/busybox-
$(BUSYBOX_VERSION
)
62 busybox-distclean
: busybox-clean
63 rm -vf
$(WORK
)/busybox-
$(BUSYBOX_VERSION
).
tar.bz2
65 $(WORK
)/dialog-
$(DIALOG_VERSION
).tgz
:
66 wget
-P
$(WORK
) -c
$(DIALOG_SOURCE
)
68 $(WORK
)/dialog-
$(DIALOG_VERSION
): $(WORK
)/dialog-
$(DIALOG_VERSION
).tgz
69 tar -C
$(WORK
) -xvzf
$(WORK
)/dialog-
$(DIALOG_VERSION
).tgz
70 touch
$(WORK
)/dialog-
$(DIALOG_VERSION
)
72 $(WORK
)/dialog-
$(DIALOG_VERSION
)/_install
/usr
/bin
/dialog
: $(WORK
)/dialog-
$(DIALOG_VERSION
)
73 export PATH
=$(CROSSTOOLS
)/bin
:$$PATH && \
74 export LD_LIBRARY_PATH
=$(CROSSTOOLS
)/lib
:$$LD_LIBRARY_PATH && \
75 cd
$(WORK
)/dialog-
$(DIALOG_VERSION
) && \
76 .
/configure
--build
=$(BUILD
) --host
=$(TARGET
) --prefix=/usr
--with-ncursesw
&& \
77 find
-type f
-name
'makefile' \
78 -exec sed
-e
"s|-I/usr|-I$(CLFS)/usr|g" -e
"s|-L/usr|-L$(CLFS)/usr|g" -i
{} \
; && \
79 make CC
="$(TARGET)-gcc -static -mno-unaligned-access" && \
80 make DESTDIR
=$(WORK
)/dialog-
$(DIALOG_VERSION
)/_install
install && \
81 $(TARGET
)-strip $(WORK
)/dialog-
$(DIALOG_VERSION
)/_install
/usr
/bin
/dialog
&& \
82 touch
$(WORK
)/dialog-
$(DIALOG_VERSION
)/_install
/usr
/bin
/dialog
84 dialog
: $(NCURSES_HEADER
) $(WORK
)/dialog-
$(DIALOG_VERSION
)/_install
/usr
/bin
/dialog
87 rm -vrf
$(WORK
)/dialog-
$(DIALOG_VERSION
)
89 dialog-distclean
: dialog-clean
90 rm -vf
$(WORK
)/dialog-
$(DIALOG_VERSION
).tgz
95 $(WORK
)/initrd.gz
: check-root busybox dialog
$(WORK
)/mnt
$(TOPDIR
)/filesystem
$(TOPDIR
)/mkinitrd.sh
96 sh mkinitrd.sh
--name
=$(WORK
)/initrd.gz
--size
=4096
97 cd
$(WORK
) && gunzip
-v initrd.gz
98 mount
-v
-t ext2
-o loop
,rw
$(WORK
)/initrd
$(WORK
)/mnt
99 cp
-dRv
$(WORK
)/busybox-
$(BUSYBOX_VERSION
)/_install
/* $(WORK
)/mnt
100 install -v
-m
0755 $(WORK
)/dialog-
$(DIALOG_VERSION
)/_install
/usr
/bin
/dialog
$(WORK
)/mnt
/usr
/bin
101 cp
-dRv
$(CLFS
)/lib
/libnss_
{files
*,dns
*} $(CLFS
)/lib
/libresolv
* $(WORK
)/mnt
/lib
102 install -d
$(WORK
)/mnt
/usr
/share
/terminfo
103 cp
-dRv
$(CLFS
)/usr
/share
/terminfo
/v
$(WORK
)/mnt
/usr
/share
/terminfo
104 install -v
-m
0644 $(TOPDIR
)/filesystem
/{fstab
,inittab
,profile
,protocols
,*.conf
} $(WORK
)/mnt
/etc
105 install -v
-m
0664 $(TOPDIR
)/filesystem
/group
$(WORK
)/mnt
/etc
106 install -v
-m
0600 $(TOPDIR
)/filesystem
/passwd
$(WORK
)/mnt
/etc
107 install -v
-m
0400 $(TOPDIR
)/filesystem
/shadow
$(WORK
)/mnt
/etc
108 install -v
-m
0755 $(TOPDIR
)/filesystem
/rc
$(WORK
)/mnt
/etc
&& \
109 install -v
-m
0755 $(TOPDIR
)/filesystem
/{setup
,setup-chroot
,crux
} $(WORK
)/mnt
/usr
/bin
&& \
110 /sbin
/ldconfig
-r
$(WORK
)/mnt
111 umount
-v
$(WORK
)/mnt
112 cd
$(WORK
) && gzip
-v initrd
113 touch
$(WORK
)/initrd.gz
115 initrd
: $(WORK
)/initrd.gz
117 initrd-clean
: check-root
118 rm -vf
$(WORK
)/initrd.gz
120 initrd-distclean
: initrd-clean