make: add support for building a host version

tags/0.1.0
S.J.R. van Schaik 7 years ago
parent 3873f68817
commit c28ddec92b
  1. 42
      Makefile
  2. 35
      scripts/Makefile.stm32f0

@ -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

@ -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
Loading…
Cancel
Save