Commit | Line | Data |
---|---|---|
be3fa5e6 JB |
1 | # |
2 | # initramfs/Makefile | |
3 | # | |
4 | ||
4357bb11 | 5 | PWD = $(shell pwd) |
1d7b9c8a | 6 | |
4357bb11 | 7 | include $(PWD)/../toolchain/vars.mk |
1d7b9c8a | 8 | |
be3fa5e6 JB |
9 | TARGET = arm-crux-linux-gnueabi |
10 | DEVICE = versatile | |
11 | ||
4357bb11 JB |
12 | WORK = $(PWD)/work |
13 | CLFS = $(PWD)/../toolchain/clfs | |
14 | CROSSTOOLS = $(PWD)/../toolchain/crosstools | |
be3fa5e6 JB |
15 | |
16 | ||
17 | KERNEL_PATH = $(PWD)/../kernel/$(DEVICE) | |
18 | KERNEL_VERSION = $(shell grep '^KERNEL_VERSION = ' $(KERNEL_PATH)/Makefile | sed 's|KERNEL_VERSION = ||') | |
19 | ||
557be67f | 20 | BUSYBOX_VERSION = 1.20.2 |
be3fa5e6 | 21 | BUSYBOX_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 | 25 | all: busybox gen_init_cpio initramfs |
be3fa5e6 | 26 | |
4357bb11 | 27 | clean: busybox-clean gen_init_cpio-clean initramfs-clean |
be3fa5e6 | 28 | |
4357bb11 | 29 | distclean: busybox-distclean gen_init_cpio-distclean initramfs-distclean |
be3fa5e6 JB |
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 | ||
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 | 53 | busybox: $(WORK)/busybox-$(BUSYBOX_VERSION)/busybox |
be3fa5e6 JB |
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 | ||
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 | ||
77 | initramfs: $(WORK)/initramfs | |
be3fa5e6 JB |
78 | |
79 | initramfs-clean: | |
4357bb11 | 80 | rm -f $(WORK)/initramfs $(WORK)/initramfs.lst |
be3fa5e6 JB |
81 | |
82 | initramfs-distclean: initramfs-clean | |
83 | ||
84 | # End of file |