diff options
Diffstat (limited to 'makefile')
-rw-r--r-- | makefile | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/makefile b/makefile new file mode 100644 index 0000000..acda2c3 --- /dev/null +++ b/makefile @@ -0,0 +1,27 @@ +# vim: noexpandtab tabstop=4 shiftwidth=4 +CXX = i386-elf-gcc +CFLAGS = -std=gnu99 -ffreestanding -O2 -Wall -Wextra -nostdlib -Iinclude +ASM = nasm + +OBJECTS = gdt.o boot.o print.o kernel.o + +%.o : src/%.c + $(CXX) $(CFLAGS) -o $@ -c $< + +%.o : src/%.s + $(ASM) -felf32 $< -o $@ + +os.bin : $(OBJECTS) + $(CXX) -T linker.ld -o os.bin $(CFLAGS) $(OBJECTS) -lgcc + +os.iso : os.bin + mkdir -p isodir/boot/grub + mv os.bin isodir/boot/os.bin + echo "menuentry 'os' {" >> grub.cfg + echo " multiboot /boot/os.bin" >> grub.cfg + echo "}" >> grub.cfg + mv grub.cfg isodir/boot/grub/grub.cfg + grub-mkrescue -o os.iso isodir + +clean : + rm -rf *.o *.iso *.bin *.cfg isodir/ |