aboutsummaryrefslogtreecommitdiff
path: root/boot/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'boot/Makefile')
-rw-r--r--boot/Makefile45
1 files changed, 22 insertions, 23 deletions
diff --git a/boot/Makefile b/boot/Makefile
index 88d3c6e..9c3f7c7 100644
--- a/boot/Makefile
+++ b/boot/Makefile
@@ -1,32 +1,31 @@
-BUILD=$(PROJECT_ROOT)/build/boot
+BOOT_BUILD = $(BUILD)/boot
-TARGET=$(BUILD)/bootloader.hex
-IHX=$(BUILD)/boot.ihx
+BOOT_SRC =\
+ boot.asm\
+ main.c
-ASM=$(filter-out crt0.asm, $(wildcard *.asm))
-SRC=$(wildcard *.c)
-PAYLOADS=cmd devmode
+PAYLOADS = cmd devmode
+PAYLOADS_HEX = $(foreach p,$(PAYLOADS),$(BOOT_BUILD)/$(p)/$(p).hex)
-PAYLOADS_HEX=$(foreach payload,$(PAYLOADS),$(BUILD)/$(payload)/$(payload).hex)
+HEX = $(BOOT_BUILD)/boot.hex $(PAYLOADS_HEX)
-HEX=$(BUILD)/boot.hex $(PAYLOADS_HEX)
+BOOT_CRT0 = $(BOOT_BUILD)/crt0.rel
+DEPS += $(patsubst %.rel,%.d,$(BOOT_CRT0))
-CODE_LOC=0x0120
-DATA_LOC=0xC000
-STACK_LOC=0x0000
-GSINIT_LOC=0x0090
+BOOT_OBJ = $(patsubst %,$(BOOT_BUILD)/%.rel,$(basename $(BOOT_SRC)))
+DEPS += $(patsubst %.rel,%.d,$(BOOT_OBJ))
-all : $(TARGET)
+$(BOOT_BUILD)/boot.ihx : EXTRA_LDFLAGS=$(BOOT_LDFLAGS)
+$(BOOT_BUILD)/boot.ihx : $(BOOT_OBJ)
-$(TARGET) : $(HEX)
- cp $(BUILD)/boot.hex /tmp/bootloader.hex
- dd if=$(BUILD)/cmd/cmd.hex of=/tmp/bootloader.hex obs=4096 seek=1 conv=notrunc 2>/dev/null
- dd if=$(BUILD)/cmd/cmd.hex of=/tmp/bootloader.hex obs=4096 seek=2 conv=notrunc 2>/dev/null
- mv /tmp/bootloader.hex $@
+$(BOOT_OBJ) : | $(BOOT_BUILD)
+$(BOOT_BUILD) :
+ @mkdir -p $@
-.PHONY : $(PAYLOADS_HEX)
-$(PAYLOADS_HEX) : $(BUILD)/crt0.rel
- make -C $(notdir $(basename $@)) CRT0=$<
+$(BOOT_BUILD)/bootloader.hex : $(HEX)
+ @cp $(BOOT_BUILD)/boot.hex /tmp/bootloader.hex
+ @dd if=$(BOOT_BUILD)/cmd/cmd.hex of=/tmp/bootloader.hex obs=4096 seek=1 conv=notrunc 2>/dev/null
+ @dd if=$(BOOT_BUILD)/devmode/devmode.hex of=/tmp/bootloader.hex obs=4096 seek=2 conv=notrunc 2>/dev/null
+ @mv /tmp/bootloader.hex $@
-include $(PROJECT_ROOT)/include.mk
--include $(BUILD)/crt0.d
+include $(patsubst %,boot/%/Makefile,$(PAYLOADS))