diff options
author | Thomas Albers Raviola <thomas@thomaslabs.org> | 2025-02-12 01:27:44 +0100 |
---|---|---|
committer | Thomas Albers Raviola <thomas@thomaslabs.org> | 2025-02-12 01:27:44 +0100 |
commit | 779b9834e30de1ba0b4f0755388bebd0c45aa1dc (patch) | |
tree | 218edb656e329884e4b9cab7e84f4ba4b4af0c4a /boot/Makefile | |
parent | 8ac78b9953908d2a4ffece855296fb7597440cce (diff) |
Restructure rom image and use dependencies for makefiles
Diffstat (limited to 'boot/Makefile')
-rw-r--r-- | boot/Makefile | 62 |
1 files changed, 22 insertions, 40 deletions
diff --git a/boot/Makefile b/boot/Makefile index 2fff22d..88d3c6e 100644 --- a/boot/Makefile +++ b/boot/Makefile @@ -1,50 +1,32 @@ -AS=sdasz80 -CC=sdcc -CPP=sdcpp +BUILD=$(PROJECT_ROOT)/build/boot -ASM=crt0.asm -SRC=crc16.c\ - bootloader.c - -INCLUDE=../include -BUILD=../build/boot - -OBJ=$(ASM:%.asm=$(BUILD)/%.rel)\ - $(SRC:%.c=$(BUILD)/%.rel) - -IHX=$(BUILD)/bootloader.ihx TARGET=$(BUILD)/bootloader.hex +IHX=$(BUILD)/boot.ihx -CFLAGS=-mz80 -I$(INCLUDE) --Werror -LDFLAGS=-mz80 --no-std-crt0\ - --code-loc 0x8100\ - --data-loc 0xC000\ - --stack-loc 0x0000\ - -Wl-b_GSINIT=0x8080 +ASM=$(filter-out crt0.asm, $(wildcard *.asm)) +SRC=$(wildcard *.c) +PAYLOADS=cmd devmode -all : $(TARGET) - -$(OBJ): | $(BUILD) +PAYLOADS_HEX=$(foreach payload,$(PAYLOADS),$(BUILD)/$(payload)/$(payload).hex) -$(BUILD) : - @mkdir -p $(BUILD) +HEX=$(BUILD)/boot.hex $(PAYLOADS_HEX) -$(BUILD)/%.rel : %.asm - @echo ' (AS)' $< - @$(CPP) -P -I$(INCLUDE) -DASSEMBLY $< > $(BUILD)/$(notdir $<) - @$(AS) -g -o $@ $(BUILD)/$(notdir $<) +CODE_LOC=0x0120 +DATA_LOC=0xC000 +STACK_LOC=0x0000 +GSINIT_LOC=0x0090 -$(BUILD)/%.rel : %.c - @echo ' (CC)' $< - @$(CC) $(CFLAGS) -c -o $@ $< +all : $(TARGET) -$(IHX) : $(OBJ) - @echo ' (LD)' $(OBJ) - @$(CC) $(LDFLAGS) -o $@ $(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 $@ -$(TARGET) : $(IHX) - @hex2bin.py $< $@ +.PHONY : $(PAYLOADS_HEX) +$(PAYLOADS_HEX) : $(BUILD)/crt0.rel + make -C $(notdir $(basename $@)) CRT0=$< -.PHONY : clean -clean : - @find $(BUILD) -type f -delete +include $(PROJECT_ROOT)/include.mk +-include $(BUILD)/crt0.d |