aboutsummaryrefslogtreecommitdiff
path: root/boot/Makefile
blob: 9c3f7c7310e4ca2fe32971c49942515cd998943e (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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))