Skip to content

Commit

Permalink
kbuild: add kbuild-file macro
Browse files Browse the repository at this point in the history
While building, installing, cleaning, Kbuild visits sub-directories
and includes 'Kbuild' or 'Makefile' that exists there.

Add 'kbuild-file' macro, and reuse it from scripts/Makefie.*

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
Reviewed-by: Alexander Lobakin <alobakin@pm.me>
Tested-by: Alexander Lobakin <alobakin@pm.me>
  • Loading branch information
Masahiro Yamada committed Nov 22, 2022
1 parent 5724ac5 commit a2430b2
Show file tree
Hide file tree
Showing 6 changed files with 12 additions and 14 deletions.
5 changes: 5 additions & 0 deletions scripts/Kbuild.include
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,11 @@ escsq = $(subst $(squote),'\$(squote)',$1)
# Quote a string to pass it to C files. foo => '"foo"'
stringify = $(squote)$(quote)$1$(quote)$(squote)

###
# The path to Kbuild or Makefile. Kbuild has precedence over Makefile.
kbuild-dir = $(if $(filter /%,$(src)),$(src),$(srctree)/$(src))
kbuild-file = $(or $(wildcard $(kbuild-dir)/Kbuild),$(kbuild-dir)/Makefile)

###
# Easy method for doing a status message
kecho := :
Expand Down
6 changes: 3 additions & 3 deletions scripts/Makefile.asm-generic
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ PHONY := all
all:

src := $(subst /generated,,$(obj))
-include $(src)/Kbuild

include $(srctree)/scripts/Kbuild.include
-include $(kbuild-file)

# $(generic)/Kbuild lists mandatory-y. Exclude um since it is a special case.
ifneq ($(SRCARCH),um)
include $(srctree)/$(generic)/Kbuild
endif

include $(srctree)/scripts/Kbuild.include

redundant := $(filter $(mandatory-y) $(generated-y), $(generic-y))
redundant += $(foreach f, $(generic-y), $(if $(wildcard $(srctree)/$(src)/$(f)),$(f)))
redundant := $(sort $(redundant))
Expand Down
6 changes: 1 addition & 5 deletions scripts/Makefile.build
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,7 @@ subdir-ccflags-y :=

include $(srctree)/scripts/Kbuild.include
include $(srctree)/scripts/Makefile.compiler

# The filename Kbuild has precedence over Makefile
kbuild-dir := $(if $(filter /%,$(src)),$(src),$(srctree)/$(src))
include $(or $(wildcard $(kbuild-dir)/Kbuild),$(kbuild-dir)/Makefile)

include $(kbuild-file)
include $(srctree)/scripts/Makefile.lib

# Do not include hostprogs rules unless needed.
Expand Down
5 changes: 1 addition & 4 deletions scripts/Makefile.clean
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,7 @@ PHONY := __clean
__clean:

include $(srctree)/scripts/Kbuild.include

# The filename Kbuild has precedence over Makefile
kbuild-dir := $(if $(filter /%,$(src)),$(src),$(srctree)/$(src))
include $(or $(wildcard $(kbuild-dir)/Kbuild),$(kbuild-dir)/Makefile)
include $(kbuild-file)

# Figure out what we need to build from the various variables
# ==========================================================================
Expand Down
2 changes: 1 addition & 1 deletion scripts/Makefile.dtbinst
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ __dtbs_install:

include include/config/auto.conf
include $(srctree)/scripts/Kbuild.include
include $(src)/Makefile
include $(kbuild-file)

dtbs := $(addprefix $(dst)/, $(dtb-y) $(if $(CONFIG_OF_ALL_DTBS),$(dtb-)))
subdirs := $(addprefix $(obj)/, $(subdir-y) $(subdir-m))
Expand Down
2 changes: 1 addition & 1 deletion scripts/Makefile.modpost
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ obj := $(KBUILD_EXTMOD)
src := $(obj)

# Include the module's Makefile to find KBUILD_EXTRA_SYMBOLS
include $(or $(wildcard $(src)/Kbuild), $(src)/Makefile)
include $(kbuild-file)

module.symvers-if-present := $(wildcard Module.symvers)
output-symdump := $(KBUILD_EXTMOD)/Module.symvers
Expand Down

0 comments on commit a2430b2

Please sign in to comment.