-
Notifications
You must be signed in to change notification settings - Fork 21
/
Makefile
195 lines (172 loc) · 6.93 KB
/
Makefile
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
.PHONY: nemu run run-kernel debug game clean test_pa-1 test_pa-2-1 test_pa-2-2 test_pa-2-3 test_pa-3-1 test_pa-3-2 test_pa-3-3 test_pa-4-1 test_pa-4-2 test_pa-4-3 test_batch-2-2-mute test_batch-3-3-mute
include Makefile.git
nemu:
$(call git_commit, "compile nemu testcase kernel", $(TIME_MAKE))
cd nemu && make
cd testcase && make
cd kernel && make
run: nemu
$(call git_commit, "run", $(TIME_MAKE))
./nemu/nemu --testcase add
run-kernel: nemu
$(call git_commit, "run-kernel", $(TIME_MAKE))
./nemu/nemu --kernel --testcase add
debug: nemu
$(call git_commit, "debug", $(TIME_MAKE))
gdb -ex=run --args ./nemu/nemu --testcase add
game:
$(call git_commit, "compile game", $(TIME_MAKE))
cd game && make
clean:
$(call git_commit, "clean", $(TIME_MAKE))
cd nemu && make clean
cd game && make clean
cd testcase && make clean
cd kernel && make clean
# local tests to different stages of PA
test_pa-1: nemu
$(call git_commit, "test_pa-1", $(TIME_MAKE))
./nemu/nemu --test-reg
./nemu/nemu --test-alu add
./nemu/nemu --test-alu adc
./nemu/nemu --test-alu sub
./nemu/nemu --test-alu sbb
./nemu/nemu --test-alu and
./nemu/nemu --test-alu or
./nemu/nemu --test-alu xor
./nemu/nemu --test-alu shl
./nemu/nemu --test-alu shr
./nemu/nemu --test-alu sal
./nemu/nemu --test-alu sar
./nemu/nemu --test-alu mul
./nemu/nemu --test-alu div
./nemu/nemu --test-alu imul
./nemu/nemu --test-alu idiv
./nemu/nemu --test-fpu add
./nemu/nemu --test-fpu sub
./nemu/nemu --test-fpu mul
./nemu/nemu --test-fpu div
test_pa-2-1: nemu
$(call git_commit, "test_pa-2-1", $(TIME_MAKE))
./nemu/nemu --autorun --testcase mov
./nemu/nemu --autorun --testcase mov-cmp
./nemu/nemu --autorun --testcase mov-c
./nemu/nemu --autorun --testcase mov-jcc
./nemu/nemu --autorun --testcase add
./nemu/nemu --autorun --testcase add-longlong
./nemu/nemu --autorun --testcase if-else
./nemu/nemu --autorun --testcase fib
./nemu/nemu --autorun --testcase bubble-sort
./nemu/nemu --autorun --testcase quick-sort
./nemu/nemu --autorun --testcase select-sort
./nemu/nemu --autorun --testcase max
./nemu/nemu --autorun --testcase min3
./nemu/nemu --autorun --testcase pascal
./nemu/nemu --autorun --testcase bit
./nemu/nemu --autorun --testcase movsx
./nemu/nemu --autorun --testcase sub-longlong
./nemu/nemu --autorun --testcase fact
./nemu/nemu --autorun --testcase gotbaha
./nemu/nemu --autorun --testcase leap-year
./nemu/nemu --autorun --testcase matrix-mul-small
./nemu/nemu --autorun --testcase matrix-mul
./nemu/nemu --autorun --testcase mul-longlong
./nemu/nemu --autorun --testcase prime
./nemu/nemu --autorun --testcase shuixianhua
./nemu/nemu --autorun --testcase sum
./nemu/nemu --autorun --testcase wanshu
./nemu/nemu --autorun --testcase struct
./nemu/nemu --autorun --testcase string
./nemu/nemu --autorun --testcase hello-str
./nemu/nemu --autorun --testcase test-float
test_pa-2-2: nemu
$(call git_commit, "test_pa-2-2", $(TIME_MAKE))
make test_batch-2-2-mute
test_pa-2-3: nemu
$(call git_commit, "test_pa-2-3", $(TIME_MAKE))
echo "\e[0;31mTest expressions yourself\e[0m"
./nemu/nemu --testcase add --kernel
test_pa-3-1: nemu
$(call git_commit, "test_pa-3-1", $(TIME_MAKE))
make test_batch-2-2-mute
test_pa-3-2: nemu
$(call git_commit, "test_pa-3-2", $(TIME_MAKE))
make test_batch-2-2-mute
test_pa-3-3: nemu
$(call git_commit, "test_pa-3-3", $(TIME_MAKE))
make test_batch-3-3-mute
test_pa-4-1: nemu
$(call git_commit, "test_pa-4-1", $(TIME_MAKE))
make test_batch-3-3-mute
./nemu/nemu --autorun --testcase hello-inline --kernel
test_pa-4-2: nemu
$(call git_commit, "test_pa-4-2", $(TIME_MAKE))
make test_batch-3-3-mute
./nemu/nemu --autorun --testcase hello-inline --kernel
./nemu/nemu --autorun --testcase echo --kernel
test_pa-4-3: nemu game
$(call git_commit, "test_pa-4-3", $(TIME_MAKE))
./nemu/nemu --test-game $(STU_ID) --kernel --autorun
# DO NOT call the following targets directly
test_batch-2-2-mute:
./nemu/nemu --autorun --testcase mov --kernel
./nemu/nemu --autorun --testcase mov-cmp --kernel
./nemu/nemu --autorun --testcase mov-c --kernel
./nemu/nemu --autorun --testcase mov-jcc --kernel
./nemu/nemu --autorun --testcase add --kernel
./nemu/nemu --autorun --testcase add-longlong --kernel
./nemu/nemu --autorun --testcase if-else --kernel
./nemu/nemu --autorun --testcase fib --kernel
./nemu/nemu --autorun --testcase bubble-sort --kernel
./nemu/nemu --autorun --testcase quick-sort --kernel
./nemu/nemu --autorun --testcase select-sort --kernel
./nemu/nemu --autorun --testcase max --kernel
./nemu/nemu --autorun --testcase min3 --kernel
./nemu/nemu --autorun --testcase pascal --kernel
./nemu/nemu --autorun --testcase bit --kernel
./nemu/nemu --autorun --testcase movsx --kernel
./nemu/nemu --autorun --testcase sub-longlong --kernel
./nemu/nemu --autorun --testcase fact --kernel
./nemu/nemu --autorun --testcase gotbaha --kernel
./nemu/nemu --autorun --testcase leap-year --kernel
./nemu/nemu --autorun --testcase matrix-mul-small --kernel
./nemu/nemu --autorun --testcase matrix-mul --kernel
./nemu/nemu --autorun --testcase mul-longlong --kernel
./nemu/nemu --autorun --testcase prime --kernel
./nemu/nemu --autorun --testcase shuixianhua --kernel
./nemu/nemu --autorun --testcase sum --kernel
./nemu/nemu --autorun --testcase wanshu --kernel
./nemu/nemu --autorun --testcase struct --kernel
./nemu/nemu --autorun --testcase string --kernel
./nemu/nemu --autorun --testcase hello-str --kernel
./nemu/nemu --autorun --testcase test-float --kernel
test_batch-3-3-mute:
./nemu/nemu --autorun --testcase mov-c --kernel
./nemu/nemu --autorun --testcase mov-jcc --kernel
./nemu/nemu --autorun --testcase add --kernel
./nemu/nemu --autorun --testcase add-longlong --kernel
./nemu/nemu --autorun --testcase if-else --kernel
./nemu/nemu --autorun --testcase fib --kernel
./nemu/nemu --autorun --testcase bubble-sort --kernel
./nemu/nemu --autorun --testcase quick-sort --kernel
./nemu/nemu --autorun --testcase select-sort --kernel
./nemu/nemu --autorun --testcase max --kernel
./nemu/nemu --autorun --testcase min3 --kernel
./nemu/nemu --autorun --testcase pascal --kernel
./nemu/nemu --autorun --testcase bit --kernel
./nemu/nemu --autorun --testcase movsx --kernel
./nemu/nemu --autorun --testcase sub-longlong --kernel
./nemu/nemu --autorun --testcase fact --kernel
./nemu/nemu --autorun --testcase gotbaha --kernel
./nemu/nemu --autorun --testcase leap-year --kernel
./nemu/nemu --autorun --testcase matrix-mul-small --kernel
./nemu/nemu --autorun --testcase matrix-mul --kernel
./nemu/nemu --autorun --testcase mul-longlong --kernel
./nemu/nemu --autorun --testcase prime --kernel
./nemu/nemu --autorun --testcase shuixianhua --kernel
./nemu/nemu --autorun --testcase sum --kernel
./nemu/nemu --autorun --testcase wanshu --kernel
./nemu/nemu --autorun --testcase struct --kernel
./nemu/nemu --autorun --testcase string --kernel
./nemu/nemu --autorun --testcase hello-str --kernel
./nemu/nemu --autorun --testcase test-float --kernel