Initialize multi-platform support

This commit is contained in:
Puck Meerburg
2026-02-06 17:44:28 +00:00
parent 5acfb5ac98
commit 9d33f21da6

View File

@@ -12,7 +12,25 @@ SRCS := \
$(wildcard src/*.c) \ $(wildcard src/*.c) \
$(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- PREFIX ?= riscv-none-embed-
CC = "$(PREFIX)gcc" CC = "$(PREFIX)gcc"
@@ -34,25 +52,29 @@ LDFLAGS = -march=rv32imac -mabi=ilp32 -msmall-data-limit=8 \
./CH5xx_ble_firmware_library/BLE/LIBCH58xBLE.a \ ./CH5xx_ble_firmware_library/BLE/LIBCH58xBLE.a \
-T CH5xx_ble_firmware_library/Ld/Link.ld -nostartfiles -Xlinker --gc-sections -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 $@) @mkdir -p $(dir $@)
$(CC) -c $(CFLAGS) $< -o $@ @echo "CC $@"
@$(CC) -c $(CFLAGS) $< -o $@
build/%.o: %.S $(BUILDDIR)/%.o: %.S
@mkdir -p $(dir $@) @mkdir -p $(dir $@)
$(CC) -c $(CFLAGS) $< -o $@ @echo "AS $@"
@$(CC) -c $(CFLAGS) $< -o $@
build/badgewitch.elf: $(OUTPUTS) $(BUILDDIR)/badgewitch.elf: $(OUTPUTS)
@mkdir -pv $(dir $@) @mkdir -pv $(dir $@)
$(CC) $(OUTPUTS) $(LDFLAGS) -o $@ @echo "LD $@"
@$(CC) $(OUTPUTS) $(LDFLAGS) -o $@
build/%.bin: build/%.elf build/%.bin: build/%/badgewitch.elf
$(OBJCOPY) -O binary -S $< $@ @echo "ELF -> BIN $<"
@$(OBJCOPY) -O binary -S $< $@
flash: build/badgewitch.bin flash: build/$(PLATFORM).bin
wchisp flash build/badgewitch.bin wchisp flash build/$(PLATFORM).bin
clean: clean:
rm -rf build rm -rf build