From patchwork Thu Jul 27 17:08:27 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petre Ovidiu PIRCALABU X-Patchwork-Id: 9867405 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id E2AFE6038C for ; Thu, 27 Jul 2017 17:12:10 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C6E412884F for ; Thu, 27 Jul 2017 17:12:10 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BB47B28853; Thu, 27 Jul 2017 17:12:10 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 7B3D02885A for ; Thu, 27 Jul 2017 17:12:07 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1damH8-00006s-WF; Thu, 27 Jul 2017 17:08:39 +0000 Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1damH6-00006m-Rb for xen-devel@lists.xenproject.org; Thu, 27 Jul 2017 17:08:37 +0000 Received: from [85.158.143.35] by server-4.bemta-6.messagelabs.com id AF/E6-02962-41E1A795; Thu, 27 Jul 2017 17:08:36 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprBIsWRWlGSWpSXmKPExsUSfTyjVVdIrir S4MF7MYvvWyYzOTB6HP5whSWAMYo1My8pvyKBNeNk5wGWgv+rmCvOzn/J3MC45wNTFyMnB7OA tUTvv2bGLkYuDhaBZhaJM7uOMkM4P5kl1p7pYgepEhLwkLjc+5YVJCEksIBRYt/ugywQCXeJy +8WsEMkFjNK7G9vZAZJsAkYSSxZ9hasW0RASeLeqslMIEXMAj+YJNp2ngRbLiygL/H17Es2EJ tFQFVi7d9vYFN5BTwlOn7dA4tLCMhJ3DzXyTyBkW8BI8MqRo3i1KKy1CJdI3O9pKLM9IyS3MT MHF1DAzO93NTi4sT01JzEpGK95PzcTYzAkGEAgh2Mi9cGHmKU5GBSEuWdZFoRKcSXlJ9SmZFY nBFfVJqTWnyIUYaDQ0mC96pMVaSQYFFqempFWmYOMHhh0hIcPEoivD9A0rzFBYm5xZnpEKlTj JYcG1av/8LE0THj5zcmjlcT/n9jEmLJy89LlRLntZcFahAAacgozYMbB4uwS4yyUsK8jEAHCv EUpBblZpagyr9iFOdgVBLm/Q+yliczrwRu6yugg5iADprYVAlyUEkiQkqqgbHxiJCy6+HLM9X n3v7fsDPwdrBy8vMJGx++3dS2xf/FST6ZL1N3mxtOEQxof3M5/enFH6s8fNI2rlg2h7VZ0/Cy sdn7uIjOfFmRAssci7JDmlb7z4p/zZRLy7tdJGLle/6De3P9FYHLc4zz/hVONp+xY5J+8MfoC xfL1dZJ2XrbC7PFznrWuFmJpTgj0VCLuag4EQCf5VFRqwIAAA== X-Env-Sender: ppircalabu@bitdefender.com X-Msg-Ref: server-7.tower-21.messagelabs.com!1501175313!75333427!1 X-Originating-IP: [91.199.104.133] X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG, UPPERCASE_25_50 X-StarScan-Received: X-StarScan-Version: 9.4.25; banners=-,-,- X-VirusChecked: Checked Received: (qmail 19906 invoked from network); 27 Jul 2017 17:08:34 -0000 Received: from mx02.bbu.dsd.mx.bitdefender.com (HELO mx02.buh.bitdefender.com) (91.199.104.133) by server-7.tower-21.messagelabs.com with DHE-RSA-AES128-GCM-SHA256 encrypted SMTP; 27 Jul 2017 17:08:34 -0000 Comment: DomainKeys? See http://domainkeys.sourceforge.net/ DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=bitdefender.com; b=nE3WMGf2ws8Fp1Cj8EV2GDtzlEH7pNs1i+UQ7q36VVN/eMK/xY03e9f+CU2Ph2DQZDodvV/XyQoVhZ0KnnIFH0H551Ft6Zqpaly55pG+jmW6tb0lvEFy2F57fk5kZkCBWgqUy/esj5TtdFrP19jleqzN1VIrCVUZGk1ndlenFLBsz5DK7VoC7v31oMtdiCRGiImOOZxejI8qFF5wJwsdDDLsfDre+3dFhtRDmDnywFUhXUnqtxwpStuk1cJDXRB5NYuGqJER1ClIKjv4pDy0VcEYZdII7zZ1jepXxixO8HRdmNHX0h5vQwkZTpIZxY5eQ6jWim+B81r9tAupwZv4pw==; h=Received:Received:Received:Received:From:To:Cc:Subject:Date:Message-Id:X-Mailer; DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=bitdefender.com; h=from:to :cc:subject:date:message-id; s=default; bh=3cpfVO5AyHDUr3veV+jlA 82zUwU=; b=Bh6yExDXQ2YiTsj58Urmz8gRoWS250BeajwxeEoDEll/yTqq95/Ot UVIxqocHum+3K9wVYyiY+YcYETAla6ypCYzGTatootV7jr+zpvp+g8gWupI0nMNT cEd+pJN26khDDBQPs7dH58MtCMMUzTvjMWcc2BnMK7ylMoz03fYGjC6uPLhCD7Ch lcj8OKa8rvJAu0F/Jkhf2+//aR7c0cIyfv7b/u05/b6VJrV6vpH+YMNUTLUwHb6G dc9jIPt1VcdGnr8AhPa3rFVPclqWVGRkkdxwAmod/vqqgYYj4IZyp0fq9O9vIx0u fLQO/8/NXgFZ6jSwDcME+UKuitREVzuQA== Received: (qmail 16581 invoked from network); 27 Jul 2017 20:08:32 +0300 Received: from mx01robo.bbu.dsd.mx.bitdefender.com (10.17.80.60) by mx02.buh.bitdefender.com with AES128-GCM-SHA256 encrypted SMTP; 27 Jul 2017 20:08:32 +0300 Received: (qmail 6471 invoked from network); 27 Jul 2017 20:08:31 +0300 Received: from unknown (HELO pepi-OptiPlex-9020.dsd.bitdefender.biz) (10.10.194.146) by mx01robo.bbu.dsd.mx.bitdefender.com with SMTP; 27 Jul 2017 20:08:31 +0300 From: Petre Pircalabu To: xen-devel@lists.xenproject.org Date: Thu, 27 Jul 2017 20:08:27 +0300 Message-Id: <1501175307-4939-1-git-send-email-ppircalabu@bitdefender.com> X-Mailer: git-send-email 2.7.4 Cc: elena.ufimtseva@oracle.com, Petre Pircalabu , tamas@tklengyel.com, wei.liu2@citrix.com, rcojocaru@bitdefender.com, george.dunlap@eu.citrix.com, ian.jackson@eu.citrix.com, dave@recoil.org, tim@xen.org, marmarek@invisiblethingslab.com, jbeulich@suse.com, andrew.cooper3@citrix.com, samuel.thibault@ens-lyon.org, dgdegra@tycho.nsa.gov Subject: [Xen-devel] [PATCH] Makefile: Fix uninstall target X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP 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 --- Makefile | 22 +++++++++++-- docs/Makefile | 15 ++++++++- m4/stubdom.m4 | 2 ++ stubdom/Makefile | 31 ++++++++++++++++++ tools/Makefile | 47 +++++++--------------------- tools/Rules.mk | 4 +-- tools/blktap2/Makefile | 4 +-- tools/blktap2/control/Makefile | 10 +++++- tools/blktap2/drivers/Makefile | 5 ++- tools/blktap2/include/Makefile | 2 ++ tools/blktap2/lvm/Makefile | 4 ++- tools/blktap2/vhd/Makefile | 6 +++- tools/blktap2/vhd/lib/Makefile | 8 ++++- tools/console/Makefile | 5 +++ tools/debugger/gdbsx/Makefile | 4 +++ tools/debugger/kdd/Makefile | 4 +++ tools/examples/Makefile | 11 +++++++ tools/firmware/Makefile | 10 ++++++ tools/flask/Makefile | 4 +-- tools/flask/policy/Makefile.common | 5 ++- tools/flask/utils/Makefile | 4 +++ tools/fuzz/Makefile | 4 +-- tools/fuzz/libelf/Makefile | 2 ++ tools/fuzz/x86_instruction_emulator/Makefile | 2 ++ tools/golang/Makefile | 3 ++ tools/golang/xenlight/Makefile | 3 ++ tools/helpers/Makefile | 7 +++++ tools/hotplug/FreeBSD/Makefile | 13 ++++++++ tools/hotplug/Linux/Makefile | 19 +++++++++++ tools/hotplug/Linux/systemd/Makefile | 6 ++++ tools/hotplug/Makefile | 4 +-- tools/hotplug/NetBSD/Makefile | 13 ++++++++ tools/hotplug/common/Makefile | 8 +++++ tools/include/Makefile | 5 +++ tools/libfsimage/Makefile | 4 +-- tools/libfsimage/Rules.mk | 7 +++++ tools/libfsimage/common/Makefile | 9 ++++++ tools/libfsimage/ext2fs-lib/Makefile | 3 ++ tools/libfsimage/ext2fs/Makefile | 3 ++ tools/libfsimage/fat/Makefile | 3 ++ tools/libfsimage/iso9660/Makefile | 3 ++ tools/libfsimage/reiserfs/Makefile | 3 ++ tools/libfsimage/ufs/Makefile | 3 ++ tools/libfsimage/xfs/Makefile | 3 ++ tools/libfsimage/zfs/Makefile | 3 ++ tools/libs/Makefile | 2 +- tools/libs/call/Makefile | 9 ++++++ tools/libs/devicemodel/Makefile | 9 ++++++ tools/libs/evtchn/Makefile | 9 ++++++ tools/libs/foreignmemory/Makefile | 9 ++++++ tools/libs/gnttab/Makefile | 9 ++++++ tools/libs/toollog/Makefile | 9 ++++++ tools/libvchan/Makefile | 9 ++++++ tools/libxc/Makefile | 16 ++++++++++ tools/libxl/Makefile | 14 +++++++++ tools/memshr/Makefile | 4 ++- tools/misc/Makefile | 6 ++++ tools/ocaml/Makefile | 3 ++ tools/ocaml/libs/Makefile | 3 ++ tools/ocaml/test/Makefile | 2 ++ tools/ocaml/xenstored/Makefile | 4 +++ tools/pygrub/Makefile | 15 +++++++-- tools/python/Makefile | 13 ++++++-- tools/tests/Makefile | 4 ++- tools/xcutils/Makefile | 3 ++ tools/xenmon/Makefile | 6 ++++ tools/xenpaging/Makefile | 5 ++- tools/xenpmd/Makefile | 4 +++ tools/xenstat/Makefile | 4 +-- tools/xenstat/libxenstat/Makefile | 24 ++++++++++++++ tools/xenstat/xentop/Makefile | 8 +++-- tools/xenstore/Makefile | 30 ++++++++++++++++++ tools/xentrace/Makefile | 9 ++++++ tools/xl/Makefile | 5 +++ 74 files changed, 517 insertions(+), 70 deletions(-) diff --git a/Makefile b/Makefile index 0b5f57d..1d43044 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 e064de0..9422472 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 f4b4cef..6aa488b 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 5055e31..39067c8 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 496428e..11ad42c 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 f55fb66..4592601 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 94200dc..f4758ef 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 0d731f7..fe41891 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 5328c40..f610ddb 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 66e8a1e..c8e2d26 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 7d5f8ea..72fea0a 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 fabd665..e60b7af 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 ab2d648..3bf603e 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 c8b0300..abe77b2 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 4ed6d76..723a274 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 f3a597d..bcec440 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 87dd760..f86ed3a 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 8562f54..868b506 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 a31cc16..335ee2a 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 bb85ded..bea5ba4 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 91a53b4..fc047e9 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 986fbb8..85213dc 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 6cdc31e..9eb30ee 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 6e3fa1e..a3f6b2c 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 47a9235..aba11eb 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 a4a1a5b..88202a6 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 5017350..fcfca46 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 bd7a86f..de9928c 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 29280cb..d4c3cdc 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 7d24bbe..a5d41d8 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 c1a82c1..4cf6cc0 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 d01aabf..6926885 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 b53b55c..ef48bfa 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 db0f030..6665105 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 69fd18a..da0deca 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 a0c6504..ee7de44 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 4840bc2..af6f67e 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 0e00fde..431a790 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 8ff4c71..c62ae35 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 2911a0e..7ee5e75 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 4096caf..bc86baf 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 57f286b..5acfedf 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 c137108..f32b917 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 6580007..54eeb6e 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 4b9f131..084e5ec 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 deae4ae..2035873 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 30f8437..bd3d1f0 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 81fa5a4..e41fd20 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 cbd4219..c9537ff 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 5e93ee7..b110076 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 88b3683..3363bd5 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 7361194..01619ec 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 70c92bd..277c1c0 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 28b1857..83e3416 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 2ffb78f..082af8f 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 ce86f20..cb5ea61 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 c1113b9..54f6e2e 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 cfa931a..66f2d6b 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 f7c3c0e..7e7c27e 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 30a304b..256c830 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 d238836..68d35c4 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 a318490..3a6074b 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 da08f46..e7a3c51 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 6397761..7162945 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 e127af8..6bc9062 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 98056f2..537c176 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 64876b3..ba083ca 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 55e8fc5..e0d0697 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 90d033a..b300f31 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 9d6649d..4b94d81 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 2275ccd..2e156f1 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 773d646..108c942 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 c8c36a8..8f8e219 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 e16f877..c868899 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)