Add uninstall Makefile targets

Extend the Makefiles with an uninstall target to cleanly
remove a package which was installed with 'make install'.

Additionally, ensure a 'depmod -a' is run as part of the
install to update the module dependency information.
This commit is contained in:
Brian Behlendorf 2010-07-28 13:59:18 -07:00
parent 287b2fb117
commit 099dc9c2d2
5 changed files with 26 additions and 6 deletions

View File

@ -30,7 +30,7 @@ distclean-local::
if CONFIG_KERNEL
install-data-local:
destname=spl-$(SPL_META_VERSION)/$(LINUX_VERSION); \
instdest=$(DESTDIR)/${prefix}/src/$$destname; \
instdest=$(DESTDIR)/usr/src/$$destname; \
echo "${SPL_META_VERSION}" >$$instdest/spl.release; \
for instfile in $(noinst_HEADERS) module/$(LINUX_SYMBOLS); do \
$(INSTALL) -D $$instfile $$instdest/$$instfile; \

View File

@ -877,7 +877,7 @@ distclean-local::
@CONFIG_KERNEL_TRUE@install-data-local:
@CONFIG_KERNEL_TRUE@ destname=spl-$(SPL_META_VERSION)/$(LINUX_VERSION); \
@CONFIG_KERNEL_TRUE@ instdest=$(DESTDIR)/${prefix}/src/$$destname; \
@CONFIG_KERNEL_TRUE@ instdest=$(DESTDIR)/usr/src/$$destname; \
@CONFIG_KERNEL_TRUE@ echo "${SPL_META_VERSION}" >$$instdest/spl.release; \
@CONFIG_KERNEL_TRUE@ for instfile in $(noinst_HEADERS) module/$(LINUX_SYMBOLS); do \
@CONFIG_KERNEL_TRUE@ $(INSTALL) -D $$instfile $$instdest/$$instfile; \

View File

@ -16,8 +16,13 @@ noinst_HEADERS += vm/*.h
install-data-local:
destname=spl-$(SPL_META_VERSION)/$(LINUX_VERSION); \
instdest=$(DESTDIR)/${prefix}/src/$$destname; \
instdest=$(DESTDIR)/usr/src/$$destname; \
instfiles=`find . -name '*.h'`; \
for instfile in $$instfiles; do \
$(INSTALL) -D $$instfile $$instdest/$$instfile; \
done
uninstall-local:
destname=spl-$(SPL_META_VERSION)/$(LINUX_VERSION); \
instdest=$(DESTDIR)/usr/src/$$destname; \
$(RM) -R $$instdest

View File

@ -431,7 +431,7 @@ ps: ps-am
ps-am:
uninstall-am:
uninstall-am: uninstall-local
.MAKE: install-am install-strip
@ -446,17 +446,22 @@ uninstall-am:
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
uninstall-am
uninstall-am uninstall-local
install-data-local:
destname=spl-$(SPL_META_VERSION)/$(LINUX_VERSION); \
instdest=$(DESTDIR)/${prefix}/src/$$destname; \
instdest=$(DESTDIR)/usr/src/$$destname; \
instfiles=`find . -name '*.h'`; \
for instfile in $$instfiles; do \
$(INSTALL) -D $$instfile $$instdest/$$instfile; \
done
uninstall-local:
destname=spl-$(SPL_META_VERSION)/$(LINUX_VERSION); \
instdest=$(DESTDIR)/usr/src/$$destname; \
$(RM) -R $$instdest
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -12,10 +12,19 @@ clean:
if [ -f Module.markers ]; then $(RM) Module.markers; fi
modules_install:
# Install the kernel modules
$(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` \
INSTALL_MOD_PATH=$(DESTDIR) \
INSTALL_MOD_DIR=addon/spl $@
find ${DESTDIR}/lib/modules/ -name 'modules.*' | xargs ${RM}
sysmap=${DESTDIR}/boot/System.map-@LINUX_VERSION@; \
if [ -f $$sysmap ]; then \
depmod -ae -F $$sysmap @LINUX_VERSION@; \
fi
modules_uninstall:
# Uninstall the kernel modules
$(RM) -R ${DESTDIR}/lib/modules/@LINUX_VERSION@/addon/spl
distdir:
list='$(subdir-m)'; for subdir in $$list; do \
@ -25,5 +34,6 @@ distdir:
distclean maintainer-clean: clean
install: modules_install
uninstall: modules_uninstall
all: modules
check: