68 lines
2.7 KiB
Makefile
68 lines
2.7 KiB
Makefile
QEMU := qemu-system-x86_64
|
|
#QEMU_MONITOR_FLAGS := -serial file:$(BUILD_DIR)socks.log -monitor stdio
|
|
QEMU_MONITOR_FLAGS := -serial stdio
|
|
QEMU_FLAGS := \
|
|
-m 10M \
|
|
-display sdl \
|
|
-smp 4 -cpu qemu64,pdpe1gb \
|
|
-device ahci,id=ahci \
|
|
-drive id=hd0,file=$(BUILD_DIR)/disk.img,if=none -device ide-hd,drive=hd0,bus=ahci.0 \
|
|
-drive id=cd0,file=$(BUILD_DIR)/disk2.img,if=none -device ide-cd,drive=cd0,bus=ahci.1
|
|
|
|
ARCH_TEMP_FILES := $(BUILD_DIR)/$(KERNEL_EXEC).elf32
|
|
|
|
# qemu refuses to boot ELF64 binaries. this creates a patched version of the kernel
|
|
# binary to trick qemu into thinking its an ELF32.
|
|
# this has no effect on the kernel itself; the x86_64 kernel's
|
|
# entry point is 32-bit machine code.
|
|
$(BUILD_DIR)/$(KERNEL_EXEC).elf32: $(BUILD_DIR)/$(KERNEL_EXEC)
|
|
@cp $(BUILD_DIR)/$(KERNEL_EXEC) $(BUILD_DIR)/$(KERNEL_EXEC).elf32
|
|
$(BUILD_DIR)/tools/e64patch/e64patch $(BUILD_DIR)/$(KERNEL_EXEC).elf32
|
|
|
|
$(BUILD_DIR)/socks-kernel.iso: $(BUILD_DIR)/$(KERNEL_EXEC)
|
|
@$(BUILD_DIR)/../tools/socks.mkrescue
|
|
|
|
run: $(BUILD_DIR)/$(KERNEL_EXEC) $(BUILD_DIR)/$(KERNEL_EXEC).elf32
|
|
@printf " \033[1;93mQEMU\033[0m $<\n"
|
|
|
|
@$(QEMU) -kernel $(BUILD_DIR)/$(KERNEL_EXEC).elf32 $(QEMU_FLAGS) $(QEMU_MONITOR_FLAGS)
|
|
|
|
run-curses: $(BUILD_DIR)/$(KERNEL_EXEC) $(BUILD_DIR)/$(KERNEL_EXEC).elf32
|
|
@printf " \033[1;93mQEMU\033[0m $<\n"
|
|
|
|
@$(QEMU) -kernel $(BUILD_DIR)/$(KERNEL_EXEC).elf32 $(QEMU_FLAGS) $(QEMU_MONITOR_FLAGS)
|
|
|
|
run-cd-curses: $(BUILD_DIR)/socks-kernel.iso
|
|
@printf " \033[1;93mQEMU\033[0m $<\n"
|
|
|
|
@$(QEMU) -cdrom $(BUILD_DIR)/socks-kernel.iso $(QEMU_FLAGS) -display curses -serial file:$(BUILD_DIR)/socks.log
|
|
|
|
debug: $(BUILD_DIR)/$(KERNEL_EXEC) $(BUILD_DIR)/$(KERNEL_EXEC).elf32
|
|
@./tools/kernel-debug/debug_session.sh \
|
|
tools/kernel-debug/gdb_session_init \
|
|
tools/kernel-debug/lldb_session_init \
|
|
$(QEMU) \
|
|
-kernel $(BUILD_DIR)/$(KERNEL_EXEC).elf32 -S -s \
|
|
-monitor stdio -serial file:$(BUILD_DIR)/socks.log $(QEMU_FLAGS)
|
|
|
|
|
|
debug-curses: $(BUILD_DIR)/$(KERNEL_EXEC) $(BUILD_DIR)/$(KERNEL_EXEC).elf32
|
|
@./tools/kernel-debug/debug_session.sh \
|
|
tools/kernel-debug/gdb_session_init \
|
|
tools/kernel-debug/lldb_session_init \
|
|
$(QEMU) \
|
|
-kernel $(BUILD_DIR)/$(KERNEL_EXEC).elf32 -S -s \
|
|
-display curses -serial file:$(BUILD_DIR)/socks.log $(QEMU_FLAGS) > build/qemu.log
|
|
|
|
debug-cd-curses: $(BUILD_DIR)/socks-kernel.iso
|
|
@./tools/kernel-debug/debug_session.sh \
|
|
tools/kernel-debug/gdb_session_init \
|
|
tools/kernel-debug/lldb_session_init \
|
|
$(QEMU) \
|
|
-cdrom $(BUILD_DIR)/socks-kernel.iso -S -s \
|
|
-display curses -serial file:$(BUILD_DIR)/socks.log $(QEMU_FLAGS) > build/qemu.log
|
|
|
|
run-bochs: $(BUILD_DIR)/socks-kernel.iso
|
|
@printf " \033[1;93mBOCHS\033[0m $<\n"
|
|
@bochs -f $(BUILD_DIR)/../tools/bochsrc.bxrc
|