-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGNUmakefile
More file actions
74 lines (57 loc) · 2.01 KB
/
GNUmakefile
File metadata and controls
74 lines (57 loc) · 2.01 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
FLAGS_DEBUG := -D_DEBUG -g -Og
FLAGS_RELEASE := -O2
.PHONY: all
all: FLAGS = $(FLAGS_RELEASE)
all: iso img
.PHONY: debug
debug: FLAGS = $(FLAGS_DEBUG)
debug: iso img
.PHONY: kernel
kernel: FLAGS = $(FLAGS_RELEASE)
kernel: kernel/kernel
.PHONY: kernel-debug
kernel-debug: FLAGS = $(FLAGS_DEBUG)
kernel-debug: kernel/kernel
export FLAGS
.PHONY: clean
clean:
rm -f HeppOS.iso
rm -f HeppOS.img
cd kernel && $(MAKE) clean
.PHONY: iso
iso: HeppOS.iso
.PHONY: img
img: HeppOS.img
HeppOS.iso: kernel/kernel
mkdir -p iso
mkdir -p iso/boot
mkdir -p iso/boot/limine
mkdir -p iso/EFI
mkdir -p iso/EFI/BOOT
cp -v kernel/kernel iso/
cp -v kernel/limine.conf iso/
cp -v "/usr/local/share/limine/limine-bios.sys" iso/boot/limine/
cp -v "/usr/local/share/limine/limine-bios-cd.bin" iso/boot/limine/
cp -v "/usr/local/share/limine/limine-uefi-cd.bin" iso/boot/limine/
cp -v "/usr/local/share/limine/BOOTIA32.EFI" iso/EFI/BOOT
cp -v "/usr/local/share/limine/BOOTX64.EFI" iso/EFI/BOOT
xorriso -as mkisofs -b boot/limine/limine-bios-cd.bin -no-emul-boot -boot-load-size 4 -boot-info-table \
--efi-boot boot/limine/limine-uefi-cd.bin -efi-boot-part --efi-boot-image --protective-msdos-label \
iso -o HeppOS.iso
limine bios-install HeppOS.iso
HeppOS.img: kernel/kernel
dd if=/dev/zero bs=1M count=128 of=HeppOS.img
sgdisk HeppOS.img -n 1:2048:131071 -t 1:ef00 -c 1:EFI
sgdisk HeppOS.img -n 2:131072 -t 2:0700 -c 2:FAT32
mformat -i HeppOS.img@@1M
mmd -i HeppOS.img@@1M ::/EFI ::/EFI/BOOT ::/boot ::/boot/limine
mcopy -i HeppOS.img@@1M "/usr/local/share/limine/limine-bios.sys" ::/boot/limine
mcopy -i HeppOS.img@@1M "/usr/local/share/limine/BOOTIA32.EFI" ::/EFI/BOOT
mcopy -i HeppOS.img@@1M "/usr/local/share/limine/BOOTX64.EFI" ::/EFI/BOOT
mformat -i HeppOS.img@@64M
mmd -i HeppOS.img@@64M ::/limine
mcopy -i HeppOS.img@@64M kernel/kernel ::/
mcopy -i HeppOS.img@@64M kernel/limine.conf ::/
.PHONY: kernel/kernel
kernel/kernel:
cd kernel && $(MAKE)