From 726081b63b0bea2687b7c2330808fba2de9c2e61 Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Fri, 7 Oct 2005 14:47:45 +0100 Subject: Add installation of the udev rules if appropriate. With a normal 'make install', the udev rules will be installed if udev version is >= 059; otherwise, the hotplug rules get installed. When 'make dist' is done, we set a variable so that both hotplug and udev rules are installed into the dist tarball. install.sh then takes care of picking the proper rules. Also changes the hotplug check to look for a proper udev version Signed-off-by: Jeremy Katz --- install.sh | 8 +++++++- tools/check/check_hotplug | 4 ++++ tools/examples/Makefile | 23 ++++++++++++++++++++++- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 295f084374..49e88a2556 100755 --- a/install.sh +++ b/install.sh @@ -23,10 +23,16 @@ if ! [ -d $dst ]; then fi echo "Installing Xen from '$src' to '$dst'..." -(cd $src; tar -cf - --exclude etc/init.d * ) | tar -C $dst -xf - +(cd $src; tar -cf - --exclude etc/init.d --exclude etc/hotplug --exclude etc/udev * ) | tar -C $dst -xf - cp -fdRL $src/etc/init.d/* $dst/etc/init.d/ echo "All done." +if [ -x /sbin/udev ] && [ ! -z `udev -V` ] && [ `/sbin/udev -V` -ge 059 ]; then + cp -f $src/etc/udev/rules.d/*.rules $dst/etc/udev/rules.d/ +else + cp -f $src/etc/hotplug/*.agent $dst/etc/hotplug/ +fi + echo "Checking to see whether prerequisite tools are installed..." cd $src/../check ./chk install diff --git a/tools/check/check_hotplug b/tools/check/check_hotplug index 15c902171c..df8a328096 100644 --- a/tools/check/check_hotplug +++ b/tools/check/check_hotplug @@ -7,4 +7,8 @@ function error { exit 1 } +if [ -x /sbin/udev ] && [ ! -z `udev -V` ] && [ `udev -V` -ge 059 ]; then + exit 0 +fi + which hotplug 1>/dev/null 2>&1 || error diff --git a/tools/examples/Makefile b/tools/examples/Makefile index 17d93453a1..e09a35a8ac 100644 --- a/tools/examples/Makefile +++ b/tools/examples/Makefile @@ -28,10 +28,23 @@ XEN_SCRIPTS += block-enbd XEN_HOTPLUG_DIR = /etc/hotplug XEN_HOTPLUG_SCRIPTS = xen-backend.agent +UDEV_RULES_DIR = /etc/udev/rules.d +UDEV_RULES = xen-backend.rules + +ifeq ($(findstring $(DISTDIR),$(DESTDIR)),$(DISTDIR)) +HOTPLUGS=install-hotplug install-udev +else +ifeq ($(shell [ -x /sbin/udev ] && [ ! -z `udev -V` ] && [ `/sbin/udev -V` -ge 059 ] && echo 1),1) +HOTPLUGS=install-udev +else +HOTPLUGS=install-hotplug +endif +endif + all: build: -install: all install-initd install-configs install-scripts install-hotplug +install: all install-initd install-configs install-scripts $(HOTPLUGS) install-initd: [ -d $(DESTDIR)/etc/init.d ] || $(INSTALL_DIR) $(DESTDIR)/etc/init.d @@ -64,4 +77,12 @@ install-hotplug: $(INSTALL_PROG) $$i $(DESTDIR)$(XEN_HOTPLUG_DIR); \ done +install-udev: + [ -d $(DESTDIR)$(UDEV_RULES_DIR) ] || \ + $(INSTALL_DIR) $(DESTDIR)$(UDEV_RULES_DIR) + for i in $(UDEV_RULES); \ + do \ + $(INSTALL_PROG) $$i $(DESTDIR)$(UDEV_RULES_DIR); \ + done + clean: -- cgit v1.2.3