1
0
Fork 0
Redox-From-Scratch/bootloader/bios.mk

31 lines
851 B
Makefile

# Expects variables:
# STAGE3: path to linked stage 3 binary
# STAGE2_SECTOR: the index of the first sector
# of the stage 2 binary on the disk it will be written to.
BIOS_SRC = ./bios
# Wrap bootloader in three-stage BIOS loader
$(BIOS_BUILD)/bios.bin: $(wildcard $(BIOS_SRC)/*.asm) $(BUILD)/bios.elf
@mkdir -p "$(BIOS_BUILD)"
nasm \
-f bin \
-D STAGE3="$(BUILD)/bios.elf" \
-D STAGE2_SECTOR=$(STAGE2_SECTOR) \
-o "$@" \
-l "$@.lst" \
-i "$(BIOS_SRC)" \
"$(BIOS_SRC)/main.asm"
# Extract MBR (first 440 bytes)
$(BIOS_BUILD)/bios.mbr.bin: $(BIOS_BUILD)/bios.bin
@mkdir -p "$(BIOS_BUILD)"
@echo ""
dd if="$(BIOS_BUILD)/bios.bin" bs=440 count=1 of="$@"
# Extract stage 2 (rest of file)
$(BIOS_BUILD)/bios.stage2.bin: $(BIOS_BUILD)/bios.bin
@mkdir -p "$(BIOS_BUILD)"
@echo ""
dd if="$(BIOS_BUILD)/bios.bin" bs=512 skip=1 of="$@"