-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMakefile
More file actions
36 lines (25 loc) · 796 Bytes
/
Makefile
File metadata and controls
36 lines (25 loc) · 796 Bytes
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
# Makefile — build Bexnus OS
AS = nasm
CC = i686-elf-gcc
LD = i686-elf-ld
CFLAGS = -ffreestanding -m32 -O2 -Wall -Wextra
LDFLAGS = -T linker.ld -nostdlib
all: bexnus.img
boot.bin: boot.asm
$(AS) -f bin boot.asm -o boot.bin
pm_switch.o: pm_switch.asm
$(AS) -f elf32 pm_switch.asm -o pm_switch.o
kernel.o: kernel.c
$(CC) $(CFLAGS) -c kernel.c -o kernel.o
kernel.bin: pm_switch.o kernel.o linker.ld
$(LD) $(LDFLAGS) pm_switch.o kernel.o -o kernel.bin
bexnus.img: boot.bin kernel.bin
cat boot.bin kernel.bin > bexnus.img
bexnus.img:
dd if=/dev/zero of=bexnus.img bs=512 count=2880
mkfs.fat -F 12 bexnus.img
mcopy -i bexnus.img kernel.bin ::KERNEL.BIN
run: bexnus.img
qemu-system-i386 -drive format=raw,file=bexnus.img
clean:
rm -f *.o *.bin *.img