Allow CC to not actually exist. During the ports INDEX run, all the

Makefiles are evaluated without building things. In a normal build,
the prerequisites would be built, and CC would be an actual thing. In
an INDEX build, though, they don't exists. Redirect stderr to get rid
of annoying messages, and assume that the compiler version is 0 if the
actual compiler can't tell us. Do this in preference to guessing based
on numbers because gcc410 might be 4.10, or 4.1.0 and without
carefully crafted special knowledge we differentiate between them
easily (also ming-gcc has no clues at all). Elsewhere, don't trust
the compiler version if it is 0.
This commit is contained in:
imp 2014-05-23 14:34:22 +00:00
parent f22bac81aa
commit a6e74de42f

View File

@ -21,11 +21,11 @@
.if !target(__<bsd.compiler.mk>__)
__<bsd.compiler.mk>__:
_v!= ${CC} --version
_v!= ${CC} --version 2>/dev/null || echo 0.0.0
.if !defined(COMPILER_TYPE)
. if ${CC:T:Mgcc*}
. if ${CC:T:M*gcc*}
COMPILER_TYPE:= gcc
. elif ${CC:T:Mclang}
. elif ${CC:T:M*clang*}
COMPILER_TYPE:= clang
. elif ${_v:Mgcc}
COMPILER_TYPE:= gcc