# ==========================================================================
# Installing modules
# ==========================================================================

.PHONY: __modinst
__modinst:

include scripts/Makefile.lib

#

__modules := $(sort $(shell grep -h '\.ko' /dev/null $(wildcard $(MODVERDIR)/*.mod)))
modules := $(patsubst %.o,%.ko,$(wildcard $(__modules:.ko=.o)))

.PHONY: $(modules)
__modinst: $(modules)
	@:

quiet_cmd_modules_install = INSTALL $@
      cmd_modules_install = mkdir -p $(2); cp $@ $(2)

# Modules built outside the kernel source tree go into extra by default
INSTALL_MOD_DIR ?= extra
ext-mod-dir = $(INSTALL_MOD_DIR)$(subst $(KBUILD_EXTMOD),,$(@D))

modinst_dir = $(if $(KBUILD_EXTMOD),$(ext-mod-dir),kernel/$(@D))

$(modules):
	$(call cmd,modules_install,$(MODLIB)/$(modinst_dir))
