]> 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 7cbe9861f18348e4064cd518054f1ce3f90fef67..12e2777a6f5dccd466c3ae0b538f1da201d4c661 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -94,11 +94,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 $@)
@@ -113,4 +128,4 @@ $(BUILD_DIR)/%.o: $(SRC_DIR)/%.S
 clean:
        rm -rf build $(KERNEL_NAME)
 
-.PHONY: all clean
+.PHONY: all clean iso run