diff options
author | rpaulo <rpaulo@FreeBSD.org> | 2010-08-17 20:39:28 +0000 |
---|---|---|
committer | rpaulo <rpaulo@FreeBSD.org> | 2010-08-17 20:39:28 +0000 |
commit | f63ab9228e0818135be1431b017306e2062147ae (patch) | |
tree | e9956831a046982571c4a2200db030fbab894a73 /sys/conf | |
parent | b449f3828322f9f90a73e893ab857f0773d9832c (diff) | |
download | FreeBSD-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.mk | 12 | ||||
-rw-r--r-- | sys/conf/kern.pre.mk | 10 | ||||
-rw-r--r-- | sys/conf/kmod.mk | 8 |
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 |