-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
82 lines (60 loc) · 1.84 KB
/
Makefile
File metadata and controls
82 lines (60 loc) · 1.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
MAINDIR := $(CURDIR)
KERNELDIR := $(MAINDIR)/kernel
LBOOTDIR := $(MAINDIR)/lboot
BUILDDIR := $(MAINDIR)/build
INITRDDIR := $(BUILDDIR)/initrd
USERDIR := $(MAINDIR)/user
MODULESDIR := $(MAINDIR)/modules
MDIR = $(dir $(lastword $(MAKEFILE_LIST)))
include .config
#KERNSRC = $(shell find $(KERNELDIR) -type f \( -iname *.h -o -iname *.c \))
CPIOFILES = $(shell find $(INITRDDIR))
INITRD = $(BUILDDIR)/initrd.cpio
INITRD_LZOP = $(BUILDDIR)/initrd.cpio.lzo
LBOOT_BASE = $(LBOOTDIR)/boot.img
export CFLAGS
export LDFLAGS
export VERBOSE
VERBOSE = 0
ifeq ($(VERBOSE), 1)
Q =
else
Q = @
endif
include mk/compiler.mk
include $(KERNELDIR)/kernel.mk
include $(USERDIR)/user.mk
include $(MODULESDIR)/module.mk
include mk/media.mk
.PHONY: menuconfig clean pop-initrd
$(LBOOT_BASE):
$(Q) cd $(LBOOTDIR) && $(MAKE)
$(INITRD): pop-initrd $(CPIOFILES)
@echo -e "\033[33m \033[1mGenerating InitCPIO\033[0m"
$(Q) cp -rT rootfs $(INITRDDIR)
$(Q) cd $(INITRDDIR) && find . | cpio -o -v -O$(INITRD) &> /dev/null
$(Q) cp $(INITRD) $(KERNELDIR)/initrd.cpio
$(INITRD_LZOP): $(INITRD)
@echo -e "\033[33m \033[1mCompressing InitCPIO\033[0m"
$(Q) lzop -9 -f -o $@ $<
$(Q) cp $(INITRD_LZOP) $(KERNELDIR)/initrd.cpio.lzo
menuconfig:
$(Q) menuconfig
clean: user-clean kernel-clean
$(Q) rm -f $(INITRD) $(ISO) $(FLOPPY) $(KERNEL)
$(Q) rm -rf $(INITRDDIR)/bin
$(Q) cd $(LBOOTDIR) && $(MAKE) clean
pop-initrd: $(user-bin-y) $(modules-y)
$(Q) mkdir -p $(INITRDDIR)/bin
$(Q) cp $(user-bin-y) $(INITRDDIR)/bin
# Add links (TODO: Make this cleaner)
$(Q) cd $(INITRDDIR)/bin && rm -f cat ls echo && \
ln -s lutils cat && \
ln -s lutils ls && \
ln -s lutils echo
# Copy in build modules
$(Q) mkdir -p $(INITRDDIR)/modules
$(Q) cp $(modules-y) $(INITRDDIR)/modules
.config: | .defconfig
@echo -e "\033[32m\033[1mCopying default .config\033[0m"
$(Q) cp $| $@