create test bootloader
This commit is contained in:
commit
c75d8ab791
5 changed files with 267 additions and 0 deletions
37
Makefile
Normal file
37
Makefile
Normal file
|
@ -0,0 +1,37 @@
|
|||
ASM=nasm
|
||||
|
||||
SRC_DIR=src
|
||||
BUILD_DIR=build
|
||||
|
||||
BOOT_FILES = $(shell find $(SRC_DIR)/boot/ -type f -name "*.asm")
|
||||
KERN_ASM_FILES = $(shell find $(SRC_DIR)/kernel/ -type f -name "*.asm")
|
||||
|
||||
BOOT_BIN_FILES = $(patsubst src/%.asm, $(BUILD_DIR)/%.bin, $(BOOT_FILES))
|
||||
KERN_BIN_FILES = $(patsubst src/%.asm, $(BUILD_DIR)/%.bin, $(KERN_ASM_FILES))
|
||||
|
||||
BOOTLOADER = $(BUILD_DIR)/boot.bin
|
||||
KERNEL = $(BUILD_DIR)/kernel.bin
|
||||
IMAGE = $(BUILD_DIR)/clipper.img
|
||||
|
||||
.PHONY: all clipper kernel bootloader clean always
|
||||
|
||||
clipper: $(IMAGE)
|
||||
|
||||
$(IMAGE): bootloader kernel
|
||||
dd if=/dev/zero of=$(IMAGE) bs=512 count=2880
|
||||
mkfs.fat -F 12 -n "CLPR" $(IMAGE)
|
||||
dd if=$(BOOTLOADER) of=$(IMAGE) conv=notrunc
|
||||
mcopy -i $(IMAGE) $(KERNEL) "::kernel.bin"
|
||||
|
||||
bootloader: $(BOOT_BIN_FILES)
|
||||
cp $(BUILD_DIR)/boot/boot.bin $(BOOTLOADER)
|
||||
|
||||
kernel: $(KERN_BIN_FILES)
|
||||
cp $(BUILD_DIR)/kernel/kernel.bin $(KERNEL)
|
||||
|
||||
$(BUILD_DIR)/%.bin: $(SRC_DIR)/%.asm
|
||||
@mkdir -p "$(@D)"
|
||||
$(ASM) $< -f bin -o $@
|
||||
|
||||
clean:
|
||||
rm -rf $(BUILD_DIR)/*
|
Loading…
Add table
Add a link
Reference in a new issue