From c28ddec92b64dc3185d835ba6338398d63af7837 Mon Sep 17 00:00:00 2001 From: "S.J.R. van Schaik" Date: Sat, 11 Mar 2017 00:10:03 +0000 Subject: [PATCH] make: add support for building a host version --- Makefile | 42 +++++++++++------------------------------- scripts/Makefile.stm32f0 | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 31 deletions(-) create mode 100644 scripts/Makefile.stm32f0 diff --git a/Makefile b/Makefile index 1d6fcd8..823d6a7 100644 --- a/Makefile +++ b/Makefile @@ -1,27 +1,21 @@ +TARGET ?= host +TARGET := $(filter host stm32f0,${TARGET}) + +ifeq (${TARGET},) +$(error No support available for the target) +endif + BUILD ?= build -PREFIX ?= arm-none-eabi +BUILD := $(addsuffix /${TARGET},${BUILD}) all: $(BUILD)/tbm -LDSCRIPT = support/stm32f0-discovery.ld +-include scripts/Makefile.${TARGET} CFLAGS += -Iinclude CFLAGS += -Wall -Wundef -Wextra -Wshadow -Wimplicit-function-declaration CFLAGS += -Wredundant-decls -Wmissing-prototypes -Wstrict-prototypes CFLAGS += -fno-common --function-sections -fdata-sections -LDFLAGS += -static -nostartfiles -LDFLAGS += -Wl,--gc-sections -LIBS += -Wl,--start-group -lc -lgcc -lnosys -Wl,--end-group - -# Set up libopencm3. -OPENCM3_DIR ?= libopencm3 -OPENCM3_LIBNAME = opencm3_stm32f0 -CFLAGS += -I$(OPENCM3_DIR)/include -CFLAGS += -DSTM32F0 -msoft-float -mthumb -mcpu=cortex-m0 -LDFLAGS += -L$(OPENCM3_DIR)/lib -LIBS += -l$(OPENCM3_LIBNAME) - -STLINK_PORT ?= :4242 obj-y += source/main.o obj-y += source/shell.o @@ -45,29 +39,15 @@ clean: @echo "CLEAN" @rm -rf $(BUILD) -$(OPENCM3_DIR)/lib/lib$(OPENCM3_LIBNAME).a: - @if [ ! -e libopencm3/.git ]; then \ - git submodule init; \ - git submodule update; \ - fi - @$(MAKE) -C $(OPENCM3_DIR) - # Rule to compile C source code. $(BUILD)/%.o: %.c @echo "CC $<" @mkdir -p $(dir $@) @$(CC) -c $< -o $@ $(CFLAGS) -MT $@ -MMD -MP -MF $(@:.o=.d) -$(BUILD)/tbm: $(obj) $(LDSCRIPT) $(OPENCM3_DIR)/lib/lib$(OPENCM3_LIBNAME).a +$(BUILD)/tbm: $(obj) $(LDSCRIPT) @echo "LD $@" @mkdir -p $(dir $@) @$(LD) -o $@ $(CFLAGS) $(LDFLAGS) -T $(LDSCRIPT) $(obj) $(LIBS) -run: $(BUILD)/tbm - @echo "GDB $<" - @$(GDB) --batch \ - -ex 'target extended-remote $(STLINK_PORT)' \ - -x flash.scr \ - $< - -.PHONY: clean run +.PHONY: clean diff --git a/scripts/Makefile.stm32f0 b/scripts/Makefile.stm32f0 new file mode 100644 index 0000000..dc904b7 --- /dev/null +++ b/scripts/Makefile.stm32f0 @@ -0,0 +1,35 @@ +PREFIX ?= arm-none-eabi + +LDSCRIPT = support/stm32f0-discovery.ld + +LDFLAGS += -static -nostartfiles +LDFLAGS += -Wl,--gc-sections +LIBS += -Wl,--start-group -lc -lgcc -lnosys -Wl,--end-group + +# Set up libopencm3. +OPENCM3_DIR ?= libopencm3 +OPENCM3_LIBNAME = opencm3_stm32f0 +CFLAGS += -I$(OPENCM3_DIR)/include +CFLAGS += -DSTM32F0 -msoft-float -mthumb -mcpu=cortex-m0 +LDFLAGS += -L$(OPENCM3_DIR)/lib +LIBS += -l$(OPENCM3_LIBNAME) + +STLINK_PORT ?= :4242 + +$(OPENCM3_DIR)/lib/lib$(OPENCM3_LIBNAME).a: + @if [ ! -e libopencm3/.git ]; then \ + git submodule init; \ + git submodule update; \ + fi + @$(MAKE) -C $(OPENCM3_DIR) + +$(BUILD)/tbm: $(OPENCM3_DIR)/lib/lib$(OPENCM3_LIBNAME).a + +run: $(BUILD)/tbm + @echo "GDB $<" + @$(GDB) --batch \ + -ex 'target extended-remote $(STLINK_PORT)' \ + -x flash.scr \ + $< + +.PHONY: run