From 0bca634f7e70b05239f46f3bd40bb37468d67957 Mon Sep 17 00:00:00 2001 From: Aleksa Vučković Date: Sun, 24 Oct 2021 18:47:28 +0200 Subject: Fixing keyboard, changes to Makefile and string.h, trying to add heap... --- Makefile | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index c58cc84..dc2c620 100644 --- a/Makefile +++ b/Makefile @@ -14,27 +14,29 @@ BUILD_DIR=build ISO_DIR=isodir TARGET=myos +BINARY=$(BUILD_DIR)/$(TARGET).bin +ISO=$(TARGET).iso -OBJ_FILES=boot.o kernel.o gdt.o idt.o keyboard.o vga.o string.o tty.o stdio.o +OBJ_FILES=boot.o kernel.o gdt.o idt.o keyboard.o keymap.o vga.o string.o tty.o stdio.o heap.o CRTBEGIN_OBJ=$(shell $(CC) -print-file-name=crtbegin.o) CRTEND_OBJ=$(shell $(CC) -print-file-name=crtend.o) OBJ=$(BUILD_DIR)/crti.o $(CRTBEGIN_OBJ) $(patsubst %,$(BUILD_DIR)/%,$(OBJ_FILES)) $(CRTEND_OBJ) $(BUILD_DIR)/crtn.o # Default action is set to making kernel binary -.PHONY: all run run-iso debug clean -all: $(BUILD_DIR)/$(TARGET).bin +.PHONY: all run run-iso clean +all: $(BINARY) # Creating iso file -$(TARGET).iso: $(BUILD_DIR)/$(TARGET).bin - grub-file --is-x86-multiboot $(BUILD_DIR)/myos.bin +$(ISO): $(BINARY) + grub-file --is-x86-multiboot $(BINARY) mkdir -p $(ISO_DIR)/boot/grub - $(CP) $(BUILD_DIR)/myos.bin $(ISO_DIR)/boot/myos.bin + $(CP) $(BINARY) $(ISO_DIR)/boot/$(TARGET).bin $(CP) $(SOURCE_DIR)/grub.cfg $(ISO_DIR)/boot/grub/grub.cfg - grub-mkrescue -o $(TARGET).iso $(ISO_DIR) + grub-mkrescue -o $(ISO) $(ISO_DIR) # Linking object files into kernel binary -$(BUILD_DIR)/$(TARGET).bin: $(OBJ) +$(BINARY): $(OBJ) $(CC) -T $(SOURCE_DIR)/linker.ld -o $@ $(CFLAGS) -nostdlib $^ -lgcc # Compiling as sources @@ -48,18 +50,13 @@ $(BUILD_DIR)/%.o: $(SOURCE_DIR)/%.c $(CC) -c $< -o $@ -std=gnu99 $(CFLAGS) # Boot kernel binary in qemu -run: $(BUILD_DIR)/$(TARGET).bin - $(QEMU) -kernel $^ +run: $(BINARY) + $(QEMU) -kernel $< # Boot iso in qemu -run-iso: $(TARGET).iso - $(QEMU) -cdrom $^ - -# Debug kernel binary in gdb -debug: $(TARGET).bin - $(QEMU) -kernel $^ -s -S & - gdb -x .gdbinit +run-iso: $(ISO) + $(QEMU) -cdrom $< # Clean build files clean: - $(RM) $(BUILD_DIR) $(ISO_DIR) $(TARGET).iso + $(RM) $(BUILD_DIR) $(ISO_DIR) $(ISO) -- cgit v1.2.3