X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=scripts%2FMakefile.modinst;h=f0ff248f5e6f55e07d71b66104cb794e7310d959;hb=refs%2Fheads%2Fvserver;hp=5431acb148e0524345d32640831ca7636d8f34d6;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/scripts/Makefile.modinst b/scripts/Makefile.modinst index 5431acb14..f0ff248f5 100644 --- a/scripts/Makefile.modinst +++ b/scripts/Makefile.modinst @@ -2,34 +2,34 @@ # Installing modules # ========================================================================== -.PHONY: __modinst +PHONY := __modinst __modinst: -include scripts/Makefile.lib +include scripts/Kbuild.include # -__modules := $(shell head -q -n1 /dev/null $(wildcard $(MODVERDIR)/*.mod)) +__modules := $(sort $(shell grep -h '\.ko' /dev/null $(wildcard $(MODVERDIR)/*.mod))) modules := $(patsubst %.o,%.ko,$(wildcard $(__modules:.ko=.o))) -.PHONY: $(modules) +PHONY += $(modules) __modinst: $(modules) @: -# Modules built within the kernel tree - quiet_cmd_modules_install = INSTALL $@ - cmd_modules_install = mkdir -p $(MODLIB)/kernel/$(@D); \ - cp $@ $(MODLIB)/kernel/$(@D) + cmd_modules_install = mkdir -p $(2); cp $@ $(2) ; $(mod_strip_cmd) $(2)/$(notdir $@) + +# 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)) -$(filter-out ../% /%,$(modules)): - $(call cmd,modules_install) +$(modules): + $(call cmd,modules_install,$(MODLIB)/$(modinst_dir)) -# Modules built outside just go into extra -quiet_cmd_modules_install_extra = INSTALL $(obj-m:.o=.ko) - cmd_modules_install_extra = mkdir -p $(MODLIB)/extra; \ - cp $@ $(MODLIB)/extra +# 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. -$(filter ../% /%,$(modules)): - $(call cmd,modules_install_extra) +.PHONY: $(PHONY)