From 9b15d0e7147978405f375cf33090c18fa9bbf47f Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 13 Dec 2012 09:00:37 +1100 Subject: [PATCH] Build: update makefile for SITL build --- libraries/AP_Common/Arduino.mk | 37 +++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/libraries/AP_Common/Arduino.mk b/libraries/AP_Common/Arduino.mk index 2dd737e05e..4b7b9c25df 100644 --- a/libraries/AP_Common/Arduino.mk +++ b/libraries/AP_Common/Arduino.mk @@ -206,15 +206,26 @@ FIND_TOOL = $(firstword $(wildcard $(addsuffix /$(1),$(TOOLPATH)))) else FIND_TOOL = $(firstword $(wildcard $(addsuffix /$(1).exe,$(TOOLPATH)))) endif + +ifeq ($(HAL_BOARD),HAL_BOARD_AVR_SITL) +CXX := $(call FIND_TOOL,g++) +CC := $(call FIND_TOOL,gcc) +AS := $(call FIND_TOOL,gcc) +AR := $(call FIND_TOOL,ar) +LD := $(call FIND_TOOL,g++) +GDB := $(call FIND_TOOL,gdb) +OBJCOPY := $(call FIND_TOOL,objcopy) +else CXX := $(call FIND_TOOL,avr-g++) CC := $(call FIND_TOOL,avr-gcc) AS := $(call FIND_TOOL,avr-gcc) AR := $(call FIND_TOOL,avr-ar) LD := $(call FIND_TOOL,avr-gcc) GDB := $(call FIND_TOOL,avr-gdb) -AVRDUDE := $(call FIND_TOOL,avrdude) -AVARICE := $(call FIND_TOOL,avarice) +AVRDUDE := $(call FIND_TOOL,avrdude) +AVARICE := $(call FIND_TOOL,avarice) OBJCOPY := $(call FIND_TOOL,avr-objcopy) +endif ifeq ($(CXX),) $(error ERROR: cannot find the compiler tools anywhere on the path $(TOOLPATH)) endif @@ -234,19 +245,27 @@ OPTFLAGS = -Os -Wformat -Wall -Wshadow -Wpointer-arith -Wcast-align -Wwrite-str DEPFLAGS = -MD -MT $@ # XXX warning options TBD -CXXOPTS = -mcall-prologues -ffunction-sections -fdata-sections -fno-exceptions -COPTS = -mcall-prologues -ffunction-sections -fdata-sections +CXXOPTS = -ffunction-sections -fdata-sections -fno-exceptions +COPTS = -ffunction-sections -fdata-sections ASOPTS = -x assembler-with-cpp LISTOPTS = -adhlns=$(@:.o=.lst) -CXXFLAGS = -g -mmcu=$(MCU) $(DEFINES) -Wa,$(LISTOPTS) $(OPTFLAGS) $(DEPFLAGS) $(CXXOPTS) -CFLAGS = -g -mmcu=$(MCU) $(DEFINES) -Wa,$(LISTOPTS) $(OPTFLAGS) $(DEPFLAGS) $(COPTS) -ASFLAGS = -g -mmcu=$(MCU) $(DEFINES) -Wa,$(LISTOPTS) $(DEPFLAGS) $(ASOPTS) -LDFLAGS = -g -mmcu=$(MCU) $(OPTFLAGS) -Wl,--gc-sections -Wl,-Map -Wl,$(SKETCHMAP) -Wl,-m,avr6 +ifeq ($(HAL_BOARD),HAL_BOARD_AVR_SITL) +CPUFLAGS = -D_GNU_SOURCE +CPULDFLAGS = +else +CPUFLAGS = -mmcu=$(MCU) -mcall-prologues +CPULDFLAGS = -Wl,-m,avr6 +endif + +CXXFLAGS = -g $(CPUFLAGS) $(DEFINES) -Wa,$(LISTOPTS) $(OPTFLAGS) $(DEPFLAGS) $(CXXOPTS) +CFLAGS = -g $(CPUFLAGS) $(DEFINES) -Wa,$(LISTOPTS) $(OPTFLAGS) $(DEPFLAGS) $(COPTS) +ASFLAGS = -g $(CPUFLAGS) $(DEFINES) -Wa,$(LISTOPTS) $(DEPFLAGS) $(ASOPTS) +LDFLAGS = -g $(CPUFLAGS) $(OPTFLAGS) -Wl,--gc-sections -Wl,-Map -Wl,$(SKETCHMAP) $(CPULDFLAGS) ifeq ($(BOARD),mega) - LDFLAGS = -g -mmcu=$(MCU) $(OPTFLAGS) -Wl,--gc-sections -Wl,-Map -Wl,$(SKETCHMAP) + LDFLAGS = -g $(CPUFLAGS) $(OPTFLAGS) -Wl,--gc-sections -Wl,-Map -Wl,$(SKETCHMAP) endif # under certain situations with certain avr-gcc versions the --relax flag causes