BOOT_BUILD = $(BUILD)/boot BOOT_SRC =\ boot.asm\ main.c PAYLOADS = cmd devmode PAYLOADS_HEX = $(foreach p,$(PAYLOADS),$(BOOT_BUILD)/$(p)/$(p).hex) HEX = $(BOOT_BUILD)/boot.hex $(PAYLOADS_HEX) BOOT_CRT0 = $(BOOT_BUILD)/crt0.rel DEPS += $(patsubst %.rel,%.d,$(BOOT_CRT0)) BOOT_OBJ = $(patsubst %,$(BOOT_BUILD)/%.rel,$(basename $(BOOT_SRC))) DEPS += $(patsubst %.rel,%.d,$(BOOT_OBJ)) $(BOOT_BUILD)/boot.ihx : EXTRA_LDFLAGS=$(BOOT_LDFLAGS) $(BOOT_BUILD)/boot.ihx : $(BOOT_OBJ) $(BOOT_OBJ) : | $(BOOT_BUILD) $(BOOT_BUILD) : @mkdir -p $@ $(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 $(patsubst %,boot/%/Makefile,$(PAYLOADS))