From e4b30603d8c846f9b108358c30d564887bfd1878 Mon Sep 17 00:00:00 2001 From: Simon John Date: Mon, 25 Jul 2016 13:13:02 +0100 Subject: [PATCH] Added -std=gnu++11 -fno-threadsafe-statics to CXXFLAGS_STD if we're using Arduino 1.6 to match upstream (without it compilation seems to fail on OSX). Updated docs. Also made ARDUINO_LIB_PATH overloadable (as implied by arduino-mk-vars.md) although this is a pretty niche use-case. --- Arduino.mk | 14 +++++++++++--- arduino-mk-vars.md | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Arduino.mk b/Arduino.mk index b522e64..c3b1f93 100644 --- a/Arduino.mk +++ b/Arduino.mk @@ -472,8 +472,12 @@ ifndef AVR_TOOLS_PATH AVR_TOOLS_PATH = $(AVR_TOOLS_DIR)/bin endif -ARDUINO_LIB_PATH = $(ARDUINO_DIR)/libraries -$(call show_config_variable,ARDUINO_LIB_PATH,[COMPUTED],(from ARDUINO_DIR)) +ifndef ARDUINO_LIB_PATH + ARDUINO_LIB_PATH = $(ARDUINO_DIR)/libraries + $(call show_config_variable,ARDUINO_LIB_PATH,[COMPUTED],(from ARDUINO_DIR)) +else + $(call show_config_variable,ARDUINO_LIB_PATH,[USER]) +endif # 1.5.x platform dependent libs path ifndef ARDUINO_PLATFORM_LIB_PATH @@ -1035,7 +1039,11 @@ else endif ifndef CXXFLAGS_STD - CXXFLAGS_STD = + ifeq ($(shell expr $(ARDUINO_VERSION) '>' 150), 1) + CXXFLAGS_STD = -std=gnu++11 -fno-threadsafe-statics + else + CXXFLAGS_STD = + endif $(call show_config_variable,CXXFLAGS_STD,[DEFAULT]) else $(call show_config_variable,CXXFLAGS_STD,[USER]) diff --git a/arduino-mk-vars.md b/arduino-mk-vars.md index 9a925e0..b160d93 100644 --- a/arduino-mk-vars.md +++ b/arduino-mk-vars.md @@ -929,7 +929,7 @@ CFLAGS_STD = = -std=gnu89 Controls, *exclusively*, which C++ standard is to be used for compilation. -Defaults to `undefined` +Defaults to `undefined` on 1.0 or `-std=gnu++11 -fno-threadsafe-statics` on 1.5+ Possible values: