aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: 83fa8a4f4ed8682e8f1738bd40fb5f998755c8f7 (plain)
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
OBJ = drivers/tty.o kernel/main.o boot/head.o kernel/io.o kernel/gdt-as.o kernel/gdt.o libc/stdio.o libc/string.o kernel/idt.o kernel/idt-as.o kernel/isr.o kernel/irq-as.o kernel/isr-as.o kernel/irq.o kernel/panic.o
CC = gcc
LD = ld
INCLUDES = -Idrivers -Ikernel/include -Ilibc/include
CFLAGS = -std=gnu99 -ffreestanding -fno-stack-protector -nostdlib -Wall -Wextra -m32 $(INCLUDES) -g

AS = as
ASFLAGS=-march=i686 --32

all: kappa.bin

test: iso
	qemu-system-i386 kappa.iso

iso: kappa.bin
	mkdir -p isodir
	mkdir -p isodir/boot
	cp kappa.bin isodir/efi.img
	cp kappa.bin isodir/boot/kappa.bin
	mkdir -p isodir/boot/grub
	cp cdrom/grub.cfg isodir/boot/grub
	grub-mkrescue -o kappa.iso isodir

kappa.bin: $(OBJ) $(SOURCES) Makefile
	$(LD) -T kernel/linker.ld -o kappa.bin -melf_i386 $(OBJ)

%.o: %.c
	$(CC) $(CFLAGS) -c $< -o $@

%.o: %.S
	$(AS) $(ASFLAGS) -c $< -o $@

clean:
	rm -f $(OBJ) kappa.iso kappa.bin