Browse Source

Adding GDB support to the makefile. Use the build option DEBUG=GDB to have the .elf file contain debugging symbols.

master
Dominic Clifton 12 years ago
parent
commit
fdc9d219d3
  1. 16
      Makefile

16
Makefile

@ -20,6 +20,9 @@ TARGET ?= NAZE
# Compile-time options # Compile-time options
OPTIONS ?= OPTIONS ?=
# Debugger optons, must be empty or GDB
DEBUG ?=
############################################################################### ###############################################################################
# Things that need to be maintained as the source changes # Things that need to be maintained as the source changes
# #
@ -114,10 +117,9 @@ INCLUDE_DIRS = $(SRC_DIR) \
$(CMSIS_DIR)/CM3/DeviceSupport/ST/STM32F10x \ $(CMSIS_DIR)/CM3/DeviceSupport/ST/STM32F10x \
ARCH_FLAGS = -mthumb -mcpu=cortex-m3 ARCH_FLAGS = -mthumb -mcpu=cortex-m3
CFLAGS = $(ARCH_FLAGS) \
BASE_CFLAGS = $(ARCH_FLAGS) \
$(addprefix -D,$(OPTIONS)) \ $(addprefix -D,$(OPTIONS)) \
$(addprefix -I,$(INCLUDE_DIRS)) \ $(addprefix -I,$(INCLUDE_DIRS)) \
-Os \
-Wall \ -Wall \
-ffunction-sections \ -ffunction-sections \
-fdata-sections \ -fdata-sections \
@ -148,6 +150,16 @@ ifeq ($(filter $(TARGET),$(VALID_TARGETS)),)
$(error Target '$(TARGET)' is not valid, must be one of $(VALID_TARGETS)) $(error Target '$(TARGET)' is not valid, must be one of $(VALID_TARGETS))
endif endif
ifeq ($(DEBUG),GDB)
CFLAGS = $(BASE_CFLAGS) \
-ggdb \
-O0
else
CFLAGS = $(BASE_CFLAGS) \
-Os
endif
TARGET_HEX = $(BIN_DIR)/baseflight_$(TARGET).hex TARGET_HEX = $(BIN_DIR)/baseflight_$(TARGET).hex
TARGET_ELF = $(BIN_DIR)/baseflight_$(TARGET).elf TARGET_ELF = $(BIN_DIR)/baseflight_$(TARGET).elf
TARGET_OBJS = $(addsuffix .o,$(addprefix $(OBJECT_DIR)/$(TARGET)/,$(basename $($(TARGET)_SRC)))) TARGET_OBJS = $(addsuffix .o,$(addprefix $(OBJECT_DIR)/$(TARGET)/,$(basename $($(TARGET)_SRC))))

Loading…
Cancel
Save