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 14:30:17 -07:00
parent 26e61dd074
commit 9662934bd9
2 changed files with 16 additions and 2 deletions

View File

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

View File

@ -16,16 +16,29 @@ clean:
if [ -f Module.markers ]; then $(RM) Module.markers; fi if [ -f Module.markers ]; then $(RM) Module.markers; fi
modules_install: modules_install:
# Install the kernel modules
$(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` \ $(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` \
INSTALL_MOD_PATH=$(DESTDIR) \ INSTALL_MOD_PATH=$(DESTDIR) \
INSTALL_MOD_DIR=addon/zfs $@ INSTALL_MOD_DIR=addon/zfs $@
find ${DESTDIR}/lib/modules/ -name 'modules.*' | xargs ${RM} 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
# Install the required headers in to the kernel source # Install the required headers in to the kernel source
destname=zfs-@ZFS_META_VERSION@/@LINUX_VERSION@; \ destname=zfs-@ZFS_META_VERSION@/@LINUX_VERSION@; \
instdest=$(DESTDIR)/@prefix@/src/$$destname; \ instdest=$(DESTDIR)/usr/src/$$destname; \
(find . -mindepth 3 -name '*.h' | xargs -Ihdr sh -c \ (find . -mindepth 3 -name '*.h' | xargs -Ihdr sh -c \
"DEST=hdr && install -D hdr $$instdest/\$${DEST#*/*/*/}") || exit 1 "DEST=hdr && install -D hdr $$instdest/\$${DEST#*/*/*/}") || exit 1
modules_uninstall:
# Uninstall the kernel modules
$(RM) -R ${DESTDIR}/lib/modules/@LINUX_VERSION@/addon/zfs
# Uninstall the required headers from the kernel source
destname=zfs-@ZFS_META_VERSION@/@LINUX_VERSION@; \
instdest=$(DESTDIR)/usr/src/$$destname; \
$(RM) -R $$instdest
distdir: distdir:
distfiles=`find . -name '*.c' -o -name '*.h'`; \ distfiles=`find . -name '*.c' -o -name '*.h'`; \
for distfile in $$distfiles; do \ for distfile in $$distfiles; do \
@ -36,5 +49,6 @@ distdir:
distclean maintainer-clean: clean distclean maintainer-clean: clean
install: modules_install install: modules_install
uninstall: modules_uninstall
all: modules all: modules
check: check: