make: add support for building a host version
This commit is contained in:
parent
3873f68817
commit
c28ddec92b
2 changed files with 46 additions and 31 deletions
42
Makefile
42
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
|
||||
|
|
35
scripts/Makefile.stm32f0
Normal file
35
scripts/Makefile.stm32f0
Normal file
|
@ -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…
Add table
Reference in a new issue