This repository was archived by the owner on Jul 14, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
87 lines (64 loc) · 2.32 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
OSNAME = MatesOS
KERNELDIR = kernel
GNUEFI = gnu-efi
OVMFDIR = OVMFbin
BOOTEFI := $(GNUEFI)/x86_64/bootloader/main.efi
KERNELPATH := $(KERNELDIR)/bin/kernel.elf
.PHONY: init all kernel kernel_debug rebuildkernel image bootloader rebuild clean cleanimages run run_only run_debug flash
all: image
init:
sudo apt-get install gcc nasm gdb
sudo apt-get install qemu qemu-system-common
kernel:
cd kernel && $(MAKE) kernel
kernel_debug:
cd kernel && $(MAKE) debug
image: cleanimages
$(MAKE) bootloader
$(MAKE) kernel
dd if=/dev/zero of=$(OSNAME).img bs=512 count=93750
mformat -i $(OSNAME).img -f 1440 ::
mmd -i $(OSNAME).img ::/EFI
mmd -i $(OSNAME).img ::/EFI/BOOT
mmd -i $(OSNAME).img ::/STATIC_SOURCES
mmd -i $(OSNAME).img ::/STATIC_SOURCES/FONTS
mcopy -i $(OSNAME).img $(BOOTEFI) ::/EFI/BOOT
mcopy -i $(OSNAME).img startup.nsh ::
mcopy -i $(OSNAME).img $(KERNELPATH) ::
mcopy -i $(OSNAME).img static_data/fonts/* ::/STATIC_SOURCES/FONTS
cp $(OSNAME).img $(OSNAME).hdd
rebuildimage: rebuildkernel image
rebuildkernel:
cd kernel && $(MAKE) clean
$(MAKE) kernel
bootloader:
cd gnu-efi && $(MAKE)
cd gnu-efi && $(MAKE) bootloader
rebuild: clean
$(MAKE) all
cleanimages:
rm -f $(OSNAME).img
rm -f $(OSNAME).hdd
clean: cleanimages
cd gnu-efi && $(MAKE) clean
cd kernel && $(MAKE) clean
rm -rf $(OVMFDIR)
rm -rf flash_folder
$(OVMFDIR):
git clone git@github.com:Matesxs/OVMFbin.git
run: image
$(MAKE) run_only
run_only: $(OVMFDIR)
qemu-system-x86_64 -smp 2 -machine q35 -drive file=$(OSNAME).img,format=raw -m 2G -cpu qemu64 -drive if=pflash,format=raw,unit=0,file=$(OVMFDIR)/OVMF_CODE-pure-efi.fd,readonly=on -drive if=pflash,format=raw,unit=1,file=$(OVMFDIR)/OVMF_VARS-pure-efi.fd -net none
run_debug: $(OVMFDIR) kernel_debug image
qemu-system-x86_64 -s -S -smp 2 -machine q35 -drive file=$(OSNAME).img,format=raw -m 2G -cpu qemu64 -drive if=pflash,format=raw,unit=0,file=$(OVMFDIR)/OVMF_CODE-pure-efi.fd,readonly=on -drive if=pflash,format=raw,unit=1,file=$(OVMFDIR)/OVMF_VARS-pure-efi.fd -net none
flash:
rm -rf flash_folder
mkdir flash_folder
mkdir flash_folder/EFI
mkdir flash_folder/EFI/BOOT
mkdir flash_folder/STATIC_SOURCES
mkdir flash_folder/STATIC_SOURCES/FONTS
cp $(BOOTEFI) flash_folder/EFI/BOOT/bootx64.efi
cp $(KERNELPATH) flash_folder/kernel.elf
cp -r static_data/fonts/* flash_folder/STATIC_SOURCES/FONTS/