From 9d33f21da661a10345d63bd8badbdeb7671d34a2 Mon Sep 17 00:00:00 2001 From: Puck Meerburg Date: Fri, 6 Feb 2026 17:44:28 +0000 Subject: [PATCH] Initialize multi-platform support --- Makefile | 46 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index 088da90..ecc2a49 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,25 @@ SRCS := \ $(wildcard src/*.c) \ $(wildcard src/*/*.c) -OUTPUTS = $(patsubst %.S,build/%.o,$(patsubst %.c,build/%.o, $(SRCS))) + +BUILDDIR = build/$(PLATFORM) + +ifeq ($(PLATFORM),badgemagic) +CFLAGS += -DPLATFORM_BADGEMAGIC +else ifeq ($(PLATFORM),ls32-usbc) +CFLAGS += -DPLATFORM_LS32_USBC +else ifeq ($(PLATFORM),ls32-microusb) +CFLAGS += -DPLATFORM_LS32_MICROUSB +else +_ERROR=Unknown PLATFORM $(PLATFORM) +ifeq ($(PLATFORM),) +_ERROR=Select a PLATFORM +endif +$(error "$(_ERROR) (valid platforms: badgemagic, ls32-usbc, ls32-microusb)") +endif + + +OUTPUTS = $(patsubst %.S,$(BUILDDIR)/%.o,$(patsubst %.c,$(BUILDDIR)/%.o, $(SRCS))) PREFIX ?= riscv-none-embed- CC = "$(PREFIX)gcc" @@ -34,25 +52,29 @@ LDFLAGS = -march=rv32imac -mabi=ilp32 -msmall-data-limit=8 \ ./CH5xx_ble_firmware_library/BLE/LIBCH58xBLE.a \ -T CH5xx_ble_firmware_library/Ld/Link.ld -nostartfiles -Xlinker --gc-sections -all: build/badgewitch.elf build/badgewitch.bin +all: build/$(PLATFORM).bin -build/%.o: %.c +$(BUILDDIR)/%.o: %.c @mkdir -p $(dir $@) - $(CC) -c $(CFLAGS) $< -o $@ + @echo "CC $@" + @$(CC) -c $(CFLAGS) $< -o $@ -build/%.o: %.S +$(BUILDDIR)/%.o: %.S @mkdir -p $(dir $@) - $(CC) -c $(CFLAGS) $< -o $@ + @echo "AS $@" + @$(CC) -c $(CFLAGS) $< -o $@ -build/badgewitch.elf: $(OUTPUTS) +$(BUILDDIR)/badgewitch.elf: $(OUTPUTS) @mkdir -pv $(dir $@) - $(CC) $(OUTPUTS) $(LDFLAGS) -o $@ + @echo "LD $@" + @$(CC) $(OUTPUTS) $(LDFLAGS) -o $@ -build/%.bin: build/%.elf - $(OBJCOPY) -O binary -S $< $@ +build/%.bin: build/%/badgewitch.elf + @echo "ELF -> BIN $<" + @$(OBJCOPY) -O binary -S $< $@ -flash: build/badgewitch.bin - wchisp flash build/badgewitch.bin +flash: build/$(PLATFORM).bin + wchisp flash build/$(PLATFORM).bin clean: rm -rf build