diff --git a/tiny-os/Makefile b/tiny-os/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..2423b88c2c1a27f81ed13f32d9b5337024e4982a --- /dev/null +++ b/tiny-os/Makefile @@ -0,0 +1,36 @@ +AS = nasm +CC = x86_64-elf-gcc +LD = /usr/local/bin/x86_64-elf-ld +CFLAGS = -ffreestanding -m32 -Iinclude +LDFLAGS = -melf_i386 + +ISO_DIR = iso/boot/grub + +all: os.iso + +kernel.elf: source/loader.o source/kernel.o source/fb.o source/io.o + $(LD) -T source/link.ld $(LDFLAGS) source/loader.o source/kernel.o source/fb.o source/io.o -o kernel.elf + +source/loader.o: source/loader.asm + $(AS) -f elf source/loader.asm -o source/loader.o + +source/kernel.o: source/kernel.c + $(CC) -c source/kernel.c -o source/kernel.o $(CFLAGS) + +source/fb.o: source/fb.c + $(CC) -c source/fb.c -o source/fb.o $(CFLAGS) + +source/io.o: source/io.c + $(CC) -c source/io.c -o source/io.o $(CFLAGS) + +os.iso: kernel.elf + mkdir -p $(ISO_DIR) + cp kernel.elf iso/boot/ + cp /Users/hazalveziroglu/OperatingSystem/tiny-os/iso/boot/grub/stage2_eltorito iso/boot/grub/ + echo "default=0\ntimeout=0\ntitle Tiny OS\nkernel /boot/kernel.elf" > $(ISO_DIR)/menu.lst + mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot \ + -boot-load-size 4 -A os -input-charset utf8 -quiet -boot-info-table \ + -o os.iso iso + +clean: + rm -f source/*.o kernel.elf os.iso