From: Petre Pircalabu Date: Thu, 27 Jul 2017 17:08:27 +0000 (+0300) Subject: Makefile: Fix uninstall target X-Git-Tag: 4.10.0-rc1~671 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=f2b40dababedcd8355bf3e85d00baf17f9827131;p=people%2Fandrewcoop%2Fxen.git Makefile: Fix uninstall target Running "make uninstall" does not remove all installed files, a situation which might cause link related issues if xen is re-installed in a different location. In order to make uninstall correctly remove the files it is best the process should be done recursively by mirroring each "install" target with an "uninstall" who removes the installed files. An exception to this rule is uninstalling the files produced by "qemu-xen-dir-remote" and "qemu-xen-traditional-dir", which are external to the project. These projects do not implement an "uninstall" target so the files have to be removed manually. Signed-off-by: Petre Pircalabu Acked-by: Wei Liu --- diff --git a/Makefile b/Makefile index 0b5f57dabd..1d43044033 100644 --- a/Makefile +++ b/Makefile @@ -10,6 +10,7 @@ all: dist SUBSYSTEMS?=xen tools stubdom docs TARGS_DIST=$(patsubst %, dist-%, $(SUBSYSTEMS)) TARGS_INSTALL=$(patsubst %, install-%, $(SUBSYSTEMS)) +TARGS_UNINSTALL=$(patsubst %, uninstall-%, $(SUBSYSTEMS)) TARGS_BUILD=$(patsubst %, build-%, $(SUBSYSTEMS)) TARGS_CLEAN=$(patsubst %, clean-%, $(SUBSYSTEMS)) TARGS_DISTCLEAN=$(patsubst %, distclean-%, $(SUBSYSTEMS)) @@ -303,11 +304,26 @@ help: @echo ' [ this documentation is sadly not complete ]' # Use this target with extreme care! + +.PHONY: uninstall-xen +uninstall-xen: + $(MAKE) -C xen uninstall + +.PHONY: uninstall-tools +uninstall-tools: + $(MAKE) -C tools uninstall + +.PHONY: uninstall-stubdom +uninstall-stubdom: + $(MAKE) -C stubdom uninstall + +.PHONY: uninstall-docs +uninstall-docs: + $(MAKE) -C docs uninstall + .PHONY: uninstall uninstall: D=$(DESTDIR) -uninstall: - $(MAKE) -C xen uninstall - make -C tools uninstall +uninstall: uninstall-tools-public-headers $(TARGS_UNINSTALL) rm -rf $(D)/boot/tboot* .PHONY: xenversion diff --git a/docs/Makefile b/docs/Makefile index e064de0b77..942247202a 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -92,7 +92,7 @@ distclean: clean # Top level install targets -.PHONY: man-pages install-man-pages clean-man-pages +.PHONY: man-pages install-man-pages clean-man-pages uninstall-man-pages # Metarules for generating manpages. Run with $(1) substitued for section define GENERATE_MANPAGE_RULES @@ -165,10 +165,16 @@ install-man$(1)-pages: man$(1)-pages clean-man$(1)-pages: rm -rf man$(1) +# Uninstall +.PHONY: uninstall-man$(1)-pages +uninstall-man$(1)-pages: + rm -f $(addprefix $(DESTDIR)$(mandir)/man$(1)/, $(filter-out %.pod.$(1) %.markdown.$(1), $(notdir $(DOC_MAN$(1))))) + # Link buld/install/clean to toplevel rules man-pages: man$(1)-pages install-man-pages: install-man$(1)-pages clean-man-pages: clean-man$(1)-pages +uninstall-man-pages: uninstall-man$(1)-pages endef @@ -183,6 +189,13 @@ install-html: html txt figs .PHONY: install install: install-man-pages install-html +.PHONY: uninstall-html +uninstall-html: + rm -rf $(DESTDIR)$(docdir) + +.PHONY: uninstall +uninstall: uninstall-man-pages uninstall-html + # Individual file build targets html/index.html: $(DOC_HTML) $(CURDIR)/gen-html-index INDEX $(PERL) -w -- $(CURDIR)/gen-html-index -i INDEX html $(DOC_HTML) diff --git a/m4/stubdom.m4 b/m4/stubdom.m4 index f4b4cefa74..6aa488b8e2 100644 --- a/m4/stubdom.m4 +++ b/m4/stubdom.m4 @@ -46,6 +46,7 @@ $2=y STUBDOM_TARGETS="$STUBDOM_TARGETS $2" STUBDOM_BUILD="$STUBDOM_BUILD $1" STUBDOM_INSTALL="$STUBDOM_INSTALL install-$2" +STUBDOM_UNINSTALL="$STUBDOM_UNINSTALL install-$2" ]) AC_DEFUN([AX_DISABLE_STUBDOM], [ @@ -67,6 +68,7 @@ AC_DEFUN([AX_STUBDOM_FINISH], [ AC_SUBST(STUBDOM_TARGETS) AC_SUBST(STUBDOM_BUILD) AC_SUBST(STUBDOM_INSTALL) +AC_SUBST(STUBDOM_UNINSTALL) echo "Will build the following stub domains:" for x in $STUBDOM_BUILD; do echo " $x" diff --git a/stubdom/Makefile b/stubdom/Makefile index 5055e313d6..39067c8aa0 100644 --- a/stubdom/Makefile +++ b/stubdom/Makefile @@ -606,6 +606,37 @@ install-vtpmmgr: vtpmmgr-stubdom $(INSTALL_DIR) "$(DESTDIR)$(XENFIRMWAREDIR)" $(INSTALL_PROG) mini-os-$(XEN_TARGET_ARCH)-vtpmmgr/mini-os.gz "$(DESTDIR)$(XENFIRMWAREDIR)/vtpmmgr-stubdom.gz" +########### +# uninstall +########### + +ifeq (x$(STUBDOM_UNINSTALL),x) +STUBDOM_UNINSTALL=$(patsubst install-%,uninstall-%,$(STUBDOM_INSTALL)) +endif + +ifeq ($(STUBDOM_SUPPORTED),1) +uninstall: $(STUBDOM_UNINSTALL) +else +uninstall: +endif + +uninstall-ioemu: + rm -f $(DESTDIR)$(LIBEXEC_BIN)/stubdom-dm + rm -f $(DESTDIR)$(LIBEXEC_BIN)/stubdompath.sh + rm -f $(DESTDIR)$(XENFIRMWAREDIR)/ioemu-stubdom.gz + +uninstall-grub: + rm -f $(DESTDIR)$(XENFIRMWAREDIR)/pv-grub-$(XEN_TARGET_ARCH).gz + +uninstall-xenstore: + rm -f $(DESTDIR)$(XENFIRMWAREDIR)/xenstore-stubdom.gz + +uninstall-vtpm: + rm -f $(DESTDIR)$(XENFIRMWAREDIR)/vtpm-stubdom.gz + +uninstall-vtpmmgr: + rm -f $(DESTDIR)$(XENFIRMWAREDIR)/vtpmmgr-stubdom.gz + ####### # clean ####### diff --git a/tools/Makefile b/tools/Makefile index 496428e3a9..11ad42c83d 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -77,43 +77,10 @@ install: uninstall: D=$(DESTDIR) uninstall: [ -d $(D)$(XEN_CONFIG_DIR) ] && mv -f $(D)$(XEN_CONFIG_DIR) $(D)$(XEN_CONFIG_DIR).old-`date +%s` || true - rm -rf $(D)$(CONFIG_DIR)/init.d/xendomains $(D)$(CONFIG_DIR)/init.d/xend - rm -rf $(D)$(CONFIG_DIR)/init.d/xencommons $(D)$(CONFIG_DIR)/init.d/xen-watchdog - rm -f $(D)$(CONFIG_DIR)/udev/rules.d/xen-backend.rules - rm -f $(D)$(CONFIG_DIR)/udev/rules.d/xend.rules - rm -f $(D)$(SYSCONFIG_DIR)/xendomains - rm -f $(D)$(sbindir)/xendomains - rm -f $(D)$(SYSCONFIG_DIR)/xencommons - rm -rf $(D)$(XEN_LIB_DIR) - rm -rf $(D)$(XEN_LIB_STORED) - rm -rf $(D)$(XEN_RUN_STORED) - rm -rf $(D)$(PKG_INSTALLDIR) - rm -rf $(D)$(bindir)/cpuperf-perfcntr $(D)$(bindir)/cpuperf-xen - rm -rf $(D)$(bindir)/xc_shadow - rm -rf $(D)$(bindir)/pygrub - rm -rf $(D)$(bindir)/setsize $(D)$(bindir)/tbctl - rm -rf $(D)$(bindir)/xsls - rm -rf $(D)$(bindir)/xenstore* $(D)$(bindir)/xentrace* - rm -rf $(D)$(bindir)/xen-detect $(D)$(bindir)/xencons - rm -rf $(D)$(bindir)/xenpvnetboot $(D)$(bindir)/qemu-*-xen - rm -rf $(D)$(includedir)/xenctrl* $(D)$(includedir)/xenguest.h - rm -rf $(D)$(includedir)/xs_lib.h $(D)$(includedir)/xs.h - rm -rf $(D)$(includedir)/xenstore-compat/xs_lib.h $(D)$(includedir)/xenstore-compat/xs.h - rm -rf $(D)$(includedir)/xenstore_lib.h $(D)$(includedir)/xenstore.h - rm -rf $(D)$(includedir)/xen - rm -rf $(D)$(includedir)/_libxl* $(D)$(includedir)/libxl* - rm -rf $(D)$(includedir)/xenstat.h $(D)$(includedir)/xentoollog.h - rm -rf $(D)$(libdir)/libxenctrl* $(D)$(libdir)/libxenguest* - rm -rf $(D)$(libdir)/libxenstore* $(D)$(libdir)/libxlutil* - rm -rf $(D)$(libdir)/python/xen $(D)$(libdir)/python/grub - rm -rf $(D)$(LIBEXEC) - rm -rf $(D)$(sbindir)/setmask - rm -rf $(D)$(sbindir)/xen* $(D)$(sbindir)/netfix $(D)$(sbindir)/xm - rm -rf $(D)$(SHAREDIR)/doc/xen + rm -rf $(D)$(libdir)/xen rm -rf $(D)$(SHAREDIR)/xen rm -rf $(D)$(SHAREDIR)/qemu-xen - rm -rf $(D)$(MAN1DIR)/xen* - rm -rf $(D)$(MAN8DIR)/xen* + $(MAKE) subdirs-uninstall .PHONY: clean clean: subdirs-clean @@ -221,6 +188,9 @@ subdir-clean-qemu-xen-traditional-dir: set -e; if test -d qemu-xen-traditional-dir/.; then \ $(MAKE) -C qemu-xen-traditional-dir clean; \ fi +subdir-uninstall-qemu-xen-traditional-dir: + rm -f $(D)$(bindir)/qemu-nbd* + rm -f $(D)$(bindir)/qemu-img* # External target: qemu-xen qemu-xen-dir-find: @@ -317,6 +287,8 @@ subdir-clean-qemu-xen-dir: $(MAKE) -C qemu-xen-build clean; \ fi +subdir-uninstall-qemu-xen-dir: ; + subdir-clean-debugger/gdbsx subdir-distclean-debugger/gdbsx: .phony $(MAKE) -C debugger/gdbsx clean @@ -326,6 +298,8 @@ subdir-install-debugger/gdbsx: .phony subdir-all-debugger/gdbsx: .phony $(MAKE) -C debugger/gdbsx all +subdir-uninstall-debugger/gdbsx: .phony + $(MAKE) -C debugger/gdbsx uninstall subdir-clean-debugger/kdd subdir-distclean-debugger/kdd: .phony $(MAKE) -C debugger/kdd clean @@ -333,6 +307,9 @@ subdir-clean-debugger/kdd subdir-distclean-debugger/kdd: .phony subdir-install-debugger/kdd: .phony $(MAKE) -C debugger/kdd install +subdir-uninstall-debugger/kdd: .phony + $(MAKE) -C debugger/kdd uninstall + subdir-all-debugger/kdd: .phony $(MAKE) -C debugger/kdd all diff --git a/tools/Rules.mk b/tools/Rules.mk index f55fb669b8..4592601db1 100644 --- a/tools/Rules.mk +++ b/tools/Rules.mk @@ -233,12 +233,12 @@ headers.chk: done >$@.new mv $@.new $@ -subdirs-all subdirs-clean subdirs-install subdirs-distclean: .phony +subdirs-all subdirs-clean subdirs-install subdirs-distclean subdirs-uninstall: .phony @set -e; for subdir in $(SUBDIRS) $(SUBDIRS-y); do \ $(MAKE) subdir-$(patsubst subdirs-%,%,$@)-$$subdir; \ done -subdir-all-% subdir-clean-% subdir-install-%: .phony +subdir-all-% subdir-clean-% subdir-install-% subdir-uninstall-%: .phony $(MAKE) -C $* $(patsubst subdir-%-$*,%,$@) subdir-distclean-%: .phony diff --git a/tools/blktap2/Makefile b/tools/blktap2/Makefile index 94200dc105..f4758ef756 100644 --- a/tools/blktap2/Makefile +++ b/tools/blktap2/Makefile @@ -16,5 +16,5 @@ clean: distclean: clean -.PHONY: all clean install distclean -all clean install distclean: %: subdirs-% +.PHONY: all clean install distclean uninstall +all clean install distclean uninstall: %: subdirs-% diff --git a/tools/blktap2/control/Makefile b/tools/blktap2/control/Makefile index 0d731f75b5..c1682836c9 100644 --- a/tools/blktap2/control/Makefile +++ b/tools/blktap2/control/Makefile @@ -92,8 +92,16 @@ clean: rm -f *~ rm -f xenblktapctl.pc +uninstall: + rm -f $(DESTDIR)$(PKG_INSTALLDIR)/xenblktapctl.pc + rm -f $(DESTDIR)$(libdir)/$(LIBSONAME) + rm -f $(DESTDIR)$(libdir)/$(LIBNAME).so + rm -f $(addprefix $(DESTDIR)$(libdir)/, $(LIB_SHARED)) + rm -f $(addprefix $(DESTDIR)$(libdir)/, $(LIB_STATIC)) + rm -f $(addprefix $(DESTDIR)$(sbindir)/, $(IBIN)) + distclean: clean -.PHONY: all build clean distclean install +.PHONY: all build clean distclean install uninstall -include $(DEPS) diff --git a/tools/blktap2/drivers/Makefile b/tools/blktap2/drivers/Makefile index 5328c40205..f610ddb512 100644 --- a/tools/blktap2/drivers/Makefile +++ b/tools/blktap2/drivers/Makefile @@ -105,9 +105,12 @@ install: all $(INSTALL_DIR) -p $(DESTDIR)$(INST_DIR) $(INSTALL_PROG) $(IBIN) $(LOCK_UTIL) $(QCOW_UTIL) $(DESTDIR)$(INST_DIR) +uninstall: + rm -f $(addprefix $(DESTDIR)$(INST_DIR)/, $(IBIN) $(LOCK_UTIL) $(QCOW_UTIL)) + clean: rm -rf .*.d *.o *~ xen TAGS $(IBIN) $(LIB) $(LOCK_UTIL) $(QCOW_UTIL) distclean: clean -.PHONY: clean install distclean +.PHONY: clean install distclean uninstall diff --git a/tools/blktap2/include/Makefile b/tools/blktap2/include/Makefile index 66e8a1ebda..c8e2d26180 100644 --- a/tools/blktap2/include/Makefile +++ b/tools/blktap2/include/Makefile @@ -8,6 +8,8 @@ all: install: $(INSTALL_DIR) -p $(DESTDIR)$(includedir) +.PHONY: uninstall +.uninstall: .PHONY: clean clean: diff --git a/tools/blktap2/lvm/Makefile b/tools/blktap2/lvm/Makefile index 7d5f8eab06..72fea0a4c3 100644 --- a/tools/blktap2/lvm/Makefile +++ b/tools/blktap2/lvm/Makefile @@ -23,6 +23,8 @@ build: $(TEST) $(LVM-OBJS) install: all +uninstall: + lvm-util: lvm-util.o $(CC) -DLVM_UTIL $(LDFLAGS) -o lvm-util lvm-util.c @@ -31,6 +33,6 @@ clean: distclean: clean -.PHONY: all build clean distclean install lvm-util +.PHONY: all build clean distclean install lvm-util uninstall -include $(DEPS) diff --git a/tools/blktap2/vhd/Makefile b/tools/blktap2/vhd/Makefile index fabd6654b3..e60b7afbe4 100644 --- a/tools/blktap2/vhd/Makefile +++ b/tools/blktap2/vhd/Makefile @@ -41,11 +41,15 @@ install: all $(INSTALL_DIR) -p $(DESTDIR)$(INST_DIR) $(INSTALL_PROG) $(IBIN) $(DESTDIR)$(INST_DIR) +uninstall: + $(MAKE) subdirs-uninstall + rm -f $(addprefix $(DESTDIR)$(INST_DIR)/, $(IBIN)) + clean: subdirs-clean rm -rf *.o *~ $(DEPS) $(IBIN) distclean: clean -.PHONY: all build clean distclean install vhd-util vhd-update +.PHONY: all build clean distclean install uninstall vhd-util vhd-update -include $(DEPS) diff --git a/tools/blktap2/vhd/lib/Makefile b/tools/blktap2/vhd/lib/Makefile index ab2d6482b5..3bf603ef17 100644 --- a/tools/blktap2/vhd/lib/Makefile +++ b/tools/blktap2/vhd/lib/Makefile @@ -72,11 +72,17 @@ install: all ln -sf libvhd.so.$(LIBVHD-MAJOR).$(LIBVHD-MINOR) $(DESTDIR)$(INST-DIR)/libvhd.so.$(LIBVHD-MAJOR) ln -sf libvhd.so.$(LIBVHD-MAJOR) $(DESTDIR)$(INST-DIR)/libvhd.so +uninstall: + rm -f $(DESTDIR)$(INST-DIR)/libvhd.so + rm -f $(DESTDIR)$(INST-DIR)/libvhd.so.$(LIBVHD-MAJOR) + rm -f $(DESTDIR)$(INST-DIR)/libvhd.so.$(LIBVHD-MAJOR).$(LIBVHD-MINOR) + rm -f $(DESTDIR)$(INST-DIR)/libvhd.a + clean: rm -rf *.a *.so* *.o *.opic *~ $(DEPS) $(LIBVHD) distclean: clean -.PHONY: all build clean distclean install libvhd +.PHONY: all build clean distclean install libvhd uninstall -include $(DEPS) diff --git a/tools/console/Makefile b/tools/console/Makefile index c8b030038b..abe77b2f58 100644 --- a/tools/console/Makefile +++ b/tools/console/Makefile @@ -49,4 +49,9 @@ install: $(BIN) $(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN) $(INSTALL_PROG) xenconsole $(DESTDIR)$(LIBEXEC_BIN) +.PHONY: uninstall +uninstall: + rm -f $(DESTDIR)$(LIBEXEC_BIN)/xenconsole + rm -f $(DESTDIR)$(sbindir)/xenconsoled + -include $(DEPS) diff --git a/tools/debugger/gdbsx/Makefile b/tools/debugger/gdbsx/Makefile index 4ed6d76410..723a2743cc 100644 --- a/tools/debugger/gdbsx/Makefile +++ b/tools/debugger/gdbsx/Makefile @@ -21,6 +21,10 @@ install: all [ -d $(DESTDIR)$(sbindir) ] || $(INSTALL_DIR) $(DESTDIR)$(sbindir) $(INSTALL_PROG) gdbsx $(DESTDIR)$(sbindir)/gdbsx +.PHONY: uninstall +uninstall: + rm -f $(DESTDIR)$(sbindir)/gdbsx + gdbsx: gx/gx_all.a xg/xg_all.a $(CC) -o $@ $^ diff --git a/tools/debugger/kdd/Makefile b/tools/debugger/kdd/Makefile index f3a597ddbc..bcec440a7a 100644 --- a/tools/debugger/kdd/Makefile +++ b/tools/debugger/kdd/Makefile @@ -25,3 +25,7 @@ distclean: clean install: all [ -d $(DESTDIR)$(sbindir) ] || $(INSTALL_DIR) $(DESTDIR)$(sbindir) $(INSTALL_PROG) kdd $(DESTDIR)$(sbindir)/kdd + +.PHONY: uninstall +uninstall: + rm -f $(DESTDIR)$(sbindir)/kdd diff --git a/tools/examples/Makefile b/tools/examples/Makefile index 87dd7603cc..f86ed3a271 100644 --- a/tools/examples/Makefile +++ b/tools/examples/Makefile @@ -21,6 +21,9 @@ build: .PHONY: install install: all install-readmes install-configs +.PHONY: uninstall +uninstall: uninstall-readmes uninstall-configs + .PHONY: install-readmes install-readmes: [ -d $(DESTDIR)$(XEN_CONFIG_DIR) ] || \ @@ -30,6 +33,10 @@ install-readmes: $(INSTALL_DATA) $$i $(DESTDIR)$(XEN_CONFIG_DIR); \ done +.PHONY: uninstall-readmes +uninstall-readmes: + rm -f $(addprefix $(DESTDIR)$(XEN_CONFIG_DIR)/, $(XEN_READMES)) + .PHONY: install-configs install-configs: $(XEN_CONFIGS) [ -d $(DESTDIR)$(XEN_CONFIG_DIR) ] || \ @@ -41,6 +48,10 @@ install-configs: $(XEN_CONFIGS) $(INSTALL_DATA) $$i $(DESTDIR)$(XEN_CONFIG_DIR); \ done +.PHONY: uninstall-configs +uninstall-configs: + rm -f $(addprefix $(DESTDIR)$(XEN_CONFIG_DIR)/, $(XEN_CONFIGS)) + .PHONY: clean clean: diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile index 8562f547bc..868b506920 100644 --- a/tools/firmware/Makefile +++ b/tools/firmware/Makefile @@ -49,6 +49,16 @@ ifeq ($(CONFIG_OVMF),y) $(INSTALL_DATA) ovmf-dir/ovmf.bin $(INST_DIR)/ovmf.bin endif +.PHONY: uninstall +uninstall: + rm -f $(addprefix $(INST_DIR)/, $(notdir $(TARGET))) +ifeq ($(CONFIG_SEABIOS),y) + rm -f $(INST_DIR)/seabios.bin +endif +ifeq ($(CONFIG_OVMF),y) + rm -f $(INST_DIR)/ovmf.bin +endif + .PHONY: clean clean: subdirs-clean diff --git a/tools/flask/Makefile b/tools/flask/Makefile index a31cc16def..335ee2a090 100644 --- a/tools/flask/Makefile +++ b/tools/flask/Makefile @@ -4,6 +4,6 @@ include $(XEN_ROOT)/tools/Rules.mk SUBDIRS-y := utils SUBDIRS-$(FLASK_POLICY) += policy -.PHONY: all clean install distclean -all clean install distclean: %: subdirs-% +.PHONY: all clean install distclean uninstall +all clean install distclean uninstall: %: subdirs-% diff --git a/tools/flask/policy/Makefile.common b/tools/flask/policy/Makefile.common index bb85ded4f5..bea5ba4b6a 100644 --- a/tools/flask/policy/Makefile.common +++ b/tools/flask/policy/Makefile.common @@ -118,6 +118,9 @@ install: $(POLICY_FILENAME) $(INSTALL_DIR) $(DESTDIR)/$(POLICY_LOADPATH) $(INSTALL_DATA) $^ $(DESTDIR)/$(POLICY_LOADPATH) +uninstall: + rm -f $(DESTDIR)/$(POLICY_LOADPATH)/$(POLICY_FILENAME) + $(POLICY_FILENAME): $(FLASK_BUILD_DIR)/policy.conf $(CHECKPOLICY) $(CHECKPOLICY_PARAM) $^ -o $@ @@ -129,4 +132,4 @@ clean: distclean: clean -.PHONY: all install clean distclean +.PHONY: all install clean distclean uninstall diff --git a/tools/flask/utils/Makefile b/tools/flask/utils/Makefile index 91a53b44b8..fc047e9fd5 100644 --- a/tools/flask/utils/Makefile +++ b/tools/flask/utils/Makefile @@ -55,4 +55,8 @@ install: all $(INSTALL_DIR) $(DESTDIR)$(sbindir) $(INSTALL_PROG) $(CLIENTS) $(DESTDIR)$(sbindir) +.PHONY: uninstall +uninstall: + rm -f $(addprefix $(DESTDIR)$(sbindir)/, $(CLIENTS)) + -include $(DEPS) diff --git a/tools/fuzz/Makefile b/tools/fuzz/Makefile index 986fbb87ea..85213dc895 100644 --- a/tools/fuzz/Makefile +++ b/tools/fuzz/Makefile @@ -5,5 +5,5 @@ SUBDIRS-y := SUBDIRS-y += libelf SUBDIRS-y += x86_instruction_emulator -.PHONY: all clean distclean install -all clean distclean install: %: subdirs-% +.PHONY: all clean distclean install uninstall +all clean distclean install uninstall: %: subdirs-% diff --git a/tools/fuzz/libelf/Makefile b/tools/fuzz/libelf/Makefile index 6cdc31eeb5..9eb30ee40c 100644 --- a/tools/fuzz/libelf/Makefile +++ b/tools/fuzz/libelf/Makefile @@ -36,5 +36,7 @@ clean: .PHONY: install install: all +.PHONY: uninstall + .PHONY: afl afl: afl-libelf-fuzzer diff --git a/tools/fuzz/x86_instruction_emulator/Makefile b/tools/fuzz/x86_instruction_emulator/Makefile index 6e3fa1e37a..a3f6b2c754 100644 --- a/tools/fuzz/x86_instruction_emulator/Makefile +++ b/tools/fuzz/x86_instruction_emulator/Makefile @@ -51,5 +51,7 @@ clean: .PHONY: install install: all +.PHONY: uninstall + .PHONY: afl afl: afl-harness diff --git a/tools/golang/Makefile b/tools/golang/Makefile index 47a9235994..aba11ebc39 100644 --- a/tools/golang/Makefile +++ b/tools/golang/Makefile @@ -19,6 +19,9 @@ all build: subdirs-all .PHONY: install install: subdirs-install +.PHONY: uninstall +uninstall: subdirs-uninstall + .PHONY: clean clean: subdirs-clean $(RM) -r src pkg diff --git a/tools/golang/xenlight/Makefile b/tools/golang/xenlight/Makefile index a4a1a5b0c0..88202a6d5d 100644 --- a/tools/golang/xenlight/Makefile +++ b/tools/golang/xenlight/Makefile @@ -38,6 +38,9 @@ install: build $(INSTALL_DIR) $(DESTDIR)$(GOXL_INSTALL_DIR) $(INSTALL_DATA) $(XEN_GOPATH)$(GOXL_PKG_DIR)$(PKGSOURCES) $(DESTDIR)$(GOXL_INSTALL_DIR) +.PHONY: uninstall + rm -f $(addprefix $(DESTDIR)$(GOXL_INSTALL_DIR)/, $(PKGSOURCES)) + .PHONY: clean clean: $(RM) -r $(XEN_GOPATH)$(GOXL_PKG_DIR) diff --git a/tools/helpers/Makefile b/tools/helpers/Makefile index 5017350f47..fcfca462a6 100644 --- a/tools/helpers/Makefile +++ b/tools/helpers/Makefile @@ -41,6 +41,13 @@ ifeq ($(CONFIG_Linux),y) $(INSTALL_PROG) init-xenstore-domain $(DESTDIR)$(LIBEXEC_BIN) endif +.PHONY: uninstall +uninstall: +ifeq ($(CONFIG_Linux),y) + rm -f $(DESTDIR)$(LIBEXEC_BIN)/init-xenstore-domain +endif + rm -f $(DESTDIR)$(LIBEXEC_BIN)/xen-init-dom0 + .PHONY: clean clean: $(RM) -f *.o $(PROGS) $(DEPS) _paths.h diff --git a/tools/hotplug/FreeBSD/Makefile b/tools/hotplug/FreeBSD/Makefile index bd7a86fa07..de9928cd86 100644 --- a/tools/hotplug/FreeBSD/Makefile +++ b/tools/hotplug/FreeBSD/Makefile @@ -17,6 +17,9 @@ build: .PHONY: install install: install-scripts install-rcd +.PHONY: uninstall +uninstall: uninstall-script uninstall-rcd + .PHONY: install-scripts install-scripts: $(INSTALL_DIR) $(DESTDIR)$(XEN_SCRIPT_DIR) @@ -29,6 +32,11 @@ install-scripts: $(INSTALL_DATA) $$i $(DESTDIR)$(XEN_SCRIPT_DIR); \ done +.PHONY: uninstall-scripts +uninstall-scripts: + rm -f $(addprefix $(DESTDIR)$(XEN_SCRIPT_DIR)/, $(XEN_SCRIPTS)) + rm -f $(addprefix $(DESTDIR)$(XEN_SCRIPT_DIR)/, $(XEN_SCRIPT_DATA)) + .PHONY: install-rcd install-rcd: $(INSTALL_DIR) $(DESTDIR)$(INITD_DIR) @@ -38,6 +46,11 @@ install-rcd: done $(INSTALL_DATA) ../common/hotplugpath.sh $(DESTDIR)$(XEN_SCRIPT_DIR) +.PHONY: uninstall-rcd +uninstall-rcd: + rm -f $(addprefix $(DESTDIR)$(INITD_DIR)/, $(XEN_RCD_PROG)) + rm -f $(DESTDIR)$(XEN_SCRIPT_DIR)/hotplugpath.sh + .PHONY: clean clean: diff --git a/tools/hotplug/Linux/Makefile b/tools/hotplug/Linux/Makefile index 29280cbaef..d4c3cdc439 100644 --- a/tools/hotplug/Linux/Makefile +++ b/tools/hotplug/Linux/Makefile @@ -47,6 +47,9 @@ build: .PHONY: install install: install-initd install-scripts subdirs-install +.PHONY: uninstall +uninstall: uninstall-initd uninstall-scripts subdirs-uninstall + # See docs/misc/distro_mapping.txt for INITD_DIR location .PHONY: install-initd install-initd: @@ -61,6 +64,17 @@ install-initd: $(INSTALL_PROG) $(XENDRIVERDOMAIN_INITD) $(DESTDIR)$(INITD_DIR) $(INSTALL_PROG) init.d/xen-watchdog $(DESTDIR)$(INITD_DIR) +.PHONY: uninstall-initd +uninstall-initd: + rm -f $(DESTDIR)$(INITD_DIR)/xen-watchdog + rm -f $(addprefix $(DESTDIR)$(INITD_DIR)/, $(XENDRIVERDOMAIN_INITD)) + rm -f $(addprefix $(DESTDIR)$(INITD_DIR)/, $(XENDRIVERDOMAIN_INITD)) + rm -f $(addprefix $(DESTDIR)$(SYSCONFIG_DIR)/xencommons/, $(XENCOMMONS_SYSCONFIG)) + rm -f $(addprefix $(DESTDIR)$(INITD_DIR)/, $(XENCOMMONS_INITD)) + rm -f $(addprefix $(DESTDIR)$(SYSCONFIG_DIR)/xendomains/, $(XENDOMAINS_SYSCONFIG)) + rm -f $(addprefix $(DESTDIR)$(INITD_DIR)/, $(XENDOMAINS_INITD)) + rm -f $(addprefix $(DESTDIR)$(LIBEXEC_BIN)/, $(XENDOMAINS_LIBEXEC)) + .PHONY: install-scripts install-scripts: [ -d $(DESTDIR)$(XEN_SCRIPT_DIR) ] || \ @@ -74,6 +88,11 @@ install-scripts: $(INSTALL_DATA) $$i $(DESTDIR)$(XEN_SCRIPT_DIR); \ done +.PHONY: uninstall-scripts +uninstall-scripts: + rm -f $(addprefix $(DESTDIR)$(XEN_SCRIPT_DIR)/, $(XEN_SCRIPTS)) + rm -f $(addprefix $(DESTDIR)$(XEN_SCRIPT_DIR)/, $(XEN_SCRIPT_DATA)) + .PHONY: clean clean: subdirs-clean diff --git a/tools/hotplug/Linux/systemd/Makefile b/tools/hotplug/Linux/systemd/Makefile index 7d24bbedea..a5d41d86ef 100644 --- a/tools/hotplug/Linux/systemd/Makefile +++ b/tools/hotplug/Linux/systemd/Makefile @@ -38,6 +38,12 @@ install: $(ALL_XEN_SYSTEMD) $(INSTALL_DATA) *.mount $(DESTDIR)$(XEN_SYSTEMD_DIR) $(INSTALL_DATA) *.conf $(DESTDIR)$(XEN_SYSTEMD_MODULES_LOAD) +.PHONY: uninstall +uninstall: + rm -f $(DESTDIR)$(XEN_SYSTEMD_MODULES_LOAD)/*.conf + rm -f $(DESTDIR)$(XEN_SYSTEMD_DIR)/*.mount + rm -f $(DESTDIR)$(XEN_SYSTEMD_DIR)/*.service + $(XEN_SYSTEMD_MODULES): rm -f $@.tmp for mod in $(LINUX_BACKEND_MODULES) ; do \ diff --git a/tools/hotplug/Makefile b/tools/hotplug/Makefile index c1a82c1118..4cf6cc03d7 100644 --- a/tools/hotplug/Makefile +++ b/tools/hotplug/Makefile @@ -6,5 +6,5 @@ SUBDIRS-$(CONFIG_NetBSD) += NetBSD SUBDIRS-$(CONFIG_Linux) += Linux SUBDIRS-$(CONFIG_FreeBSD) += FreeBSD -.PHONY: all clean install distclean -all clean install distclean: %: subdirs-% +.PHONY: all clean install distclean uninstall +all clean install distclean uninstall: %: subdirs-% diff --git a/tools/hotplug/NetBSD/Makefile b/tools/hotplug/NetBSD/Makefile index d01aabf8c8..6926885ab8 100644 --- a/tools/hotplug/NetBSD/Makefile +++ b/tools/hotplug/NetBSD/Makefile @@ -19,6 +19,9 @@ build: .PHONY: install install: install-scripts install-rcd +.PHONY: uninstall +uninstall: uninstall-scripts uninstall-rcd + .PHONY: install-scripts install-scripts: $(INSTALL_DIR) $(DESTDIR)$(XEN_SCRIPT_DIR) @@ -31,6 +34,11 @@ install-scripts: $(INSTALL_DATA) $$i $(DESTDIR)$(XEN_SCRIPT_DIR); \ done +.PHONY: uninstall-scripts +uninstall-scripts: + rm -f $(addprefix $(DESTDIR)$(XEN_SCRIPT_DIR)/, $(XEN_SCRIPTS)) + rm -f $(addprefix $(DESTDIR)$(XEN_SCRIPT_DIR)/, $(XEN_SCRIPT_DATA)) + .PHONY: install-rcd install-rcd: $(INSTALL_DIR) $(DESTDIR)$(INITD_DIR) @@ -40,6 +48,11 @@ install-rcd: done $(INSTALL_DATA) ../common/hotplugpath.sh $(DESTDIR)$(INITD_DIR)/xen-hotplugpath.sh +.PHONY: uninstall-rcd +uninstall-rcd: + rm -f $(subst rc.d,$(DESTDIR)$(INITD_DIR),$(XEN_RCD_PROG)) + rm -f $(DESTDIR)$(INITD_DIR)/xen-hotplugpath.sh + .PHONY: clean clean: diff --git a/tools/hotplug/common/Makefile b/tools/hotplug/common/Makefile index b53b55cdca..ef48bfacc9 100644 --- a/tools/hotplug/common/Makefile +++ b/tools/hotplug/common/Makefile @@ -21,6 +21,9 @@ build: $(HOTPLUGPATH) .PHONY: install install: install-scripts +.PHONY: uninstall +uninstall: uninstall-scripts + .PHONY: install-scripts install-scripts: build [ -d $(DESTDIR)$(XEN_SCRIPT_DIR) ] || \ @@ -34,6 +37,11 @@ install-scripts: build $(INSTALL_DATA) $$i $(DESTDIR)$(XEN_SCRIPT_DIR); \ done +.PHONY: uninstall-scripts +uninstall-scripts: + rm -f $(addprefix $(DESTDIR)$(XEN_SCRIPT_DIR)/, $(XEN_SCRIPTS)) + rm -f $(addprefix $(DESTDIR)$(XEN_SCRIPT_DIR)/, $(XEN_SCRIPT_DATA)) + .PHONY: clean clean: rm -f $(HOTPLUGPATH) diff --git a/tools/include/Makefile b/tools/include/Makefile index db0f030176..666510530e 100644 --- a/tools/include/Makefile +++ b/tools/include/Makefile @@ -58,6 +58,11 @@ install: all $(INSTALL_DATA) xen/sys/*.h $(DESTDIR)$(includedir)/xen/sys $(INSTALL_DATA) xen/xsm/*.h $(DESTDIR)$(includedir)/xen/xsm +.PHONY: uninstall +uninstall: + echo "[FIXME] uninstall headers" + rm -rf $(DESTDIR)$(includedir)/xen + .PHONY: clean clean: rm -rf xen xen-xsm acpi diff --git a/tools/libfsimage/Makefile b/tools/libfsimage/Makefile index 69fd18a820..da0decac16 100644 --- a/tools/libfsimage/Makefile +++ b/tools/libfsimage/Makefile @@ -9,8 +9,8 @@ else SUBDIRS-y += ext2fs endif -.PHONY: all clean install -all clean install: %: subdirs-% +.PHONY: all clean install uninstall +all clean install uninstall: %: subdirs-% .PHONY: distclean distclean: clean diff --git a/tools/libfsimage/Rules.mk b/tools/libfsimage/Rules.mk index a0c6504947..ee7de4457e 100644 --- a/tools/libfsimage/Rules.mk +++ b/tools/libfsimage/Rules.mk @@ -18,6 +18,13 @@ fs-install: fs-all $(INSTALL_DIR) $(DESTDIR)$(FSDIR)/$(FS) $(INSTALL_PROG) $(FSLIB) $(DESTDIR)$(FSDIR)/$(FS) +.PHONY: fs-uninstall +fs-uninstall: + rm -f $(addprefix $(DESTDIR)$(FSDIR)/$(FS)/, $(FSLIB)) + if [ -d $(DESTDIR)$(FSDIR)/$(FS) ]; then \ + rmdir $(DESTDIR)$(FSDIR)/$(FS); \ + fi + $(FSLIB): $(PIC_OBJS) $(CC) $(LDFLAGS) $(SHLIB_LDFLAGS) -o $@ $^ -lfsimage $(FS_LIBDEPS) $(APPEND_LDFLAGS) diff --git a/tools/libfsimage/common/Makefile b/tools/libfsimage/common/Makefile index 4840bc2ec7..af6f67e5c7 100644 --- a/tools/libfsimage/common/Makefile +++ b/tools/libfsimage/common/Makefile @@ -31,6 +31,15 @@ install: all $(INSTALL_DATA) fsimage_plugin.h $(DESTDIR)$(includedir) $(INSTALL_DATA) fsimage_grub.h $(DESTDIR)$(includedir) +.PHONY: uninstall +uninstall: + rm -f $(DESTDIR)$(includedir)/fsimage_grub.h + rm -f $(DESTDIR)$(includedir)/fsimage_plugin.h + rm -f $(DESTDIR)$(includedir)/fsimage.h + rm -f $(DESTDIR)$(libdir)/libfsimage.so + rm -f $(DESTDIR)$(libdir)/libfsimage.so.$(MAJOR) + rm -f $(DESTDIR)$(libdir)/libfsimage.so.$(MAJOR).$(MINOR) + clean distclean:: rm -f $(LIB) diff --git a/tools/libfsimage/ext2fs-lib/Makefile b/tools/libfsimage/ext2fs-lib/Makefile index 0e00fde0e1..431a79068e 100644 --- a/tools/libfsimage/ext2fs-lib/Makefile +++ b/tools/libfsimage/ext2fs-lib/Makefile @@ -15,4 +15,7 @@ all: fs-all .PHONY: install install: fs-install +.PHONY: uninstall +uninstall: fs-uninstall + include $(XEN_ROOT)/tools/libfsimage/Rules.mk diff --git a/tools/libfsimage/ext2fs/Makefile b/tools/libfsimage/ext2fs/Makefile index 8ff4c71a1c..c62ae359ac 100644 --- a/tools/libfsimage/ext2fs/Makefile +++ b/tools/libfsimage/ext2fs/Makefile @@ -10,4 +10,7 @@ all: fs-all .PHONY: install install: fs-install +.PHONY: uninstall +uninstall: fs-uninstall + include $(XEN_ROOT)/tools/libfsimage/Rules.mk diff --git a/tools/libfsimage/fat/Makefile b/tools/libfsimage/fat/Makefile index 2911a0e0e7..7ee5e7588d 100644 --- a/tools/libfsimage/fat/Makefile +++ b/tools/libfsimage/fat/Makefile @@ -10,4 +10,7 @@ all: fs-all .PHONY: install install: fs-install +.PHONY: uninstall +uninstall: fs-uninstall + include $(XEN_ROOT)/tools/libfsimage/Rules.mk diff --git a/tools/libfsimage/iso9660/Makefile b/tools/libfsimage/iso9660/Makefile index 4096cafa0c..bc86baf2c0 100644 --- a/tools/libfsimage/iso9660/Makefile +++ b/tools/libfsimage/iso9660/Makefile @@ -10,6 +10,9 @@ all: fs-all .PHONY: install install: fs-install +.PHONY: uninstall +uninstall: fs-uninstall + fsys_iso9660.c: iso9660.h include $(XEN_ROOT)/tools/libfsimage/Rules.mk diff --git a/tools/libfsimage/reiserfs/Makefile b/tools/libfsimage/reiserfs/Makefile index 57f286b256..5acfedf25e 100644 --- a/tools/libfsimage/reiserfs/Makefile +++ b/tools/libfsimage/reiserfs/Makefile @@ -10,4 +10,7 @@ all: fs-all .PHONY: install install: fs-install +.PHONY: uninstall +uninstall: fs-uninstall + include $(XEN_ROOT)/tools/libfsimage/Rules.mk diff --git a/tools/libfsimage/ufs/Makefile b/tools/libfsimage/ufs/Makefile index c1371080f5..f32b9178bd 100644 --- a/tools/libfsimage/ufs/Makefile +++ b/tools/libfsimage/ufs/Makefile @@ -10,4 +10,7 @@ all: fs-all .PHONY: install install: fs-install +.PHONY: uninstall +uninstall: fs-uninstall + include $(XEN_ROOT)/tools/libfsimage/Rules.mk diff --git a/tools/libfsimage/xfs/Makefile b/tools/libfsimage/xfs/Makefile index 6580007404..54eeb6e35e 100644 --- a/tools/libfsimage/xfs/Makefile +++ b/tools/libfsimage/xfs/Makefile @@ -10,4 +10,7 @@ all: fs-all .PHONY: install install: fs-install +.PHONY: uninstall +uninstall: fs-uninstall + include $(XEN_ROOT)/tools/libfsimage/Rules.mk diff --git a/tools/libfsimage/zfs/Makefile b/tools/libfsimage/zfs/Makefile index 4b9f131a57..084e5ec08d 100644 --- a/tools/libfsimage/zfs/Makefile +++ b/tools/libfsimage/zfs/Makefile @@ -34,4 +34,7 @@ all: fs-all .PHONY: install install: fs-install +.PHONY: uninstall +uninstall: fs-uninstall + include $(XEN_ROOT)/tools/libfsimage/Rules.mk diff --git a/tools/libs/Makefile b/tools/libs/Makefile index deae4aee78..2035873fff 100644 --- a/tools/libs/Makefile +++ b/tools/libs/Makefile @@ -9,4 +9,4 @@ SUBDIRS-y += call SUBDIRS-y += foreignmemory SUBDIRS-y += devicemodel -all clean install distclean: %: subdirs-% +all clean install distclean uninstall: %: subdirs-% diff --git a/tools/libs/call/Makefile b/tools/libs/call/Makefile index 30f84378d7..bd3d1f0625 100644 --- a/tools/libs/call/Makefile +++ b/tools/libs/call/Makefile @@ -75,6 +75,15 @@ install: build $(INSTALL_DATA) include/xencall.h $(DESTDIR)$(includedir) $(INSTALL_DATA) xencall.pc $(DESTDIR)$(PKG_INSTALLDIR) +.PHONY: uninstall +uninstall: + rm -f $(DESTDIR)$(PKG_INSTALLDIR)/xencall.pc + rm -f $(DESTDIR)$(includedir)/xencall.h + rm -f $(DESTDIR)$(libdir)/libxencall.so + rm -f $(DESTDIR)$(libdir)/libxencall.so.$(MAJOR) + rm -f $(DESTDIR)$(libdir)/libxencall.so.$(MAJOR).$(MINOR) + rm -f $(DESTDIR)$(libdir)/libxencall.a + .PHONY: TAGS TAGS: etags -t *.c *.h diff --git a/tools/libs/devicemodel/Makefile b/tools/libs/devicemodel/Makefile index 81fa5a4ac4..e41fd208fa 100644 --- a/tools/libs/devicemodel/Makefile +++ b/tools/libs/devicemodel/Makefile @@ -76,6 +76,15 @@ install: build $(INSTALL_DATA) include/xendevicemodel.h $(DESTDIR)$(includedir) $(INSTALL_DATA) xendevicemodel.pc $(DESTDIR)$(PKG_INSTALLDIR) +.PHONY: uninstall +uninstall: + rm -f $(DESTDIR)$(PKG_INSTALLDIR)/xendevicemodel.pc + rm -f $(DESTDIR)$(includedir)/xendevicemodel.h + rm -f $(DESTDIR)$(libdir)/libxendevicemodel.so + rm -f $(DESTDIR)$(libdir)/libxendevicemodel.so.$(MAJOR) + rm -f $(DESTDIR)$(libdir)/libxendevicemodel.so.$(MAJOR).$(MINOR) + rm -f $(DESTDIR)$(libdir)/libxendevicemodel.a + .PHONY: TAGS TAGS: etags -t *.c *.h diff --git a/tools/libs/evtchn/Makefile b/tools/libs/evtchn/Makefile index cbd42193ec..c9537ffdb4 100644 --- a/tools/libs/evtchn/Makefile +++ b/tools/libs/evtchn/Makefile @@ -74,6 +74,15 @@ install: build $(INSTALL_DATA) include/xenevtchn.h $(DESTDIR)$(includedir) $(INSTALL_DATA) xenevtchn.pc $(DESTDIR)$(PKG_INSTALLDIR) +.PHONY: uninstall +uninstall: + rm -f $(DESTDIR)$(PKG_INSTALLDIR)/xenevtchn.pc + rm -f $(DESTDIR)$(includedir)/xenevtchn.h + rm -f $(DESTDIR)$(libdir)/libxenevtchn.so + rm -f $(DESTDIR)$(libdir)/libxenevtchn.so.$(MAJOR) + rm -f $(DESTDIR)$(libdir)/libxenevtchn.so.$(MAJOR).$(MINOR) + rm -f $(DESTDIR)$(libdir)/libxenevtchn.a + .PHONY: TAGS TAGS: etags -t *.c *.h diff --git a/tools/libs/foreignmemory/Makefile b/tools/libs/foreignmemory/Makefile index 5e93ee7d95..b110076621 100644 --- a/tools/libs/foreignmemory/Makefile +++ b/tools/libs/foreignmemory/Makefile @@ -75,6 +75,15 @@ install: build $(INSTALL_DATA) include/xenforeignmemory.h $(DESTDIR)$(includedir) $(INSTALL_DATA) xenforeignmemory.pc $(DESTDIR)$(PKG_INSTALLDIR) +.PHONY: uninstall +uninstall: + rm -f $(DESTDIR)$(PKG_INSTALLDIR)/xenforeignmemory.pc + rm -f $(DESTDIR)$(includedir)/xenforeignmemory.h + rm -f $(DESTDIR)$(libdir)/libxenforeignmemory.so + rm -f $(DESTDIR)$(libdir)/libxenforeignmemory.so.$(MAJOR) + rm -f $(DESTDIR)$(libdir)/libxenforeignmemory.so.$(MAJOR).$(MINOR) + rm -f $(DESTDIR)$(libdir)/libxenforeignmemory.a + .PHONY: TAGS TAGS: etags -t *.c *.h diff --git a/tools/libs/gnttab/Makefile b/tools/libs/gnttab/Makefile index 88b3683dc2..3363bd55cb 100644 --- a/tools/libs/gnttab/Makefile +++ b/tools/libs/gnttab/Makefile @@ -77,6 +77,15 @@ install: build $(INSTALL_DATA) include/xengnttab.h $(DESTDIR)$(includedir) $(INSTALL_DATA) xengnttab.pc $(DESTDIR)$(PKG_INSTALLDIR) +.PHONY: uninstall +uninstall: + rm -f $(DESTDIR)$(PKG_INSTALLDIR)/xengnttab.pc + rm -f $(DESTDIR)$(includedir)/xengnttab.h + rm -f $(DESTDIR)$(libdir)/libxengnttab.so + rm -f $(DESTDIR)$(libdir)/libxengnttab.so.$(MAJOR) + rm -f $(DESTDIR)$(libdir)/libxengnttab.so.$(MAJOR).$(MINOR) + rm -f $(DESTDIR)$(libdir)/libxengnttab.a + .PHONY: TAGS TAGS: etags -t *.c *.h diff --git a/tools/libs/toollog/Makefile b/tools/libs/toollog/Makefile index 7361194d1f..01619ec65c 100644 --- a/tools/libs/toollog/Makefile +++ b/tools/libs/toollog/Makefile @@ -69,6 +69,15 @@ install: build $(INSTALL_DATA) include/xentoollog.h $(DESTDIR)$(includedir) $(INSTALL_DATA) xentoollog.pc $(DESTDIR)$(PKG_INSTALLDIR) +.PHONY: uinstall +uninstall: + rm -f $(DESTDIR)$(PKG_INSTALLDIR)/xentoollog.pc + rm -f $(DESTDIR)$(includedir)/xentoollog.h + rm -f $(DESTDIR)$(libdir)/libxentoollog.so + rm -f $(DESTDIR)$(libdir)/libxentoollog.so.$(MAJOR) + rm -f $(DESTDIR)$(libdir)/libxentoollog.so.$(MAJOR).$(MINOR) + rm -f $(DESTDIR)$(libdir)/libxentoollog.a + .PHONY: TAGS TAGS: etags -t *.c *.h diff --git a/tools/libvchan/Makefile b/tools/libvchan/Makefile index 70c92bda15..277c1c061a 100644 --- a/tools/libvchan/Makefile +++ b/tools/libvchan/Makefile @@ -70,6 +70,15 @@ install: all $(INSTALL_DATA) libxenvchan.a $(DESTDIR)$(libdir) $(INSTALL_DATA) xenvchan.pc $(DESTDIR)$(PKG_INSTALLDIR) +.PHONY: uninstall +uninstall: + rm -f $(DESTDIR)$(PKG_INSTALLDIR)/xenvchan.pc + rm -f $(DESTDIR)$(libdir)/libxenvchan.a + rm -f $(DESTDIR)$(includedir)/libxenvchan.h + rm -f $(DESTDIR)$(libdir)/libxenvchan.so + rm -f $(DESTDIR)$(libdir)/libxenvchan.so.$(MAJOR) + rm -f $(DESTDIR)$(libdir)/libxenvchan.so.$(MAJOR).$(MINOR) + .PHONY: clean clean: $(RM) -f *.o *.opic *.so* *.a vchan-node1 vchan-node2 $(DEPS) diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile index 28b18577e1..83e3416309 100644 --- a/tools/libxc/Makefile +++ b/tools/libxc/Makefile @@ -203,6 +203,22 @@ install: build $(INSTALL_DATA) xencontrol.pc $(DESTDIR)$(PKG_INSTALLDIR) $(INSTALL_DATA) xenguest.pc $(DESTDIR)$(PKG_INSTALLDIR) +.PHONY: uninstall +uninstall: + rm -f $(DESTDIR)$(PKG_INSTALLDIR)/xenguest.pc + rm -f $(DESTDIR)$(includedir)/xenguest.h + rm -f $(DESTDIR)$(libdir)/libxenguest.so + rm -f $(DESTDIR)$(libdir)/libxenguest.so.$(MAJOR) + rm -f $(DESTDIR)$(libdir)/libxenguest.so.$(MAJOR).$(MINOR) + rm -f $(DESTDIR)$(libdir)/libxenguest.a + rm -f $(DESTDIR)$(PKG_INSTALLDIR)/xencontrol.pc + rm -f $(DESTDIR)$(includedir)/xenctrl.h + rm -f $(DESTDIR)$(includedir)/xenctrl_compat.h + rm -f $(DESTDIR)$(libdir)/libxenctrl.so + rm -f $(DESTDIR)$(libdir)/libxenctrl.so.$(MAJOR) + rm -f $(DESTDIR)$(libdir)/libxenctrl.so.$(MAJOR).$(MINOR) + rm -f $(DESTDIR)$(libdir)/libxenctrl.a + .PHONY: TAGS TAGS: etags -t *.c *.h diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile index 2ffb78f5c4..082af8f716 100644 --- a/tools/libxl/Makefile +++ b/tools/libxl/Makefile @@ -327,6 +327,20 @@ install: all $(INSTALL_DATA) xenlight.pc $(DESTDIR)$(PKG_INSTALLDIR) $(INSTALL_DATA) xlutil.pc $(DESTDIR)$(PKG_INSTALLDIR) +.PHONY: uninstall +uninstall: + rm -f $(addprefix $(DESTDIR)$(PKG_INSTALLDIR)/,xlutil.pc xenlight.pc) + rm -f $(addprefix $(DESTDIR)$(includedir)/,libxl.h libxl_event.h libxl_json.h _libxl_types.h _libxl_types_json.h _libxl_list.h libxl_utils.h libxl_uuid.h libxlutil.h) + rm -f $(DESTDIR)$(libdir)/libxlutil.a + rm -f $(DESTDIR)$(libdir)/libxlutil.so + rm -f $(DESTDIR)$(libdir)/libxlutil.so.$(XLUMAJOR) + rm -f $(DESTDIR)$(libdir)/libxlutil.so.$(XLUMAJOR).$(XLUMINOR) + rm -f $(DESTDIR)$(libdir)/libxenlight.a + rm -f $(DESTDIR)$(libdir)/libxenlight.so + rm -f $(DESTDIR)$(libdir)/libxenlight.so.$(MAJOR) + rm -f $(DESTDIR)$(libdir)/libxenlight.so.$(MAJOR).$(MINOR) + rm -f $(DESTDIR)$(LIBEXEC_BIN)/libxl-save-helper + .PHONY: clean clean: $(RM) -f _*.h *.o *.so* *.a $(CLIENTS) $(DEPS) diff --git a/tools/memshr/Makefile b/tools/memshr/Makefile index ce86f20f00..cb5ea61338 100644 --- a/tools/memshr/Makefile +++ b/tools/memshr/Makefile @@ -36,12 +36,14 @@ libmemshr.a: $(LIB-OBJS) install: all +uninstall: + clean: rm -rf *.a *.o *~ $(DEPS) .PHONY: distclean distclean: clean -.PHONY: all build clean install distclean +.PHONY: all build clean install distclean uninstall -include $(DEPS) diff --git a/tools/misc/Makefile b/tools/misc/Makefile index c1113b9632..54f6e2ef53 100644 --- a/tools/misc/Makefile +++ b/tools/misc/Makefile @@ -62,6 +62,12 @@ install: build $(INSTALL_PYTHON_PROG) $(INSTALL_SBIN) $(DESTDIR)$(sbindir) $(INSTALL_PYTHON_PROG) $(INSTALL_PRIVBIN) $(DESTDIR)$(LIBEXEC_BIN) +.PHONY: uninstall +uninstall: + rm -f $(addprefix $(DESTDIR)$(LIBEXEC_BIN)/, $(INSTALL_PRIVBIN)) + rm -f $(addprefix $(DESTDIR)$(sbindir)/, $(INSTALL_SBIN)) + rm -f $(addprefix $(DESTDIR)$(bindir)/, $(INSTALL_BIN)) + .PHONY: clean clean: $(RM) *.o $(TARGETS_BUILD) *~ $(DEPS) diff --git a/tools/ocaml/Makefile b/tools/ocaml/Makefile index cfa931a4d0..66f2d6b131 100644 --- a/tools/ocaml/Makefile +++ b/tools/ocaml/Makefile @@ -18,6 +18,9 @@ all: subdirs-all .PHONY: install install: subdirs-install +.PHONY: uninstall +uninstall: subdirs-uninstall + .PHONY: clean clean: subdirs-clean diff --git a/tools/ocaml/libs/Makefile b/tools/ocaml/libs/Makefile index f7c3c0e646..7e7c27e2d5 100644 --- a/tools/ocaml/libs/Makefile +++ b/tools/ocaml/libs/Makefile @@ -13,6 +13,9 @@ all: subdirs-all .PHONY: install install: subdirs-install +.PHONY: uninstall +uninstall: subdirs-uninstall + .PHONY: clean clean: subdirs-clean diff --git a/tools/ocaml/test/Makefile b/tools/ocaml/test/Makefile index 30a304b6d1..256c830c51 100644 --- a/tools/ocaml/test/Makefile +++ b/tools/ocaml/test/Makefile @@ -50,4 +50,6 @@ bins: $(PROGRAMS) install: +uninstall: + include $(OCAML_TOPLEVEL)/Makefile.rules diff --git a/tools/ocaml/xenstored/Makefile b/tools/ocaml/xenstored/Makefile index d23883683d..68d35c483a 100644 --- a/tools/ocaml/xenstored/Makefile +++ b/tools/ocaml/xenstored/Makefile @@ -90,6 +90,10 @@ install: all $(INSTALL_DIR) $(DESTDIR)$(XEN_CONFIG_DIR) $(INSTALL_DATA) oxenstored.conf $(DESTDIR)$(XEN_CONFIG_DIR) +uninstall: + rm -f $(DESTDIR)$(XEN_CONFIG_DIR)/oxenstored.conf + rm -f $(DESTDIR)$(sbindir)/oxenstored + include $(OCAML_TOPLEVEL)/Makefile.rules genpath-target = $(call buildmakevars2module,paths.ml) diff --git a/tools/pygrub/Makefile b/tools/pygrub/Makefile index a31849078c..3a6074b7e5 100644 --- a/tools/pygrub/Makefile +++ b/tools/pygrub/Makefile @@ -4,6 +4,7 @@ include $(XEN_ROOT)/tools/Rules.mk PY_CFLAGS = $(CFLAGS) $(PY_NOOPT_CFLAGS) PY_LDFLAGS = $(LDFLAGS) $(APPEND_LDFLAGS) +INSTALL_LOG = build/installed_files.txt .PHONY: all all: build @@ -13,18 +14,26 @@ build: .PHONY: install install: all + $(INSTALL_DIR) $(DESTDIR)/$(bindir) CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDFLAGS="$(PY_LDFLAGS)" $(PYTHON) \ - setup.py install $(PYTHON_PREFIX_ARG) --root="$(DESTDIR)" \ - --install-scripts=$(LIBEXEC_BIN) --force + setup.py install --record $(INSTALL_LOG) $(PYTHON_PREFIX_ARG) \ + --root="$(DESTDIR)" --install-scripts=$(LIBEXEC_BIN) --force set -e; if [ $(bindir) != $(LIBEXEC_BIN) -a \ "`readlink -f $(DESTDIR)/$(bindir)`" != \ "`readlink -f $(LIBEXEC_BIN)`" ]; then \ ln -sf $(LIBEXEC_BIN)/pygrub $(DESTDIR)/$(bindir); \ fi +.PHONY: uninstall +uninstall: + rm -f $(DESTDIR)/$(bindir)/pygrub + if [ -e $(INSTALL_LOG) ]; then \ + cat $(INSTALL_LOG) | xargs -i rm -f $(DESTDIR)/{}; \ + fi + .PHONY: clean clean: - rm -rf build tmp *.pyc *.pyo *.o *.a *~ a.out $(DEPS) + rm -rf build tmp *.pyc *.pyo *.o *.a *~ a.out $(INSTALL_LOG) $(DEPS) .PHONY: distclean distclean: clean diff --git a/tools/python/Makefile b/tools/python/Makefile index da08f46fb8..e7a3c5131a 100644 --- a/tools/python/Makefile +++ b/tools/python/Makefile @@ -6,6 +6,7 @@ all: build PY_CFLAGS = $(CFLAGS) $(PY_NOOPT_CFLAGS) PY_LDFLAGS = $(LDFLAGS) $(APPEND_LDFLAGS) +INSTALL_LOG = build/installed_files.txt .PHONY: build build: @@ -16,12 +17,20 @@ install: $(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN) CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDFLAGS="$(PY_LDFLAGS)" $(PYTHON) \ - setup.py install $(PYTHON_PREFIX_ARG) --root="$(DESTDIR)" \ - --force + setup.py install --record $(INSTALL_LOG) $(PYTHON_PREFIX_ARG) \ + --root="$(DESTDIR)" --force $(INSTALL_PROG) scripts/convert-legacy-stream $(DESTDIR)$(LIBEXEC_BIN) $(INSTALL_PROG) scripts/verify-stream-v2 $(DESTDIR)$(LIBEXEC_BIN) +.PHONY: uninstall +uninstall: + rm -f $(DESTDIR)$(LIBEXEC_BIN)/verify-stream-v2 + rm -f $(DESTDIR)$(LIBEXEC_BIN)/convert-legacy-stream + if [ -e $(INSTALL_LOG) ]; then \ + cat $(INSTALL_LOG) | xargs -i rm -f $(DESTDIR)/{}; \ + fi + .PHONY: test test: export LD_LIBRARY_PATH=$$(readlink -f ../libxc):$$(readlink -f ../xenstore); $(PYTHON) test.py -b -u diff --git a/tools/tests/Makefile b/tools/tests/Makefile index 639776130b..7162945121 100644 --- a/tools/tests/Makefile +++ b/tools/tests/Makefile @@ -14,7 +14,9 @@ SUBDIRS-$(CONFIG_X86) += x86_emulator SUBDIRS-y += xen-access SUBDIRS-y += xenstore -.PHONY: all clean install distclean +.PHONY: all clean install distclean uninstall all clean distclean: %: subdirs-% install: + +uninstall: diff --git a/tools/xcutils/Makefile b/tools/xcutils/Makefile index e127af8c2e..6bc9062d53 100644 --- a/tools/xcutils/Makefile +++ b/tools/xcutils/Makefile @@ -36,6 +36,9 @@ install: build $(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN) $(INSTALL_PROG) $(PROGRAMS) $(DESTDIR)$(LIBEXEC_BIN) +.PHONY: uninstall +uninstall: + rm -f $(addprefix $(DESTDIR)$(LIBEXECDIR)/, $(PROGRAMS)) .PHONY: clean clean: diff --git a/tools/xenmon/Makefile b/tools/xenmon/Makefile index 98056f24de..537c17651b 100644 --- a/tools/xenmon/Makefile +++ b/tools/xenmon/Makefile @@ -34,6 +34,12 @@ install: build $(INSTALL_PROG) xentrace_setmask $(DESTDIR)$(sbindir)/xentrace_setmask $(INSTALL_PROG) xenmon.py $(DESTDIR)$(sbindir)/xenmon.py +.PHONY: uninstall +uninstall: + rm -f $(DESTDIR)$(sbindir)/xenbaked + rm -f $(DESTDIR)$(sbindir)/xentrace_setmask + rm -f $(DESTDIR)$(sbindir)/xenmon.py + .PHONY: clean clean: $(RM) -f $(DEPS) diff --git a/tools/xenpaging/Makefile b/tools/xenpaging/Makefile index 64876b3a20..ba083caaf9 100644 --- a/tools/xenpaging/Makefile +++ b/tools/xenpaging/Makefile @@ -28,12 +28,15 @@ install: all $(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN) $(INSTALL_PROG) $(IBINS) $(DESTDIR)$(LIBEXEC_BIN) +uninstall: + rm -f $(addprefix $(DESTDIR)$(LIBEXEC_BIN)/, $(IBINS)) + clean: rm -f *.o *~ $(DEPS) xen TAGS $(IBINS) $(LIB) distclean: clean -.PHONY: clean install distclean +.PHONY: clean install distclean uninstall .PHONY: TAGS TAGS: diff --git a/tools/xenpmd/Makefile b/tools/xenpmd/Makefile index 55e8fc5f0f..e0d0697ee0 100644 --- a/tools/xenpmd/Makefile +++ b/tools/xenpmd/Makefile @@ -21,6 +21,10 @@ clean: .PHONY: distclean distclean: clean +.PHONY: uninstall +uninstall: + rm -f $(DESTDIR)$(sbindir)/xenpmd + xenpmd: xenpmd.o Makefile $(CC) $(LDFLAGS) $< -o $@ $(LDLIBS) $(APPEND_LDFLAGS) diff --git a/tools/xenstat/Makefile b/tools/xenstat/Makefile index 90d033a78c..b300f31289 100644 --- a/tools/xenstat/Makefile +++ b/tools/xenstat/Makefile @@ -5,6 +5,6 @@ SUBDIRS := SUBDIRS += libxenstat SUBDIRS += xentop -.PHONY: all install clean distclean +.PHONY: all install clean distclean uninstall -all install clean distclean: %: subdirs-% +all install clean distclean uninstall: %: subdirs-% diff --git a/tools/xenstat/libxenstat/Makefile b/tools/xenstat/libxenstat/Makefile index 9d6649d466..4b94d81757 100644 --- a/tools/xenstat/libxenstat/Makefile +++ b/tools/xenstat/libxenstat/Makefile @@ -81,6 +81,15 @@ install: all ln -sf libxenstat.so.$(MAJOR) $(DESTDIR)$(libdir)/libxenstat.so $(INSTALL_DATA) xenstat.pc $(DESTDIR)$(PKG_INSTALLDIR) +.PHONY: uninstall +uninstall: + rm -f $(DESTDIR)$(PKG_INSTALLDIR)/xenstat.pc + rm -f $(DESTDIR)$(libdir)/libxenstat.so + rm -f $(DESTDIR)$(libdir)/libxenstat.so.$(MAJOR) + rm -f $(DESTDIR)$(libdir)/libxenstat.so.$(MAJOR).$(MINOR) + rm -f $(DESTDIR)$(libdir)/libxenstat.a + rm -f $(DESTDIR)$(includedir)/xenstat.h + PYLIB=bindings/swig/python/_xenstat.so PYMOD=bindings/swig/python/xenstat.py PYSRC=bindings/swig/python/_xenstat.c @@ -97,6 +106,9 @@ all-bindings: perl-bindings python-bindings # The install-bindings target installs all the language bindings install-bindings: install-perl-bindings install-python-bindings +.PHONY: uninstall-bindings +uninstall-bindings: uninstall-perl-bindings uninstall-python-bindings + $(BINDINGS): $(SHLIB) $(SHLIB_LINKS) src/xenstat.h SWIG_FLAGS=-module xenstat -Isrc @@ -118,10 +130,16 @@ install-python-bindings: $(PYLIB) $(PYMOD) $(INSTALL_PROG) $(PYLIB) $(DESTDIR)$(pythonlibdir)/_xenstat.so $(INSTALL_PROG) $(PYMOD) $(DESTDIR)$(pythonlibdir)/xenstat.py +.PHONY: uninstall-python-bindings +uninstall-python-bindings: + rm -f $(DESTDIR)$(pythonlibdir)/_xenstat.so + rm -f $(DESTDIR)$(pythonlibdir)/xenstat.py + ifeq ($(XENSTAT_PYTHON_BINDINGS),y) .PHONY: all all: python-bindings install: install-python-bindings +uninstall: uninstall-python-bindings endif # Perl bindings @@ -143,12 +161,18 @@ install-perl-bindings: $(PERLLIB) $(PERLMOD) $(INSTALL_PROG) $(PERLLIB) $(DESTDIR)$(perllibdir)/xenstat.so $(INSTALL_PROG) $(PERLMOD) $(DESTDIR)$(perlmoddir)/xenstat.pm +.PHONY: uninstall-perl-bindings +uninstall-perl-bindings: + rm -f $(DESTDIR)$(perllibdir)/xenstat.so + rm -f $(DESTDIR)$(perlmoddir)/xenstat.pm + ifeq ($(XENSTAT_PERL_BINDINGS),y) .PHONY: all all: perl-bindings .PHONY: install install: install-perl-bindings +uninstall: uninstall-perl-bindings endif .PHONY: clean diff --git a/tools/xenstat/xentop/Makefile b/tools/xenstat/xentop/Makefile index 2275ccda8e..2e156f14fd 100644 --- a/tools/xenstat/xentop/Makefile +++ b/tools/xenstat/xentop/Makefile @@ -14,8 +14,8 @@ XEN_ROOT=$(CURDIR)/../../.. include $(XEN_ROOT)/tools/Rules.mk ifneq ($(XENSTAT_XENTOP),y) -.PHONY: all install xentop -all install xentop: +.PHONY: all install xentop uninstall +all install xentop uninstall: else CFLAGS += -DGCC_PRINTF -Werror $(CFLAGS_libxenstat) @@ -34,6 +34,10 @@ install: xentop $(INSTALL_DIR) $(DESTDIR)$(sbindir) $(INSTALL_PROG) xentop $(DESTDIR)$(sbindir)/xentop +.PHONY: uninstall +uninstall: + rm -f $(DESTDIR)$(sbindir)/xentop + endif .PHONY: clean diff --git a/tools/xenstore/Makefile b/tools/xenstore/Makefile index 773d646539..108c9421fa 100644 --- a/tools/xenstore/Makefile +++ b/tools/xenstore/Makefile @@ -173,6 +173,36 @@ endif ln -sf xenstore-compat/xs_lib.h $(DESTDIR)$(includedir)/xs_lib.h $(INSTALL_DATA) xenstore.pc $(DESTDIR)$(PKG_INSTALLDIR) +.PHONY: uninstall +uninstall: + rm -f $(DESTDIR)$(PKG_INSTALLDIR)/xenstore.pc + rm -f $(DESTDIR)$(includedir)/xs_lib.h + rm -f $(DESTDIR)$(includedir)/xs.h + rm -f $(DESTDIR)$(includedir)/xenstore-compat/xs_lib.h + rm -f $(DESTDIR)$(includedir)/xenstore-compat/xs.h + rm -f $(DESTDIR)$(includedir)/xenstore_lib.h + rm -f $(DESTDIR)$(includedir)/xenstore.h + rm -f $(DESTDIR)$(libdir)/libxenstore.a + rm -f $(DESTDIR)$(libdir)/libxenstore.so + rm -f $(DESTDIR)$(libdir)/libxenstore.so.$(MAJOR) + rm -f $(DESTDIR)$(libdir)/libxenstore.so.$(MAJOR).$(MINOR) + rm -f $(addprefix $(DESTDIR)$(bindir)/, $(CLIENTS)) + rm -f $(DESTDIR)$(bindir)/xenstore + rm -f $(DESTDIR)$(bindir)/xenstore-control +ifeq ($(XENSTORE_XENSTORED),y) + rm -f $(DESTDIR)$(sbindir)/xenstored + if [ -d $(DESTDIR)$(XEN_LIB_STORED) ]; then \ + rmdir --ignore-fail-on-non-empty $(DESTDIR)$(XEN_LIB_STORED); \ + fi +endif + if [ -d $(DESTDIR)$(includedir)/xenstore-compat ]; then \ + rmdir --ignore-fail-on-non-empty $(DESTDIR)$(includedir)/xenstore-compat; \ + fi + +.PHONY: clients-uninstall +clients-uninstall: + rm -f $(addprefix $(DESTDIR)$(bindir)/, $(CLIENTS)) + .PHONY: clients-install clients-install: clients $(INSTALL_DIR) $(DESTDIR)$(bindir) diff --git a/tools/xentrace/Makefile b/tools/xentrace/Makefile index c8c36a8c4e..bcd8f5b1b6 100644 --- a/tools/xentrace/Makefile +++ b/tools/xentrace/Makefile @@ -33,6 +33,15 @@ endif $(INSTALL_PYTHON_PROG) $(SCRIPTS) $(DESTDIR)$(bindir) [ -z "$(LIBBIN)" ] || $(INSTALL_PROG) $(LIBBIN) $(DESTDIR)$(LIBEXEC_BIN) +.PHONY: uninstall +uninstall: + rm -f $(addprefix $(DESTDIR)$(LIBEXEC_BIN)/, $(LIBBIN)) + rm -f $(addprefix $(DESTDIR)$(bindir)/, $(SCRIPTS)) + rm -f $(addprefix $(DESTDIR)$(sbindir)/, $(SBIN)) +ifneq ($(BIN),) + rm -f $(addprefix $(DESTDIR)$(bindir)/, $(BIN)) +endif + .PHONY: clean clean: $(RM) *.a *.so *.o *.rpm $(BIN) $(SBIN) $(LIBBIN) $(DEPS) diff --git a/tools/xl/Makefile b/tools/xl/Makefile index e16f87747d..c8688992f3 100644 --- a/tools/xl/Makefile +++ b/tools/xl/Makefile @@ -44,6 +44,11 @@ install: all $(INSTALL_PROG) xl $(DESTDIR)$(sbindir) $(INSTALL_DATA) bash-completion $(DESTDIR)$(BASH_COMPLETION_DIR)/xl.sh +.PHONY: uninstall +uninstall: + rm -f $(DESTDIR)$(BASH_COMPLETION_DIR)/xl.sh + rm -f $(DESTDIR)$(sbindir)/xl + .PHONY: clean clean: $(RM) -f *.o xl _paths.h $(DEPS)