diff options
author | brooks <brooks@FreeBSD.org> | 2012-09-26 17:25:15 +0000 |
---|---|---|
committer | brooks <brooks@FreeBSD.org> | 2012-09-26 17:25:15 +0000 |
commit | 959c42a8aeb21e45aef65b39c1c89f2053e3af09 (patch) | |
tree | fb8bdc6956029b0b68b4b23009e8d58d9cf708e1 /share | |
parent | dd969745bce0790e98523ca33358745fd698ee11 (diff) | |
download | FreeBSD-src-959c42a8aeb21e45aef65b39c1c89f2053e3af09.zip FreeBSD-src-959c42a8aeb21e45aef65b39c1c89f2053e3af09.tar.gz |
Add a COMPILER_FEATURES variable that is set in bsd.compiler.mk.
When the compiler is clang add c++11 to COMPILER_FEATURES.
When the compiler supports c++11, default to building libc++. This will
not impact the compliation of programs, but will make it easier for
users with clang compiled systems to test libc++ by passing -stdlib=libc++
to their c++ compliations.
Diffstat (limited to 'share')
-rw-r--r-- | share/mk/bsd.compiler.mk | 6 | ||||
-rw-r--r-- | share/mk/bsd.own.mk | 28 |
2 files changed, 33 insertions, 1 deletions
diff --git a/share/mk/bsd.compiler.mk b/share/mk/bsd.compiler.mk index cca3968..02d152e 100644 --- a/share/mk/bsd.compiler.mk +++ b/share/mk/bsd.compiler.mk @@ -19,3 +19,9 @@ COMPILER_TYPE:= clang . undef _COMPILER_VERSION . endif .endif + +.if ${COMPILER_TYPE} == "clang" +COMPILER_FEATURES= c++11 +.else +COMPILER_FEATURES= +.endif diff --git a/share/mk/bsd.own.mk b/share/mk/bsd.own.mk index 1697335..c7e57f6 100644 --- a/share/mk/bsd.own.mk +++ b/share/mk/bsd.own.mk @@ -432,7 +432,6 @@ __DEFAULT_NO_OPTIONS = \ ICONV \ IDEA \ INSTALL_AS_USER \ - LIBCPLUSPLUS \ NAND \ OFED \ SHARED_TOOLCHAIN @@ -642,6 +641,33 @@ MK_${vv:H}:= ${MK_${vv:T}} .endif .endfor +# +# MK_* options that default to "yes" if the compiler is a C++11 compiler. +# +.include <bsd.compiler.mk> +.for var in \ + LIBCPLUSPLUS +.if defined(WITH_${var}) && defined(WITHOUT_${var}) +.error WITH_${var} and WITHOUT_${var} can't both be set. +.endif +.if defined(MK_${var}) +.error MK_${var} can't be set by a user. +.endif +.if ${COMPILER_FEATURES:Mc++11} +.if defined(WITHOUT_${var}) +MK_${var}:= no +.else +MK_${var}:= yes +.endif +.else +.if defined(WITH_${var}) +MK_${var}:= yes +.else +MK_${var}:= no +.endif +.endif +.endfor + .if ${MK_CTF} != "no" CTFCONVERT_CMD= ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} .elif defined(MAKE_VERSION) && ${MAKE_VERSION} >= 5201111300 |