summaryrefslogtreecommitdiffstats
path: root/share/mk/bsd.compiler.mk
diff options
context:
space:
mode:
authorbrooks <brooks@FreeBSD.org>2012-09-13 16:00:46 +0000
committerbrooks <brooks@FreeBSD.org>2012-09-13 16:00:46 +0000
commitf17cb55447d48bc158b5154afa555cbb98793552 (patch)
tree026ab7b76d6035ab651e3761d73e9f9f465ed976 /share/mk/bsd.compiler.mk
parent1e4174de1a4f6a3cd6d80a545ec7187ecc402d68 (diff)
downloadFreeBSD-src-f17cb55447d48bc158b5154afa555cbb98793552.zip
FreeBSD-src-f17cb55447d48bc158b5154afa555cbb98793552.tar.gz
Introduce a new make variable COMPILER_TYPE that specifies what
type of compiler is being used (currently clang or gcc). COMPILER_TYPE is set in the new bsd.compiler.mk file based on the value of the CC variable or, should it prove informative, by running ${CC} --version and examining the output. To avoid negative performance impacts in the default case and correct value for COMPILER_TYPE type is determined and passed in the environment of submake instances while building world. Replace adhoc attempts at determining the compiler type by examining CC or MK_CLANG_IS_CC with checks of COMPILER_TYPE. This eliminates bootstrapping complications when first setting WITH_CLANG_IS_CC. Sponsored by: DARPA, AFRL Reviewed by: Yamaya Takashi <yamayan@kbh.biglobe.ne.jp>, imp, linimon (with some modifications post review) MFC after: 2 weeks
Diffstat (limited to 'share/mk/bsd.compiler.mk')
-rw-r--r--share/mk/bsd.compiler.mk21
1 files changed, 21 insertions, 0 deletions
diff --git a/share/mk/bsd.compiler.mk b/share/mk/bsd.compiler.mk
new file mode 100644
index 0000000..cca3968
--- /dev/null
+++ b/share/mk/bsd.compiler.mk
@@ -0,0 +1,21 @@
+# $FreeBSD$
+
+.if !defined(COMPILER_TYPE)
+. if ${CC:T:Mgcc} == "gcc"
+COMPILER_TYPE:= gcc
+. elif ${CC:T:Mclang} == "clang"
+COMPILER_TYPE:= clang
+. else
+_COMPILER_VERSION!= ${CC} --version
+. if ${_COMPILER_VERSION:Mgcc} == "gcc"
+COMPILER_TYPE:= gcc
+. elif ${_COMPILER_VERSION:M\(GCC\)} == "(GCC)"
+COMPILER_TYPE:= gcc
+. elif ${_COMPILER_VERSION:Mclang} == "clang"
+COMPILER_TYPE:= clang
+. else
+.error Unable to determing compiler type for ${CC}
+. endif
+. undef _COMPILER_VERSION
+. endif
+.endif
OpenPOWER on IntegriCloud