-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
84 lines (58 loc) · 1.42 KB
/
Makefile
File metadata and controls
84 lines (58 loc) · 1.42 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
82
83
84
RM := rm -f
ROOT := $(shell pwd)
.PHONY: all kernel rd app libc image run debug quick-run quick-debug musl
.PHONY: clean clean-kernel clean-rd clean-app clean-libc clean-image clean-musl
all: kernel rd
COMPILE_COMMANDS_JSON := $(ROOT)/compile_commands.json
export COMPILE_COMMANDS_JSON
CC := $(ROOT)/util/cc
export CC
LD := $(ROOT)/util/ld
export LD
LIBC := musl
# LIBC := libc
export LIBC
ifeq ($(LIBC), libc)
APP_CC := $(ROOT)/util/mario-libc-cc
APP_LD := $(ROOT)/util/mario-libc-ld
else
APP_CC := $(ROOT)/util/mario-musl-cc
APP_LD := $(ROOT)/util/mario-musl-ld
endif
kernel:
$(MAKE) CC=$(ROOT)/util/mario-cc LD=$(ROOT)/util/mario-ld -C src
rd: app
$(MAKE) -C rd
app: $(LIBC)
$(MAKE) CC=$(APP_CC) LD=$(APP_LD) -C app
libc:
$(MAKE) CC=$(ROOT)/util/mario-cc -C libc
musl:
$(MAKE) CC=$(ROOT)/util/mario-cc COMPILE_COMMANDS_JSON= -C musl
image: kernel rd
$(MAKE) -C qemu
run:
$(MAKE) run -C qemu
debug:
$(MAKE) debug -C qemu
quick-run:
$(MAKE) quick-run -C qemu
quick-debug:
$(MAKE) quick-debug -C qemu
clean: clean-kernel clean-rd clean-app clean-libc clean-image
$(RM) $(COMPILE_COMMANDS_JSON)
clean-kernel:
$(MAKE) clean -C src
clean-rd:
$(MAKE) clean -C rd
clean-app:
$(MAKE) clean -C app
clean-libc:
$(MAKE) clean -C libc
clean-musl:
$(MAKE) clean -C musl
clean-image:
$(MAKE) clean -C qemu
.PHONY: tmux-run tmux-debug tmux-attach tmux-kill
tmux-run tmux-debug tmux-attach tmux-kill:
$(MAKE) $@ -C qemu