On Wed 23 Aug 2023 20:50:46 GMT, Masahiro Yamada wrote: > Move more relevant code to scripts/Makefile.modinst. > > Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx> > --- > > Makefile | 34 +++++++-------------------------- > scripts/Makefile.modinst | 41 +++++++++++++++++++++++++++++++++++++--- > 2 files changed, 45 insertions(+), 30 deletions(-) > > diff --git a/Makefile b/Makefile > index 7d9cab3d2186..82d22debf6c9 100644 > --- a/Makefile > +++ b/Makefile > @@ -1477,24 +1477,6 @@ endif > > endif # CONFIG_MODULES > > -modinst_pre := > -ifneq ($(filter modules_install,$(MAKECMDGOALS)),) > -modinst_pre := __modinst_pre > -endif > - > -modules_install: $(modinst_pre) > -PHONY += __modinst_pre > -__modinst_pre: > - @rm -rf $(MODLIB)/kernel > - @rm -f $(MODLIB)/build > - @mkdir -p $(MODLIB) > -ifdef CONFIG_MODULES > - @ln -s $(CURDIR) $(MODLIB)/build > - @sed 's:^\(.*\)\.o$$:kernel/\1.ko:' modules.order > $(MODLIB)/modules.order > -endif > - @cp -f modules.builtin $(MODLIB)/ > - @cp -f $(objtree)/modules.builtin.modinfo $(MODLIB)/ > - > ### > # Cleaning is done on three levels. > # make clean Delete most generated files > @@ -1836,12 +1818,15 @@ help: > @echo ' clean - remove generated files in module directory only' > @echo '' > > +ifndef CONFIG_MODULES > +modules modules_install: __external_modules_error > __external_modules_error: > @echo >&2 '***' > @echo >&2 '*** The present kernel disabled CONFIG_MODULES.' > @echo >&2 '*** You cannot build or install external modules.' > @echo >&2 '***' > @false > +endif > > endif # KBUILD_EXTMOD > > @@ -1850,6 +1835,9 @@ endif # KBUILD_EXTMOD > > PHONY += modules modules_install modules_prepare > > +modules_install: > + $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modinst I was a bit surprised to see 'modules_install' being allowed unconditionally for in-tree usage (thus, even if CONFIG_MODULES=n), but then realised that this is the same behaviour as we had before. Out of curiosity: _why_ do we need to install $(MODLIB)/modules.builtin{,.modinfo} also for configs w/ CONFIG_MODULES=n? > + > ifdef CONFIG_MODULES > > $(MODORDER): $(build-dir) > @@ -1866,17 +1854,9 @@ PHONY += modules_check > modules_check: $(MODORDER) > $(Q)$(CONFIG_SHELL) $(srctree)/scripts/modules-check.sh $< > > -modules_install: > - $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modinst > - > else # CONFIG_MODULES > > -# Modules not configured > -# --------------------------------------------------------------------------- > - > -PHONY += __external_modules_error > - > -modules modules_install: __external_modules_error > +modules: > @: > > KBUILD_MODULES := > diff --git a/scripts/Makefile.modinst b/scripts/Makefile.modinst > index 5d687a453d90..dc7c54669082 100644 > --- a/scripts/Makefile.modinst > +++ b/scripts/Makefile.modinst > @@ -13,9 +13,41 @@ install-y := > > PHONY += prepare > > +ifeq ($(KBUILD_EXTMOD)$(modules_sign_only),) > + > +# Install more files for in-tree modules_install > + > +prepare: > + $(Q)rm -fr $(MODLIB)/kernel $(MODLIB)/build > + $(Q)mkdir -p $(sort $(dir $(install-y))) > + > +install-$(CONFIG_MODULES) += $(addprefix $(MODLIB)/, build modules.order) > + > +$(MODLIB)/build: FORCE > + $(call cmd,symlink) > + > +quiet_cmd_symlink = SYMLINK $@ > + cmd_symlink = ln -s $(CURDIR) $@ > + > +$(MODLIB)/modules.order: modules.order FORCE > + $(call cmd,install_modorder) > + > +quiet_cmd_install_modorder = INSTALL $@ > + cmd_install_modorder = sed 's:^\(.*\)\.o$$:kernel/\1.ko:' $< > $@ > + > +# Install modules.builtin(.modinfo) even when CONFIG_MODULES is disabled. > +install-y += $(addprefix $(MODLIB)/, modules.builtin modules.builtin.modinfo) > + > +$(addprefix $(MODLIB)/, modules.builtin modules.builtin.modinfo): $(MODLIB)/%: % FORCE > + $(call cmd,install) > + > +else > + > prepare: > $(Q)mkdir -p $(sort $(dir $(install-y))) > > +endif > + > modules := $(call read-file, $(MODORDER)) > > ifeq ($(KBUILD_EXTMOD),) > @@ -34,9 +66,10 @@ suffix-$(CONFIG_MODULE_COMPRESS_XZ) := .xz > suffix-$(CONFIG_MODULE_COMPRESS_ZSTD) := .zst > > modules := $(patsubst $(extmod_prefix)%.o, $(dst)/%.ko$(suffix-y), $(modules)) > -install-y += $(modules) > > -__modinst: $(modules) > +install-$(CONFIG_MODULES) += $(modules) > + > +__modinst: $(install-y) > @: > > # > @@ -94,14 +127,16 @@ $(dst)/%.ko: $(extmod_prefix)%.ko FORCE > $(call cmd,strip) > $(call cmd,sign) > > +ifdef CONFIG_MODULES > __modinst: depmod > > PHONY += depmod > -depmod: $(modules) > +depmod: $(install-y) > $(call cmd,depmod) > > quiet_cmd_depmod = DEPMOD $(MODLIB) > cmd_depmod = $(srctree)/scripts/depmod.sh $(KERNELRELEASE) > +endif > > $(install-y): prepare > > -- > 2.39.2 Thanks for cleaning up. For me, the new rules look better than the original ones. Reviewed-by: Nicolas Schier <nicolas@xxxxxxxxx>
Attachment:
signature.asc
Description: PGP signature