automatic-spoon-kernel/Makefile
Mika Westphal 7caa808d2a Init
2023-01-19 19:35:53 +01:00

39 lines
1.4 KiB
Makefile

LINKFILE=linker.ld
QEMU=qemu-system-i386
BUILDPATH=build
SOURCEPATH=src
CC=i686-elf-g++
CFLAGS=-m32 -c -Wmultichar -ffreestanding -O2 -Wall -Wextra -fno-exceptions -fno-rtti -Wwrite-strings -fpermissive -g
#OBJ=$(BUILDPATH)/boot.o $(BUILDPATH)/kernel.o $(BUILDPATH)/kernel/vga.o $(BUILDPATH)/kernel/keyboard.o $(BUILDPATH)/kernel/idt.o
OBJ=$(BUILDPATH)/boot.o $(BUILDPATH)/kernel.o $(BUILDPATH)/kernel/vga.o
ASMC=i686-elf-as
LD=ld
LDFLAGS=-m elf_i386 -T $(LINKFILE) -z muldefs -g
all: $(BUILDPATH)/kernel.elf
$(QEMU) -kernel $(BUILDPATH)/kernel.elf
debug: $(BUILDPATH)/kernel.elf
$(QEMU) -s -S -kernel $(BUILDPATH)/kernel.elf
$(BUILDPATH)/boot.o: $(SOURCEPATH)/boot.asm
$(ASMC) $(SOURCEPATH)/boot.asm -o $(BUILDPATH)/boot.o
$(BUILDPATH)/kernel.o: $(SOURCEPATH)/kernel.*
$(CC) $(CFLAGS) $(SOURCEPATH)/kernel.cpp -o $(BUILDPATH)/kernel.o
$(BUILDPATH)/kernel/vga.o: $(SOURCEPATH)/kernel/vga.*
$(CC) $(CFLAGS) $(SOURCEPATH)/kernel/vga.cpp -o $(BUILDPATH)/kernel/vga.o
$(BUILDPATH)/kernel/keyboard.o: $(SOURCEPATH)/kernel/keyboard.* $(BUILDPATH)/boot.o
$(CC) $(CFLAGS) $(SOURCEPATH)/kernel/keyboard.cpp -o $(BUILDPATH)/kernel/keyboard.o
$(BUILDPATH)/kernel/idt.o: $(SOURCEPATH)/kernel/idt.* $(BUILDPATH)/boot.o
$(CC) $(CFLAGS) $(SOURCEPATH)/kernel/idt.cpp -o $(BUILDPATH)/kernel/idt.o
$(BUILDPATH)/kernel.elf: $(OBJ)
$(LD) $(LDFLAGS) -o $(BUILDPATH)/kernel.elf $(OBJ)
clean:
rm $(OBJ)