summaryrefslogtreecommitdiffstats
path: root/module
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2011-07-19 21:06:50 -0700
committerBrian Behlendorf <[email protected]>2011-07-20 09:37:41 -0700
commite80cd06b8e0428f3ca2c62e4cb0e4ec54fda1d5c (patch)
tree2d7e9df703103dc6e67bacc20d498ac40a903fa3 /module
parentd9365224ea04562af1b0cf2a1c2e84ab429a13b2 (diff)
Fix 'make install' overly broad 'rm'
When running 'make install' without DESTDIR set the module install rules would mistakenly destroy the 'modules.*' files for ALL of your installed kernels. This could lead to a non-functional system for the alternate kernels because 'depmod -a' will only be run for the kernel which was compiled against. This issue would not impact anyone using the 'make <deb|rpm|pkg>' build targets to build and install packages. The fix for this issue is to only remove extraneous build products when DESTDIR is set. This almost exclusively indicates we are building packages and installed the build products in to a temporary staging location. Additionally, limit the removal the unneeded build products to the target kernel version. Signed-off-by: Brian Behlendorf <[email protected]> Closes #328
Diffstat (limited to 'module')
-rw-r--r--module/Makefile.in6
1 files changed, 5 insertions, 1 deletions
diff --git a/module/Makefile.in b/module/Makefile.in
index 70a33ec14..355089aeb 100644
--- a/module/Makefile.in
+++ b/module/Makefile.in
@@ -16,7 +16,11 @@ modules_install:
$(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` \
INSTALL_MOD_PATH=$(DESTDIR) \
INSTALL_MOD_DIR=addon/spl $@
- find $(DESTDIR)/lib/modules/ -name 'modules.*' | xargs $(RM)
+ @# Remove extraneous build products when packaging
+ if [ -n "$(DESTDIR)" ]; then \
+ find $(DESTDIR)/lib/modules/@LINUX_VERSION@ \
+ -name 'modules.*' | xargs $(RM); \
+ fi
sysmap=$(DESTDIR)/boot/System.map-@LINUX_VERSION@; \
if [ -f $$sysmap ]; then \
depmod -ae -F $$sysmap @LINUX_VERSION@; \