summaryrefslogtreecommitdiff
path: root/Mk/Uses/compiler.mk
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2014-01-09 06:55:18 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2014-01-09 06:55:18 +0000
commit9271597aee98c984460e2d74f9f1be1ae0d3e975 (patch)
treedf8772465735438fbba40aedbad56c0e7366ee9a /Mk/Uses/compiler.mk
parent- Update to version 1.6 (diff)
Allow to choose clang from base on 9.2 when looking for a C11 compiler
Add compiler:c++0x modeled over compiler:c++11-lang [1] Requested by: delphij [1]
Notes
Notes: svn path=/head/; revision=339199
Diffstat (limited to 'Mk/Uses/compiler.mk')
-rw-r--r--Mk/Uses/compiler.mk41
1 files changed, 38 insertions, 3 deletions
diff --git a/Mk/Uses/compiler.mk b/Mk/Uses/compiler.mk
index c43d87a3dfab..a9adce4e8dfa 100644
--- a/Mk/Uses/compiler.mk
+++ b/Mk/Uses/compiler.mk
@@ -32,10 +32,12 @@ _INCLUDE_USES_COMPILER_MK= yes
compiler_ARGS= env
.endif
-VALID_ARGS= c++11-lib c++11-lang c11 features openmp env nestedfct
+VALID_ARGS= c++11-lib c++11-lang c11 features openmp env nestedfct c++0x
.if ${compiler_ARGS} == c++11-lib
_COMPILER_ARGS+= features c++11-lib
+.elif ${compiler_ARGS} == features c++0x
+_COMPILER_ARGS+= features c++0x
.elif ${compiler_ARGS} == c++11-lang
_COMPILER_ARGS+= features c++11-lang
.elif ${compiler_ARGS} == c11
@@ -53,7 +55,7 @@ IGNORE= Invalid argument "${compiler_ARGS}", valid arguments are: ${VALID_ARGS}
_COMPILER_ARGS= #
.endif
-.if ${_COMPILER_ARGS:Mc++11*} || ${_COMPILER_ARGS:Mc11}
+.if ${_COMPILER_ARGS:Mc++*} || ${_COMPILER_ARGS:Mc11}
_COMPILER_ARGS+= features
.endif
@@ -106,7 +108,7 @@ COMPILER_FEATURES= libstdc++
.endif
CSTD= c89 c99 c11 gnu89 gnu99 gnu11
-CXXSTD= c++98 c++11 gnu++98 gnu++11
+CXXSTD= c++98 c++11 gnu++98 gnu++11 c++0x
.for std in ${CSTD} ${CXXSTD}
_LANG=c
@@ -156,12 +158,44 @@ LDFLAGS+= -B${LOCALBASE}/bin
.endif
.endif
+.if ${_COMPILER_ARGS:Mc++0x}
+.if !${COMPILER_FEATURES:Mc++0x}
+.if defined(FAVORITE_COMPILER) && ${FAVORITE_COMPILER} == gcc
+USE_GCC= 4.7+
+CHOSEN_COMPILER_TYPE= gcc
+.elif (${COMPILER_TYPE} == clang && ${COMPILER_VERSION} < 33) || ${COMPILER_TYPE} == gcc
+.if ${ALT_COMPILER_TYPE} == clang && ${ALT_COMPILER_VERSION} >= 33
+CPP= clang-cpp
+CC= clang
+CXX= clang++
+CHOSEN_COMPILER_TYPE= clang
+.else
+BUILD_DEPENDS+= ${LOCALBASE}/bin/clang33:${PORTSDIR}/lang/clang33
+CHOSEN_COMPILER_TYPE= clang
+CPP= ${LOCALBASE}/bin/clang-cpp33
+CC= ${LOCALBASE}/bin/clang33
+CXX= ${LOCALBASE}/bin/clang++33
+.if ${OSVERSION} < 900033
+USE_BINUTILS= yes
+LDFLAGS+= -B${LOCALBASE}/bin
+.endif
+.endif
+.endif
+.endif
+.endif
+
.if ${_COMPILER_ARGS:Mc11}
.if !${COMPILER_FEATURES:Mc11}
.if defined(FAVORITE_COMPILER) && ${FAVORITE_COMPILER} == gcc
USE_GCC= 4.7+
CHOSEN_COMPILER_TYPE= gcc
.elif (${COMPILER_TYPE} == clang && ${COMPILER_VERSION} < 33) || ${COMPILER_TYPE} == gcc
+.if ${ALT_COMPILER_TYPE} == clang && ${ALT_COMPILER_VERSION} >= 33
+CPP= clang-cpp
+CC= clang
+CXX= clang++
+CHOSEN_COMPILER_TYPE= clang
+.else
BUILD_DEPENDS+= ${LOCALBASE}/bin/clang33:${PORTSDIR}/lang/clang33
CHOSEN_COMPILER_TYPE= clang
CPP= ${LOCALBASE}/bin/clang-cpp33
@@ -174,5 +208,6 @@ LDFLAGS+= -B${LOCALBASE}/bin
.endif
.endif
.endif
+.endif
.endif