direct-io.hg

view Makefile @ 8343:1dc393b65019

Change the way domain configuration is handled in xm-test.
This will simplify the way we differentiate between HV and PV domains,
as well as make it easier to run normal tests in either HV or PV mode.

This patch has been modified by Ewan Mellor, to match his recent changes to
remove the nics= configuration option.

Signed-off-by: Dan Smith <danms@us.ibm.com>
Signed-off-by: Dan Stekloff <dsteklof@us.ibm.com>
author emellor@leeni.uk.xensource.com
date Tue Dec 13 16:26:24 2005 +0000 (2005-12-13)
parents 167dc1fb722a
children 870c7e7da81e
line source
1 #
2 # Grand Unified Makefile for Xen.
3 #
5 KERNELS ?= linux-2.6-xen0 linux-2.6-xenU
6 # You may use wildcards in the above e.g. KERNELS=*2.6*
8 XKERNELS := $(foreach kernel, $(KERNELS), $(patsubst buildconfigs/mk.%,%,$(wildcard buildconfigs/mk.$(kernel))) )
10 # Export target architecture overrides to Xen and Linux sub-trees.
11 ifneq ($(XEN_TARGET_ARCH),)
12 SUBARCH := $(subst x86_32,i386,$(XEN_TARGET_ARCH))
13 export XEN_TARGET_ARCH SUBARCH
14 endif
16 # Default target must appear before any include lines
17 all: dist
19 XEN_ROOT=$(CURDIR)
20 include Config.mk
21 include buildconfigs/Rules.mk
23 ifeq ($(XEN_TARGET_X86_PAE),y)
24 export pae=y
25 endif
27 .PHONY: all dist install xen kernels tools dev-docs docs world clean
28 .PHONY: mkpatches mrproper kbuild kdelete kclean
30 # build and install everything into the standard system directories
31 install: install-xen install-kernels install-tools install-docs
33 build: kernels
34 $(MAKE) -C xen build
35 $(MAKE) -C tools build
36 $(MAKE) -C docs build
38 # The test target is for unit tests that can run without an installation. Of
39 # course, many tests require a machine running Xen itself, and these are
40 # handled elsewhere.
41 test:
42 $(MAKE) -C tools/python test
44 # build and install everything into local dist directory
45 dist: DESTDIR=$(DISTDIR)/install
46 dist: dist-xen dist-kernels dist-tools dist-docs
47 $(INSTALL_DIR) $(DISTDIR)/check
48 $(INSTALL_DATA) ./COPYING $(DISTDIR)
49 $(INSTALL_DATA) ./README $(DISTDIR)
50 $(INSTALL_PROG) ./install.sh $(DISTDIR)
51 $(INSTALL_PROG) tools/check/chk tools/check/check_* $(DISTDIR)/check
52 dist-%: DESTDIR=$(DISTDIR)/install
53 dist-%: install-%
54 @: # do nothing
56 # Legacy dist targets
57 xen: dist-xen
58 tools: dist-tools
59 kernels: dist-kernels
60 docs: dist-docs
62 prep-kernels:
63 for i in $(XKERNELS) ; do $(MAKE) $$i-prep || exit 1; done
65 install-xen:
66 $(MAKE) -C xen install
68 install-tools:
69 $(MAKE) -C tools install
71 install-kernels:
72 for i in $(XKERNELS) ; do $(MAKE) $$i-install || exit 1; done
74 install-docs:
75 sh ./docs/check_pkgs && $(MAKE) -C docs install || true
77 dev-docs:
78 $(MAKE) -C docs dev-docs
80 # Build all the various kernels and modules
81 kbuild: kernels
83 # Delete the kernel build trees entirely
84 kdelete:
85 for i in $(XKERNELS) ; do $(MAKE) $$i-delete ; done
87 # Clean the kernel build trees
88 kclean:
89 for i in $(XKERNELS) ; do $(MAKE) $$i-clean ; done
91 # Make patches from kernel sparse trees
92 mkpatches:
93 for i in $(ALLSPARSETREES) ; do $(MAKE) $$i-xen.patch; done
95 # build xen, the tools, and a domain 0 plus unprivileged linux-xen images,
96 # and place them in the install directory. 'make install' should then
97 # copy them to the normal system directories
98 world:
99 $(MAKE) clean
100 $(MAKE) kdelete
101 $(MAKE) dist
103 # clean doesn't do a kclean
104 clean::
105 $(MAKE) -C xen clean
106 $(MAKE) -C tools clean
107 $(MAKE) -C docs clean
109 # clean, but blow away kernel build tree plus tarballs
110 distclean: clean
111 rm -rf dist patches/tmp
112 for i in $(ALLKERNELS) ; do $(MAKE) $$i-delete ; done
113 for i in $(ALLSPARSETREES) ; do $(MAKE) $$i-mrproper ; done
115 # Linux name for GNU distclean
116 mrproper: distclean
118 install-logging: LOGGING=logging-0.4.9.2
119 install-logging:
120 [ -f $(LOGGING).tar.gz ] || wget http://www.red-dove.com/$(LOGGING).tar.gz
121 tar -zxf $(LOGGING).tar.gz
122 cd $(LOGGING) && python setup.py install
124 # handy target to upgrade iptables (use rpm or apt-get in preference)
125 install-iptables:
126 wget http://www.netfilter.org/files/iptables-1.2.11.tar.bz2
127 tar -jxf iptables-1.2.11.tar.bz2
128 $(MAKE) -C iptables-1.2.11 PREFIX= KERNEL_DIR=../linux-$(LINUX_VER)-xen0 install
130 help:
131 @echo 'Installation targets:'
132 @echo ' install - build and install everything'
133 @echo ' install-xen - build and install the Xen hypervisor'
134 @echo ' install-tools - build and install the control tools'
135 @echo ' install-kernels - build and install guest kernels'
136 @echo ' install-docs - build and install user documentation'
137 @echo ''
138 @echo 'Building targets:'
139 @echo ' dist - build and install everything into local dist directory'
140 @echo ' world - clean everything, delete guest kernel build'
141 @echo ' trees then make dist'
142 @echo ' xen - build and install Xen hypervisor'
143 @echo ' tools - build and install tools'
144 @echo ' kernels - build and install guest kernels'
145 @echo ' kbuild - synonym for make kernels'
146 @echo ' docs - build and install user documentation'
147 @echo ' dev-docs - build developer-only documentation'
148 @echo ''
149 @echo 'Cleaning targets:'
150 @echo ' clean - clean the Xen, tools and docs (but not'
151 @echo ' guest kernel) trees'
152 @echo ' distclean - clean plus delete kernel tarballs and kernel'
153 @echo ' build trees'
154 @echo ' kdelete - delete guest kernel build trees'
155 @echo ' kclean - clean guest kernel build trees'
156 @echo ''
157 @echo 'Dependency installation targets:'
158 @echo ' install-logging - install the Python Logging package'
159 @echo ' install-iptables - install iptables tools'
160 @echo ''
161 @echo 'Miscellaneous targets:'
162 @echo ' prep-kernels - prepares kernel directories, does not build'
163 @echo ' mkpatches - make patches against vanilla kernels from'
164 @echo ' sparse trees'
165 @echo ' uninstall - attempt to remove installed Xen tools (use'
166 @echo ' with extreme care!)'
168 # Use this target with extreme care!
169 uninstall: D=$(DESTDIR)
170 uninstall:
171 [ -d $(D)/etc/xen ] && mv -f $(D)/etc/xen $(D)/etc/xen.old-`date +%s` || true
172 rm -rf $(D)/etc/init.d/xend*
173 rm -rf $(D)/etc/hotplug/xen-backend.agent
174 rm -f $(D)/etc/udev/rules.d/xen-backend.rules
175 rm -f $(D)/etc/udev/xen-backend.rules
176 rm -f $(D)/etc/sysconfig/xendomains
177 rm -rf $(D)/var/run/xen* $(D)/var/lib/xen*
178 rm -rf $(D)/boot/*xen*
179 rm -rf $(D)/lib/modules/*xen*
180 rm -rf $(D)/usr/bin/xen* $(D)/usr/bin/lomount
181 rm -rf $(D)/usr/bin/cpuperf-perfcntr $(D)/usr/bin/cpuperf-xen
182 rm -rf $(D)/usr/bin/xc_shadow
183 rm -rf $(D)/usr/bin/pygrub
184 rm -rf $(D)/usr/bin/setsize $(D)/usr/bin/tbctl
185 rm -rf $(D)/usr/bin/xsls
186 rm -rf $(D)/usr/include/xenctrl.h $(D)/usr/include/xenguest.h
187 rm -rf $(D)/usr/include/xs_lib.h $(D)/usr/include/xs.h
188 rm -rf $(D)/usr/include/xen
189 rm -rf $(D)/usr/$(LIBDIR)/libxenctrl* $(D)/usr/$(LIBDIR)/libxenguest*
190 rm -rf $(D)/usr/$(LIBDIR)/libxenstore*
191 rm -rf $(D)/usr/$(LIBDIR)/python/xen $(D)/usr/$(LIBDIR)/python/grub
192 rm -rf $(D)/usr/$(LIBDIR)/xen/
193 rm -rf $(D)/usr/lib/xen/
194 rm -rf $(D)/usr/local/sbin/setmask $(D)/usr/local/sbin/xen*
195 rm -rf $(D)/usr/sbin/xen* $(D)/usr/sbin/netfix $(D)/usr/sbin/xm
196 rm -rf $(D)/usr/share/doc/xen
197 rm -rf $(D)/usr/share/xen
198 rm -rf $(D)/usr/share/man/man1/xen*
199 rm -rf $(D)/usr/share/man/man8/xen*
201 # Legacy targets for compatibility
202 linux26:
203 $(MAKE) 'KERNELS=linux-2.6*' kernels