Don't treat $(CC) as a list of compiler candidates if provided by user.
authorBen Pfaff <blp@nicira.com>
Thu, 6 Mar 2008 17:45:28 +0000 (09:45 -0800)
committerBen Pfaff <blp@nicira.com>
Thu, 6 Mar 2008 17:45:28 +0000 (09:45 -0800)
Otherwise, if a multi-word $(CC) is provided by the user, such as
"gcc -m32", then we test each word as a compiler.  "-m32" then gives
you an error from the shell about "-3" not being a valid option.

datapath/linux-2.6/kbuild.inc

index c3102d61b1292cbb0ab8b0924c8eb80cb8d8c992..92f8026efe7aac567310928d88d18011c88ebe13 100644 (file)
@@ -36,7 +36,13 @@ endif
 # Environment tests
 
 ifeq (,$(CC))
-  CC := gcc cc
+  CC_CANDIDATES := gcc cc
+  test_cc = $(shell $(cc) --version > /dev/null 2>&1 && echo $(cc))
+  CC := $(foreach cc,$(CC_CANDIDATES), $(test_cc))
+  CC := $(firstword $(CC))
+  ifeq (,$(CC))
+    $(error Compiler not found)
+  endif
 endif
 
 ifeq (,$(KSRC))
@@ -95,13 +101,6 @@ ifeq (,$(wildcard $(CONFIG_FILE)))
 endif
 
 
-test_cc = $(shell $(cc) --version > /dev/null 2>&1 && echo $(cc))
-CC := $(foreach cc, $(CC), $(test_cc))
-CC := $(firstword $(CC))
-ifeq (,$(CC))
-  $(error Compiler not found)
-endif
-
 # we need to know what platform the driver is being built on
 # some additional features are only built on Intel platforms
 ifeq ($(ARCH),)