blob: 1e0774338fb34f369abc39d57bf3b7ffc5e6037a (
plain) (
blame)
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
|
CC = gcc# compiler
LD = ld# linker
ASM = nasm# assembler
# what is the flag -O2
CFLAGS = -c -Wall -ffreestanding -nostdinc -nostdlib -lgcc# c compiler flags
# flag elf32 allow decrease object file size
AFLAGS = -f elf64# asm compiler flags
BDIR = build# build directory
.PHONY: install
install: build
@echo "Creating an iso image of OS"
cp ./$(BDIR)/kernel.bin ./iso/os/
grub-mkrescue -o ./$(BDIR)/kernel.iso ./iso
build:
mkdir $(BDIR)
@echo "Compile source files..."
$(CC) $(CFLAGS) -o ./$(BDIR)/kernel.o ./kernel/kernel.c
$(ASM) $(AFLAGS) -o ./$(BDIR)/boot.o ./kernel/boot.s
@echo "Link object files..."
$(LD) -m elf_x86_64 -o ./$(BDIR)/kernel.bin -T ./kernel/linker.ld ./$(BDIR)/*.o
@echo "Project was built"
clean:
rm -rf ./build
run:
qemu-system-i386 -cdrom ./$(BDIR)/kernel.iso
|