ARCHDIR=../arch/i686 CFLAGS=-O2 \ -std=gnu99 \ -ffreestanding \ -Wall -Wextra \ -I $(INCLUDEDIR) KERNEL_OBJS=kernel.o LIB_OBJS=bootstrap.o \ tty.o\ strlib.o\ interrupt.o OBJS=$(KERNEL_OBJS) $(LIB_OBJS) LDFLAGS=$(OBJS) \ -ffreestanding \ -O2 \ -nostdlib \ -lgcc INCLUDEDIR=../include all: mkdir build || true cp Makefile build $(MAKE) -C build test-kernel-qemu architecture: i686-elf-as $(ARCHDIR)/bootstrap.s -o bootstrap.o i686-elf-gcc -c $(ARCHDIR)/tty.c -o tty.o $(CFLAGS) i686-elf-gcc -c $(ARCHDIR)/interrupt.c -o interrupt.o $(CFLAGS) i686-elf-gcc -c $(ARCHDIR)/strlib.c -o strlib.o $(CFLAGS) kernel: i686-elf-gcc -c ../kernel/kernel.c -o kernel.o $(CFLAGS) myos-bin: architecture kernel i686-elf-gcc -T $(ARCHDIR)/linker.ld -o myos.bin $(LDFLAGS) grub-file --is-x86-multiboot myos.bin test-kernel-qemu: myos-bin qemu-system-i386 -kernel myos.bin