| # ========================================================================== |
| # Installing modules |
| # ========================================================================== |
| |
| PHONY := __modinst |
| __modinst: |
| |
| include scripts/Kbuild.include |
| |
| __modules := $(sort $(shell grep -h '\.ko$$' /dev/null $(wildcard $(MODVERDIR)/*.mod))) |
| modules := $(patsubst %.o,%.ko,$(wildcard $(__modules:.ko=.o))) |
| |
| #PHONY += $(modules) |
| __modinst: |
| @: |
| |
| |
| #$(info modules = $(modules)) |
| INSTALL_MOD_DIR ?= extra |
| list_modules_symbol_install := |
| list_modules_install := |
| |
| ifdef KBUILD_EXTMOD |
| #$(error Unexpect condition KBUILD_EXTMOD = $(KBUILD_EXTMOD)) |
| AMODLIB := $(INSTALL_MOD_DIR)/lib/modules |
| AMODSYMLIB := $(INSTALL_MOD_DIR)/../symbols/system/lib/modules |
| $(foreach ko,$(modules),\ |
| $(eval src0 := $(ko)) \ |
| $(eval des1 := $(AMODSYMLIB)/$(subst $(patsubst %/,%,$(KBUILD_EXTMOD)),,$(dir $(ko)))/$(notdir $(ko))) \ |
| $(eval des2 := $(AMODLIB)/$(subst $(patsubst %/,%,$(KBUILD_EXTMOD)),,$(dir $(ko)))/$(notdir $(ko))) \ |
| $(eval $(des1) $(des2): $(src0)) \ |
| $(eval list_modules_symbol_install += $(des1)) \ |
| $(eval list_modules_install += $(des2)) \ |
| ) |
| else |
| AMODLIB := $(INSTALL_MOD_PATH)/lib/modules |
| AMODSYMLIB := $(INSTALL_MOD_PATH)/../symbols/system/lib/modules |
| $(foreach ko,$(modules),\ |
| $(eval src0 := $(ko)) \ |
| $(eval des1 := $(AMODSYMLIB)/$(notdir $(ko))) \ |
| $(eval des2 := $(AMODLIB)/$(notdir $(ko))) \ |
| $(eval $(des1) $(des2): $(src0)) \ |
| $(eval list_modules_symbol_install += $(des1)) \ |
| $(eval list_modules_install += $(des2)) \ |
| ) |
| endif |
| |
| #$(info list_modules_symbol_install = $(list_modules_symbol_install)) |
| #$(info list_modules_install = $(list_modules_install)) |
| $(list_modules_install): |
| @echo INSTALL $@ |
| @mkdir -p $(dir $@) |
| @cp $< $@ |
| @$(mod_strip_cmd) $@ |
| |
| $(list_modules_symbol_install): |
| @echo COPY $@ |
| @mkdir -p $(dir $@) |
| @cp $< $@ |
| |
| __modinst: $(list_modules_install) $(list_modules_symbol_install) |
| # Declare the contents of the .PHONY variable as phony. We keep that |
| # information in a variable se we can use it in if_changed and friends. |
| |
| .PHONY: $(PHONY) |