From 9d4d44687eecb7389cd67177097afe424b928ec7 Mon Sep 17 00:00:00 2001 From: Aleksa Vučković Date: Wed, 6 Oct 2021 20:41:10 +0200 Subject: https://wiki.osdev.org/Bare_Bones + my Makefile and .gitignore --- Makefile | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 Makefile (limited to 'Makefile') diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f3f5b47 --- /dev/null +++ b/Makefile @@ -0,0 +1,26 @@ +BUILD_DIR=build +ISO_DIR=isodir + +.PHONY: all +all: $(BUILD_DIR)/myos.bin + grub-file --is-x86-multiboot $(BUILD_DIR)/myos.bin + mkdir -p $(ISO_DIR)/boot/grub + cp $(BUILD_DIR)/myos.bin $(ISO_DIR)/boot/myos.bin + cp grub.cfg $(ISO_DIR)/boot/grub/grub.cfg + grub-mkrescue -o myos.iso $(ISO_DIR) + +$(BUILD_DIR)/boot.o: boot.s + mkdir -p $(BUILD_DIR) + i686-elf-as boot.s -o $(BUILD_DIR)/boot.o + +$(BUILD_DIR)/kernel.o: kernel.c + mkdir -p $(BUILD_DIR) + i686-elf-gcc -c kernel.c -o $(BUILD_DIR)/kernel.o -std=gnu99 -ffreestanding -O2 -Wall -Wextra + +$(BUILD_DIR)/myos.bin: $(BUILD_DIR)/kernel.o $(BUILD_DIR)/boot.o + mkdir -p $(BUILD_DIR) + i686-elf-gcc -T linker.ld -o $(BUILD_DIR)/myos.bin -ffreestanding -O2 -nostdlib $(BUILD_DIR)/boot.o $(BUILD_DIR)/kernel.o -lgcc + +.PHONY: clean +clean: + rm -rf $(BUILD_DIR) $(ISO_DIR) myos.iso -- cgit v1.2.3