diff --git a/make/compiler_flags b/make/compiler_flags index 73268a95204..98cd0daf3c3 100644 --- a/make/compiler_flags +++ b/make/compiler_flags @@ -120,35 +120,45 @@ INC_GTEST ?= -I $(GTEST)/include -I $(GTEST) CPPFLAGS_BOOST ?= -DBOOST_DISABLE_ASSERTS CPPFLAGS_SUNDIALS ?= -DNO_FPRINTF_OUTPUT $(CPPFLAGS_OPTIM_SUNDIALS) $(CXXFLAGS_FLTO_SUNDIALS) #CPPFLAGS_GTEST ?= - +HAS_CXX17 := false ifeq ($(CXX_TYPE), gcc) GCC_GE_73 := $(shell [ $(CXX_MAJOR) -gt 7 -o \( $(CXX_MAJOR) -eq 7 -a $(CXX_MINOR) -ge 1 \) ] && echo true) ifeq ($(GCC_GE_73),true) CXXFLAGS_LANG ?= -std=c++17 CXXFLAGS_STANDARD ?= c++17 + HAS_CXX17 := true endif else ifeq ($(CXX_TYPE), clang) CLANG_GE_5 := $(shell [ $(CXX_MAJOR) -gt 5 -o \( $(CXX_MAJOR) -eq 5 -a $(CXX_MINOR) -ge 0 \) ] && echo true) ifeq ($(CLANG_GE_5),true) CXXFLAGS_LANG ?= -std=c++17 CXXFLAGS_STANDARD ?= c++17 + HAS_CXX17 := true endif else ifeq ($(CXX_TYPE), mingw32-gcc) MINGW_GE_50 := $(shell [ $(CXX_MAJOR) -gt 5 -o \( $(CXX_MAJOR) -eq 5 -a $(CXX_MINOR) -ge 0 \) ] && echo true) ifeq ($(MINGW_GE_50),true) CXXFLAGS_LANG ?= -std=c++17 CXXFLAGS_STANDARD ?= c++17 + HAS_CXX17 := true endif else ifeq ($(STAN_USE_CPP14),) CXXFLAGS_LANG ?= -std=c++17 CXXFLAGS_STANDARD ?= c++17 + HAS_CXX17 := true else $(warning "Because STAN_USE_CPP14 is set C++14 standard is requested. This will not be possible in the next release!") CXXFLAGS_LANG ?= -std=c++1y CXXFLAGS_STANDARD ?= c++1y + HAS_CXX17 := true endif - +ifeq ($(HAS_CXX17), false) + $(warning "Because STAN_USE_CPP14 is set C++14 standard is requested. This will not be possible in the next release!") + CXXFLAGS_LANG ?= -std=c++1y + CXXFLAGS_STANDARD ?= c++1y + HAS_CXX17 := true +endif #CXXFLAGS_BOOST ?= CXXFLAGS_SUNDIALS ?= -pipe $(CXXFLAGS_OPTIM_SUNDIALS) $(CPPFLAGS_FLTO_SUNDIALS) #CXXFLAGS_GTEST