|
@@ -0,0 +1,36 @@
|
|
|
+BUILD_DIR=build
|
|
|
+MBR_NAME=$(BUILD_DIR)/mbr.bin
|
|
|
+BOOT_IMAGE_NAME=$(BUILD_DIR)/boot.img
|
|
|
+
|
|
|
+BOOT_SOURCE=src/boot.s
|
|
|
+
|
|
|
+AS=as
|
|
|
+CC=gcc
|
|
|
+DD=dd
|
|
|
+LD=ld
|
|
|
+
|
|
|
+$(BOOT_IMAGE_NAME): $(MBR_NAME)
|
|
|
+ $(DD) if=$(MBR_NAME) of=$(BOOT_IMAGE_NAME)
|
|
|
+ $(DD) if=/dev/zero of=$(BOOT_IMAGE_NAME) seek=1 bs=512 count=2879
|
|
|
+
|
|
|
+$(MBR_NAME): $(BUILD_DIR)/boot.o
|
|
|
+ $(LD) -t ldscript.ld $(BUILD_DIR)/boot.o -o $(MBR_NAME) --oformat=binary
|
|
|
+
|
|
|
+$(BUILD_DIR)/boot.o: $(BOOT_SOURCE)
|
|
|
+ $(AS) $< -o $@
|
|
|
+
|
|
|
+%.o: %.s
|
|
|
+ $(AS) $< -o $(BUILD_DIR)/$@
|
|
|
+
|
|
|
+%.o: %.c
|
|
|
+ $(CC) -c $< -o $(BUILD_DIR)/$@
|
|
|
+
|
|
|
+.PHONY: run
|
|
|
+run: $(BOOT_IMAGE_NAME)
|
|
|
+ -bochs -f bochs.conf
|
|
|
+
|
|
|
+.PHONY: clean
|
|
|
+clean:
|
|
|
+ -rm $(BUILD_DIR)/*.o
|
|
|
+ -rm $(MBR_NAME)
|
|
|
+ -rm $(BOOT_IMAGE_NAME)
|