ia64/xen-unstable

changeset 3564:2e60786262c4

bitkeeper revision 1.1159.231.8 (41f92d4dBn-4k24hnQtAJIjhmWfRjQ)

Merge changes from 2.0-testing.

Signed-off-by: c@pin.lu
author cl349@arcadians.cl.cam.ac.uk
date Thu Jan 27 18:05:01 2005 +0000 (2005-01-27)
parents de9af8f0cdf1 308203ddc173
children 30ee9c427a5b a396b30da79d
files Makefile linux-2.6.10-xen-sparse/arch/xen/Kconfig linux-2.6.10-xen-sparse/drivers/xen/netfront/netfront.c tools/examples/Makefile tools/libxc/Makefile tools/libxutil/Makefile tools/misc/Makefile tools/misc/miniterm/Makefile tools/python/xen/xend/XendDomainInfo.py tools/python/xen/xend/server/netif.py tools/sv/Makefile tools/xentrace/Makefile tools/xfrd/Makefile xen/Makefile
line diff
     1.1 --- a/Makefile	Thu Jan 27 16:16:19 2005 +0000
     1.2 +++ b/Makefile	Thu Jan 27 18:05:01 2005 +0000
     1.3 @@ -11,7 +11,7 @@ INSTALL_DIR	:= $(INSTALL) -d -m0755
     1.4  INSTALL_DATA	:= $(INSTALL) -m0644
     1.5  INSTALL_PROG	:= $(INSTALL) -m0755
     1.6  
     1.7 -KERNELS ?= *2.6*
     1.8 +KERNELS ?= linux-2.6-xen0 linux-2.6-xenU
     1.9  # linux-2.4-xen0 linux-2.4-xenU netbsd-2.0-xenU
    1.10  # You may use wildcards in the above e.g. KERNELS=*2.4*
    1.11  
    1.12 @@ -30,20 +30,12 @@ endif
    1.13  include buildconfigs/Rules.mk
    1.14  
    1.15  .PHONY:	all dist install xen tools kernels docs world clean mkpatches mrproper
    1.16 -.PHONY:	kbuild kdelete kclean install-tools install-xen install-docs
    1.17 -.PHONY: install-kernels
    1.18 +.PHONY:	kbuild kdelete kclean
    1.19  
    1.20  all: dist
    1.21  
    1.22 -# install everything into the standard system directories
    1.23 -# NB: install explicitly does not check that everything is up to date!
    1.24 -install: DESTDIR=
    1.25 -install: xen checked-tools kernels docs
    1.26 -
    1.27 -# Only check for install req'mts on 'make install', not on 'make dist'.
    1.28 -checked-tools:
    1.29 -	$(MAKE) -C tools/check install
    1.30 -	$(MAKE) -C tools install
    1.31 +# build and install everything into the standard system directories
    1.32 +install: install-xen install-tools install-kernels install-docs
    1.33  
    1.34  # build and install everything into local dist directory
    1.35  dist: xen tools kernels docs
    1.36 @@ -118,9 +110,17 @@ install-iptables:
    1.37  	tar -jxf iptables-1.2.11.tar.bz2
    1.38  	$(MAKE) -C iptables-1.2.11 PREFIX= KERNEL_DIR=../linux-$(LINUX_VER)-xen0 install
    1.39  
    1.40 +install-%: DESTDIR=
    1.41 +install-%: %
    1.42 +	@: # do nothing
    1.43 +
    1.44  help:
    1.45  	@echo 'Installation targets:'
    1.46  	@echo '  install          - build and install everything'
    1.47 +	@echo '  install-xen      - build and install the Xen hypervisor'
    1.48 +	@echo '  install-tools    - build and install the control tools'
    1.49 +	@echo '  install-kernels  - build and install guest kernels'
    1.50 +	@echo '  install-docs     - build and install documentation'
    1.51  	@echo ''
    1.52  	@echo 'Building targets:'
    1.53  	@echo '  dist             - build and install everything into local dist directory'
    1.54 @@ -178,3 +178,4 @@ linux26:
    1.55  
    1.56  netbsd20:
    1.57  	$(MAKE) netbsd-2.0-xenU-build
    1.58 +
     2.1 --- a/linux-2.6.10-xen-sparse/arch/xen/Kconfig	Thu Jan 27 16:16:19 2005 +0000
     2.2 +++ b/linux-2.6.10-xen-sparse/arch/xen/Kconfig	Thu Jan 27 18:05:01 2005 +0000
     2.3 @@ -26,7 +26,7 @@ menu "XEN"
     2.4  config XEN_PRIVILEGED_GUEST
     2.5  	bool "Privileged Guest (domain 0)"
     2.6  	default n
     2.7 -        select XEN_PHYSDEV_ACCESS
     2.8 +	select XEN_PHYSDEV_ACCESS
     2.9  	help
    2.10  	  Support for privileged operation (domain 0)
    2.11  
    2.12 @@ -35,18 +35,18 @@ config XEN_PHYSDEV_ACCESS
    2.13  	default XEN_PRIVILEGED_GUEST
    2.14  	help
    2.15  	  Assume access is available to physical hardware devices
    2.16 -          (e.g., hard drives, network cards). This allows you to configure
    2.17 -          such devices and also includes some low-level support that is
    2.18 -          otherwise not compiled into the kernel.
    2.19 +	  (e.g., hard drives, network cards). This allows you to configure
    2.20 +	  such devices and also includes some low-level support that is
    2.21 +	  otherwise not compiled into the kernel.
    2.22  
    2.23  config XEN_BLKDEV_BACKEND
    2.24 -        bool "Block-device backend driver"
    2.25 -      depends on XEN_PHYSDEV_ACCESS
    2.26 -        default y
    2.27 -        help
    2.28 -          The block-device backend driver allows the kernel to export its
    2.29 -          block devices to other guests via a high-performance shared-memory
    2.30 -          interface.
    2.31 +	bool "Block-device backend driver"
    2.32 +	depends on XEN_PHYSDEV_ACCESS
    2.33 +	default y
    2.34 +	help
    2.35 +	  The block-device backend driver allows the kernel to export its
    2.36 +	  block devices to other guests via a high-performance shared-memory
    2.37 +	  interface.
    2.38  
    2.39  config XEN_BLKDEV_TAP_BE
    2.40          bool "Block Tap support for backend driver (DANGEROUS)"
    2.41 @@ -62,87 +62,86 @@ config XEN_BLKDEV_TAP_BE
    2.42            modified to use grant tables.
    2.43  
    2.44  config XEN_NETDEV_BACKEND
    2.45 -        bool "Network-device backend driver"
    2.46 -      depends on XEN_PHYSDEV_ACCESS
    2.47 -        default y
    2.48 -        help
    2.49 -          The network-device backend driver allows the kernel to export its
    2.50 -          network devices to other guests via a high-performance shared-memory
    2.51 -          interface.
    2.52 +	bool "Network-device backend driver"
    2.53 +	depends on XEN_PHYSDEV_ACCESS
    2.54 +	default y
    2.55 +	help
    2.56 +	  The network-device backend driver allows the kernel to export its
    2.57 +	  network devices to other guests via a high-performance shared-memory
    2.58 +	  interface.
    2.59  
    2.60  config XEN_BLKDEV_FRONTEND
    2.61 -        bool "Block-device frontend driver"
    2.62 -        default y
    2.63 -        help
    2.64 -          The block-device frontend driver allows the kernel to access block
    2.65 -          devices mounted within another guest OS. Unless you are building a
    2.66 -          dedicated device-driver domain, or your master control domain
    2.67 -          (domain 0), then you almost certainly want to say Y here.
    2.68 +	bool "Block-device frontend driver"
    2.69 +	default y
    2.70 +	help
    2.71 +	  The block-device frontend driver allows the kernel to access block
    2.72 +	  devices mounted within another guest OS. Unless you are building a
    2.73 +	  dedicated device-driver domain, or your master control domain
    2.74 +	  (domain 0), then you almost certainly want to say Y here.
    2.75  
    2.76  config XEN_NETDEV_FRONTEND
    2.77 -        bool "Network-device frontend driver"
    2.78 -        default y
    2.79 -        help
    2.80 -          The network-device frontend driver allows the kernel to access
    2.81 -          network interfaces within another guest OS. Unless you are building a
    2.82 -          dedicated device-driver domain, or your master control domain
    2.83 -          (domain 0), then you almost certainly want to say Y here.
    2.84 +	bool "Network-device frontend driver"
    2.85 +	default y
    2.86 +	help
    2.87 +	  The network-device frontend driver allows the kernel to access
    2.88 +	  network interfaces within another guest OS. Unless you are building a
    2.89 +	  dedicated device-driver domain, or your master control domain
    2.90 +	  (domain 0), then you almost certainly want to say Y here.
    2.91  
    2.92  config XEN_NETDEV_FRONTEND_PIPELINED_TRANSMITTER
    2.93 -        bool "Pipelined transmitter (DANGEROUS)"
    2.94 +	bool "Pipelined transmitter (DANGEROUS)"
    2.95  	depends on XEN_NETDEV_FRONTEND
    2.96 -        default n
    2.97 -        help
    2.98 -          The driver will assume that the backend is pipelining packets for
    2.99 -          transmission: whenever packets are pending in the remote backend,
   2.100 -          the driver will not send asynchronous notifications when it queues
   2.101 -          additional packets for transmission.
   2.102 -          If the backend is a dumb domain, such as a transparent Ethernet
   2.103 -          bridge with no local IP interface, it is safe to say Y here to get
   2.104 -          slightly lower network overhead.
   2.105 -          If the backend has a local IP interface; or may be doing smart things
   2.106 -          like reassembling packets to perform firewall filtering; or if you
   2.107 -          are unsure; or if you experience network hangs when this option is
   2.108 -          enabled; then you must say N here.
   2.109 +	default n
   2.110 +	help
   2.111 +	  The driver will assume that the backend is pipelining packets for
   2.112 +	  transmission: whenever packets are pending in the remote backend,
   2.113 +	  the driver will not send asynchronous notifications when it queues
   2.114 +	  additional packets for transmission.
   2.115 +	  If the backend is a dumb domain, such as a transparent Ethernet
   2.116 +	  bridge with no local IP interface, it is safe to say Y here to get
   2.117 +	  slightly lower network overhead.
   2.118 +	  If the backend has a local IP interface; or may be doing smart things
   2.119 +	  like reassembling packets to perform firewall filtering; or if you
   2.120 +	  are unsure; or if you experience network hangs when this option is
   2.121 +	  enabled; then you must say N here.
   2.122  
   2.123  config XEN_BLKDEV_TAP
   2.124 -        bool "Block device tap driver"
   2.125 -        default n
   2.126 -        help
   2.127 -          This driver allows a VM to interact on block device channels
   2.128 -          to other VMs.  Block messages may be passed through or redirected
   2.129 -          to a character device, allowing device prototyping in application
   2.130 -          space.  Odds are that you want to say N here.
   2.131 -
   2.132 +	bool "Block device tap driver"
   2.133 +	default n
   2.134 +	help
   2.135 +	  This driver allows a VM to interact on block device channels
   2.136 +	  to other VMs.  Block messages may be passed through or redirected
   2.137 +	  to a character device, allowing device prototyping in application
   2.138 +	  space.  Odds are that you want to say N here.
   2.139  
   2.140  config XEN_WRITABLE_PAGETABLES
   2.141  	bool
   2.142  	default y
   2.143  
   2.144  config XEN_SCRUB_PAGES
   2.145 -        bool "Scrub memory before freeing it to Xen"
   2.146 -        default y
   2.147 -        help
   2.148 -          Erase memory contents before freeing it back to Xen's global
   2.149 -          pool. This ensures that any secrets contained within that
   2.150 -          memory (e.g., private keys) cannot be found by other guests that
   2.151 -          may be running on the machine. Most people will want to say Y here.
   2.152 -          If security is not a concern then you may increase performance by
   2.153 -          saying N.
   2.154 +	bool "Scrub memory before freeing it to Xen"
   2.155 +	default y
   2.156 +	help
   2.157 +	  Erase memory contents before freeing it back to Xen's global
   2.158 +	  pool. This ensures that any secrets contained within that
   2.159 +	  memory (e.g., private keys) cannot be found by other guests that
   2.160 +	  may be running on the machine. Most people will want to say Y here.
   2.161 +	  If security is not a concern then you may increase performance by
   2.162 +	  saying N.
   2.163  
   2.164  choice
   2.165 -        prompt "Processor Type"
   2.166 -        default X86
   2.167 +	prompt "Processor Type"
   2.168 +	default X86
   2.169  
   2.170  config X86
   2.171 -        bool "X86"
   2.172 -        help
   2.173 -          Choose this option if your computer is a X86 architecture.
   2.174 +	bool "X86"
   2.175 +	help
   2.176 +	  Choose this option if your computer is a X86 architecture.
   2.177  
   2.178  config X86_64
   2.179 -        bool "X86_64"
   2.180 -        help
   2.181 -          Choose this option if your computer is a X86 architecture.
   2.182 +	bool "X86_64"
   2.183 +	help
   2.184 +	  Choose this option if your computer is a X86 architecture.
   2.185  
   2.186  endchoice
   2.187  
     3.1 --- a/linux-2.6.10-xen-sparse/drivers/xen/netfront/netfront.c	Thu Jan 27 16:16:19 2005 +0000
     3.2 +++ b/linux-2.6.10-xen-sparse/drivers/xen/netfront/netfront.c	Thu Jan 27 18:05:01 2005 +0000
     3.3 @@ -1295,8 +1295,7 @@ static int __init netif_init(void)
     3.4  {
     3.5      int err = 0;
     3.6  
     3.7 -    if ( (xen_start_info.flags & SIF_INITDOMAIN) ||
     3.8 -         (xen_start_info.flags & SIF_NET_BE_DOMAIN) )
     3.9 +    if ( xen_start_info.flags & SIF_INITDOMAIN )
    3.10          return 0;
    3.11  
    3.12      IPRINTK("Initialising virtual ethernet driver.\n");
     4.1 --- a/tools/examples/Makefile	Thu Jan 27 16:16:19 2005 +0000
     4.2 +++ b/tools/examples/Makefile	Thu Jan 27 18:05:01 2005 +0000
     4.3 @@ -28,20 +28,23 @@ all:
     4.4  install: all install-initd install-configs install-scripts
     4.5  
     4.6  install-initd:
     4.7 -	$(INSTALL_DIR) $(DESTDIR)/etc/init.d
     4.8 +	[ -d $(DESTDIR)/etc/init.d ] || $(INSTALL_DIR) $(DESTDIR)/etc/init.d
     4.9  	$(INSTALL_PROG) $(XEND_INITD) $(DESTDIR)/etc/init.d
    4.10  	$(INSTALL_PROG) $(XENDOMAINS_INITD) $(DESTDIR)/etc/init.d
    4.11  
    4.12  install-configs:
    4.13 -	$(INSTALL_DIR) $(DESTDIR)$(XEN_CONFIG_DIR)
    4.14 -	$(INSTALL_DIR) $(DESTDIR)$(XEN_CONFIG_DIR)/auto
    4.15 +	[ -d $(DESTDIR)$(XEN_CONFIG_DIR) ] || \
    4.16 +		$(INSTALL_DIR) $(DESTDIR)$(XEN_CONFIG_DIR)
    4.17 +	[ -d $(DESTDIR)$(XEN_CONFIG_DIR)/auto ] || \
    4.18 +		$(INSTALL_DIR) $(DESTDIR)$(XEN_CONFIG_DIR)/auto
    4.19  	for i in $(XEN_CONFIGS); \
    4.20  	    do [ -a $(DESTDIR)$(XEN_CONFIG_DIR)/$$i ] || \
    4.21  	    $(INSTALL_DATA) $$i $(DESTDIR)$(XEN_CONFIG_DIR); \
    4.22  	done
    4.23  
    4.24  install-scripts:
    4.25 -	$(INSTALL_DIR) $(DESTDIR)$(XEN_SCRIPT_DIR)
    4.26 +	[ -d $(DESTDIR)$(XEN_SCRIPT_DIR) ] || \
    4.27 +		$(INSTALL_DIR) $(DESTDIR)$(XEN_SCRIPT_DIR)
    4.28  	for i in $(XEN_SCRIPTS); \
    4.29  	    do [ -a $(DESTDIR)$(XEN_SCRIPT_DIR)/$$i ] || \
    4.30  	    $(INSTALL_PROG) $$i $(DESTDIR)$(XEN_SCRIPT_DIR); \
     5.1 --- a/tools/libxc/Makefile	Thu Jan 27 16:16:19 2005 +0000
     5.2 +++ b/tools/libxc/Makefile	Thu Jan 27 18:05:01 2005 +0000
     5.3 @@ -67,8 +67,8 @@ mk-symlinks:
     5.4  	  ln -sf ../../$(LINUX_ROOT)/include/asm-xen/linux-public/*.h . )
     5.5  
     5.6  install: all
     5.7 -	$(INSTALL_DIR) $(DESTDIR)/usr/lib
     5.8 -	$(INSTALL_DIR) $(DESTDIR)/usr/include
     5.9 +	[ -d $(DESTDIR)/usr/lib ] || $(INSTALL_DIR) $(DESTDIR)/usr/lib
    5.10 +	[ -d $(DESTDIR)/usr/include ] || $(INSTALL_DIR) $(DESTDIR)/usr/include
    5.11  	$(INSTALL_PROG) $(LIB) $(DESTDIR)/usr/lib
    5.12  	ln -sf libxc.so.$(MAJOR).$(MINOR) $(DESTDIR)/usr/lib/libxc.so.$(MAJOR)
    5.13  	ln -sf libxc.so.$(MAJOR) $(DESTDIR)/usr/lib/libxc.so
     6.1 --- a/tools/libxutil/Makefile	Thu Jan 27 16:16:19 2005 +0000
     6.2 +++ b/tools/libxutil/Makefile	Thu Jan 27 18:05:01 2005 +0000
     6.3 @@ -63,7 +63,7 @@ check-for-zlib:
     6.4  	fi
     6.5  
     6.6  install: all
     6.7 -	$(INSTALL_DIR) -p $(DESTDIR)/usr/lib
     6.8 +	[ -d $(DESTDIR)/usr/lib ] || $(INSTALL_DIR) -p $(DESTDIR)/usr/lib
     6.9  	$(INSTALL_PROG) $(LIB) $(DESTDIR)/usr/lib
    6.10  	ln -sf $(LIB_NAME).so.$(MAJOR).$(MINOR) $(DESTDIR)/usr/lib/$(LIB_NAME).so.$(MAJOR)
    6.11  	ln -sf $(LIB_NAME).so.$(MAJOR) $(DESTDIR)/usr/lib/$(LIB_NAME).so
     7.1 --- a/tools/misc/Makefile	Thu Jan 27 16:16:19 2005 +0000
     7.2 +++ b/tools/misc/Makefile	Thu Jan 27 18:05:01 2005 +0000
     7.3 @@ -23,8 +23,8 @@ all: $(TARGETS)
     7.4  	$(MAKE) -C miniterm
     7.5  
     7.6  install: all
     7.7 -	$(INSTALL_DIR) $(DESTDIR)/usr/bin
     7.8 -	$(INSTALL_DIR) $(DESTDIR)/usr/sbin
     7.9 +	[ -d $(DESTDIR)/usr/bin ] || $(INSTALL_DIR) $(DESTDIR)/usr/bin
    7.10 +	[ -d $(DESTDIR)/usr/sbin ] || $(INSTALL_DIR) $(DESTDIR)/usr/sbin
    7.11  	$(INSTALL_PROG) $(INSTALL_BIN) $(DESTDIR)/usr/bin
    7.12  	$(INSTALL_PROG) $(INSTALL_SBIN) $(DESTDIR)/usr/sbin
    7.13  #       No sense in installing miniterm on the Xen box.
     8.1 --- a/tools/misc/miniterm/Makefile	Thu Jan 27 16:16:19 2005 +0000
     8.2 +++ b/tools/misc/miniterm/Makefile	Thu Jan 27 18:05:01 2005 +0000
     8.3 @@ -9,7 +9,7 @@ TARGET = miniterm
     8.4  all: $(TARGET)
     8.5  
     8.6  install: all
     8.7 -	$(INSTALL_DIR) $(DESTDIR)/usr/bin
     8.8 +	[ -d $(DESTDIR)/usr/bin ] || $(INSTALL_DIR) $(DESTDIR)/usr/bin
     8.9  	$(INSTALL_PROG) $(TARGET) $(DESTDIR)/usr/bin
    8.10  
    8.11  clean:
     9.1 --- a/tools/python/xen/xend/XendDomainInfo.py	Thu Jan 27 16:16:19 2005 +0000
     9.2 +++ b/tools/python/xen/xend/XendDomainInfo.py	Thu Jan 27 18:05:01 2005 +0000
     9.3 @@ -457,9 +457,9 @@ class XendDomainInfo:
     9.4  
     9.5              self.init_domain()
     9.6              self.configure_console()
     9.7 +            self.configure_backends()
     9.8              self.construct_image()
     9.9              self.configure_restart()
    9.10 -            self.configure_backends()
    9.11              deferred = self.configure()
    9.12              def cberr(err):
    9.13                  self.destroy()
    10.1 --- a/tools/python/xen/xend/server/netif.py	Thu Jan 27 16:16:19 2005 +0000
    10.2 +++ b/tools/python/xen/xend/server/netif.py	Thu Jan 27 18:05:01 2005 +0000
    10.3 @@ -140,7 +140,8 @@ class NetDev(controller.SplitDev):
    10.4          self.ipaddr = self._get_config_ipaddr(config) or []
    10.5          
    10.6          try:
    10.7 -            self.backendDomain = int(sxp.child_value(config, 'backend', '0'))
    10.8 +            xd = get_component('xen.xend.XendDomain')
    10.9 +            self.backendDomain = int(xd.domain_lookup(sxp.child_value(config, 'backend', '0')).id)
   10.10          except:
   10.11              raise XendError('invalid backend domain')
   10.12  
   10.13 @@ -161,7 +162,8 @@ class NetDev(controller.SplitDev):
   10.14          bridge = sxp.child_value(config, 'bridge')
   10.15          script = sxp.child_value(config, 'script')
   10.16          ipaddr = self._get_config_ipaddr(config)
   10.17 -        backendDomain = sxp.child_value(config, 'backend', '0')
   10.18 +        xd = get_component('xen.xend.XendDomain')
   10.19 +        backendDomain = str(xd.domain_lookup(sxp.child_value(config, 'backend', '0')).id)
   10.20          if (mac is not None) and (mac != self.mac):
   10.21              raise XendError("cannot change mac")
   10.22          if (backendDomain is not None) and (backendDomain != str(self.backendDomain)):
    11.1 --- a/tools/sv/Makefile	Thu Jan 27 16:16:19 2005 +0000
    11.2 +++ b/tools/sv/Makefile	Thu Jan 27 18:05:01 2005 +0000
    11.3 @@ -17,15 +17,17 @@ IMAGES	+= next.png previous.png finish.p
    11.4  
    11.5  install:
    11.6  	# copy XenSV Main.rpy file
    11.7 -	@$(INSTALL_DIR) $(DESTDIR)$(sv_insdir)
    11.8 +	@[ -d $(DESTDIR)$(sv_insdir) ] || $(INSTALL_DIR) $(DESTDIR)$(sv_insdir)
    11.9  	@$(INSTALL_DATA) Main.rpy $(DESTDIR)$(sv_insdir)
   11.10  
   11.11  	# copy XenSV images
   11.12 -	@$(INSTALL_DIR) $(DESTDIR)$(sv_insdir)/images
   11.13 +	@[ -d $(DESTDIR)$(sv_insdir)/images ] || \
   11.14 +		$(INSTALL_DIR) $(DESTDIR)$(sv_insdir)/images
   11.15  	@(cd images && $(INSTALL_DATA) $(IMAGES) $(DESTDIR)$(sv_insdir)/images)
   11.16  
   11.17  	# copy XenSV stylesheet
   11.18 -	@$(INSTALL_DIR) $(DESTDIR)$(sv_insdir)/inc
   11.19 +	@[ -d $(DESTDIR)$(sv_insdir)/inc ] || \
   11.20 +		$(INSTALL_DIR) $(DESTDIR)$(sv_insdir)/inc
   11.21  	@$(INSTALL_DATA) inc/style.css inc/script.js $(DESTDIR)$(sv_insdir)/inc
   11.22  
   11.23  clean:
    12.1 --- a/tools/xentrace/Makefile	Thu Jan 27 16:16:19 2005 +0000
    12.2 +++ b/tools/xentrace/Makefile	Thu Jan 27 18:05:01 2005 +0000
    12.3 @@ -24,9 +24,11 @@ MAN8     = $(wildcard *.8)
    12.4  all: $(BIN)
    12.5  
    12.6  install: all
    12.7 -	$(INSTALL_DIR) $(DESTDIR)/usr/bin
    12.8 -	$(INSTALL_DIR) $(DESTDIR)/usr/man/man1
    12.9 -	$(INSTALL_DIR) $(DESTDIR)/usr/man/man8
   12.10 +	[ -d $(DESTDIR)/usr/bin ] || $(INSTALL_DIR) $(DESTDIR)/usr/bin
   12.11 +	[ -d $(DESTDIR)/usr/man/man1 ] || \
   12.12 +		$(INSTALL_DIR) $(DESTDIR)/usr/man/man1
   12.13 +	[ -d $(DESTDIR)/usr/man/man8 ] || \
   12.14 +		$(INSTALL_DIR) $(DESTDIR)/usr/man/man8
   12.15  	$(INSTALL_PROG) $(BIN) $(SCRIPTS) $(DESTDIR)/usr/bin
   12.16  	$(INSTALL_DATA) $(MAN1) $(DESTDIR)/usr/man/man1
   12.17  	$(INSTALL_DATA) $(MAN8) $(DESTDIR)/usr/man/man8
    13.1 --- a/tools/xfrd/Makefile	Thu Jan 27 16:16:19 2005 +0000
    13.2 +++ b/tools/xfrd/Makefile	Thu Jan 27 18:05:01 2005 +0000
    13.3 @@ -70,7 +70,8 @@ xfrd: $(XFRD_PROG_OBJ)
    13.4  
    13.5  .PHONY: install
    13.6  install: xfrd
    13.7 -	$(INSTALL_DIR) $(DESTDIR)$(XFRD_INSTALL_DIR)
    13.8 +	[ -d $(DESTDIR)$(XFRD_INSTALL_DIR) ] || \
    13.9 +		$(INSTALL_DIR) $(DESTDIR)$(XFRD_INSTALL_DIR)
   13.10  	$(INSTALL_PROG) xfrd $(DESTDIR)$(XFRD_INSTALL_DIR)
   13.11  
   13.12  .PHONY: libutil
    14.1 --- a/xen/Makefile	Thu Jan 27 16:16:19 2005 +0000
    14.2 +++ b/xen/Makefile	Thu Jan 27 18:05:01 2005 +0000
    14.3 @@ -21,10 +21,11 @@ debug:
    14.4  	objdump -D -S $(TARGET)-syms > $(TARGET).s
    14.5  
    14.6  install: $(TARGET).gz
    14.7 -	$(INSTALL_DIR) $(DESTDIR)/boot
    14.8 +	[ -d $(DESTDIR)/boot ] || $(INSTALL_DIR) $(DESTDIR)/boot
    14.9  	$(INSTALL_DATA) $(TARGET).gz $(DESTDIR)/boot
   14.10  	$(INSTALL_DATA) $(TARGET)-syms $(DESTDIR)/boot
   14.11 -	$(INSTALL_DIR) $(DESTDIR)/usr/include/xen/io
   14.12 +	[ -d $(DESTDIR)/usr/include/xen/io ] || \
   14.13 +		$(INSTALL_DIR) $(DESTDIR)/usr/include/xen/io
   14.14  	$(INSTALL_DATA) include/public/*.h $(DESTDIR)/usr/include/xen
   14.15  	$(INSTALL_DATA) include/public/io/*.h $(DESTDIR)/usr/include/xen/io
   14.16  	$(INSTALL_DATA) include/public/COPYING $(DESTDIR)/usr/include/xen