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