]> Projects (at) Tadryanom (dot) Me - AdrOS.git/commitdiff
build: keep ISO kernel in sync when generating grub image
authorTulio A M Mendes <[email protected]>
Fri, 6 Feb 2026 11:39:46 +0000 (08:39 -0300)
committerTulio A M Mendes <[email protected]>
Fri, 6 Feb 2026 11:39:46 +0000 (08:39 -0300)
Makefile

index fae588b532998b19b85899d2b87822f5d6b46fa3..2a2f7a7d5c1323abc00264fe76506695411a713b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -85,11 +85,26 @@ endif
 OBJ := $(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.o, $(C_SOURCES))
 OBJ += $(patsubst $(SRC_DIR)/%.S, $(BUILD_DIR)/%.o, $(ASM_SOURCES))
 
+BOOT_OBJ := $(BUILD_DIR)/arch/x86/boot.o
+KERNEL_OBJ := $(filter-out $(BOOT_OBJ), $(OBJ))
+
 all: $(KERNEL_NAME)
 
 $(KERNEL_NAME): $(OBJ)
        @echo "  LD      $@"
-       @$(LD) $(LDFLAGS) -n -o $@ $(OBJ)
+       @$(LD) $(LDFLAGS) -n -o $@ $(BOOT_OBJ) $(KERNEL_OBJ)
+
+iso: $(KERNEL_NAME)
+       @mkdir -p iso/boot
+       @cp -f $(KERNEL_NAME) iso/boot/$(KERNEL_NAME)
+       @echo "  GRUB-MKRESCUE  adros-$(ARCH).iso"
+       @grub-mkrescue -o adros-$(ARCH).iso iso > /dev/null
+
+run: iso
+       @rm -f serial.log qemu.log
+       @qemu-system-i386 -boot d -cdrom adros-$(ARCH).iso -m 128M -display none \
+               -serial file:serial.log -monitor none -no-reboot -no-shutdown \
+               -d int,cpu_reset,guest_errors -D qemu.log
 
 $(BUILD_DIR)/%.o: $(SRC_DIR)/%.c
        @mkdir -p $(dir $@)
@@ -104,4 +119,4 @@ $(BUILD_DIR)/%.o: $(SRC_DIR)/%.S
 clean:
        rm -rf build $(KERNEL_NAME)
 
-.PHONY: all clean
+.PHONY: all clean iso run