aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/makefile
blob: 387fc4dada839fb24fc2663ef033fa26b4bc27eb (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
CC				= x86_64-elf-gcc

.PHONY: all clean

#CFLAGS = -ffreestanding -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -mno-sse2 -masm=intel
CFLAGS = -ffreestanding -mcmodel=kernel -mno-red-zone -masm=intel

all:
	nasm loader.s -f elf64 -o loader.o
	nasm segments.s -f elf64 -o segments.o
	nasm interrupts/common.s -f elf64 -o interrupts/common.o
	nasm interrupts/vectors.s -f elf64 -o interrupts/vectors.o
	$(CC) $(CFLAGS) -c kernel.c -o kernel.o
	$(CC) $(CFLAGS) -c kprintf.c -o kprintf.o
	$(CC) $(CFLAGS) -c memops.c -o memops.o
	$(CC) $(CFLAGS) -c gdt.c -o gdt.o
	$(CC) $(CFLAGS) -c idt.c -o idt.o
	$(CC) $(CFLAGS) -c interrupts/generic.c -o interrupts/generic.o
	$(CC) $(CFLAGS) -c cpu_info.c -o cpu_info.o
	$(CC) $(CFLAGS) -c acpi.c -o acpi.o
	$(CC) -T linker.ld -o kernel.bin -ffreestanding -O0 -nostdlib kernel.o kprintf.o memops.o gdt.o loader.o  segments.o idt.o interrupts/common.o interrupts/generic.o interrupts/vectors.o cpu_info.o acpi.o -lgcc

clean:
	rm *.o
	rm kernel.bin