[Midnightbsd-cvs] mports [19693] trunk/Mk/extensions/compiler.mk: c++ 14 support
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Sun Aug 9 14:44:27 EDT 2015
Revision: 19693
http://svnweb.midnightbsd.org/mports/?rev=19693
Author: laffer1
Date: 2015-08-09 14:44:26 -0400 (Sun, 09 Aug 2015)
Log Message:
-----------
c++ 14 support
Modified Paths:
--------------
trunk/Mk/extensions/compiler.mk
Modified: trunk/Mk/extensions/compiler.mk
===================================================================
--- trunk/Mk/extensions/compiler.mk 2015-08-09 18:43:56 UTC (rev 19692)
+++ trunk/Mk/extensions/compiler.mk 2015-08-09 18:44:26 UTC (rev 19693)
@@ -8,6 +8,7 @@
#
# c++0x: The port needs a compiler understanding C++0X
# c++11-lang: The port needs a compiler understanding C++11
+# c++14-lang: The port needs a compiler understanding C++14
# gcc-c++11-lib:The port needs g++ compiler with a C++11 library
# c++11-lib: The port needs a compiler understanding C++11 and with a C++11 ready standard library
# c11: The port needs a compiler understanding C11
@@ -32,7 +33,7 @@
compiler_ARGS= env
.endif
-VALID_ARGS= c++11-lib c++11-lang c11 features openmp env nestedfct c++0x gcc-c++11-lib
+VALID_ARGS= c++11-lib c++11-lang c++14-lang c11 features openmp env nestedfct c++0x gcc-c++11-lib
.if ${compiler_ARGS} == gcc-c++11-lib
_COMPILER_ARGS+= features gcc-c++11-lib
@@ -42,6 +43,8 @@
_COMPILER_ARGS+= features c++0x
.elif ${compiler_ARGS} == c++11-lang
_COMPILER_ARGS+= features c++11-lang
+.elif ${compiler_ARGS} == c++14-lang
+_COMPILER_ARGS+= features c++14-lang
.elif ${compiler_ARGS} == c11
_COMPILER_ARGS+= features c11
.elif ${compiler_ARGS} == features
@@ -73,9 +76,7 @@
ALT_COMPILER_TYPE= none
_ALTCCVERSION=
.if ${COMPILER_TYPE} == gcc && exists(/usr/bin/clang)
-.if ${ARCH} == amd64 || ${ARCH} == i386 # clang often non-default for a reason
_ALTCCVERSION!= /usr/bin/clang --version
-.endif
.elif ${COMPILER_TYPE} == clang && exists(/usr/bin/gcc)
_ALTCCVERSION!= /usr/bin/gcc --version
.endif
@@ -112,7 +113,7 @@
.endif
CSTD= c89 c99 c11 gnu89 gnu99 gnu11
-CXXSTD= c++98 c++11 gnu++98 gnu++11 c++0x
+CXXSTD= c++98 c++0x c++11 c++14 gnu++98 gnu++11
.for std in ${CSTD} ${CXXSTD}
_LANG=c
@@ -136,6 +137,32 @@
.endif
.endif
+.if ${_COMPILER_ARGS:Mc++14-lang}
+.if !${COMPILER_FEATURES:Mc++14}
+.if (defined(FAVORITE_COMPILER) && ${FAVORITE_COMPILER} == gcc)
+USE_GCC= 5+
+CHOSEN_COMPILER_TYPE= gcc
+.elif (${COMPILER_TYPE} == clang && ${COMPILER_VERSION} < 35) || ${COMPILER_TYPE} == gcc
+.if ${ALT_COMPILER_TYPE} == clang && ${ALT_COMPILER_VERSION} >= 35
+CPP= clang-cpp
+CC= clang
+CXX= clang++
+CHOSEN_COMPILER_TYPE= clang
+.else
+BUILD_DEPENDS+= ${LOCALBASE}/bin/clang36:${PORTSDIR}/lang/clang36
+CPP= ${LOCALBASE}/bin/clang-cpp36
+CC= ${LOCALBASE}/bin/clang36
+CXX= ${LOCALBASE}/bin/clang++36
+CHOSEN_COMPILER_TYPE= clang
+.if ${OSVERSION} < 4015
+USE_BINUTILS= yes
+LDFLAGS+= -B${LOCALBASE}/bin
+.endif
+.endif
+.endif
+.endif
+.endif
+
.if ${_COMPILER_ARGS:Mc++11-lang}
.if !${COMPILER_FEATURES:Mc++11}
.if (defined(FAVORITE_COMPILER) && ${FAVORITE_COMPILER} == gcc) || (${ARCH} != amd64 && ${ARCH} != i386) # clang not always supported on Tier-2
More information about the Midnightbsd-cvs
mailing list