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
22 lines
497 B
Makefile
22 lines
497 B
Makefile
# $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
|