CRUX-ARM : Home

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