kbuild: make -r/-R effective in top Makefile for old Make versions
Backported from kernel
commit 3812b8c5c5d5 ("kbuild: make -r/-R effective in top Makefile for old Make versions")
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
This commit is contained in:
committed by
Tom Rini
parent
0719c79e09
commit
af1a993570
48
Makefile
48
Makefile
@@ -12,10 +12,6 @@ NAME =
|
||||
# Comments in this file are targeted only to the developer, do not
|
||||
# expect to learn how to build the kernel reading this file.
|
||||
|
||||
# Do not use make's built-in rules and variables
|
||||
# (this increases performance and avoids hard-to-debug behaviour)
|
||||
MAKEFLAGS += -rR
|
||||
|
||||
# Determine target architecture for the sandbox
|
||||
include include/host_arch.h
|
||||
ifeq ("", "$(CROSS_COMPILE)")
|
||||
@@ -39,15 +35,6 @@ else ifeq ("riscv64", $(MK_ARCH))
|
||||
endif
|
||||
undefine MK_ARCH
|
||||
|
||||
# Avoid funny character set dependencies
|
||||
unexport LC_ALL
|
||||
LC_COLLATE=C
|
||||
LC_NUMERIC=C
|
||||
export LC_COLLATE LC_NUMERIC
|
||||
|
||||
# Avoid interference with shell env settings
|
||||
unexport GREP_OPTIONS
|
||||
|
||||
# We are using a recursive build, so we need to do a little thinking
|
||||
# to get the ordering right.
|
||||
#
|
||||
@@ -64,6 +51,21 @@ unexport GREP_OPTIONS
|
||||
# descending is started. They are now explicitly listed as the
|
||||
# prepare rule.
|
||||
|
||||
ifneq ($(sub-make-done),1)
|
||||
|
||||
# Do not use make's built-in rules and variables
|
||||
# (this increases performance and avoids hard-to-debug behaviour)
|
||||
MAKEFLAGS += -rR
|
||||
|
||||
# Avoid funny character set dependencies
|
||||
unexport LC_ALL
|
||||
LC_COLLATE=C
|
||||
LC_NUMERIC=C
|
||||
export LC_COLLATE LC_NUMERIC
|
||||
|
||||
# Avoid interference with shell env settings
|
||||
unexport GREP_OPTIONS
|
||||
|
||||
# Beautify output
|
||||
# ---------------------------------------------------------------------------
|
||||
#
|
||||
@@ -137,7 +139,6 @@ export quiet Q KBUILD_VERBOSE
|
||||
|
||||
# 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)
|
||||
ifeq ($(KBUILD_SRC),)
|
||||
|
||||
# OK, Make called in directory where kernel src resides
|
||||
# Do we want to locate output files in a separate directory?
|
||||
@@ -168,22 +169,25 @@ $(if $(KBUILD_OUTPUT),, \
|
||||
# 'sub-make' below.
|
||||
MAKEFLAGS += --include-dir=$(CURDIR)
|
||||
|
||||
else
|
||||
|
||||
# Do not print "Entering directory ..." at all for in-tree build.
|
||||
MAKEFLAGS += --no-print-directory
|
||||
|
||||
endif # ifneq ($(KBUILD_OUTPUT),)
|
||||
|
||||
PHONY += $(MAKECMDGOALS) sub-make
|
||||
|
||||
$(filter-out _all sub-make $(CURDIR)/Makefile, $(MAKECMDGOALS)) _all: sub-make
|
||||
@:
|
||||
|
||||
sub-make: FORCE
|
||||
$(Q)$(MAKE) -C $(KBUILD_OUTPUT) KBUILD_SRC=$(CURDIR) \
|
||||
$(Q)$(MAKE) sub-make-done=1 \
|
||||
$(if $(KBUILD_OUTPUT),-C $(KBUILD_OUTPUT) KBUILD_SRC=$(CURDIR)) \
|
||||
-f $(CURDIR)/Makefile $(filter-out _all sub-make,$(MAKECMDGOALS))
|
||||
|
||||
# Leave processing to above invocation of make
|
||||
skip-makefile := 1
|
||||
endif # ifneq ($(KBUILD_OUTPUT),)
|
||||
endif # ifeq ($(KBUILD_SRC),)
|
||||
|
||||
else # sub-make-done
|
||||
# We process the rest of the Makefile if this is the final invocation of make
|
||||
ifeq ($(skip-makefile),)
|
||||
|
||||
# Do not print "Entering directory ...",
|
||||
# but we want to display it when entering to the output directory
|
||||
@@ -2546,7 +2550,7 @@ $(cmd_files): ; # Do not try to update included dependency files
|
||||
|
||||
endif #ifeq ($(config-targets),1)
|
||||
endif #ifeq ($(mixed-targets),1)
|
||||
endif # skip-makefile
|
||||
endif # sub-make-done
|
||||
|
||||
PHONY += FORCE
|
||||
FORCE:
|
||||
|
||||
Reference in New Issue
Block a user