From f2c7ad585a3c5978822fb5dfb829d585d8d4e852 Mon Sep 17 00:00:00 2001 From: "timecop@gmail.com" Date: Tue, 9 Apr 2013 04:57:42 +0000 Subject: [PATCH] Adding GDB support to the makefile. Use the build option DEBUG=GDB to have the .elf file contain debugging symbols. git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@303 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61 --- Makefile | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 80ff2822e..82a8ee31b 100644 --- a/Makefile +++ b/Makefile @@ -20,6 +20,9 @@ TARGET ?= NAZE # Compile-time options OPTIONS ?= +# Debugger optons, must be empty or GDB +DEBUG ?= + ############################################################################### # Things that need to be maintained as the source changes # @@ -114,10 +117,9 @@ INCLUDE_DIRS = $(SRC_DIR) \ $(CMSIS_DIR)/CM3/DeviceSupport/ST/STM32F10x \ ARCH_FLAGS = -mthumb -mcpu=cortex-m3 -CFLAGS = $(ARCH_FLAGS) \ +BASE_CFLAGS = $(ARCH_FLAGS) \ $(addprefix -D,$(OPTIONS)) \ $(addprefix -I,$(INCLUDE_DIRS)) \ - -Os \ -Wall \ -ffunction-sections \ -fdata-sections \ @@ -148,6 +150,16 @@ ifeq ($(filter $(TARGET),$(VALID_TARGETS)),) $(error Target '$(TARGET)' is not valid, must be one of $(VALID_TARGETS)) endif +ifeq ($(DEBUG),GDB) +CFLAGS = $(BASE_CFLAGS) \ + -ggdb \ + -O0 +else +CFLAGS = $(BASE_CFLAGS) \ + -Os +endif + + TARGET_HEX = $(BIN_DIR)/baseflight_$(TARGET).hex TARGET_ELF = $(BIN_DIR)/baseflight_$(TARGET).elf TARGET_OBJS = $(addsuffix .o,$(addprefix $(OBJECT_DIR)/$(TARGET)/,$(basename $($(TARGET)_SRC))))