export AS = yasm
+ASFLAGS = -f elf -g dwarf2
export CC = i686-elf-gcc
QEMU = qemu-system-i386 -monitor stdio
export GIT_REV = $(shell git describe --long HEAD)
-CFLAGS = -std=gnu89 -g -Iinclude/arch/x86 -ffreestanding -DGIT_COMMIT=\"$(GIT_REV)\"
+CFLAGS = -std=gnu11 -g -Iinclude/arch/x86 -ffreestanding -DGIT_COMMIT=\"$(GIT_REV)\"
-KERNEL_OBJ = kernel/entry.o kernel/arch/x86/tty/tty.o kernel/drivers/irq/i8259a.o kernel/arch/x86/irq/idt.o kernel/arch/x86/irq/sample_handler.o kernel/kernel.o
+KERNEL_OBJ = kernel/entry.o kernel/arch/x86/tty/tty.o kernel/drivers/irq/i8259a.o kernel/arch/x86/irq/idt.o kernel/arch/x86/irq/interrupt.o kernel/arch/x86/irq/stub.o kernel/drivers/input/ps2.o kernel/kernel.o
BOOTLOADER_OBJ = boot/x86/mbr boot/x86/vbr-fat32 boot/x86/stage3/LOADER.BIN
default: kernel/kernel.elf bootloader
kernel/kernel.bin: ${KERNEL_OBJ} kernel/linker.ld
$(CC) -ffreestanding -nostdlib -o $@ -T kernel/linker.ld ${KERNEL_OBJ}
-kernel/entry.o: kernel/entry.s
- $(AS) -f elf $< -o $@
+kernel/drivers/input/ps2.o: kernel/drivers/input/ps2.c
-kernel/arch/x86/irq/sample_handler.o: kernel/arch/x86/irq/sample_handler.c
- $(CC) $(CFLAGS) -mgeneral-regs-only -c $< -o $@
+kernel/kernel.o: kernel/kernel.c
kernel/kernel.elf: kernel/kernel.bin
$(CC) -ffreestanding -nostdlib -o $@ -T kernel/linker.ld ${KERNEL_OBJ} -Wl,--oformat=elf32-i386