mirror of
https://github.com/nelsbrock/rainbowboot.git
synced 2026-08-14 15:22:16 +02:00
initial commit
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
src_dir := src
|
||||
build_dir := build
|
||||
|
||||
asm := nasm
|
||||
|
||||
qemu := qemu-system-i386
|
||||
qemu_flags := -drive file=$(build_dir)/rainbowboot.img,format=raw
|
||||
qemu_flags_gdb := -s -S
|
||||
|
||||
dosbox := dosbox
|
||||
|
||||
.PHONY: all run run-gdb run-dosbox attach clean
|
||||
|
||||
all: $(build_dir)/rainbowboot.img
|
||||
|
||||
run: $(build_dir)/rainbowboot.img
|
||||
$(qemu) $(qemu_flags)
|
||||
|
||||
run-gdb: $(build_dir)/rainbowboot.img
|
||||
$(qemu) $(qemu_flags_gdb) $(qemu_flags)
|
||||
|
||||
run-dosbox: $(build_dir)/rainbowboot.img
|
||||
$(dosbox) -c "BOOT $(build_dir)/rainbowboot.img"
|
||||
|
||||
attach: $(build_dir)/rainbowboot.elf
|
||||
gdb $(build_dir)/rainbowboot.elf \
|
||||
-ex "target remote localhost:1234" \
|
||||
-ex "set architecture i8086"
|
||||
|
||||
clean:
|
||||
rm -rf $(build_dir)
|
||||
|
||||
$(build_dir)/rainbowboot.img: $(build_dir)/rainbowboot.elf | $(build_dir)
|
||||
objcopy -O binary $(build_dir)/rainbowboot.elf $(build_dir)/rainbowboot.img
|
||||
|
||||
$(build_dir)/rainbowboot.elf: $(build_dir)/rainbowboot.o | $(build_dir)
|
||||
ld -Ttext=0x7c00 -melf_i386 $(build_dir)/rainbowboot.o -o $(build_dir)/rainbowboot.elf
|
||||
|
||||
$(build_dir)/rainbowboot.o: $(src_dir)/rainbowboot.s | $(build_dir)
|
||||
$(asm) -f elf32 -g3 -F dwarf $(src_dir)/rainbowboot.s -o $(build_dir)/rainbowboot.o
|
||||
|
||||
$(build_dir):
|
||||
mkdir -p $(build_dir)
|
||||
Reference in New Issue
Block a user