|
@@ -84,17 +84,10 @@ endif
|
|
|
# If the user is running make -s (silent mode), suppress echoing of
|
|
|
# commands
|
|
|
|
|
|
-ifneq ($(filter 4.%,$(MAKE_VERSION)),) # make-4
|
|
|
-ifneq ($(filter %s ,$(firstword x$(MAKEFLAGS))),)
|
|
|
+ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
|
|
|
quiet=silent_
|
|
|
tools_silent=s
|
|
|
endif
|
|
|
-else # make-3.8x
|
|
|
-ifneq ($(filter s% -s%,$(MAKEFLAGS)),)
|
|
|
- quiet=silent_
|
|
|
- tools_silent=-s
|
|
|
-endif
|
|
|
-endif
|
|
|
|
|
|
export quiet Q KBUILD_VERBOSE
|
|
|
|
|
@@ -113,8 +106,8 @@ export quiet Q KBUILD_VERBOSE
|
|
|
# The O= assignment takes precedence over the KBUILD_OUTPUT environment
|
|
|
# variable.
|
|
|
|
|
|
-# KBUILD_SRC is set on invocation of make in OBJ directory
|
|
|
-# KBUILD_SRC is not intended to be used by the regular user (for now)
|
|
|
+# KBUILD_SRC is not intended to be used by the regular user (for now),
|
|
|
+# it is set on invocation of make with KBUILD_OUTPUT or O= specified.
|
|
|
ifeq ($(KBUILD_SRC),)
|
|
|
|
|
|
# OK, Make called in directory where kernel src resides
|
|
@@ -135,7 +128,6 @@ ifneq ($(words $(subst :, ,$(CURDIR))), 1)
|
|
|
endif
|
|
|
|
|
|
ifneq ($(KBUILD_OUTPUT),)
|
|
|
-# Invoke a second make in the output directory, passing relevant variables
|
|
|
# check that the output directory actually exists
|
|
|
saved-output := $(KBUILD_OUTPUT)
|
|
|
KBUILD_OUTPUT := $(shell mkdir -p $(KBUILD_OUTPUT) && cd $(KBUILD_OUTPUT) \
|
|
@@ -148,6 +140,7 @@ PHONY += $(MAKECMDGOALS) sub-make
|
|
|
$(filter-out _all sub-make $(CURDIR)/Makefile, $(MAKECMDGOALS)) _all: sub-make
|
|
|
@:
|
|
|
|
|
|
+# Invoke a second make in the output directory, passing relevant variables
|
|
|
sub-make:
|
|
|
$(Q)$(MAKE) -C $(KBUILD_OUTPUT) KBUILD_SRC=$(CURDIR) \
|
|
|
-f $(CURDIR)/Makefile $(filter-out _all sub-make,$(MAKECMDGOALS))
|
|
@@ -303,7 +296,7 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
|
|
|
|
|
|
HOSTCC = gcc
|
|
|
HOSTCXX = g++
|
|
|
-HOSTCFLAGS = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89
|
|
|
+HOSTCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89
|
|
|
HOSTCXXFLAGS = -O2
|
|
|
|
|
|
ifeq ($(shell $(HOSTCC) -v 2>&1 | grep -c "clang version"), 1)
|
|
@@ -388,12 +381,10 @@ USERINCLUDE := \
|
|
|
# Needed to be compatible with the O= option
|
|
|
LINUXINCLUDE := \
|
|
|
-I$(srctree)/arch/$(hdr-arch)/include \
|
|
|
- -I$(objtree)/arch/$(hdr-arch)/include/generated/uapi \
|
|
|
-I$(objtree)/arch/$(hdr-arch)/include/generated \
|
|
|
$(if $(KBUILD_SRC), -I$(srctree)/include) \
|
|
|
- -I$(objtree)/include
|
|
|
-
|
|
|
-LINUXINCLUDE += $(filter-out $(LINUXINCLUDE),$(USERINCLUDE))
|
|
|
+ -I$(objtree)/include \
|
|
|
+ $(USERINCLUDE)
|
|
|
|
|
|
KBUILD_CPPFLAGS := -D__KERNEL__
|
|
|
|
|
@@ -707,6 +698,7 @@ KBUILD_CPPFLAGS += $(call cc-option,-Qunused-arguments,)
|
|
|
KBUILD_CFLAGS += $(call cc-disable-warning, unused-variable)
|
|
|
KBUILD_CFLAGS += $(call cc-disable-warning, format-invalid-specifier)
|
|
|
KBUILD_CFLAGS += $(call cc-disable-warning, gnu)
|
|
|
+KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)
|
|
|
# Quiet clang warning: comparison of unsigned expression < 0 is always false
|
|
|
KBUILD_CFLAGS += $(call cc-disable-warning, tautological-compare)
|
|
|
# CLANG uses a _MergedGlobals as optimization, but this breaks modpost, as the
|