diff options
author | sruffell <sruffell@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2007-12-07 23:50:59 +0000 |
---|---|---|
committer | sruffell <sruffell@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2007-12-07 23:50:59 +0000 |
commit | db7568c489b2d4e99e82a580a4cff49c4201c066 (patch) | |
tree | 9d6bd38d0fcf91a88748319f6c9f51cca78a33cb | |
parent | f3e430623de7cd7880dff75a0c3ced9b6bb178aa (diff) |
The previous cleanup wasn't quite working when there were multiple old
modules in the modules.dep folder. Moved the cleanup to external script
for the time being.
git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.4@3351 5390a7c7-147a-4af0-8ec9-7488f05a26cb
-rw-r--r-- | Makefile | 15 | ||||
-rwxr-xr-x | uninstall-modules-sh | 36 |
2 files changed, 41 insertions, 10 deletions
@@ -530,30 +530,25 @@ install-udev: devices uninstall-hotplug: $(MAKE) -C firmware hotplug-uninstall DESTDIR=$(DESTDIR) +BASENAMES=$(sort $(shell for x in $(ALL_MODULES); do basename $x; done)) uninstall-modules: ifeq ($(BUILDVER),linux24) else - for x in $(ALL_MODULES); do \ + @./uninstall-modules-sh $(DESTDIR)/lib/modules/$(KVERS) $(BASENAMES) + @for x in $(ALL_MODULES); do \ rm -f $(DESTDIR)/lib/modules/$(KVERS)/extra/$$x ; \ rm -f $(DESTDIR)/lib/modules/$(KVERS)/misc/$$x ; \ rm -f $(DESTDIR)/lib/modules/$(KVERS)/zaptel/$$x ; \ done; endif +BASENAMES=$(sort $(shell for mod in $(ALL_MODULES); do basename $$mod; done)) + install-modules: $(INSTALL_MODULES) uninstall-modules ifeq ($(BUILDVER),linux24) $(INSTALL) -d $(DESTDIR)$(MOD_DIR) $(INSTALL) -m 644 $(INSTALL_MODULES) $(DESTDIR)$(MOD_DIR) else - @# Delete any existing drivers before installing the new ones. This - @# prevents problems when upgrading from a previous version of zaptel - @# where the drivers may have been in a different location. In this - @# case, when depmod is run, the old drivers may be found and used - @# before the new drivers. - @for mod in $(INSTALL_MODULES); do \ - rm -f `cat $(DESTDIR)/lib/modules/$(KVERS)/modules.dep | \ - cut -d : -f 1 | grep -m 1 $$mod`; \ - done; $(KMAKE_INST) ifneq (,$(wildcard datamods/syncppp.ko)) $(MAKE) -C datamods install diff --git a/uninstall-modules-sh b/uninstall-modules-sh new file mode 100755 index 0000000..d70255c --- /dev/null +++ b/uninstall-modules-sh @@ -0,0 +1,36 @@ +#!/bin/sh +# uninstall-modules-sh +# +# Remove all the modules passed in on the command line from the modules +# directory. This script is called by the makefile. +# +# USAGE: uninstall-modules-sh <modules dir> modules to delete ... + +KERNEL_MODULES_DIR=$1 +shift +MODULES=$@ + +function usage { + echo "$0: Used to delete kernel modules from the modules directory." +} + +if [ -z "$KERNEL_MODULES_DIR" ]; then + echo "Missing kernel module directory." + usage + exit 1; +fi + +if [ -z "$MODULES" ]; then + echo "Missing one or more modules to delete." + usage + exit 1; +fi +for mod in $MODULES; do + for file in `cat $KERNEL_MODULES_DIR/modules.dep | cut -d : -f 1 | grep $mod`; do + if [ -e "$file" ]; then + echo "Deleting $file." + rm -f $file + fi + done +done +exit 0 |