-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
63 lines (49 loc) · 1.9 KB
/
Makefile
File metadata and controls
63 lines (49 loc) · 1.9 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
# 在rust里面使用makefile,确实很奇怪,但是makefile写起来很快,比写build.rs快。所以先这么写着吧
hd60M.img:
# cp emtpy60M.img build/hd60M.img
hd80M.img:
# cp empty80M.img build/hd80M.img
mbr.bin:
cd mbr && \
cargo build --release && \
cd .. && \
x86_64-linux-gnu-objcopy -I elf64-x86-64 -O binary target/mbr/release/mbr build/mbr.bin
loader.bin:
cd loader && \
cargo build --release && \
cd .. && \
x86_64-linux-gnu-objcopy -I elf64-x86-64 -O binary target/loader/release/loader build/loader.bin
loader2.bin:
cd loader2 && \
cargo build --release && \
cd .. && \
x86_64-linux-gnu-objcopy -I elf64-x86-64 -O binary target/loader2/release/loader2 build/loader2.bin
kernel.bin:
cd kernel && \
cargo build --release && \
cd .. && \
x86_64-linux-gnu-objcopy -I elf64-x86-64 -O binary target/kernel/release/kernel build/kernel.bin
hd: hd60M.img mbr.bin loader.bin loader2.bin kernel.bin hd80M.img
dd if=build/mbr.bin of=build/hd60M.img bs=512 count=1 conv=notrunc && \
dd if=build/loader.bin of=build/hd60M.img bs=512 count=1 seek=2 conv=notrunc && \
dd if=build/loader2.bin of=build/hd60M.img bs=512 count=4 seek=3 conv=notrunc && \
dd if=build/kernel.bin of=build/hd60M.img bs=512 count=200 seek=7 conv=notrunc
build: hd mbr.bin loader.bin loader2.bin kernel.bin
run: build
# awk -F'[ =]' '/pub const VERSION_BUILD: u32 = [0-9]+;/ {printf "pub const VERSION_BUILD: u32 = %d;\n", $6 + 1; next} {print}' kernel/src/version.rs > kernel/src/version.rs.tmp && mv kernel/src/version.rs.tmp kernel/src/version.rs
qemu-system-i386 -hda build/hd60M.img -hdb build/hd80M.img
debug: build
qemu-system-i386 \
-hda build/hd60M.img \
-hdb build/hd80M.img \
-S -s \
-d int \
-no-reboot
only-run:
qemu-system-i386 -hda build/hd60M.img -hdb build/hd80M.img
clean:
cargo clean && \
cd build && rm -rf ./* && \
cd .. && \
cp emtpy60M.img build/hd60M.img && \
cp empty80M.img build/hd80M.img