diff options
67 files changed, 506 insertions, 200 deletions
@@ -14,6 +14,7 @@ export XEN_TARGET_ARCH SUBARCH XEN_SYSTYPE endif # Default target must appear before any include lines +.PHONY: all all: dist XEN_ROOT=$(CURDIR) @@ -24,12 +25,11 @@ ifeq ($(XEN_TARGET_X86_PAE),y) export pae=y endif -.PHONY: all dist install xen kernels tools dev-docs docs world clean -.PHONY: mkpatches mrproper kbuild kdelete kclean - # build and install everything into the standard system directories +.PHONY: install install: install-xen install-kernels install-tools install-docs +.PHONY: build build: kernels $(MAKE) -C xen build $(MAKE) -C tools build @@ -38,10 +38,12 @@ build: kernels # The test target is for unit tests that can run without an installation. Of # course, many tests require a machine running Xen itself, and these are # handled elsewhere. +.PHONY: test test: $(MAKE) -C tools/python test # build and install everything into local dist directory +.PHONY: dist dist: DESTDIR=$(DISTDIR)/install dist: dist-xen dist-kernels dist-tools dist-docs $(INSTALL_DIR) $(DISTDIR)/check @@ -54,67 +56,83 @@ dist-%: install-% @: # do nothing # Legacy dist targets +.PHONY: xen tools kernels docs xen: dist-xen tools: dist-tools kernels: dist-kernels docs: dist-docs +.PHONY: prep-kernels prep-kernels: for i in $(XKERNELS) ; do $(MAKE) $$i-prep || exit 1; done +.PHONY: install-xen install-xen: $(MAKE) -C xen install +.PHONY: install-tools install-tools: $(MAKE) -C tools install +.PHONY: install-kernels install-kernels: for i in $(XKERNELS) ; do $(MAKE) $$i-install || exit 1; done +.PHONY: install-docs install-docs: sh ./docs/check_pkgs && $(MAKE) -C docs install || true +.PHONY: dev-docs dev-docs: $(MAKE) -C docs dev-docs # Build all the various kernels and modules +.PHONY: kbuild kbuild: kernels # Delete the kernel build trees entirely +.PHONY: kdelete kdelete: for i in $(XKERNELS) ; do $(MAKE) $$i-delete ; done # Clean the kernel build trees +.PHONY: kclean kclean: for i in $(XKERNELS) ; do $(MAKE) $$i-clean ; done # Make patches from kernel sparse trees +.PHONY: mkpatches mkpatches: for i in $(ALLSPARSETREES) ; do $(MAKE) $$i-xen.patch; done # build xen, the tools, and a domain 0 plus unprivileged linux-xen images, # and place them in the install directory. 'make install' should then # copy them to the normal system directories +.PHONY: world world: $(MAKE) clean $(MAKE) kdelete $(MAKE) dist # clean doesn't do a kclean +.PHONY: clean clean:: $(MAKE) -C xen clean $(MAKE) -C tools clean $(MAKE) -C docs clean # clean, but blow away kernel build tree plus tarballs +.PHONY: distclean distclean: clean rm -rf dist patches/tmp for i in $(ALLKERNELS) ; do $(MAKE) $$i-delete ; done for i in $(ALLSPARSETREES) ; do $(MAKE) $$i-mrproper ; done # Linux name for GNU distclean +.PHONY: mrproper mrproper: distclean +.PHONY: help help: @echo 'Installation targets:' @echo ' install - build and install everything' @@ -156,6 +174,7 @@ help: @echo ' true if set to non-empty value, false otherwise' # Use this target with extreme care! +.PHONY: uninstall uninstall: D=$(DESTDIR) uninstall: [ -d $(D)/etc/xen ] && mv -f $(D)/etc/xen $(D)/etc/xen.old-`date +%s` || true @@ -189,5 +208,6 @@ uninstall: rm -rf $(D)/usr/share/man/man8/xen* # Legacy targets for compatibility +.PHONY: linux26 linux26: $(MAKE) 'KERNELS=linux-2.6*' kernels @@ -1,158 +1,176 @@ -################################ - __ __ _____ ___ - \ \/ /___ _ __ |___ / / _ \ - \ // _ \ '_ \ |_ \| | | | - / \ __/ | | | ___) | |_| | - /_/\_\___|_| |_| |____(_)___/ - -################################ - -http://www.xensource.com/xen/about.html - -What is Xen? -============ - -Xen is a Virtual Machine Monitor (VMM) originally developed by the -Systems Research Group of the University of Cambridge Computer -Laboratory, as part of the UK-EPSRC funded XenoServers project. Xen -is freely-distributable Open Source software, released under the GNU -GPL. Since its initial public release, Xen has grown a large -development community, spearheaded by XenSource Inc, a company created -by the original Xen development team to build enterprise products -around Xen. - -The 3.0 release offers excellent performance, hardware support and -enterprise-grade features such as x86_32-PAE, x86_64, SMP guests and -live relocation of VMs. This install tree contains source for a Linux -2.6 guest; ports to Linux 2.4, NetBSD, FreeBSD and Solaris will follow -later (and are already available for previous Xen releases). - -This file contains some quick-start instructions to install Xen on -your system. For full documentation, see the Xen User Manual. If this -is a pre-built release then you can find the manual at: - dist/install/usr/share/doc/xen/pdf/user.pdf -If you have a source release, then 'make -C docs' will build the -manual at docs/pdf/user.pdf. - -Quick-Start Guide - Pre-Built Binary Release -============================================ - -[NB. Unless noted otherwise, all the following steps should be -performed with root privileges.] - -1. Install the binary distribution onto your filesystem: - - # sh ./install.sh - - Among other things, this will install Xen and Xen-ready Linux - kernel files in /boot, kernel modules and Python packages in /lib, - and various control tools in standard 'bin' directories. - -2. Configure your bootloader to boot Xen and an initial Linux virtual - machine. Note that Xen currently only works with GRUB and pxelinux - derived boot loaders: less common alternatives such as LILO are - *not* supported. You can most likely find your GRUB menu file at - /boot/grub/menu.lst: edit this file to include an entry like the - following: - - title Xen 3.0 / XenLinux 2.6 - kernel /boot/xen-3.0.gz console=vga - module /boot/vmlinuz-2.6-xen root=<root-dev> ro console=tty0 - module /boot/initrd-2.6-xen.img - - NB: Not all kernel configs need an initial ram disk (initrd), but - if you do specify one you'll need to use the 'module' grub directive - rather than 'initrd'. - - The linux command line takes all the usual options, such as - root=<root-dev> to specify your usual root partition (e.g., - /dev/hda1). - - The Xen command line takes a number of optional arguments described - in the manual. The most common is 'dom0_mem=xxxM' which sets the - amount of memory to allocate for use by your initial virtual - machine (known as domain 0). Note that Xen itself reserves about - 32MB memory for internal use, which is not available for allocation - to virtual machines. - -3. Reboot your system and select the "Xen 3.0 / XenLinux 2.6" menu - option. After booting Xen, Linux will start and your initialisation - scripts should execute in the usual way. - -Quick-Start Guide - Source Release -================================== - -First, there are a number of prerequisites for building a Xen source -release. Make sure you have all the following installed, either by -visiting the project webpage or installing a pre-built package -provided by your Linux distributor: - * GCC (preferably v3.2.x or v3.3.x; older versions are unsupported) - * GNU Make - * GNU Binutils - * Development install of zlib (e.g., zlib-dev) - * Development install of Python v2.3 or later (e.g., python-dev) - * bridge-utils package (/sbin/brctl) - * iproute package (/sbin/ip) - * hotplug or udev - -[NB. Unless noted otherwise, all the following steps should be -performed with root privileges.] - -1. Download and untar the source tarball file. This will be a - file named xen-unstable-src.tgz, or xen-$version-src.tgz. - You can also pull the current version from the SCMS - that is being used (Bitkeeper, scheduled to change shortly). - - # tar xzf xen-unstable-src.tgz - - Assuming you are using the unstable tree, this will - untar into xen-unstable. The rest of the instructions - use the unstable tree as an example, substitute the - version for unstable. - -2. cd to xen-unstable (or whatever you sensibly rename it to). - The Linux, netbsd and freebsd kernel source trees are in - the $os-$version-xen-sparse directories. - -On Linux: - -3. For the very first build, or if you want to destroy existing - .configs and build trees, perform the following steps: - - # make KERNELS=linux-2.6-xen world - # make install - - It will create and install into the dist/ directory which is the - default install location. It will build the xen binary (xen.gz), - and a linux kernel and modules that can be used in both dom0 and an - unprivileged guest kernel (vmlinuz-2.6.x-xen), the tools and the - documentation. - - If you don't specify KERNELS= on the make command line it will - default to building two kernels, vmlinuz-2.6.x-xen0 and - vmlinuz-2.6.x-xenU. These are smaller builds with just selected - modules, intended primarilly for developers that don't like to wait - for a -xen kernel to build. The -xenU kernel is particularly small - as it does not contain any physical device drivers, and hence is - only useful for guest domains. - - If you want to build an x86_32 PAE capable xen and kernel to work - on machines with >= 4GB of memory, use XEN_TARGET_X86_PAE=y on the - make command line. - -4. To rebuild an existing tree without modifying the config: - # make dist - - This will build and install xen, kernels, tools, and - docs into the local dist/ directory. - -5. To rebuild a kernel with a modified config: - - # make linux-2.6-xen-config CONFIGMODE=menuconfig (or xconfig) - # make linux-2.6-xen-build - # make linux-2.6-xen-install - - Depending on your config, you may need to use 'mkinitrd' to create - an initial ram disk, just like a native system e.g. - # depmod 2.6.12.6-xen - # mkinitrd -v -f --with=aacraid --with=sd_mod --with=scsi_mod initrd-2.6.12.6-xen.img 2.6.12.6-xen +################################
+ __ __ _____ ___
+ \ \/ /___ _ __ |___ / / _ \
+ \ // _ \ '_ \ |_ \| | | |
+ / \ __/ | | | ___) | |_| |
+ /_/\_\___|_| |_| |____(_)___/
+
+################################
+
+http://www.xensource.com/xen/about.html
+
+What is Xen?
+============
+
+Xen is a Virtual Machine Monitor (VMM) originally developed by the
+Systems Research Group of the University of Cambridge Computer
+Laboratory, as part of the UK-EPSRC funded XenoServers project. Xen
+is freely-distributable Open Source software, released under the GNU
+GPL. Since its initial public release, Xen has grown a large
+development community, spearheaded by XenSource Inc, a company created
+by the original Xen development team to build enterprise products
+around Xen.
+
+The 3.0 release offers excellent performance, hardware support and
+enterprise-grade features such as x86_32-PAE, x86_64, SMP guests and
+live relocation of VMs. This install tree contains source for a Linux
+2.6 guest; ports to Linux 2.4, NetBSD, FreeBSD and Solaris will follow
+later (and are already available for previous Xen releases).
+
+This file contains some quick-start instructions to install Xen on
+your system. For full documentation, see the Xen User Manual. If this
+is a pre-built release then you can find the manual at:
+ dist/install/usr/share/doc/xen/pdf/user.pdf
+If you have a source release, then 'make -C docs' will build the
+manual at docs/pdf/user.pdf.
+
+Quick-Start Guide - Pre-Built Binary Release
+============================================
+
+[NB. Unless noted otherwise, all the following steps should be
+performed with root privileges.]
+
+1. Install the binary distribution onto your filesystem:
+
+ # sh ./install.sh
+
+ Among other things, this will install Xen and Xen-ready Linux
+ kernel files in /boot, kernel modules and Python packages in /lib,
+ and various control tools in standard 'bin' directories.
+
+2. Configure your bootloader to boot Xen and an initial Linux virtual
+ machine. Note that Xen currently only works with GRUB and pxelinux
+ derived boot loaders: less common alternatives such as LILO are
+ *not* supported. You can most likely find your GRUB menu file at
+ /boot/grub/menu.lst: edit this file to include an entry like the
+ following:
+
+ title Xen 3.0 / XenLinux 2.6
+ kernel /boot/xen-3.0.gz console=vga
+ module /boot/vmlinuz-2.6-xen root=<root-dev> ro console=tty0
+ module /boot/initrd-2.6-xen.img
+
+ NB: Not all kernel configs need an initial ram disk (initrd), but
+ if you do specify one you'll need to use the 'module' grub directive
+ rather than 'initrd'.
+
+ The linux command line takes all the usual options, such as
+ root=<root-dev> to specify your usual root partition (e.g.,
+ /dev/hda1).
+
+ The Xen command line takes a number of optional arguments described
+ in the manual. The most common is 'dom0_mem=xxxM' which sets the
+ amount of memory to allocate for use by your initial virtual
+ machine (known as domain 0). Note that Xen itself reserves about
+ 32MB memory for internal use, which is not available for allocation
+ to virtual machines.
+
+3. Reboot your system and select the "Xen 3.0 / XenLinux 2.6" menu
+ option. After booting Xen, Linux will start and your initialisation
+ scripts should execute in the usual way.
+
+Quick-Start Guide - Source Release
+==================================
+
+First, there are a number of prerequisites for building a Xen source
+release. Make sure you have all the following installed, either by
+visiting the project webpage or installing a pre-built package
+provided by your Linux distributor:
+ * GCC (preferably v3.2.x or v3.3.x; older versions are unsupported)
+ * GNU Make
+ * GNU Binutils
+ * Development install of zlib (e.g., zlib-dev)
+ * Development install of Python v2.3 or later (e.g., python-dev)
+ * bridge-utils package (/sbin/brctl)
+ * iproute package (/sbin/ip)
+ * hotplug or udev
+
+[NB. Unless noted otherwise, all the following steps should be
+performed with root privileges.]
+
+1. Download and untar the source tarball file. This will be a
+ file named xen-unstable-src.tgz, or xen-$version-src.tgz.
+ You can also pull the current version from the SCMS
+ that is being used (Bitkeeper, scheduled to change shortly).
+
+ # tar xzf xen-unstable-src.tgz
+
+ Assuming you are using the unstable tree, this will
+ untar into xen-unstable. The rest of the instructions
+ use the unstable tree as an example, substitute the
+ version for unstable.
+
+2. cd to xen-unstable (or whatever you sensibly rename it to).
+ The Linux, netbsd and freebsd kernel source trees are in
+ the $os-$version-xen-sparse directories.
+
+On Linux:
+
+3. For the very first build, or if you want to destroy existing
+ .configs and build trees, perform the following steps:
+
+ # make world
+ # make install
+
+ This will create and install onto the local machine. It will build
+ the xen binary (xen.gz), and a linux kernel and modules that can be
+ used in both dom0 and an unprivileged guest kernel (vmlinuz-2.6.x-xen),
+ the tools and the documentation.
+
+ You can override the destination for make install by setting DESTDIR
+ to some value.
+
+ The make command line defaults to building the kernel vmlinuz-2.6.x-xen.
+ You can override this default by specifying KERNELS=kernelname. For
+ example, you can make two kernels - linux-2.6.16-xen0
+ and linux-2.6.16-xenU - which are smaller builds containing only selected
+ modules, intended primarilly for developers that don't like to wait
+ for a full -xen kernel to build. The -xenU kernel is particularly small,
+ as it does not contain any physical device drivers, and hence is
+ only useful for guest domains.
+
+ To make these two kernels, simply specify
+
+ KERNELS="linux-2.6.16-xen0 linux-2.6.16-xenU"
+
+ in the make command line.
+
+ If you want to build an x86_32 PAE capable xen and kernel to work
+ on machines with >= 4GB of memory, use XEN_TARGET_X86_PAE=y on the
+ make command line.
+
+4. To rebuild an existing tree without modifying the config:
+ # make dist
+
+ This will build and install xen, kernels, tools, and
+ docs into the local dist/ directory.
+
+ You can override the destination for make install by setting DISTDIR
+ to some value.
+
+ make install and make dist differ in that make install does the
+ right things for your local machine (installing the appropriate
+ version of hotplug or udev scripts, for example), but make dist
+ includes all versions of those scripts, so that you can copy the dist
+ directory to another machine and install from that distribution.
+
+5. To rebuild a kernel with a modified config:
+
+ # make linux-2.6-xen-config CONFIGMODE=menuconfig (or xconfig)
+ # make linux-2.6-xen-build
+ # make linux-2.6-xen-install
+
+ Depending on your config, you may need to use 'mkinitrd' to create
+ an initial ram disk, just like a native system e.g.
+ # depmod 2.6.12.6-xen
+ # mkinitrd -v -f --with=aacraid --with=sd_mod --with=scsi_mod initrd-2.6.12.6-xen.img 2.6.12.6-xen
diff --git a/buildconfigs/Rules.mk b/buildconfigs/Rules.mk index 57df05e06b..fde2980bc8 100644 --- a/buildconfigs/Rules.mk +++ b/buildconfigs/Rules.mk @@ -6,8 +6,6 @@ export DESTDIR ALLKERNELS = $(patsubst buildconfigs/mk.%,%,$(wildcard buildconfigs/mk.*)) ALLSPARSETREES = $(patsubst %-xen-sparse,%,$(wildcard *-xen-sparse)) -.PHONY: mkpatches mrproper - # Setup pristine search path PRISTINE_SRC_PATH ?= .:.. vpath pristine-% $(PRISTINE_SRC_PATH) @@ -61,6 +59,7 @@ ifneq ($(PATCHDIRS),) $(patsubst patches/%,patches/%/.makedep,$(PATCHDIRS)): patches/%/.makedep: @echo 'ref-$*/.valid-ref: $$(wildcard patches/$*/*.patch)' >$@ +.PHONY: clean clean:: rm -f patches/*/.makedep @@ -115,6 +114,7 @@ linux-2.6-xen.patch: ref-linux-$(LINUX_VER)/.valid-ref rm -rf pristine-$(*)* ref-$(*)* $*.tar.bz2 rm -rf $*-xen.patch +.PHONY: config-update-pae config-update-pae: ifeq ($(XEN_TARGET_X86_PAE),y) sed -e 's!^CONFIG_HIGHMEM4G=y$$!\# CONFIG_HIGHMEM4G is not set!;s!^\# CONFIG_HIGHMEM64G is not set$$!CONFIG_HIGHMEM64G=y!' $(CONFIG_FILE) > $(CONFIG_FILE)- && mv $(CONFIG_FILE)- $(CONFIG_FILE) diff --git a/buildconfigs/mk.linux-2.6-xen b/buildconfigs/mk.linux-2.6-xen index 10cba291e5..64bb3e93f3 100644 --- a/buildconfigs/mk.linux-2.6-xen +++ b/buildconfigs/mk.linux-2.6-xen @@ -8,9 +8,8 @@ LINUX_DIR = linux-$(LINUX_VER)-$(EXTRAVERSION) include buildconfigs/Rules.mk -.PHONY: build clean delete - # The real action starts here! +.PHONY: build build: $(LINUX_DIR)/include/linux/autoconf.h if grep "^CONFIG_MODULES=" $(LINUX_DIR)/.config ; then \ $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) modules ; \ @@ -39,14 +38,18 @@ $(LINUX_DIR)/include/linux/autoconf.h: ref-linux-$(LINUX_VER)/.valid-ref rm -f Makefile ; mv Mk.tmp Makefile ) $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) oldconfig +.PHONY: prep prep: $(LINUX_DIR)/include/linux/autoconf.h +.PHONY: config config: CONFIGMODE = menuconfig config: $(LINUX_DIR)/include/linux/autoconf.h $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) $(CONFIGMODE) +.PHONY: clean clean:: $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) clean +.PHONY: delete delete: rm -rf tmp-linux-$(LINUX_VER) $(LINUX_DIR) diff --git a/docs/Makefile b/docs/Makefile index 51bde8661f..1964750427 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -26,22 +26,28 @@ DOC_HTML := $(patsubst src/%.tex,html/%/index.html,$(DOC_TEX)) GFX = $(patsubst %.fig, %.eps, $(wildcard figs/*.fig)) -.PHONY: all build dev-docs python-dev-docs ps pdf html clean install - +.PHONY: all all: build + +.PHONY: build build: ps pdf html man-pages rm -f *.aux *.dvi *.bbl *.blg *.glo *.idx *.ilg *.log *.ind *.toc +.PHONY: dev-docs dev-docs: python-dev-docs +.PHONY: ps ps: $(DOC_PS) +.PHONY: pdf pdf: $(DOC_PDF) +.PHONY: html html: @if which $(LATEX2HTML) 1>/dev/null 2>/dev/null; then \ $(MAKE) $(DOC_HTML); fi +.PHONY: python-dev-docs python-dev-docs: @mkdir -v -p api/tools/python @if which $(DOXYGEN) 1>/dev/null 2>/dev/null; then \ @@ -50,6 +56,7 @@ python-dev-docs: $(MAKE) -C api/tools/python/latex ; else \ echo "Doxygen not installed; skipping python-dev-docs."; fi +.PHONY: man-pages man-pages: @if which $(POD2MAN) 1>/dev/null 2>/dev/null; then \ $(MAKE) $(DOC_MAN1) $(DOC_MAN5); fi @@ -64,6 +71,7 @@ man5/%.5: man/%.pod.5 Makefile $(POD2MAN) --release=$(VERSION) --name=`echo $@ | sed 's/^man5.//'| \ sed 's/.5//'` -s 5 -c "Xen" $< $@ +.PHONY: clean clean: rm -rf .word_count *.aux *.dvi *.bbl *.blg *.glo *.idx *~ rm -rf *.ilg *.log *.ind *.toc *.bak core @@ -72,6 +80,7 @@ clean: rm -rf man5 rm -rf man1 +.PHONY: install install: all rm -rf $(DESTDIR)$(pkgdocdir) $(INSTALL_DIR) $(DESTDIR)$(pkgdocdir) diff --git a/extras/mini-os/Makefile b/extras/mini-os/Makefile index d541677f97..2271f00be2 100644 --- a/extras/mini-os/Makefile +++ b/extras/mini-os/Makefile @@ -37,8 +37,10 @@ OBJS += $(patsubst %.c,%.o,$(wildcard console/*.c)) HDRS := $(wildcard include/*.h) HDRS += $(wildcard include/xen/*.h) +.PHONY: default default: $(TARGET) +.PHONY: links links: [ -e include/xen ] || ln -sf ../../../xen/include/public include/xen @@ -46,6 +48,7 @@ $(TARGET): links $(OBJS) $(LD) -N -T minios-$(TARGET_ARCH).lds $(OBJS) -o $@.elf gzip -f -9 -c $@.elf >$@.gz +.PHONY: clean clean: find . -type f -name '*.o' | xargs rm -f rm -f *.o *~ core $(TARGET).elf $(TARGET).raw $(TARGET) $(TARGET).gz diff --git a/tools/Makefile b/tools/Makefile index 375b5633b5..69fefef647 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -24,14 +24,14 @@ SUBDIRS += python SUBDIRS += pygrub endif -.PHONY: all install clean check check_clean ioemu eioemuinstall ioemuclean - +.PHONY: all all: check @set -e; for subdir in $(SUBDIRS); do \ $(MAKE) -C $$subdir $@; \ done $(MAKE) ioemu +.PHONY: install install: check @set -e; for subdir in $(SUBDIRS); do \ $(MAKE) -C $$subdir $@; \ @@ -39,18 +39,22 @@ install: check $(MAKE) ioemuinstall $(INSTALL_DIR) -p $(DESTDIR)/var/xen/dump +.PHONY: clean clean: check_clean @set -e; for subdir in $(SUBDIRS); do \ $(MAKE) -C $$subdir $@; \ done $(MAKE) ioemuclean +.PHONY: check check: $(MAKE) -C check +.PHONY: check_clean check_clean: $(MAKE) -C check clean +.PHONY: ioemu ioemuinstall ioemuclean ifndef XEN_NO_IOEMU ioemu ioemuinstall ioemuclean: [ -f ioemu/config-host.h ] || \ diff --git a/tools/Rules.mk b/tools/Rules.mk index f2fcd2a811..49314d9fd7 100644 --- a/tools/Rules.mk +++ b/tools/Rules.mk @@ -23,6 +23,7 @@ CFLAGS += -D__XEN_INTERFACE_VERSION__=0x00030101 %.o: %.cc $(CC) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< +.PHONY: mk-symlinks mk-symlinks: LINUX_ROOT=$(XEN_ROOT)/linux-2.6-xen-sparse mk-symlinks: mkdir -p xen diff --git a/tools/blktap/Makefile b/tools/blktap/Makefile index d4019c0252..9dc571853a 100644 --- a/tools/blktap/Makefile +++ b/tools/blktap/Makefile @@ -39,11 +39,13 @@ IBINS := LIB = libblktap.so libblktap.so.$(MAJOR) libblktap.so.$(MAJOR).$(MINOR) +.PHONY: all all: mk-symlinks libblktap.so #blkdump @set -e; for subdir in $(SUBDIRS); do \ $(MAKE) -C $$subdir $@; \ done +.PHONY: install install: all $(INSTALL_DIR) -p $(DESTDIR)/usr/$(LIBDIR) $(INSTALL_DIR) -p $(DESTDIR)/usr/include @@ -54,12 +56,14 @@ install: all $(MAKE) -C $$subdir $@; \ done +.PHONY: clean clean: rm -rf *.a *.so *.o *.rpm $(LIB) *~ $(DEPS) xen TAGS blkdump @set -e; for subdir in $(SUBDIRS); do \ $(MAKE) -C $$subdir $@; \ done +.PHONY: rpm rpm: all rm -rf staging mkdir staging @@ -82,6 +86,7 @@ blkdump: libblktap.so .PHONY: TAGS clean install mk-symlinks rpm +.PHONY: TAGS TAGS: etags -t $(SRCS) *.h diff --git a/tools/blktap/parallax/Makefile b/tools/blktap/parallax/Makefile index a6a0c0a3f8..8500c1728b 100644 --- a/tools/blktap/parallax/Makefile +++ b/tools/blktap/parallax/Makefile @@ -43,11 +43,14 @@ DEPS = .*.d OBJS = $(patsubst %.c,%.o,$(SRCS)) IBINS = parallax $(VDI_TOOLS) +.PHONY: all all: $(VDI_TOOLS) parallax blockstored +.PHONY: install install: all $(INSTALL_PROG) $(IBINS) $(DESTDIR)$(PARALLAX_INSTALL_DIR) +.PHONY: clean clean: rm -rf *.o *~ $(DEPS) xen TAGS $(VDI_TOOLS) parallax vdi_unittest @@ -57,5 +60,4 @@ parallax: $(PLX_SRCS) ${VDI_TOOLS}: %: %.c $(VDI_SRCS) $(CC) $(CFLAGS) -o $@ $@.c $(LDFLAGS) $(VDI_SRCS) -.PHONY: TAGS clean install rpm -include $(DEPS) diff --git a/tools/blktap/ublkback/Makefile b/tools/blktap/ublkback/Makefile index 6915d2f523..0ed19cae6b 100644 --- a/tools/blktap/ublkback/Makefile +++ b/tools/blktap/ublkback/Makefile @@ -21,12 +21,16 @@ DEPS = .*.d OBJS = $(patsubst %.c,%.o,$(SRCS)) +.PHONY: all all: $(IBIN) LINUX_ROOT := $(wildcard $(XEN_ROOT)/linux-2.6.*-xen-sparse) +.PHONY: install install: $(INSTALL_PROG) $(IBIN) $(DESTDIR)$(INSTALL_DIR) + +.PHONY: clean clean: rm -rf *.o*~ $(DEPS) xen TAGS $(IBIN) @@ -34,6 +38,4 @@ ublkback: $(CC) $(CFLAGS) -o ublkback -L$(XEN_LIBXC) -L. -L.. \ -lblktap -laio ublkback.c ublkbacklib.c -pg -.PHONY: clean install - -include $(DEPS) diff --git a/tools/check/Makefile b/tools/check/Makefile index 744f0983b5..4605c03c39 100644 --- a/tools/check/Makefile +++ b/tools/check/Makefile @@ -1,7 +1,9 @@ +.PHONY: all all: build # Check this machine is OK for building on. +.PHONY: build build: ./chk build @@ -9,8 +11,10 @@ build: # DO NOT use this check from 'make install' in the parent # directory, as that target can be used to make an installable # copy rather than actually installing. +.PHONY: install install: ./chk install +.PHONY: clean clean: - ./chk clean
\ No newline at end of file + ./chk clean diff --git a/tools/console/Makefile b/tools/console/Makefile index 206621d083..cbef956c5f 100644 --- a/tools/console/Makefile +++ b/tools/console/Makefile @@ -16,8 +16,10 @@ CFLAGS += -I $(XEN_XENSTORE) BIN = xenconsoled xenconsole +.PHONY: all all: $(BIN) +.PHONY: clean clean: $(RM) *.a *.so *.o *.rpm $(BIN) $(RM) client/*.o daemon/*.o @@ -30,6 +32,7 @@ xenconsole: $(patsubst %.c,%.o,$(wildcard client/*.c)) $(CC) $(CFLAGS) $^ -o $@ -L$(XEN_LIBXC) -L$(XEN_XENSTORE) \ -lxenctrl -lxenstore +.PHONY: install install: $(BIN) $(INSTALL_DIR) -p $(DESTDIR)/$(DAEMON_INSTALL_DIR) $(INSTALL_PROG) xenconsoled $(DESTDIR)/$(DAEMON_INSTALL_DIR) diff --git a/tools/console/testsuite/Makefile b/tools/console/testsuite/Makefile index 2deb7d43d6..71deb0a6f8 100644 --- a/tools/console/testsuite/Makefile +++ b/tools/console/testsuite/Makefile @@ -3,10 +3,12 @@ include $(XEN_ROOT)/tools/Rules.mk LDFLAGS=-static +.PHONY: all all: console-dom0 console-domU procpipe console-dom0: console-dom0.o console-domU: console-domU.o procpipe: procpipe.o +.PHONY: clean clean:; $(RM) *.o console-domU console-dom0 procpipe diff --git a/tools/debugger/libxendebug/Makefile b/tools/debugger/libxendebug/Makefile index d0a90e1267..2e16446253 100644 --- a/tools/debugger/libxendebug/Makefile +++ b/tools/debugger/libxendebug/Makefile @@ -26,10 +26,14 @@ PIC_OBJS := $(patsubst %.c,%.opic,$(SRCS)) LIB := libxendebug.a libxendebug.so LIB += libxendebug.so.$(MAJOR) libxendebug.so.$(MAJOR).$(MINOR) +.PHONY: all all: build + +.PHONY: build build: $(MAKE) $(LIB) +.PHONY: install install: build [ -d $(DESTDIR)/usr/$(LIBDIR) ] || $(INSTALL_DIR) $(DESTDIR)/usr/$(LIBDIR) [ -d $(DESTDIR)/usr/include ] || $(INSTALL_DIR) $(DESTDIR)/usr/include @@ -39,14 +43,15 @@ install: build ln -sf libxendebug.so.$(MAJOR) $(DESTDIR)/usr/$(LIBDIR)/libxendebug.so $(INSTALL_DATA) xendebug.h $(DESTDIR)/usr/include -.PHONY: TAGS clean rpm install all - +.PHONY: TAGS TAGS: etags -t $(SRCS) *.h +.PHONY: clean clean: rm -rf *.a *.so* *.o *.opic *.rpm $(LIB) *~ $(DEPS) xen +.PHONY: rpm rpm: build rm -rf staging mkdir staging diff --git a/tools/debugger/pdb/Makefile b/tools/debugger/pdb/Makefile index 1842ec7d0b..03cdc486b4 100644 --- a/tools/debugger/pdb/Makefile +++ b/tools/debugger/pdb/Makefile @@ -33,6 +33,7 @@ LIBS += unix str # bc = byte-code, dc = debug byte-code # patches = patch linux domU source code +.PHONY: all all : dc SOURCES += pdb_caml_xc.c @@ -51,5 +52,6 @@ RESULT = pdb include $(OCAMLMAKEFILE) PATCHDIR = ./linux-2.6-patches +.PHONY: patches patches : make -C $(PATCHDIR) patches diff --git a/tools/debugger/pdb/linux-2.6-module/Makefile b/tools/debugger/pdb/linux-2.6-module/Makefile index 609596f6c9..9025cd85c1 100644 --- a/tools/debugger/pdb/linux-2.6-module/Makefile +++ b/tools/debugger/pdb/linux-2.6-module/Makefile @@ -10,10 +10,12 @@ CFLAGS += -g CFLAGS += -Wall CFLAGS += -Werror +.PHONY: module module : # make KBUILD_VERBOSE=1 ARCH=xen -C $(KDIR) M=$(PWD) modules make ARCH=xen -C $(KDIR) M=$(PWD) modules +.PHONY: clean clean : make -C $(KDIR) M=$(PWD) clean diff --git a/tools/debugger/pdb/linux-2.6-patches/Makefile b/tools/debugger/pdb/linux-2.6-patches/Makefile index 7d062510d8..f2cb7f6ef5 100644 --- a/tools/debugger/pdb/linux-2.6-patches/Makefile +++ b/tools/debugger/pdb/linux-2.6-patches/Makefile @@ -3,6 +3,7 @@ LINUX_DIR = linux-2.6.12-xenU KDIR = $(XEN_ROOT)/$(LINUX_DIR) PATCH_DIR = $(CURDIR) +.PHONY: patches patches : patches-done patches-done : diff --git a/tools/examples/Makefile b/tools/examples/Makefile index 37a94b6329..93a8242637 100644 --- a/tools/examples/Makefile +++ b/tools/examples/Makefile @@ -50,11 +50,16 @@ HOTPLUGS=install-hotplug endif endif +.PHONY: all all: + +.PHONY: build build: +.PHONY: install install: all install-initd install-configs install-scripts $(HOTPLUGS) +.PHONY: install-initd install-initd: [ -d $(DESTDIR)/etc/init.d ] || $(INSTALL_DIR) $(DESTDIR)/etc/init.d [ -d $(DESTDIR)/etc/sysconfig ] || $(INSTALL_DIR) $(DESTDIR)/etc/sysconfig @@ -62,6 +67,7 @@ install-initd: $(INSTALL_PROG) $(XENDOMAINS_INITD) $(DESTDIR)/etc/init.d $(INSTALL_PROG) $(XENDOMAINS_SYSCONFIG) $(DESTDIR)/etc/sysconfig/xendomains +.PHONY: install-configs install-configs: $(XEN_CONFIGS) [ -d $(DESTDIR)$(XEN_CONFIG_DIR) ] || \ $(INSTALL_DIR) $(DESTDIR)$(XEN_CONFIG_DIR) @@ -72,6 +78,7 @@ install-configs: $(XEN_CONFIGS) $(INSTALL_DATA) $$i $(DESTDIR)$(XEN_CONFIG_DIR); \ done +.PHONY: install-scripts install-scripts: [ -d $(DESTDIR)$(XEN_SCRIPT_DIR) ] || \ $(INSTALL_DIR) $(DESTDIR)$(XEN_SCRIPT_DIR) @@ -84,6 +91,7 @@ install-scripts: $(INSTALL_DATA) $$i $(DESTDIR)$(XEN_SCRIPT_DIR); \ done +.PHONY: install-hotplug install-hotplug: [ -d $(DESTDIR)$(XEN_HOTPLUG_DIR) ] || \ $(INSTALL_DIR) $(DESTDIR)$(XEN_HOTPLUG_DIR) @@ -92,6 +100,7 @@ install-hotplug: $(INSTALL_PROG) $$i $(DESTDIR)$(XEN_HOTPLUG_DIR); \ done +.PHONY: install-udev install-udev: [ -d $(DESTDIR)$(UDEV_RULES_DIR) ] || \ $(INSTALL_DIR) $(DESTDIR)$(UDEV_RULES_DIR)/rules.d @@ -102,4 +111,5 @@ install-udev: ln -sf ../$$i . ) \ done +.PHONY: clean clean: diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile index d0c738a41d..63ccb7b17e 100644 --- a/tools/firmware/Makefile +++ b/tools/firmware/Makefile @@ -13,8 +13,7 @@ SUBDIRS += acpi SUBDIRS += vmxassist SUBDIRS += hvmloader -.PHONY: all install clean - +.PHONY: all all: @set -e; if ! `which bcc 1>/dev/null 2>/dev/null`; then \ echo "***********************************************************"; \ @@ -28,10 +27,12 @@ all: fi +.PHONY: install install: all [ -d $(INSTALL_DIR) ] || install -d -m0755 $(INSTALL_DIR) [ ! -e $(TARGET) ] || install -m0644 $(TARGET) $(INSTALL_DIR) +.PHONY: clean clean: @set -e; for subdir in $(SUBDIRS); do \ $(MAKE) -C $$subdir $@; \ diff --git a/tools/firmware/acpi/Makefile b/tools/firmware/acpi/Makefile index 26d932fbea..1932b0cc7b 100644 --- a/tools/firmware/acpi/Makefile +++ b/tools/firmware/acpi/Makefile @@ -33,6 +33,7 @@ IASL_VER=acpica-unix-20050513 IASL_URL=http://developer.intel.com/technology/iapc/acpi/downloads/$(IASL_VER).tar.gz vpath iasl $(PATH) +.PHONY: all all:$(ACPI_BIN) acpi_dsdt.c:acpi_dsdt.asl @@ -42,6 +43,7 @@ acpi_dsdt.c:acpi_dsdt.asl echo "int DsdtLen=sizeof(AmlCode);" >> acpi_dsdt.c rm *.aml +.PHONY: iasl iasl: @echo @echo "ACPI ASL compiler(iasl) is needed" @@ -60,8 +62,10 @@ $(ACPI_GEN):$(C_SRC) $(H_SRC) acpi_dsdt.c $(ACPI_BIN):$(ACPI_GEN) ./$(ACPI_GEN) $(ACPI_BIN) +.PHONY: clean clean: rm -rf *.o $(ACPI_GEN) $(ACPI_BIN) $(IASL_VER) rm -rf $(IASL_VER).tar.gz +.PHONY: install install: all diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile index 5a821f7dcb..c38832fbc5 100644 --- a/tools/firmware/hvmloader/Makefile +++ b/tools/firmware/hvmloader/Makefile @@ -42,6 +42,7 @@ OBJCOPY = objcopy CFLAGS += $(DEFINES) -I. $(XENINC) -fno-builtin -O2 -msoft-float LDFLAGS = -m32 -nostdlib -Wl,-N -Wl,-Ttext -Wl,$(LOADADDR) +.PHONY: all all: hvmloader hvmloader: roms.h hvmloader.c acpi_madt.c @@ -57,6 +58,7 @@ roms.h: ../rombios/BIOS-bochs-latest ../vgabios/VGABIOS-lgpl-latest.bin ../vgabi ./mkhex vmxassist ../vmxassist/vmxassist.bin >> roms.h ./mkhex acpi ../acpi/acpi.bin >> roms.h +.PHONY: clean clean: rm -f roms.h acpi.h rm -f hvmloader hvmloader.tmp hvmloader.o $(OBJECTS) diff --git a/tools/firmware/rombios/Makefile b/tools/firmware/rombios/Makefile index 0624e81e96..3f4200df25 100644 --- a/tools/firmware/rombios/Makefile +++ b/tools/firmware/rombios/Makefile @@ -3,10 +3,13 @@ BIOS_BUILDS = BIOS-bochs-latest #BIOS_BUILDS += BIOS-bochs-4-processors #BIOS_BUILDS += BIOS-bochs-8-processors +.PHONY: all all: bios +.PHONY: bios bios: biossums ${BIOS_BUILDS} +.PHONY: clean clean: rm -f *.o *.a *.s rombios.bin _rombios*_.c rm -f as86-sym.txt ld86-sym.txt diff --git a/tools/firmware/vgabios/Makefile b/tools/firmware/vgabios/Makefile index 2b27e01f7c..b5482ea8c7 100644 --- a/tools/firmware/vgabios/Makefile +++ b/tools/firmware/vgabios/Makefile @@ -10,17 +10,22 @@ RELVERS = `pwd | sed "s-.*/--" | sed "s/vgabios//" | sed "s/-//"` VGABIOS_DATE = "-DVGABIOS_DATE=\"$(RELDATE)\"" +.PHONY: all all: bios cirrus-bios +.PHONY: bios bios: biossums vgabios.bin vgabios.debug.bin +.PHONY: cirrus-bios cirrus-bios: vgabios-cirrus.bin vgabios-cirrus.debug.bin +.PHONY: clean clean: rm -f biossums *.o *.s *.ld86 \ temp.awk.* vgabios*.orig _vgabios_* _vgabios-debug_* core vgabios*.bin vgabios*.txt $(RELEASE).bin *.bak rm -f VGABIOS-lgpl-latest*.bin +.PHONY: release release: VGABIOS_VERS=\"-DVGABIOS_VERS=\\\"$(RELVERS)\\\"\" make bios cirrus-bios /bin/rm -f *.o *.s *.ld86 \ diff --git a/tools/firmware/vmxassist/Makefile b/tools/firmware/vmxassist/Makefile index 17b13b2be2..d34d107373 100644 --- a/tools/firmware/vmxassist/Makefile +++ b/tools/firmware/vmxassist/Makefile @@ -43,6 +43,7 @@ LDFLAGS = -m elf_i386 OBJECTS = head.o trap.o vm86.o setup.o util.o +.PHONY: all all: vmxassist.bin vmxassist.bin: vmxassist.ld $(OBJECTS) @@ -74,6 +75,7 @@ offsets.h: gen gen: vm86.h gen.c $(HOSTCC) $(HOSTCFLAGS) -I. $(XENINC) -o gen gen.c +.PHONY: clean clean: rm -f vmxassist vmxassist.tmp vmxassist.bin vmxassist.run vmxassist.sym head.s rm -f $(OBJECTS) diff --git a/tools/guest-headers/Makefile b/tools/guest-headers/Makefile index ce9395a8ab..dc1456667f 100644 --- a/tools/guest-headers/Makefile +++ b/tools/guest-headers/Makefile @@ -2,12 +2,16 @@ XEN_ROOT=../.. linuxsparsetree = $(XEN_ROOT)/linux-2.6-xen-sparse +.PHONY: all all: +.PHONY: check check: +.PHONY: install install: mkdir -p $(DESTDIR)/usr/include/xen/linux install -m0644 $(linuxsparsetree)/include/xen/public/*.h $(DESTDIR)/usr/include/xen/linux +.PHONY: clean clean: diff --git a/tools/ioemu/Makefile b/tools/ioemu/Makefile index 09c69c77ec..d17550f4bf 100644 --- a/tools/ioemu/Makefile +++ b/tools/ioemu/Makefile @@ -19,6 +19,7 @@ LDFLAGS+=-static endif #DOCS=qemu-doc.html qemu-tech.html qemu.1 +.PHONY: all all: $(DOCS) HEADERS for d in $(TARGET_DIRS); do \ $(MAKE) -C $$d $@ || exit 1 ; \ @@ -30,6 +31,7 @@ qemu-img: qemu-img.c block.c block-cow.c block-qcow.c aes.c block-vmdk.c block-c dyngen$(EXESUF): dyngen.c $(HOST_CC) $(CFLAGS) $(DEFINES) -o $@ $^ +.PHONY: clean clean: # avoid old build problems by removing potentially incorrect old files rm -f config.mak config.h op-i386.h opc-i386.h gen-op-i386.h op-arm.h opc-arm.h gen-op-arm.h @@ -41,6 +43,7 @@ clean: rm -f config-host.mak config-host.h rm -f keysym_adapter_sdl.h keysym_adapter_vnc.h +.PHONY: distclean distclean: clean rm -f config-host.mak config-host.h rm -f keysym_adapter_sdl.h keysym_adapter_vnc.h @@ -52,6 +55,7 @@ KEYMAPS=da en-gb et fr fr-ch is lt modifiers no pt-br sv \ ar de en-us fi fr-be hr it lv nl pl ru th \ common de-ch es fo fr-ca hu ja mk nl-be pt sl tr +.PHONY: install install: all mkdir -p "$(bindir)" mkdir -p "$(DESTDIR)/$(datadir)" @@ -62,9 +66,11 @@ install: all done # various test targets +.PHONY: test speed test2 test speed test2: all $(MAKE) -C tests $@ +.PHONY: TAGS TAGS: etags *.[ch] tests/*.[ch] @@ -79,6 +85,7 @@ qemu.1: qemu-doc.texi FILE=qemu-$(shell cat VERSION) # tar release (use 'make -k tar' on a checkouted tree) +.PHONY: tar tar: rm -rf /tmp/$(FILE) cp -r . /tmp/$(FILE) @@ -86,6 +93,7 @@ tar: rm -rf /tmp/$(FILE) # generate a binary distribution +.PHONY: tarbin tarbin: ( cd $(DESTDIR) ; tar zcvf ~/qemu-$(VERSION)-i386.tar.gz \ $(DESTDIR)/$(bindir)/qemu $(DESTDIR)/$(bindir)/qemu-fast \ @@ -100,6 +108,7 @@ ifneq ($(wildcard .depend),) include .depend endif +.PHONY: HEADERS HEADERS: ifdef CONFIG_SDL diff --git a/tools/ioemu/target-i386-dm/Makefile b/tools/ioemu/target-i386-dm/Makefile index 3219711167..c5dcc83208 100644 --- a/tools/ioemu/target-i386-dm/Makefile +++ b/tools/ioemu/target-i386-dm/Makefile @@ -329,6 +329,7 @@ sdl.o: sdl.c keyboard_rdesktop.c sdlaudio.o: sdlaudio.c $(CC) $(CFLAGS) $(DEFINES) $(SDL_CFLAGS) -c -o $@ $< +.PHONY: depend depend: $(SRCS) $(CC) -MM $(CFLAGS) $(DEFINES) $^ 1>.depend @@ -382,12 +383,15 @@ mixeng.o: mixeng.c mixeng.h mixeng_template.h %.o: %.S $(CC) $(DEFINES) -c -o $@ $< +.PHONY: clean clean: rm -rf *.o *.a *~ $(PROGS) gen-op.h opc.h op.h nwfpe slirp rm -rf config.mak config.h +.PHONY: distclean distclean: clean +.PHONY: install install: all if [ ! -d $(INSTALL_DIR) ];then mkdir -p $(INSTALL_DIR);fi if [ ! -d $(DESTDIR)$(configdir) ];then mkdir -p $(DESTDIR)$(configdir);fi diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile index cbe5855a1d..e4a6ac798a 100644 --- a/tools/libxc/Makefile +++ b/tools/libxc/Makefile @@ -67,10 +67,14 @@ LIB += libxenctrl.so libxenctrl.so.$(MAJOR) libxenctrl.so.$(MAJOR).$(MINOR) LIB += libxenguest.a LIB += libxenguest.so libxenguest.so.$(MAJOR) libxenguest.so.$(MAJOR).$(MINOR) +.PHONY: all all: build + +.PHONY: build build: check-for-zlib mk-symlinks $(MAKE) $(LIB) +.PHONY: check-for-zlib check-for-zlib: @if [ ! -e /usr/include/zlib.h ]; then \ echo "***********************************************************"; \ @@ -79,6 +83,7 @@ check-for-zlib: false; \ fi +.PHONY: install install: build [ -d $(DESTDIR)/usr/$(LIBDIR) ] || $(INSTALL_DIR) $(DESTDIR)/usr/$(LIBDIR) [ -d $(DESTDIR)/usr/include ] || $(INSTALL_DIR) $(DESTDIR)/usr/include @@ -94,14 +99,15 @@ install: build ln -sf libxenguest.so.$(MAJOR) $(DESTDIR)/usr/$(LIBDIR)/libxenguest.so $(INSTALL_DATA) xenguest.h $(DESTDIR)/usr/include -.PHONY: TAGS clean rpm install all - +.PHONY: TAGS TAGS: etags -t *.c *.h +.PHONY: clean clean: rm -rf *.a *.so* *.o *.opic *.rpm $(LIB) *~ $(DEPS) xen +.PHONY: rpm rpm: build rm -rf staging mkdir staging diff --git a/tools/misc/Makefile b/tools/misc/Makefile index 003947c8e3..eb110d7e2b 100644 --- a/tools/misc/Makefile +++ b/tools/misc/Makefile @@ -18,7 +18,10 @@ TARGETS = xenperf xc_shadow INSTALL_BIN = $(TARGETS) xencons INSTALL_SBIN = netfix xm xen-bugtool xend xenperf +.PHONY: all all: build + +.PHONY: build build: $(TARGETS) $(MAKE) -C miniterm $(MAKE) -C cpuperf @@ -27,6 +30,7 @@ ifneq ($(XEN_TARGET_ARCH),ia64) endif $(MAKE) -C lomount +.PHONY: install install: build [ -d $(DESTDIR)/usr/bin ] || $(INSTALL_DIR) $(DESTDIR)/usr/bin [ -d $(DESTDIR)/usr/sbin ] || $(INSTALL_DIR) $(DESTDIR)/usr/sbin @@ -39,6 +43,7 @@ install: build # Likewise mbootpack # $(MAKE) -C mbootpack install +.PHONY: clean clean: $(RM) *.o $(TARGETS) *~ $(MAKE) -C miniterm clean diff --git a/tools/misc/cpuperf/Makefile b/tools/misc/cpuperf/Makefile index 185660efcb..932c5e82b5 100644 --- a/tools/misc/cpuperf/Makefile +++ b/tools/misc/cpuperf/Makefile @@ -26,8 +26,10 @@ TARGETS = cpuperf-xen cpuperf-perfcntr INSTALL_BIN = $(TARGETS) +.PHONY: all all: $(TARGETS) +.PHONY: clean clean: $(RM) *.o $(TARGETS) @@ -40,6 +42,7 @@ cpuperf-xen: cpuperf.c $(HDRS) Makefile cpuperf-perfcntr: cpuperf.c $(HDRS) Makefile $(CC) $(CFLAGS) -DPERFCNTR -o $@ $< +.PHONY: install install: all $(INSTALL_PROG) $(INSTALL_BIN) $(DESTDIR)/usr/bin diff --git a/tools/misc/lomount/Makefile b/tools/misc/lomount/Makefile index 1a47c0b45f..0ed470b1d3 100644 --- a/tools/misc/lomount/Makefile +++ b/tools/misc/lomount/Makefile @@ -13,12 +13,17 @@ OBJS = $(patsubst %.c,%.o,$(wildcard *.c)) BIN = lomount +.PHONY: all all: build + +.PHONY: build build: $(BIN) +.PHONY: install install: build $(INSTALL_PROG) $(BIN) $(SCRIPTS) $(DESTDIR)/usr/bin +.PHONY: clean clean: $(RM) *.a *.so *.o *.rpm $(BIN) diff --git a/tools/misc/mbootpack/Makefile b/tools/misc/mbootpack/Makefile index d1e3334bf7..18116688f3 100644 --- a/tools/misc/mbootpack/Makefile +++ b/tools/misc/mbootpack/Makefile @@ -8,9 +8,13 @@ INSTALL_DIR = $(INSTALL) -d -m0755 XEN_ROOT=../../.. include $(XEN_ROOT)/tools/Rules.mk +.PHONY: all all: build + +.PHONY: build build: mbootpack +.PHONY: install install: build $(INSTALL_PROG) mbootpack $(DESTDIR)/usr/bin @@ -33,6 +37,7 @@ DEPS = .*.d mbootpack: $(OBJS) $(HOSTCC) -o $@ $(filter-out %.a, $^) +.PHONY: clean clean: $(RM) mbootpack *.o $(DEPS) bootsect setup bzimage_header.c bin2c @@ -60,7 +65,6 @@ buildimage.c: bzimage_header.c %.o: %.c $(HOSTCC) $(DEPFLAGS) $(CFLAGS) $(INCS) $(DEFS) -c $< -o $@ -.PHONY: all clean gdb .PRECIOUS: $(OBJS) $(OBJS:.o=.c) $(DEPS) .SUFFIXES: diff --git a/tools/misc/miniterm/Makefile b/tools/misc/miniterm/Makefile index 6229d6b95b..5b596a5f9f 100644 --- a/tools/misc/miniterm/Makefile +++ b/tools/misc/miniterm/Makefile @@ -7,12 +7,15 @@ INSTALL_DIR = $(INSTALL) -d -m0755 TARGET = miniterm +.PHONY: all all: $(TARGET) +.PHONY: install install: all [ -d $(DESTDIR)/usr/bin ] || $(INSTALL_DIR) $(DESTDIR)/usr/bin $(INSTALL_PROG) $(TARGET) $(DESTDIR)/usr/bin +.PHONY: clean clean: $(RM) *.o $(TARGET) *~ diff --git a/tools/misc/nsplitd/Makefile b/tools/misc/nsplitd/Makefile index 8880ceabf7..d15bb4d12b 100644 --- a/tools/misc/nsplitd/Makefile +++ b/tools/misc/nsplitd/Makefile @@ -8,10 +8,13 @@ OBJS = $(patsubst %.c,%.o,$(wildcard *.c)) TARGET = nsplitd +.PHONY: all all: $(TARGET) +.PHONY: install install: all +.PHONY: clean clean: $(RM) *.o $(TARGET) *~ diff --git a/tools/pygrub/Makefile b/tools/pygrub/Makefile index 197b89a1a8..75bf46bc83 100644 --- a/tools/pygrub/Makefile +++ b/tools/pygrub/Makefile @@ -2,10 +2,13 @@ XEN_ROOT = ../.. include $(XEN_ROOT)/tools/Rules.mk +.PHONY: all all: build +.PHONY: build build: CFLAGS="$(CFLAGS)" python setup.py build +.PHONY: install ifndef XEN_PYTHON_NATIVE_INSTALL install: all CFLAGS="$(CFLAGS)" python setup.py install --home="$(DESTDIR)/usr" @@ -14,5 +17,6 @@ install: all CFLAGS="$(CFLAGS)" python setup.py install --root="$(DESTDIR)" endif +.PHONY: clean clean: rm -rf build tmp *.pyc *.pyo *.o *.a *~ a.out diff --git a/tools/pygrub/src/fsys/ext2/ext2module.c b/tools/pygrub/src/fsys/ext2/ext2module.c index 63d20f2983..57f1a83eaf 100644 --- a/tools/pygrub/src/fsys/ext2/ext2module.c +++ b/tools/pygrub/src/fsys/ext2/ext2module.c @@ -228,7 +228,10 @@ ext2_fs_open (Ext2Fs *fs, PyObject *args, PyObject *kwargs) } #ifdef HAVE_EXT2FS_OPEN2 - if (offset != 0) { + if (offset == 0) { + offsetopt[0] = '\0'; + } + else { snprintf(offsetopt, 29, "offset=%d", offset); } diff --git a/tools/python/Makefile b/tools/python/Makefile index 87d08a22e6..b3e404cb9f 100644 --- a/tools/python/Makefile +++ b/tools/python/Makefile @@ -1,12 +1,14 @@ XEN_ROOT = ../.. include $(XEN_ROOT)/tools/Rules.mk -.PHONY: all build install clean - +.PHONY: all all: build + +.PHONY: build build: CFLAGS="$(CFLAGS)" python setup.py build +.PHONY: install ifndef XEN_PYTHON_NATIVE_INSTALL install: all CFLAGS="$(CFLAGS)" python setup.py install --home="$(DESTDIR)/usr" --force @@ -15,8 +17,10 @@ install: all CFLAGS="$(CFLAGS)" python setup.py install --root="$(DESTDIR)" --force endif +.PHONY: test test: export LD_LIBRARY_PATH=$$(readlink -f ../libxc):$$(readlink -f ../xenstore); python test.py -b -u +.PHONY: clean clean: rm -rf build *.pyc *.pyo *.o *.a *~ diff --git a/tools/python/xen/util/diagnose.py b/tools/python/xen/util/diagnose.py index 51c59fdfff..d2d51eb626 100644 --- a/tools/python/xen/util/diagnose.py +++ b/tools/python/xen/util/diagnose.py @@ -41,7 +41,7 @@ def diagnose(dom): global dompath try: - domain = server.xend_domain(dom) + domain = server.xend.domain(dom) state = sxp.child_value(domain, 'state') domid = int(sxp.child_value(domain, 'domid')) name = sxp.child_value(domain, 'name') diff --git a/tools/security/Makefile b/tools/security/Makefile index 75646c6f46..7ac197b854 100644 --- a/tools/security/Makefile +++ b/tools/security/Makefile @@ -54,8 +54,10 @@ ACM_POLICY_SUFFIX = security_policy.xml ACM_LABEL_SUFFIX = security_label_template.xml ifeq ($(ACM_SECURITY),y) +.PHONY: all all: build +.PHONY: install install: all $(ACM_CONFIG_FILE) $(INSTALL_DIR) -p $(DESTDIR)/usr/sbin $(INSTALL_PROG) -p $(ACM_INST_TOOLS) $(DESTDIR)/usr/sbin @@ -79,11 +81,14 @@ else python python/setup.py install --root="$(DESTDIR)" endif else +.PHONY: all all: +.PHONY: install install: endif +.PHONY: build build: mk-symlinks $(ACM_INST_TOOLS) $(ACM_NOINST_TOOLS) python python/setup.py build chmod 700 $(ACM_SCRIPTS) @@ -100,6 +105,7 @@ get_decision: $(OBJS_GETD) xensec_gen: xensec_gen.py cp -f $^ $@ +.PHONY: clean clean: $(RM) $(ACM_INST_TOOLS) $(ACM_NOINST_TOOLS) $(RM) $(ACM_OBJS) @@ -107,8 +113,10 @@ clean: $(RM) -r xen $(RM) -r build +.PHONY: mrproper mrproper: clean +.PHONY: boot_install boot_install: install $(ACM_SCRIPT_DIR)/updategrub.sh $(POLICY) $(KERNEL_VERSION) diff --git a/tools/sv/Makefile b/tools/sv/Makefile index 06aa7c50ef..c9ae1deb0d 100644 --- a/tools/sv/Makefile +++ b/tools/sv/Makefile @@ -1,2 +1,3 @@ +.PHONY: all all: diff --git a/tools/tests/Makefile b/tools/tests/Makefile index 99b6b20408..afa6578619 100644 --- a/tools/tests/Makefile +++ b/tools/tests/Makefile @@ -6,14 +6,17 @@ TARGET := test_x86_emulator HOSTCFLAGS += -D__TEST_HARNESS__ +.PHONY: all all: $(TARGET) $(TARGET): x86_emulate.o test_x86_emulator.o $(HOSTCC) -o $@ $^ +.PHONY: clean clean: rm -rf $(TARGET) *.o *~ core +.PHONY: install install: x86_emulate.o: $(XEN_ROOT)/xen/arch/x86/x86_emulate.c diff --git a/tools/vnet/Makefile b/tools/vnet/Makefile index 7d16a7369f..33827c6a90 100644 --- a/tools/vnet/Makefile +++ b/tools/vnet/Makefile @@ -5,10 +5,6 @@ export VNET_ROOT = $(shell pwd) include $(VNET_ROOT)/Make.env endif -.PHONY: all compile install dist clean pristine -.PHONY: gc-all gc-install gc-clean -.PHONY: help - SUBDIRS:= SUBDIRS+= examples SUBDIRS+= scripts @@ -17,11 +13,13 @@ SUBDIRS+= libxutil SUBDIRS+= vnetd SUBDIRS+= vnet-module +.PHONY: all all: compile gc.tar.gz: wget http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/$@ +.PHONY: gc gc: gc.tar.gz tar xfz gc.tar.gz ln -sf gc?.? gc @@ -31,10 +29,13 @@ $(GC_LIB_A): gc make -C gc DESTDIR="" make -C gc install +.PHONY: gc-all gc-all: $(GC_LIB_A) +.PHONY: gc-install gc-install: +.PHONY: gc-clean gc-clean: -@$(RM) -r gc?.? gc @@ -50,19 +51,25 @@ subtgt = $(patsubst %,%-$(1),$(SUBDIRS)) %-install: $(call submak,install) +.PHONY: compile compile: $(call subtgt,all) +.PHONY: install install: DESTDIR= install: dist +.PHONY: dist dist: compile $(call subtgt,install) +.PHONY: clean clean: $(call subtgt,clean) -@$(RM) -r build +.PHONY: pristine pristine: clean -@$(RM) gc.tar.gz +.PHONY: help help: @echo 'Cleaning targets:' @echo ' clean - clean subdirs and remove the build dir' diff --git a/tools/vnet/doc/Makefile b/tools/vnet/doc/Makefile index 6ca7585f15..67f70ab68d 100644 --- a/tools/vnet/doc/Makefile +++ b/tools/vnet/doc/Makefile @@ -23,8 +23,10 @@ DOC_MAN5 := $(patsubst man/%.pod.5,man5/%.5,$(DOC_MAN5SRC)) .PHONY: all man clean install +.PHONY: all all: man +.PHONY: man man: @if which $(POD2MAN) 1>/dev/null 2>/dev/null; then \ $(MAKE) $(DOC_MAN1) $(DOC_MAN5); fi @@ -39,10 +41,12 @@ man5/%.5: man/%.pod.5 Makefile $(POD2MAN) --release=$(VERSION) --name=`echo $@ | sed 's/^man5.//'| \ sed 's/.5//'` -s 5 -c $(HEADER) $< $@ +.PHONY: clean clean: @$(RM) -rf man5 @$(RM) -rf man1 +.PHONY: install install: all $(INSTALL_DIR) $(DESTDIR)$(MAN_DIR) $(CP) -dR man1 $(DESTDIR)$(MAN_DIR) diff --git a/tools/vnet/examples/Makefile b/tools/vnet/examples/Makefile index 6953ef10cd..ba605ca318 100644 --- a/tools/vnet/examples/Makefile +++ b/tools/vnet/examples/Makefile @@ -7,13 +7,14 @@ INSTALL_DIR = $(INSTALL) -d -m0755 XEN_SCRIPT_DIR = $(DESTDIR)/etc/xen/scripts -.PHONY: all install clean - +.PHONY: all all: +.PHONY: install install: $(INSTALL_DIR) $(XEN_SCRIPT_DIR) $(INSTALL_PROG) network-vnet $(XEN_SCRIPT_DIR) $(INSTALL_PROG) vnet-insert $(XEN_SCRIPT_DIR) -clean:
\ No newline at end of file +.PHONY: clean +clean: diff --git a/tools/vnet/libxutil/Makefile b/tools/vnet/libxutil/Makefile index 8ace83e554..757e5567d6 100644 --- a/tools/vnet/libxutil/Makefile +++ b/tools/vnet/libxutil/Makefile @@ -42,8 +42,10 @@ LIB += libxutil.so.$(MAJOR) LIB += libxutil.so.$(MAJOR).$(MINOR) LIB += libxutil.a +.PHONY: all all: build +.PHONY: build build: #check-for-zlib $(MAKE) $(LIB) @@ -61,6 +63,7 @@ libxutil.so.$(MAJOR).$(MINOR): $(PIC_OBJS) libxutil.a: $(LIB_OBJS) $(AR) rc $@ $^ +.PHONY: check-for-zlib check-for-zlib: @if [ ! -e /usr/include/zlib.h ]; then \ echo "***********************************************************"; \ @@ -69,6 +72,7 @@ check-for-zlib: false; \ fi +.PHONY: install install: build [ -d $(DESTDIR)/usr/$(LIBDIR) ] || $(INSTALL_DIR) -p $(DESTDIR)/usr/$(LIBDIR) $(INSTALL_PROG) libxutil.so.$(MAJOR).$(MINOR) $(DESTDIR)/usr/$(LIBDIR) @@ -76,6 +80,7 @@ install: build ln -sf libxutil.so.$(MAJOR).$(MINOR) $(DESTDIR)/usr/$(LIBDIR)/libxutil.so.$(MAJOR) ln -sf libxutil.so.$(MAJOR) $(DESTDIR)/usr/$(LIBDIR)/libxutil.so +.PHONY: clean clean: -@$(RM) *.a *.so* *.o *.opic *.rpm -@$(RM) *~ diff --git a/tools/vnet/scripts/Makefile b/tools/vnet/scripts/Makefile index 05f737edc4..077d6b6224 100644 --- a/tools/vnet/scripts/Makefile +++ b/tools/vnet/scripts/Makefile @@ -7,12 +7,13 @@ INSTALL_DIR = $(INSTALL) -d -m0755 SBIN_DIR = $(DESTDIR)/usr/sbin -.PHONY: all install clean - +.PHONY: all all: +.PHONY: install install: $(INSTALL_DIR) $(SBIN_DIR) $(INSTALL_PROG) vn $(SBIN_DIR) -clean:
\ No newline at end of file +.PHONY: clean +clean: diff --git a/tools/vnet/vnetd/Makefile b/tools/vnet/vnetd/Makefile index 74a3d07b40..fe54c21bd1 100644 --- a/tools/vnet/vnetd/Makefile +++ b/tools/vnet/vnetd/Makefile @@ -19,6 +19,7 @@ VNET_ROOT = $(shell cd .. && pwd) include $(VNET_ROOT)/Make.env +.PHONY: all all: vnetd #---------------------------------------------------------------------------- @@ -104,10 +105,12 @@ VNETD_LIBS:= $(GC_LIB_A) vnetd: $(VNETD_OBJ) $(CC) $(CFLAGS) -o $@ $^ $(VNETD_LIBS) -ldl -lpthread +.PHONY: install install: vnetd mkdir -p $(DESTDIR)$(VNETD_INSTALL_DIR) install -m 0755 vnetd $(DESTDIR)$(VNETD_INSTALL_DIR) +.PHONY: clean clean: -@$(RM) *.a *.o *~ -@$(RM) vnetd diff --git a/tools/vtpm/Makefile b/tools/vtpm/Makefile index d34882f619..377f1b0436 100644 --- a/tools/vtpm/Makefile +++ b/tools/vtpm/Makefile @@ -13,14 +13,18 @@ TPM_EMULATOR_TARFILE = tpm_emulator-0.2b.tar.gz GMP_HEADER = /usr/include/gmp.h +.PHONY: all all: build +.PHONY: build build: $(TPM_EMULATOR_DIR) $(VTPM_DIR) build_sub +.PHONY: install install: build $(MAKE) -C $(TPM_EMULATOR_DIR) $@ $(MAKE) -C $(VTPM_DIR) $@ +.PHONY: clean clean: @if [ -d $(TPM_EMULATOR_DIR) ]; \ then $(MAKE) -C $(TPM_EMULATOR_DIR) clean; \ @@ -29,6 +33,7 @@ clean: then $(MAKE) -C $(VTPM_DIR) clean; \ fi +.PHONY: mrproper mrproper: rm -f $(TPM_EMULATOR_TARFILE) rm -rf $(TPM_EMULATOR_DIR) @@ -58,6 +63,7 @@ $(VTPM_DIR): $(TPM_EMULATOR_TARFILE) tpm_emulator-0.2b-x86_64.patch vtpm.patch patch -p1 < ../tpm_emulator-0.2b-x86_64.patch; \ patch -p1 <../vtpm.patch +.PHONY: build_sub build_sub: @if [ -e $(GMP_HEADER) ]; then \ $(MAKE) -C $(VTPM_DIR); \ diff --git a/tools/vtpm_manager/Makefile b/tools/vtpm_manager/Makefile index f57b82facb..1ae3a180ee 100644 --- a/tools/vtpm_manager/Makefile +++ b/tools/vtpm_manager/Makefile @@ -6,8 +6,10 @@ include $(XEN_ROOT)/tools/vtpm_manager/Rules.mk SUBDIRS = crypto tcs util manager OPENSSL_HEADER = /usr/include/openssl/crypto.h +.PHONY: all all: build +.PHONY: build build: @if [ -e $(OPENSSL_HEADER) ]; then \ @set -e; for subdir in $(SUBDIRS); do \ @@ -17,17 +19,20 @@ build: echo "*** Cannot build vtpm_manager: OpenSSL developement files missing."; \ fi +.PHONY: install install: build @set -e; for subdir in $(SUBDIRS); do \ $(MAKE) -C $$subdir $@; \ done +.PHONY: clean clean: @set -e; for subdir in $(SUBDIRS); do \ $(MAKE) -C $$subdir $@; \ done +.PHONY: mrproper mrproper: @set -e; for subdir in $(SUBDIRS); do \ $(MAKE) -C $$subdir $@; \ diff --git a/tools/vtpm_manager/crypto/Makefile b/tools/vtpm_manager/crypto/Makefile index 160fce812e..63233a940e 100644 --- a/tools/vtpm_manager/crypto/Makefile +++ b/tools/vtpm_manager/crypto/Makefile @@ -3,15 +3,20 @@ include $(XEN_ROOT)/tools/vtpm_manager/Rules.mk BIN = libtcpaCrypto.a +.PHONY: all all: build +.PHONY: build build: $(BIN) +.PHONY: install install: build +.PHONY: clean clean: rm -f *.a *.so *.o *.rpm $(DEP_FILES) +.PHONY: mrproper mrproper: clean rm -f *~ diff --git a/tools/vtpm_manager/manager/Makefile b/tools/vtpm_manager/manager/Makefile index 278a37e963..d0b3526b42 100644 --- a/tools/vtpm_manager/manager/Makefile +++ b/tools/vtpm_manager/manager/Makefile @@ -3,19 +3,24 @@ include $(XEN_ROOT)/tools/vtpm_manager/Rules.mk BIN = vtpm_managerd +.PHONY: all all: build +.PHONY: build build: $(BIN) +.PHONY: install install: build if [ ! -d "$(DESTDIR)/var/vtpm/fifos" ]; \ then mkdir -p $(DESTDIR)/var/vtpm/fifos; \ fi $(INSTALL_PROG) $(BIN) $(TOOLS_INSTALL_DIR) +.PHONY: clean clean: rm -f *.a *.so *.o *.rpm $(DEP_FILES) +.PHONY: mrproper mrproper: clean rm -f $(BIN) *~ diff --git a/tools/vtpm_manager/tcs/Makefile b/tools/vtpm_manager/tcs/Makefile index 56f4166fdf..9d25817e63 100644 --- a/tools/vtpm_manager/tcs/Makefile +++ b/tools/vtpm_manager/tcs/Makefile @@ -3,15 +3,20 @@ include $(XEN_ROOT)/tools/vtpm_manager/Rules.mk BIN = libTCS.a +.PHONY: all all: build +.PHONY: build build: $(BIN) +.PHONY: install install: build +.PHONY: clean clean: rm -f *.a *.so *.o *.rpm $(DEP_FILES) +.PHONY: mrproper mrproper: clean rm -f *~ diff --git a/tools/vtpm_manager/util/Makefile b/tools/vtpm_manager/util/Makefile index 8e59d0d8d3..9e26c5df15 100644 --- a/tools/vtpm_manager/util/Makefile +++ b/tools/vtpm_manager/util/Makefile @@ -3,15 +3,20 @@ include $(XEN_ROOT)/tools/vtpm_manager/Rules.mk BIN = libTCGUtils.a +.PHONY: all all: build +.PHONY: build build: $(BIN) +.PHONY: install install: build +.PHONY: clean clean: rm -f *.a *.so *.o *.rpm $(DEP_FILES) +.PHONY: mrproper mrproper: clean rm -f *~ diff --git a/tools/xcutils/Makefile b/tools/xcutils/Makefile index 9907dfa0c5..4c7354afb8 100644 --- a/tools/xcutils/Makefile +++ b/tools/xcutils/Makefile @@ -32,6 +32,8 @@ LDLIBS = -L$(XEN_LIBXC) -lxenguest -lxenctrl .PHONY: all all: build + +.PHONY: build build: $(PROGRAMS) $(PROGRAMS): %: %.o @@ -44,6 +46,7 @@ install: build $(INSTALL_PROG) $(PROGRAMS) $(DESTDIR)$(PROGRAMS_INSTALL_DIR) +.PHONY: clean clean: $(RM) *.o $(PROGRAMS) $(RM) $(PROG_DEP) diff --git a/tools/xenmon/Makefile b/tools/xenmon/Makefile index ffdca8049e..baba3e129d 100644 --- a/tools/xenmon/Makefile +++ b/tools/xenmon/Makefile @@ -28,16 +28,20 @@ LDFLAGS += -L $(XEN_LIBXC) BIN = setmask xenbaked SCRIPTS = xenmon.py +.PHONY: all all: build +.PHONY: build build: $(BIN) +.PHONY: install install: xenbaked setmask [ -d $(DESTDIR)$(sbindir) ] || $(INSTALL_DIR) $(DESTDIR)$(sbindir) $(INSTALL_PROG) xenbaked $(DESTDIR)$(sbindir)/xenbaked $(INSTALL_PROG) setmask $(DESTDIR)$(sbindir)/setmask $(INSTALL_PROG) xenmon.py $(DESTDIR)$(sbindir)/xenmon.py +.PHONY: clean clean: rm -f $(BIN) diff --git a/tools/xenstat/libxenstat/Makefile b/tools/xenstat/libxenstat/Makefile index 52832017ff..f97f2a7618 100644 --- a/tools/xenstat/libxenstat/Makefile +++ b/tools/xenstat/libxenstat/Makefile @@ -41,6 +41,7 @@ WARN_FLAGS=-Wall -Werror CFLAGS+=-Isrc -I$(XEN_LIBXC) -I$(XEN_XENSTORE) LDFLAGS+=-Lsrc +.PHONY: all all: $(LIB) $(LIB): $(OBJECTS) @@ -62,6 +63,7 @@ src/libxenstat.so.$(MAJOR): $(LIB) src/libxenstat.so: src/libxenstat.so.$(MAJOR) $(MAKE_LINK) $(<F) $@ +.PHONY: install install: all #install: all # $(INSTALL_DATA) src/xenstat.h $(DESTDIR)$(includedir)/xenstat.h @@ -84,6 +86,7 @@ BINDINGS=$(PYLIB) $(PYMOD) $(PERLLIB) $(PERLMOD) BINDINGSRC=$(PYSRC) $(PERLSRC) # The all-bindings target builds all the language bindings +.PHONY: all-bindings all-bindings: perl-bindings python-bindings # The install-bindings target installs all the language bindings @@ -110,6 +113,7 @@ install-python-bindings: $(PYLIB) $(PYMOD) $(INSTALL_PROG) $(PYMOD) $(DESTDIR)$(pythonlibdir)/xenstat.py ifeq ($(XENSTAT_PYTHON_BINDINGS),y) +.PHONY: all all: python-bindings install: install-python-bindings endif @@ -122,8 +126,10 @@ $(PERLSRC) $(PERLMOD): bindings/swig/xenstat.i $(PERLLIB): $(PERLSRC) $(CC) $(CFLAGS) $(LDFLAGS) $(PERL_FLAGS) -shared -lxenstat -o $@ $< +.PHONY: perl-bindings perl-bindings: $(PERLLIB) $(PERLMOD) +.PHONY: install-perl-bindings perllibdir=$(prefix)/lib/perl5 perlmoddir=$(prefix)/share/perl5 install-perl-bindings: $(PERLLIB) $(PERLMOD) @@ -131,10 +137,14 @@ install-perl-bindings: $(PERLLIB) $(PERLMOD) $(INSTALL_PROG) $(PERLMOD) $(DESTDIR)$(perlmoddir)/xenstat.pm ifeq ($(XENSTAT_PERL_BINDINGS),y) +.PHONY: all all: perl-bindings + +.PHONY: install install: install-perl-bindings endif +.PHONY: clean clean: rm -f $(LIB) $(SHLIB) $(SHLIB_LINKS) $(OBJECTS) \ $(BINDINGS) $(BINDINGSRC) diff --git a/tools/xenstat/xentop/Makefile b/tools/xenstat/xentop/Makefile index 633fd57064..d3b7671bdb 100644 --- a/tools/xenstat/xentop/Makefile +++ b/tools/xenstat/xentop/Makefile @@ -14,6 +14,7 @@ XEN_ROOT=../../.. include $(XEN_ROOT)/tools/Rules.mk ifneq ($(XENSTAT_XENTOP),y) +.PHONY: all install xentop all install xentop: else @@ -30,15 +31,19 @@ CFLAGS += -DGCC_PRINTF -Wall -Werror -I$(XEN_LIBXENSTAT) LDFLAGS += -L$(XEN_LIBXENSTAT) LDLIBS += -lxenstat -lncurses +.PHONY: all all: xentop +.PHONY: xentop xentop: xentop.o +.PHONY: install install: xentop xentop.1 $(INSTALL_PROG) xentop $(DESTDIR)$(sbindir)/xentop $(INSTALL_DATA) xentop.1 $(DESTDIR)$(man1dir)/xentop.1 endif +.PHONY: clean clean: rm -f xentop xentop.o diff --git a/tools/xenstore/Makefile b/tools/xenstore/Makefile index 70877eff8a..708662e8fc 100644 --- a/tools/xenstore/Makefile +++ b/tools/xenstore/Makefile @@ -27,11 +27,13 @@ CLIENTS := xenstore-exists xenstore-list xenstore-read xenstore-rm CLIENTS += xenstore-write CLIENTS_OBJS := $(patsubst xenstore-%,xenstore_%.o,$(CLIENTS)) +.PHONY: all all: libxenstore.so xenstored $(CLIENTS) xs_tdb_dump xenstore-control xenstore-ls test_interleaved_transactions: test_interleaved_transactions.o $(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -L. -lxenstore -o $@ +.PHONY: testcode testcode: xs_test xenstored_test xs_random xenstored: xenstored_core.o xenstored_watch.o xenstored_domain.o xenstored_transaction.o xs_lib.o talloc.o utils.o tdb.o hashtable.o @@ -55,14 +57,17 @@ xenstored_test: xenstored_core_test.o xenstored_watch_test.o xenstored_domain_te xs_tdb_dump: xs_tdb_dump.o utils.o tdb.o talloc.o $(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -o $@ +.PHONY: xs_test xs_random xs_stress xs_crashme xs_test xs_random xs_stress xs_crashme: LDFLAGS+=-lpthread xs_test: xs_test.o xs_lib.o utils.o xs_random: xs_random.o xs_test_lib.o xs_lib.o talloc.o utils.o xs_stress: xs_stress.o xs_test_lib.o xs_lib.o talloc.o utils.o xs_crashme: xs_crashme.o xs_lib.o talloc.o utils.o +.PHONY: speedtest speedtest: speedtest.o xs.o xs_lib.o utils.o talloc.o +.PHONY: check-speed check-speed: speedtest xenstored_test $(TESTDIR) $(TESTENV) time ./speedtest 100 @@ -80,6 +85,7 @@ talloc_test.o: talloc.c libxenstore.so: xs.opic xs_lib.opic $(CC) $(CFLAGS) $(LDFLAGS) -Wl,-soname -Wl,libxenstore.so -shared -o $@ $^ -lpthread +.PHONY: clean clean: testsuite-clean rm -f *.o *.opic *.so rm -f xenstored xs_random xs_stress xs_crashme @@ -87,55 +93,69 @@ clean: testsuite-clean rm -f $(CLIENTS) $(RM) $(PROG_DEP) +.PHONY: print-dir print-dir: @echo -n tools/xenstore: +.PHONY: print-end print-end: @echo +.PHONY: check check: print-dir testsuite-fast randomcheck-fast print-end +.PHONY: fullcheck fullcheck: testsuite-run randomcheck stresstest $(TESTDIR): mkdir $@ +.PHONY: testsuite-run testsuite-run: xenstored_test xs_test $(TESTDIR) $(TESTENV) testsuite/test.sh && echo +.PHONY: testsuite-fast testsuite-fast: xenstored_test xs_test $(TESTDIR) @$(TESTENV) testsuite/test.sh --fast +.PHONY: testsuite-clean testsuite-clean: rm -rf $(TESTDIR) # Make this visible so they can see repeat tests without --fast if they # fail. RANDSEED=$(shell date +%s) +.PHONY: randomcheck randomcheck: xs_random xenstored_test $(TESTDIR) $(TESTENV) ./xs_random --simple --fast /tmp/xs_random 200000 $(RANDSEED) && echo $(TESTENV) ./xs_random --fast /tmp/xs_random 100000 $(RANDSEED) && echo # $(TESTENV) ./xs_random --fail /tmp/xs_random 10000 $(RANDSEED) +.PHONY: crashme crashme: xs_crashme xenstored_test $(TESTDIR) rm -rf $(TESTDIR)/store $(TESTDIR)/transactions /tmp/xs_crashme.vglog* /tmp/trace export $(TESTENV); ./xs_crashme 5000 $(RANDSEED) 2>/dev/null if [ -n "`cat /tmp/xs_crashme.vglog*`" ]; then echo Valgrind complained; cat /tmp/xs_crashme.vglog*; exit 1; fi rm -rf $(TESTDIR)/store $(TESTDIR)/transactions /tmp/xs_crashme.vglog* /tmp/trace +.PHONY: randomcheck-fast randomcheck-fast: xs_random xenstored_test $(TESTDIR) @$(TESTENV) ./xs_random --fast /tmp/xs_random 2000 $(RANDSEED) +.PHONY: stresstest stresstest: xs_stress xenstored_test $(TESTDIR) rm -rf $(TESTDIR)/store $(TESTDIR)/transactions export $(TESTENV); PID=`./xenstored_test --output-pid --trace-file=/tmp/trace`; ./xs_stress 5000; ret=$$?; kill $$PID; exit $$ret +.PHONY: TAGS TAGS: etags `find . -name '*.[ch]'` +.PHONY: tarball tarball: clean cd .. && tar -c -j -v -h -f xenstore.tar.bz2 xenstore/ +.PHONY: install install: all $(INSTALL_DIR) -p $(DESTDIR)/var/run/xenstored $(INSTALL_DIR) -p $(DESTDIR)/var/lib/xenstored diff --git a/tools/xentrace/Makefile b/tools/xentrace/Makefile index b02a39b18e..f7f8ac1969 100644 --- a/tools/xentrace/Makefile +++ b/tools/xentrace/Makefile @@ -28,9 +28,13 @@ ifeq ($(XEN_TARGET_ARCH),x86_64) LIBBIN += xenctx endif +.PHONY: all all: build + +.PHONY: build build: $(BIN) $(LIBBIN) +.PHONY: install install: build [ -d $(DESTDIR)/usr/bin ] || $(INSTALL_DIR) $(DESTDIR)/usr/bin [ -z "$(LIBBIN)" ] || [ -d $(DESTDIR)/usr/$(LIBDIR)/xen/bin ] || \ @@ -44,6 +48,7 @@ install: build $(INSTALL_DATA) $(MAN1) $(DESTDIR)/usr/share/man/man1 $(INSTALL_DATA) $(MAN8) $(DESTDIR)/usr/share/man/man8 +.PHONY: clean clean: $(RM) *.a *.so *.o *.rpm $(BIN) $(LIBBIN) diff --git a/xen/Makefile b/xen/Makefile index c34445ac37..3bda17760f 100644 --- a/xen/Makefile +++ b/xen/Makefile @@ -7,17 +7,21 @@ export XEN_FULLVERSION := $(XEN_VERSION).$(XEN_SUBVERSION)$(XEN_EXTRAVERSION) export BASEDIR := $(CURDIR) +.PHONY: default default: build ifeq ($(XEN_ROOT),) +.PHONY: build install clean build install clean: make -f Rules.mk $@ else +.PHONY: build build: $(TARGET).gz +.PHONY: install install: $(TARGET).gz [ -d $(DESTDIR)/boot ] || $(INSTALL_DIR) $(DESTDIR)/boot $(INSTALL_DATA) $(TARGET).gz $(DESTDIR)/boot/$(notdir $(TARGET))-$(XEN_FULLVERSION).gz @@ -31,6 +35,7 @@ install: $(TARGET).gz $(INSTALL_DATA) include/public/io/*.h $(DESTDIR)/usr/include/xen/io $(INSTALL_DATA) include/public/COPYING $(DESTDIR)/usr/include/xen +.PHONY: clean clean:: delete-unfresh-files $(MAKE) -C tools clean $(MAKE) -f $(BASEDIR)/Rules.mk -C common clean @@ -43,9 +48,11 @@ clean:: delete-unfresh-files endif +.PHONY: install dist: install -debug: FORCE +.PHONY: debug +debug: objdump -D -S $(TARGET)-syms > $(TARGET).s $(TARGET).gz: $(TARGET) @@ -63,6 +70,7 @@ $(TARGET): delete-unfresh-files # drivers/char/console.o contains static banner/compile info. Blow it away. # Don't refresh these files during e.g., 'sudo make install' +.PHONY: delete-unfresh-files delete-unfresh-files: @if [ ! -r include/xen/compile.h -o -O include/xen/compile.h ]; then \ rm -f include/xen/{banner,compile}.h; \ @@ -119,8 +127,6 @@ include/asm-$(TARGET_ARCH)/asm-offsets.h: arch/$(TARGET_ARCH)/asm-offsets.s echo ""; \ echo "#endif") <$< >$@ -.PHONY: default debug build install dist clean delete-unfresh-files TAGS tags - SUBDIRS = acm arch/$(TARGET_ARCH) common drivers define all_sources ( find include/asm-$(TARGET_ARCH) -name SCCS -prune -o -name '*.h' -print; \ @@ -128,12 +134,20 @@ define all_sources -name config \) -prune -o -name '*.h' -print; \ find $(SUBDIRS) -name SCCS -prune -o -name '*.[chS]' -print ) endef + +.PHONY: TAGS TAGS: $(all_sources) | etags - + +.PHONY: tags tags: $(all_sources) | xargs ctags + +.PHONY: cscope cscope: $(all_sources) > cscope.files cscope -k -b -q + +.PHONY: MAP MAP: $(NM) $(TARGET) | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > System.map diff --git a/xen/Rules.mk b/xen/Rules.mk index 1f4687f7fa..82449c344f 100644 --- a/xen/Rules.mk +++ b/xen/Rules.mk @@ -86,13 +86,15 @@ subdir-all := $(subdir-y) $(subdir-n) built_in.o: $(obj-y) $(LD) $(LDFLAGS) -r -o $@ $^ +# Force execution of pattern rules (for which PHONY cannot be directly used). .PHONY: FORCE FORCE: %/built_in.o: FORCE $(MAKE) -f $(BASEDIR)/Rules.mk -C $* built_in.o -clean:: $(addprefix _clean_, $(subdir-all)) FORCE +.PHONY: clean +clean:: $(addprefix _clean_, $(subdir-all)) rm -f *.o *~ core _clean_%/: FORCE $(MAKE) -f $(BASEDIR)/Rules.mk -C $* clean diff --git a/xen/arch/ia64/Makefile b/xen/arch/ia64/Makefile index 14db4f2fa9..4ce2d7acd5 100644 --- a/xen/arch/ia64/Makefile +++ b/xen/arch/ia64/Makefile @@ -75,7 +75,8 @@ xen.lds.s: xen/xen.lds.S $(CC) -E $(CPPFLAGS) -P -DXEN $(AFLAGS) \ -o xen.lds.s xen/xen.lds.S -clean:: FORCE +.PHONY: clean +clean:: rm -f *.o *~ core xen.lds.s $(BASEDIR)/include/asm-ia64/.offsets.h.stamp asm-offsets.s map.out rm -f asm-xsi-offsets.s $(BASEDIR)/include/asm-ia64/asm-xsi-offsets.h rm -f $(BASEDIR)/System.map diff --git a/xen/arch/ia64/tools/privop/Makefile b/xen/arch/ia64/tools/privop/Makefile index c4e9b1c9fd..fb64e9087e 100644 --- a/xen/arch/ia64/tools/privop/Makefile +++ b/xen/arch/ia64/tools/privop/Makefile @@ -1,10 +1,13 @@ CC=gcc CFLAGS=-O -Wall +.PHONY: all all: postat +.PHONY: postat postat: postat.c pohcalls.o +.PHONY: clean clean: $(RM) -f *.o postat *.s *~ diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile index 5e70e72533..7ce15fea93 100644 --- a/xen/arch/x86/Makefile +++ b/xen/arch/x86/Makefile @@ -77,5 +77,6 @@ boot/mkelf32: boot/mkelf32.c shadow_guest32.o: shadow.c -clean:: FORCE +.PHONY: clean +clean:: rm -f asm-offsets.s xen.lds boot/*.o boot/*~ boot/core boot/mkelf32 diff --git a/xen/tools/Makefile b/xen/tools/Makefile index 4d353617bd..67c48ce168 100644 --- a/xen/tools/Makefile +++ b/xen/tools/Makefile @@ -1,13 +1,16 @@ include $(BASEDIR)/../Config.mk +.PHONY: default default: $(MAKE) -C figlet $(MAKE) symbols +.PHONY: clean clean: $(MAKE) -C figlet clean rm -f *.o symbols +.PHONY: symbols symbols: symbols.c $(HOSTCC) $(HOSTCFLAGS) -o $@ $< diff --git a/xen/tools/figlet/Makefile b/xen/tools/figlet/Makefile index bb9c64fa79..cc44294dad 100644 --- a/xen/tools/figlet/Makefile +++ b/xen/tools/figlet/Makefile @@ -4,5 +4,6 @@ include $(BASEDIR)/../Config.mk figlet: figlet.c $(HOSTCC) -o $@ $< +.PHONY: clean clean: rm -f *.o figlet |