Initialize multi-platform support
This commit is contained in:
46
Makefile
46
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
|
||||
|
||||
Reference in New Issue
Block a user