|
@@ -11,6 +11,10 @@ NAME = Fearless Coyote
|
|
|
# Comments in this file are targeted only to the developer, do not
|
|
|
# expect to learn how to build the kernel reading this file.
|
|
|
|
|
|
+# That's our default target when none is given on the command line
|
|
|
+PHONY := _all
|
|
|
+_all:
|
|
|
+
|
|
|
# o Do not use make's built-in rules and variables
|
|
|
# (this increases performance and avoids hard-to-debug behaviour);
|
|
|
# o Look for make include files relative to root of kernel src
|
|
@@ -117,10 +121,6 @@ ifeq ("$(origin O)", "command line")
|
|
|
KBUILD_OUTPUT := $(O)
|
|
|
endif
|
|
|
|
|
|
-# That's our default target when none is given on the command line
|
|
|
-PHONY := _all
|
|
|
-_all:
|
|
|
-
|
|
|
# Cancel implicit rules on top Makefile
|
|
|
$(CURDIR)/Makefile Makefile: ;
|
|
|
|
|
@@ -187,15 +187,6 @@ ifeq ("$(origin M)", "command line")
|
|
|
KBUILD_EXTMOD := $(M)
|
|
|
endif
|
|
|
|
|
|
-# If building an external module we do not care about the all: rule
|
|
|
-# but instead _all depend on modules
|
|
|
-PHONY += all
|
|
|
-ifeq ($(KBUILD_EXTMOD),)
|
|
|
-_all: all
|
|
|
-else
|
|
|
-_all: modules
|
|
|
-endif
|
|
|
-
|
|
|
ifeq ($(KBUILD_SRC),)
|
|
|
# building in the source tree
|
|
|
srctree := .
|
|
@@ -207,6 +198,9 @@ else
|
|
|
srctree := $(KBUILD_SRC)
|
|
|
endif
|
|
|
endif
|
|
|
+
|
|
|
+export KBUILD_CHECKSRC KBUILD_EXTMOD KBUILD_SRC
|
|
|
+
|
|
|
objtree := .
|
|
|
src := $(srctree)
|
|
|
obj := $(objtree)
|
|
@@ -215,6 +209,74 @@ VPATH := $(srctree)$(if $(KBUILD_EXTMOD),:$(KBUILD_EXTMOD))
|
|
|
|
|
|
export srctree objtree VPATH
|
|
|
|
|
|
+# To make sure we do not include .config for any of the *config targets
|
|
|
+# catch them early, and hand them over to scripts/kconfig/Makefile
|
|
|
+# It is allowed to specify more targets when calling make, including
|
|
|
+# mixing *config targets and build targets.
|
|
|
+# For example 'make oldconfig all'.
|
|
|
+# Detect when mixed targets is specified, and make a second invocation
|
|
|
+# of make so .config is not included in this case either (for *config).
|
|
|
+
|
|
|
+version_h := include/generated/uapi/linux/version.h
|
|
|
+old_version_h := include/linux/version.h
|
|
|
+
|
|
|
+no-dot-config-targets := clean mrproper distclean \
|
|
|
+ cscope gtags TAGS tags help% %docs check% coccicheck \
|
|
|
+ $(version_h) headers_% archheaders archscripts \
|
|
|
+ kernelversion %src-pkg
|
|
|
+
|
|
|
+config-targets := 0
|
|
|
+mixed-targets := 0
|
|
|
+dot-config := 1
|
|
|
+
|
|
|
+ifneq ($(filter $(no-dot-config-targets), $(MAKECMDGOALS)),)
|
|
|
+ ifeq ($(filter-out $(no-dot-config-targets), $(MAKECMDGOALS)),)
|
|
|
+ dot-config := 0
|
|
|
+ endif
|
|
|
+endif
|
|
|
+
|
|
|
+ifeq ($(KBUILD_EXTMOD),)
|
|
|
+ ifneq ($(filter config %config,$(MAKECMDGOALS)),)
|
|
|
+ config-targets := 1
|
|
|
+ ifneq ($(words $(MAKECMDGOALS)),1)
|
|
|
+ mixed-targets := 1
|
|
|
+ endif
|
|
|
+ endif
|
|
|
+endif
|
|
|
+# install and modules_install need also be processed one by one
|
|
|
+ifneq ($(filter install,$(MAKECMDGOALS)),)
|
|
|
+ ifneq ($(filter modules_install,$(MAKECMDGOALS)),)
|
|
|
+ mixed-targets := 1
|
|
|
+ endif
|
|
|
+endif
|
|
|
+
|
|
|
+ifeq ($(mixed-targets),1)
|
|
|
+# ===========================================================================
|
|
|
+# We're called with mixed targets (*config and build targets).
|
|
|
+# Handle them one by one.
|
|
|
+
|
|
|
+PHONY += $(MAKECMDGOALS) __build_one_by_one
|
|
|
+
|
|
|
+$(filter-out __build_one_by_one, $(MAKECMDGOALS)): __build_one_by_one
|
|
|
+ @:
|
|
|
+
|
|
|
+__build_one_by_one:
|
|
|
+ $(Q)set -e; \
|
|
|
+ for i in $(MAKECMDGOALS); do \
|
|
|
+ $(MAKE) -f $(srctree)/Makefile $$i; \
|
|
|
+ done
|
|
|
+
|
|
|
+else
|
|
|
+
|
|
|
+# We need some generic definitions (do not try to remake the file).
|
|
|
+scripts/Kbuild.include: ;
|
|
|
+include scripts/Kbuild.include
|
|
|
+
|
|
|
+# Read KERNELRELEASE from include/config/kernel.release (if it exists)
|
|
|
+KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
|
|
|
+KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
|
|
|
+export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION
|
|
|
+
|
|
|
# SUBARCH tells the usermode build what the underlying arch is. That is set
|
|
|
# first, and if a usermode build is happening, the "ARCH=um" on the command
|
|
|
# line overrides the setting of ARCH below. If a native build is happening,
|
|
@@ -285,9 +347,6 @@ ifeq ($(ARCH),tilegx)
|
|
|
SRCARCH := tile
|
|
|
endif
|
|
|
|
|
|
-# Where to locate arch specific headers
|
|
|
-hdr-arch := $(SRCARCH)
|
|
|
-
|
|
|
KCONFIG_CONFIG ?= .config
|
|
|
export KCONFIG_CONFIG
|
|
|
|
|
@@ -308,45 +367,6 @@ HOSTCXXFLAGS := -O2 $(HOST_LFS_CFLAGS)
|
|
|
HOSTLDFLAGS := $(HOST_LFS_LDFLAGS)
|
|
|
HOST_LOADLIBES := $(HOST_LFS_LIBS)
|
|
|
|
|
|
-ifeq ($(shell $(HOSTCC) -v 2>&1 | grep -c "clang version"), 1)
|
|
|
-HOSTCFLAGS += -Wno-unused-value -Wno-unused-parameter \
|
|
|
- -Wno-missing-field-initializers -fno-delete-null-pointer-checks
|
|
|
-endif
|
|
|
-
|
|
|
-# Decide whether to build built-in, modular, or both.
|
|
|
-# Normally, just do built-in.
|
|
|
-
|
|
|
-KBUILD_MODULES :=
|
|
|
-KBUILD_BUILTIN := 1
|
|
|
-
|
|
|
-# If we have only "make modules", don't compile built-in objects.
|
|
|
-# When we're building modules with modversions, we need to consider
|
|
|
-# the built-in objects during the descend as well, in order to
|
|
|
-# make sure the checksums are up to date before we record them.
|
|
|
-
|
|
|
-ifeq ($(MAKECMDGOALS),modules)
|
|
|
- KBUILD_BUILTIN := $(if $(CONFIG_MODVERSIONS),1)
|
|
|
-endif
|
|
|
-
|
|
|
-# If we have "make <whatever> modules", compile modules
|
|
|
-# in addition to whatever we do anyway.
|
|
|
-# Just "make" or "make all" shall build modules as well
|
|
|
-
|
|
|
-ifneq ($(filter all _all modules,$(MAKECMDGOALS)),)
|
|
|
- KBUILD_MODULES := 1
|
|
|
-endif
|
|
|
-
|
|
|
-ifeq ($(MAKECMDGOALS),)
|
|
|
- KBUILD_MODULES := 1
|
|
|
-endif
|
|
|
-
|
|
|
-export KBUILD_MODULES KBUILD_BUILTIN
|
|
|
-export KBUILD_CHECKSRC KBUILD_SRC KBUILD_EXTMOD
|
|
|
-
|
|
|
-# We need some generic definitions (do not try to remake the file).
|
|
|
-scripts/Kbuild.include: ;
|
|
|
-include scripts/Kbuild.include
|
|
|
-
|
|
|
# Make variables (CC, etc...)
|
|
|
AS = $(CROSS_COMPILE)as
|
|
|
LD = $(CROSS_COMPILE)ld
|
|
@@ -374,12 +394,11 @@ LDFLAGS_MODULE =
|
|
|
CFLAGS_KERNEL =
|
|
|
AFLAGS_KERNEL =
|
|
|
LDFLAGS_vmlinux =
|
|
|
-CFLAGS_GCOV := -fprofile-arcs -ftest-coverage -fno-tree-loop-im $(call cc-disable-warning,maybe-uninitialized,)
|
|
|
|
|
|
# Use USERINCLUDE when you must reference the UAPI directories only.
|
|
|
USERINCLUDE := \
|
|
|
- -I$(srctree)/arch/$(hdr-arch)/include/uapi \
|
|
|
- -I$(objtree)/arch/$(hdr-arch)/include/generated/uapi \
|
|
|
+ -I$(srctree)/arch/$(SRCARCH)/include/uapi \
|
|
|
+ -I$(objtree)/arch/$(SRCARCH)/include/generated/uapi \
|
|
|
-I$(srctree)/include/uapi \
|
|
|
-I$(objtree)/include/generated/uapi \
|
|
|
-include $(srctree)/include/linux/kconfig.h
|
|
@@ -387,40 +406,33 @@ USERINCLUDE := \
|
|
|
# Use LINUXINCLUDE when you must reference the include/ directory.
|
|
|
# Needed to be compatible with the O= option
|
|
|
LINUXINCLUDE := \
|
|
|
- -I$(srctree)/arch/$(hdr-arch)/include \
|
|
|
- -I$(objtree)/arch/$(hdr-arch)/include/generated \
|
|
|
+ -I$(srctree)/arch/$(SRCARCH)/include \
|
|
|
+ -I$(objtree)/arch/$(SRCARCH)/include/generated \
|
|
|
$(if $(KBUILD_SRC), -I$(srctree)/include) \
|
|
|
-I$(objtree)/include \
|
|
|
$(USERINCLUDE)
|
|
|
|
|
|
-KBUILD_CPPFLAGS := -D__KERNEL__
|
|
|
-
|
|
|
+KBUILD_AFLAGS := -D__ASSEMBLY__
|
|
|
KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
|
|
|
-fno-strict-aliasing -fno-common -fshort-wchar \
|
|
|
-Werror-implicit-function-declaration \
|
|
|
-Wno-format-security \
|
|
|
- -std=gnu89 $(call cc-option,-fno-PIE)
|
|
|
-
|
|
|
-
|
|
|
+ -std=gnu89
|
|
|
+KBUILD_CPPFLAGS := -D__KERNEL__
|
|
|
KBUILD_AFLAGS_KERNEL :=
|
|
|
KBUILD_CFLAGS_KERNEL :=
|
|
|
-KBUILD_AFLAGS := -D__ASSEMBLY__ $(call cc-option,-fno-PIE)
|
|
|
KBUILD_AFLAGS_MODULE := -DMODULE
|
|
|
KBUILD_CFLAGS_MODULE := -DMODULE
|
|
|
KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds
|
|
|
+GCC_PLUGINS_CFLAGS :=
|
|
|
|
|
|
-# Read KERNELRELEASE from include/config/kernel.release (if it exists)
|
|
|
-KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
|
|
|
-KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
|
|
|
-
|
|
|
-export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION
|
|
|
export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC
|
|
|
export CPP AR NM STRIP OBJCOPY OBJDUMP HOSTLDFLAGS HOST_LOADLIBES
|
|
|
export MAKE AWK GENKSYMS INSTALLKERNEL PERL PYTHON UTS_MACHINE
|
|
|
export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
|
|
|
|
|
|
export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS
|
|
|
-export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE CFLAGS_GCOV CFLAGS_KCOV CFLAGS_KASAN CFLAGS_UBSAN
|
|
|
+export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE CFLAGS_KASAN CFLAGS_UBSAN
|
|
|
export KBUILD_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE
|
|
|
export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_LDFLAGS_MODULE
|
|
|
export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL
|
|
@@ -462,73 +474,6 @@ ifneq ($(KBUILD_SRC),)
|
|
|
$(srctree) $(objtree) $(VERSION) $(PATCHLEVEL)
|
|
|
endif
|
|
|
|
|
|
-# Support for using generic headers in asm-generic
|
|
|
-PHONY += asm-generic uapi-asm-generic
|
|
|
-asm-generic: uapi-asm-generic
|
|
|
- $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.asm-generic \
|
|
|
- src=asm obj=arch/$(SRCARCH)/include/generated/asm
|
|
|
-uapi-asm-generic:
|
|
|
- $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.asm-generic \
|
|
|
- src=uapi/asm obj=arch/$(SRCARCH)/include/generated/uapi/asm
|
|
|
-
|
|
|
-# To make sure we do not include .config for any of the *config targets
|
|
|
-# catch them early, and hand them over to scripts/kconfig/Makefile
|
|
|
-# It is allowed to specify more targets when calling make, including
|
|
|
-# mixing *config targets and build targets.
|
|
|
-# For example 'make oldconfig all'.
|
|
|
-# Detect when mixed targets is specified, and make a second invocation
|
|
|
-# of make so .config is not included in this case either (for *config).
|
|
|
-
|
|
|
-version_h := include/generated/uapi/linux/version.h
|
|
|
-old_version_h := include/linux/version.h
|
|
|
-
|
|
|
-no-dot-config-targets := clean mrproper distclean \
|
|
|
- cscope gtags TAGS tags help% %docs check% coccicheck \
|
|
|
- $(version_h) headers_% archheaders archscripts \
|
|
|
- kernelversion %src-pkg
|
|
|
-
|
|
|
-config-targets := 0
|
|
|
-mixed-targets := 0
|
|
|
-dot-config := 1
|
|
|
-
|
|
|
-ifneq ($(filter $(no-dot-config-targets), $(MAKECMDGOALS)),)
|
|
|
- ifeq ($(filter-out $(no-dot-config-targets), $(MAKECMDGOALS)),)
|
|
|
- dot-config := 0
|
|
|
- endif
|
|
|
-endif
|
|
|
-
|
|
|
-ifeq ($(KBUILD_EXTMOD),)
|
|
|
- ifneq ($(filter config %config,$(MAKECMDGOALS)),)
|
|
|
- config-targets := 1
|
|
|
- ifneq ($(words $(MAKECMDGOALS)),1)
|
|
|
- mixed-targets := 1
|
|
|
- endif
|
|
|
- endif
|
|
|
-endif
|
|
|
-# install and modules_install need also be processed one by one
|
|
|
-ifneq ($(filter install,$(MAKECMDGOALS)),)
|
|
|
- ifneq ($(filter modules_install,$(MAKECMDGOALS)),)
|
|
|
- mixed-targets := 1
|
|
|
- endif
|
|
|
-endif
|
|
|
-
|
|
|
-ifeq ($(mixed-targets),1)
|
|
|
-# ===========================================================================
|
|
|
-# We're called with mixed targets (*config and build targets).
|
|
|
-# Handle them one by one.
|
|
|
-
|
|
|
-PHONY += $(MAKECMDGOALS) __build_one_by_one
|
|
|
-
|
|
|
-$(filter-out __build_one_by_one, $(MAKECMDGOALS)): __build_one_by_one
|
|
|
- @:
|
|
|
-
|
|
|
-__build_one_by_one:
|
|
|
- $(Q)set -e; \
|
|
|
- for i in $(MAKECMDGOALS); do \
|
|
|
- $(MAKE) -f $(srctree)/Makefile $$i; \
|
|
|
- done
|
|
|
-
|
|
|
-else
|
|
|
ifeq ($(config-targets),1)
|
|
|
# ===========================================================================
|
|
|
# *config targets only - make sure prerequisites are updated, and descend
|
|
@@ -551,6 +496,44 @@ else
|
|
|
# Build targets only - this includes vmlinux, arch specific targets, clean
|
|
|
# targets and others. In general all targets except *config targets.
|
|
|
|
|
|
+# If building an external module we do not care about the all: rule
|
|
|
+# but instead _all depend on modules
|
|
|
+PHONY += all
|
|
|
+ifeq ($(KBUILD_EXTMOD),)
|
|
|
+_all: all
|
|
|
+else
|
|
|
+_all: modules
|
|
|
+endif
|
|
|
+
|
|
|
+# Decide whether to build built-in, modular, or both.
|
|
|
+# Normally, just do built-in.
|
|
|
+
|
|
|
+KBUILD_MODULES :=
|
|
|
+KBUILD_BUILTIN := 1
|
|
|
+
|
|
|
+# If we have only "make modules", don't compile built-in objects.
|
|
|
+# When we're building modules with modversions, we need to consider
|
|
|
+# the built-in objects during the descend as well, in order to
|
|
|
+# make sure the checksums are up to date before we record them.
|
|
|
+
|
|
|
+ifeq ($(MAKECMDGOALS),modules)
|
|
|
+ KBUILD_BUILTIN := $(if $(CONFIG_MODVERSIONS),1)
|
|
|
+endif
|
|
|
+
|
|
|
+# If we have "make <whatever> modules", compile modules
|
|
|
+# in addition to whatever we do anyway.
|
|
|
+# Just "make" or "make all" shall build modules as well
|
|
|
+
|
|
|
+ifneq ($(filter all _all modules,$(MAKECMDGOALS)),)
|
|
|
+ KBUILD_MODULES := 1
|
|
|
+endif
|
|
|
+
|
|
|
+ifeq ($(MAKECMDGOALS),)
|
|
|
+ KBUILD_MODULES := 1
|
|
|
+endif
|
|
|
+
|
|
|
+export KBUILD_MODULES KBUILD_BUILTIN
|
|
|
+
|
|
|
ifeq ($(KBUILD_EXTMOD),)
|
|
|
# Additional helpers built in scripts/
|
|
|
# Carefully list dependencies so we do not try to build scripts twice
|
|
@@ -621,6 +604,11 @@ endif
|
|
|
# Defaults to vmlinux, but the arch makefile usually adds further targets
|
|
|
all: vmlinux
|
|
|
|
|
|
+KBUILD_CFLAGS += $(call cc-option,-fno-PIE)
|
|
|
+KBUILD_AFLAGS += $(call cc-option,-fno-PIE)
|
|
|
+CFLAGS_GCOV := -fprofile-arcs -ftest-coverage -fno-tree-loop-im $(call cc-disable-warning,maybe-uninitialized,)
|
|
|
+export CFLAGS_GCOV CFLAGS_KCOV
|
|
|
+
|
|
|
# The arch Makefile can set ARCH_{CPP,A,C}FLAGS to override the default
|
|
|
# values of the respective KBUILD_* variables
|
|
|
ARCH_CPPFLAGS :=
|
|
@@ -652,7 +640,7 @@ KBUILD_CFLAGS += $(call cc-ifversion, -lt, 0409, \
|
|
|
KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0)
|
|
|
|
|
|
# check for 'asm goto'
|
|
|
-ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC) $(KBUILD_CFLAGS)), y)
|
|
|
+ifeq ($(call shell-cached,$(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC) $(KBUILD_CFLAGS)), y)
|
|
|
KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO
|
|
|
KBUILD_AFLAGS += -DCC_HAVE_ASM_GOTO
|
|
|
endif
|
|
@@ -789,7 +777,7 @@ KBUILD_CFLAGS += $(call cc-option,-fdata-sections,)
|
|
|
endif
|
|
|
|
|
|
# arch Makefile may override CC so keep this after arch Makefile is included
|
|
|
-NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
|
|
|
+NOSTDINC_FLAGS += -nostdinc -isystem $(call shell-cached,$(CC) -print-file-name=include)
|
|
|
CHECKFLAGS += $(NOSTDINC_FLAGS)
|
|
|
|
|
|
# warn about C99 declaration after statement
|
|
@@ -1071,6 +1059,15 @@ prepare0: archprepare gcc-plugins
|
|
|
# All the preparing..
|
|
|
prepare: prepare0 prepare-objtool
|
|
|
|
|
|
+# Support for using generic headers in asm-generic
|
|
|
+PHONY += asm-generic uapi-asm-generic
|
|
|
+asm-generic: uapi-asm-generic
|
|
|
+ $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.asm-generic \
|
|
|
+ src=asm obj=arch/$(SRCARCH)/include/generated/asm
|
|
|
+uapi-asm-generic:
|
|
|
+ $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.asm-generic \
|
|
|
+ src=uapi/asm obj=arch/$(SRCARCH)/include/generated/uapi/asm
|
|
|
+
|
|
|
PHONY += prepare-objtool
|
|
|
prepare-objtool: $(objtool_target)
|
|
|
|
|
@@ -1139,8 +1136,8 @@ headerdep:
|
|
|
#Default location for installed headers
|
|
|
export INSTALL_HDR_PATH = $(objtree)/usr
|
|
|
|
|
|
-# If we do an all arch process set dst to include/arch-$(hdr-arch)
|
|
|
-hdr-dst = $(if $(KBUILD_HEADERS), dst=include/arch-$(hdr-arch), dst=include)
|
|
|
+# If we do an all arch process set dst to include/arch-$(SRCARCH)
|
|
|
+hdr-dst = $(if $(KBUILD_HEADERS), dst=include/arch-$(SRCARCH), dst=include)
|
|
|
|
|
|
PHONY += archheaders
|
|
|
archheaders:
|
|
@@ -1158,10 +1155,10 @@ headers_install_all:
|
|
|
|
|
|
PHONY += headers_install
|
|
|
headers_install: __headers
|
|
|
- $(if $(wildcard $(srctree)/arch/$(hdr-arch)/include/uapi/asm/Kbuild),, \
|
|
|
+ $(if $(wildcard $(srctree)/arch/$(SRCARCH)/include/uapi/asm/Kbuild),, \
|
|
|
$(error Headers not exportable for the $(SRCARCH) architecture))
|
|
|
$(Q)$(MAKE) $(hdr-inst)=include/uapi dst=include
|
|
|
- $(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/uapi $(hdr-dst)
|
|
|
+ $(Q)$(MAKE) $(hdr-inst)=arch/$(SRCARCH)/include/uapi $(hdr-dst)
|
|
|
|
|
|
PHONY += headers_check_all
|
|
|
headers_check_all: headers_install_all
|
|
@@ -1170,7 +1167,7 @@ headers_check_all: headers_install_all
|
|
|
PHONY += headers_check
|
|
|
headers_check: headers_install
|
|
|
$(Q)$(MAKE) $(hdr-inst)=include/uapi dst=include HDRCHECK=1
|
|
|
- $(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/uapi $(hdr-dst) HDRCHECK=1
|
|
|
+ $(Q)$(MAKE) $(hdr-inst)=arch/$(SRCARCH)/include/uapi $(hdr-dst) HDRCHECK=1
|
|
|
|
|
|
# ---------------------------------------------------------------------------
|
|
|
# Kernel selftest
|
|
@@ -1283,7 +1280,7 @@ CLEAN_DIRS += $(MODVERDIR)
|
|
|
# Directories & files removed with 'make mrproper'
|
|
|
MRPROPER_DIRS += include/config usr/include include/generated \
|
|
|
arch/*/include/generated .tmp_objdiff
|
|
|
-MRPROPER_FILES += .config .config.old .version .old_version \
|
|
|
+MRPROPER_FILES += .config .config.old .version \
|
|
|
Module.symvers tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS \
|
|
|
signing_key.pem signing_key.priv signing_key.x509 \
|
|
|
x509.genkey extra_certificates signing_key.x509.keyid \
|
|
@@ -1393,7 +1390,7 @@ help:
|
|
|
@echo ' export_report - List the usages of all exported symbols'
|
|
|
@echo ' headers_check - Sanity check on exported headers'
|
|
|
@echo ' headerdep - Detect inclusion cycles in headers'
|
|
|
- @$(MAKE) -f $(srctree)/scripts/Makefile.help checker-help
|
|
|
+ @echo ' coccicheck - Check with Coccinelle'
|
|
|
@echo ''
|
|
|
@echo 'Kernel selftest:'
|
|
|
@echo ' kselftest - Build and run kernel selftest (run as root)'
|
|
@@ -1556,6 +1553,7 @@ clean: $(clean-dirs)
|
|
|
-o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \
|
|
|
-o -name '*.symtypes' -o -name 'modules.order' \
|
|
|
-o -name modules.builtin -o -name '.tmp_*.o.*' \
|
|
|
+ -o -name .cache.mk \
|
|
|
-o -name '*.c.[012]*.*' \
|
|
|
-o -name '*.ll' \
|
|
|
-o -name '*.gcno' \) -type f -print | xargs rm -f
|
|
@@ -1702,8 +1700,7 @@ cmd_crmodverdir = $(Q)mkdir -p $(MODVERDIR) \
|
|
|
|
|
|
# read all saved command lines
|
|
|
|
|
|
-targets := $(wildcard $(sort $(targets)))
|
|
|
-cmd_files := $(wildcard .*.cmd $(foreach f,$(targets),$(dir $(f)).$(notdir $(f)).cmd))
|
|
|
+cmd_files := $(wildcard .*.cmd $(foreach f,$(sort $(targets)),$(dir $(f)).$(notdir $(f)).cmd))
|
|
|
|
|
|
ifneq ($(cmd_files),)
|
|
|
$(cmd_files): ; # Do not try to update included dependency files
|