CRUX-ARM : Home

Home :: Documentation :: Download :: Development :: Community :: Ports :: Packages :: Bugs :: Links :: About :: Donors
Cleanup for 'init' script
[initramfs.git] / Makefile
CommitLineData
be3fa5e6
JB
1#
2# initramfs/Makefile
3#
4
4357bb11 5PWD = $(shell pwd)
1d7b9c8a 6
4357bb11 7include $(PWD)/../toolchain/vars.mk
1d7b9c8a 8
be3fa5e6
JB
9TARGET = arm-crux-linux-gnueabi
10DEVICE = versatile
11
4357bb11
JB
12WORK = $(PWD)/work
13CLFS = $(PWD)/../toolchain/clfs
14CROSSTOOLS = $(PWD)/../toolchain/crosstools
be3fa5e6
JB
15
16
17KERNEL_PATH = $(PWD)/../kernel/$(DEVICE)
18KERNEL_VERSION = $(shell grep '^KERNEL_VERSION = ' $(KERNEL_PATH)/Makefile | sed 's|KERNEL_VERSION = ||')
19
557be67f 20BUSYBOX_VERSION = 1.20.2
be3fa5e6 21BUSYBOX_SOURCE = http://busybox.net/downloads/busybox-$(BUSYBOX_VERSION).tar.bz2
be3fa5e6 22
4357bb11 23.PHONY: all check-root busybox gen_init_cpio initramfs clean distclean
1d7b9c8a 24
4357bb11 25all: busybox gen_init_cpio initramfs
be3fa5e6 26
4357bb11 27clean: busybox-clean gen_init_cpio-clean initramfs-clean
be3fa5e6 28
4357bb11 29distclean: busybox-distclean gen_init_cpio-distclean initramfs-distclean
be3fa5e6
JB
30
31check-root:
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'."; \
35 exit 1; \
36 fi
37
38$(WORK)/busybox-$(BUSYBOX_VERSION).tar.bz2:
39 wget -P $(WORK) -c http://busybox.net/downloads/busybox-$(BUSYBOX_VERSION).tar.bz2
40
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
45
4357bb11 46$(WORK)/busybox-$(BUSYBOX_VERSION)/busybox: $(WORK)/busybox-$(BUSYBOX_VERSION)
be3fa5e6
JB
47 export PATH=$(CROSSTOOLS)/bin:$$PATH && \
48 export LD_LIBRARY_PATH=$(CROSSTOOLS)/lib:$$LD_LIBRARY_PATH && \
4357bb11
JB
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
be3fa5e6 52
4357bb11 53busybox: $(WORK)/busybox-$(BUSYBOX_VERSION)/busybox
be3fa5e6
JB
54
55busybox-clean:
56 rm -vrf $(WORK)/busybox-$(BUSYBOX_VERSION)
57
58busybox-distclean: busybox-clean
59 rm -vf $(WORK)/busybox-$(BUSYBOX_VERSION).tar.bz2
60
61$(WORK)/gen_init_cpio: $(WORK)/gen_init_cpio.c
62 cd $(WORK) && \
63 $(CC) $(CFLAGS) -Wall -o gen_init_cpio gen_init_cpio.c
64
65gen_init_cpio: $(WORK)/gen_init_cpio
66
67gen_init_cpio-clean:
68 rm -rf $(WORK)/gen_init_cpio
69
70gen_init_cpio-distclean: gen_init_cpio-clean
71
4357bb11
JB
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
76
77initramfs: $(WORK)/initramfs
be3fa5e6
JB
78
79initramfs-clean:
4357bb11 80 rm -f $(WORK)/initramfs $(WORK)/initramfs.lst
be3fa5e6
JB
81
82initramfs-distclean: initramfs-clean
83
84# End of file