summaryrefslogtreecommitdiffstats
path: root/sys/conf
diff options
context:
space:
mode:
authorrpaulo <rpaulo@FreeBSD.org>2010-08-17 20:39:28 +0000
committerrpaulo <rpaulo@FreeBSD.org>2010-08-17 20:39:28 +0000
commitf63ab9228e0818135be1431b017306e2062147ae (patch)
treee9956831a046982571c4a2200db030fbab894a73 /sys/conf
parentb449f3828322f9f90a73e893ab857f0773d9832c (diff)
downloadFreeBSD-src-f63ab9228e0818135be1431b017306e2062147ae.zip
FreeBSD-src-f63ab9228e0818135be1431b017306e2062147ae.tar.gz
For every instance of '.if ${CC} == "foo"' or '.if ${CC} != "foo"' in
Makefiles or *.mk files, use ${CC:T:Mfoo} instead, so only the basename of the compiler command (excluding any arguments) is considered. This allows you to use, for example, CC="/nondefault/path/clang -xxx", and still have the various tests in bsd.*.mk identify your compiler as clang correctly. ICC if cases were also changed. Submitted by: Dimitry Andric <dimitry at andric.com>
Diffstat (limited to 'sys/conf')
-rw-r--r--sys/conf/kern.mk12
-rw-r--r--sys/conf/kern.pre.mk10
-rw-r--r--sys/conf/kmod.mk8
3 files changed, 15 insertions, 15 deletions
diff --git a/sys/conf/kern.mk b/sys/conf/kern.mk
index 5676057..32b7168 100644
--- a/sys/conf/kern.mk
+++ b/sys/conf/kern.mk
@@ -6,7 +6,7 @@
# Note that the newly added -Wcast-qual is responsible for generating
# most of the remaining warnings. Warnings introduced with -Wall will
# also pop up, but are easier to fix.
-.if ${CC} == "icc"
+.if ${CC:T:Micc} == "icc"
#CWARNFLAGS= -w2 # use this if you are terribly bored
CWARNFLAGS=
.else
@@ -29,8 +29,8 @@ CWARNFLAGS?= -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes \
# operations inside the kernel itself. These operations are exclusively
# reserved for user applications.
#
-.if ${MACHINE_ARCH} == "i386" && ${CC} != "icc"
-.if ${CC} != "clang"
+.if ${MACHINE_ARCH} == "i386" && ${CC:T:Micc} != "icc"
+.if ${CC:T:Mclang} != "clang"
CFLAGS+= -mno-align-long-strings -mpreferred-stack-boundary=2
.endif
CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3
@@ -93,20 +93,20 @@ INLINE_LIMIT?= 8000
# GCC 3.0 and above like to do certain optimizations based on the
# assumption that the program is linked against libc. Stop this.
#
-.if ${CC} == "icc"
+.if ${CC:T:Micc} == "icc"
CFLAGS+= -nolib_inline
.else
CFLAGS+= -ffreestanding
.endif
-.if ${CC} == "icc"
+.if ${CC:T:Micc} == "icc"
CFLAGS+= -restrict
.endif
#
# GCC SSP support.
#
-.if ${MK_SSP} != "no" && ${CC} != "icc" && ${MACHINE_ARCH} != "ia64" && \
+.if ${MK_SSP} != "no" && ${CC:T:Micc} != "icc" && ${MACHINE_ARCH} != "ia64" && \
${MACHINE_ARCH} != "arm" && ${MACHINE_ARCH} != "mips"
CFLAGS+= -fstack-protector
.endif
diff --git a/sys/conf/kern.pre.mk b/sys/conf/kern.pre.mk
index 7642fca..b61113e 100644
--- a/sys/conf/kern.pre.mk
+++ b/sys/conf/kern.pre.mk
@@ -23,7 +23,7 @@ NM?= nm
OBJCOPY?= objcopy
SIZE?= size
-.if ${CC} == "icc"
+.if ${CC:T:Micc} == "icc"
COPTFLAGS?= -O
.else
. if defined(DEBUG)
@@ -48,7 +48,7 @@ COPTFLAGS+= ${_ICC_CPUCFLAGS:C/(-x[^M^K^W]+)[MKW]+|-x[MKW]+/\1/}
COPTFLAGS+= ${_CPUCFLAGS}
. endif
.endif
-.if ${CC} == "icc"
+.if ${CC:T:Micc} == "icc"
C_DIALECT=
NOSTDINC= -X
.else
@@ -92,8 +92,8 @@ INCLUDES+= -I$S/dev/cxgb
CFLAGS= ${COPTFLAGS} ${C_DIALECT} ${DEBUG} ${CWARNFLAGS}
CFLAGS+= ${INCLUDES} -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h
-.if ${CC} != "icc"
-.if ${CC} != "clang"
+.if ${CC:T:Micc} != "icc"
+.if ${CC:T:Mclang} != "clang"
CFLAGS+= -fno-common -finline-limit=${INLINE_LIMIT}
.if ${MACHINE_CPUARCH} != "mips"
CFLAGS+= --param inline-unit-growth=100
@@ -111,7 +111,7 @@ WERROR?= -Werror
ASM_CFLAGS= -x assembler-with-cpp -DLOCORE ${CFLAGS}
.if defined(PROFLEVEL) && ${PROFLEVEL} >= 1
-.if ${CC} == "icc" || ${CC} == "clang"
+.if ${CC:T:Micc} == "icc" || ${CC:T:Mclang} == "clang"
.error "Profiling doesn't work with icc or clang yet"
.endif
CFLAGS+= -DGPROF -falign-functions=16
diff --git a/sys/conf/kmod.mk b/sys/conf/kmod.mk
index 7642520..63f4748 100644
--- a/sys/conf/kmod.mk
+++ b/sys/conf/kmod.mk
@@ -81,7 +81,7 @@ OBJCOPY?= objcopy
.SUFFIXES: .out .o .c .cc .cxx .C .y .l .s .S
-.if ${CC} == "icc"
+.if ${CC:T:Micc} == "icc"
CFLAGS:= ${CFLAGS:C/(-x[^M^K^W]+)[MKW]+|-x[MKW]+/\1/}
.else
. if !empty(CFLAGS:M-O[23s]) && empty(CFLAGS:M-fno-strict-aliasing)
@@ -94,7 +94,7 @@ CFLAGS+= -D_KERNEL
CFLAGS+= -DKLD_MODULE
# Don't use any standard or source-relative include directories.
-.if ${CC} == "icc"
+.if ${CC:T:Micc} == "icc"
NOSTDINC= -X
.else
CSTD= c99
@@ -114,7 +114,7 @@ CFLAGS+= -I. -I@
# for example.
CFLAGS+= -I@/contrib/altq
-.if ${CC} != "icc" && ${CC} != "clang"
+.if ${CC:T:Micc} != "icc" && ${CC:T:Mclang} != "clang"
CFLAGS+= -finline-limit=${INLINE_LIMIT}
CFLAGS+= --param inline-unit-growth=100
CFLAGS+= --param large-function-growth=1000
@@ -122,7 +122,7 @@ CFLAGS+= --param large-function-growth=1000
# Disallow common variables, and if we end up with commons from
# somewhere unexpected, allocate storage for them in the module itself.
-.if ${CC} != "icc"
+.if ${CC:T:Micc} != "icc"
CFLAGS+= -fno-common
.endif
LDFLAGS+= -d -warn-common
OpenPOWER on IntegriCloud