From 555ff07ae4d2e2f56ed4362b48fb08491915500b Mon Sep 17 00:00:00 2001 From: niklascfw Date: Thu, 12 Nov 2026 22:49:13 +0100 Subject: [PATCH] build: track header dependencies and report the RCM size limit --- Makefile | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 78c46a4..818e888 100644 --- a/Makefile +++ b/Makefile @@ -44,11 +44,13 @@ CUSTOMDEFINES += -DGFX_INC=$(GFX_INC) -DFFCFG_INC=$(FFCFG_INC) CUSTOMDEFINES += -DVERSION='"$(VERSION)"' ARCH := -march=armv4t -mtune=arm7tdmi -mthumb -mthumb-interwork -CFLAGS = $(ARCH) -Os -nostdlib -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-inline -std=gnu11 -Wall -Wno-missing-braces $(CUSTOMDEFINES) +CFLAGS = $(ARCH) -Os -nostdlib -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-inline -std=gnu11 -Wall -Wno-missing-braces -MMD -MP $(CUSTOMDEFINES) LDFLAGS = $(ARCH) -nostartfiles -lgcc -Wl,--nmagic,--gc-sections -Xlinker --defsym=IPL_LOAD_ADDR=$(IPL_LOAD_ADDR) ################################################################################ +MAX_PAYLOAD_SIZE := 126296 + RAMTEST_BIN := $(OUTPUTDIR)/RAM-Test.bin OBJS_RAMTEST := $(filter-out $(BUILDDIR)/$(TARGET)/main.o,$(OBJS)) \ $(BUILDDIR)/$(TARGET)/ram_test_main.o @@ -57,8 +59,8 @@ OBJS_RAMTEST := $(filter-out $(BUILDDIR)/$(TARGET)/main.o,$(OBJS)) \ all: $(OUTPUTDIR)/$(OUTPUT_NAME) $(eval BIN_SIZE = $(shell wc -c < $(OUTPUTDIR)/$(OUTPUT_NAME))) - @echo "Payload size is $(BIN_SIZE) bytes" - @echo "Max size is 126296 bytes." + @echo "Payload size is $(BIN_SIZE) bytes (max $(MAX_PAYLOAD_SIZE) for RCM)" + @if [ $(BIN_SIZE) -gt $(MAX_PAYLOAD_SIZE) ]; then echo "WARNING: payload exceeds the RCM size limit"; fi clean: @rm -rf $(BUILDDIR) @@ -105,6 +107,9 @@ $(BUILDDIR)/$(TARGET)/%.o: $(BDKDIR)/%.S @mkdir -p "$(@D)" $(CC) $(CFLAGS) -c $< -o $@ +# Header dependencies (generated by -MMD) +-include $(OBJS:.o=.d) $(BUILDDIR)/$(TARGET)/ram_test_main.d + release: $(OUTPUTDIR)/$(OUTPUT_NAME) @mkdir -p release/bootloader/payloads @cp $(OUTPUTDIR)/$(OUTPUT_NAME) release/bootloader/payloads/$(OUTPUT_NAME)