diff options
author | iap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk> | 2004-11-02 22:35:35 +0000 |
---|---|---|
committer | iap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk> | 2004-11-02 22:35:35 +0000 |
commit | 38d94f128a215f2e44532a5c1d641279530b0e93 (patch) | |
tree | 778c2c60d09b7871beb720f3da33a63544867b1e /Makefile | |
parent | 19e5c01120126b1587a3d83236d68e1e380564c4 (diff) | |
parent | ee5293cc5f5a9f7f336b870264f5bb38b6eaff06 (diff) | |
download | xen-38d94f128a215f2e44532a5c1d641279530b0e93.tar.gz xen-38d94f128a215f2e44532a5c1d641279530b0e93.tar.bz2 xen-38d94f128a215f2e44532a5c1d641279530b0e93.zip |
bitkeeper revision 1.1159.1.343 (41880bb7AJ8umt4zFmHNCc5REYAL8Q)
nasty merge
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 220 |
1 files changed, 47 insertions, 173 deletions
@@ -9,204 +9,69 @@ SOURCEFORGE_MIRROR := http://heanet.dl.sourceforge.net/sourceforge #http://voxel.dl.sourceforge.net/sourceforge/ #http://easynews.dl.sourceforge.net/sourceforge -.PHONY: docs delete-symlinks clean all install dist +#KERNELS = linux-2.6-xen0 linux-2.6-xenU linux-2.4-xen0 linux-2.4-xenU netbsd-2.0-xenU +KERNELS = linux-2.6-xen0 linux-2.6-xenU -# a not partcularly useful but safe default target -all: +export INSTALL_DIR SOURCEFORGE_MIRROR + +.PHONY: all dist install kernels kdelete mkpatches world docs clean mrproper + +all: dist + +# build and install everything into local dist directory +dist: $(MAKE) prefix=$(INSTALL_DIR) dist=yes -C xen install $(MAKE) prefix=$(INSTALL_DIR) dist=yes -C tools install + $(MAKE) kernels sh ./docs/check_pkgs && \ $(MAKE) prefix=$(INSTALL_DIR) dist=yes -C docs install # install everything into the standard system directories -install: dist +# NB: install explicitly does not check that everything is up to date! +install: $(MAKE) -C xen install $(MAKE) -C tools install + $(shell cp -a install/boot/* /boot/) + $(shell cp -a install/lib/modules/* /lib/modules/) sh ./docs/check_pkgs && $(MAKE) -C docs install $(shell cp -dR $(INSTALL_DIR)/boot/*$(LINUX_VER)* $(prefix)/boot/) $(shell cp -dR $(INSTALL_DIR)/lib/modules/* $(prefix)/lib/modules/) -# install xen and tools into the install directory -dist: all - $(MAKE) linux-xenU - $(MAKE) linux-xen0 - install -m0644 ./COPYING $(DIST_DIR) - install -m0644 ./README $(DIST_DIR) - install -m0755 ./install.sh $(DIST_DIR) - -LINUX_RELEASE ?= 2.6 -LINUX_VER ?= $(shell ( /bin/ls -ld linux-$(LINUX_RELEASE).*-xen-sparse ) 2>/dev/null | \ - sed -e 's!^.*linux-\(.\+\)-xen-sparse!\1!' ) -LINUX26_VER ?= $(shell ( /bin/ls -ld linux-2.6.*-xen-sparse ) 2>/dev/null | \ - sed -e 's!^.*linux-\(.\+\)-xen-sparse!\1!' ) -LINUX_CONFIG_DIR ?= $(INSTALL_DIR)/boot -LINUX_SRC_PATH ?= .:.. -LINUX_SRC ?= $(firstword $(foreach dir,$(subst :, ,$(LINUX_SRC_PATH)),\ - $(wildcard $(dir)/linux-$(LINUX_VER).tar.*z*))) - -# search for a pristine kernel tar ball, or try downloading one -pristine-linux-src: -ifeq ($(LINUX_SRC),) - @echo "Cannot find linux-$(LINUX_VER).tar.gz in path $(LINUX_SRC_PATH)" - @wget http://www.kernel.org/pub/linux/kernel/v$(LINUX_RELEASE)/linux-$(LINUX_VER).tar.bz2 -O./linux-$(LINUX_VER).tar.bz2 -LINUX_SRC := ./linux-$(LINUX_VER).tar.bz2 -endif - -patches/ebtables.diff: - mkdir -p patches - #wget $(SOURCEFORGE_MIRROR)/ebtables/ebtables-brnf-5_vs_2.4.25.diff.gz \ - -O- | gunzip -c > $@ - wget http://www.cl.cam.ac.uk/netos/xen/downloads/ebtables-brnf-5_vs_2.4.27.diff.gz -O- | gunzip -c > $@ - -LINUX_TREES := linux-$(LINUX_VER)-xen0 linux-$(LINUX_VER)-xenU - -# make a linux-xen build tree from a pristine kernel plus sparse tree -ifeq ($(LINUX_RELEASE),2.4) -mk-linux-trees: patches/ebtables.diff pristine-linux-src - $(RM) -rf $(LINUX_TREES) - echo $(LINUX_SRC) | grep -q bz2 && \ - tar -jxf $(LINUX_SRC) || tar -zxf $(LINUX_SRC) - mv linux-$(LINUX_VER) linux-$(LINUX_VER)-xen0 - ( cd linux-$(LINUX_VER)-xen-sparse ; \ - ./mkbuildtree ../linux-$(LINUX_VER)-xen0 ) - cp -al linux-$(LINUX_VER)-xen0 linux-$(LINUX_VER)-xenU - ( cd linux-$(LINUX_VER)-xen0 ; \ - patch -p1 -F3 < ../patches/ebtables.diff ; \ - sed -e 's/^EXTRAVERSION.*/&-xen0/' Makefile >Mk.tmp ; \ - rm -f Makefile ; mv Mk.tmp Makefile ) - ( cd linux-$(LINUX_VER)-xenU ; \ - sed -e 's/^EXTRAVERSION.*/&-xenU/' Makefile >Mk.tmp ; \ - rm -f Makefile ; mv Mk.tmp Makefile ) -else -mk-linux-trees: pristine-linux-src - $(RM) -rf $(LINUX_TREES) - echo $(LINUX_SRC) | grep -q bz2 && \ - tar -jxf $(LINUX_SRC) || tar -zxf $(LINUX_SRC) - mv linux-$(LINUX_VER) linux-$(LINUX_VER)-xen0 - ( cd linux-$(LINUX_VER)-xen-sparse ; \ - ./mkbuildtree ../linux-$(LINUX_VER)-xen0 ) - cp -al linux-$(LINUX_VER)-xen0 linux-$(LINUX_VER)-xenU - ( cd linux-$(LINUX_VER)-xen0 ; \ - sed -e 's/^EXTRAVERSION.*/&-xen0/' Makefile >Mk.tmp ; \ - rm -f Makefile ; mv Mk.tmp Makefile ) - ( cd linux-$(LINUX_VER)-xenU ; \ - sed -e 's/^EXTRAVERSION.*/&-xenU/' Makefile >Mk.tmp ; \ - rm -f Makefile ; mv Mk.tmp Makefile ) -endif - -# configure the specified linux tree -CDIR = $(subst config-,linux-$(LINUX_VER)-,$@) -ifeq ($(LINUX_RELEASE),2.4) -config-xen%: - $(MAKE) -C $(CDIR) ARCH=xen mrproper - cp $(LINUX_CONFIG_DIR)/config-$(LINUX_VER)$(subst config,,$@) \ - $(CDIR)/.config || \ - $(MAKE) -C $(CDIR) ARCH=xen $(subst config-,,$@)_config - $(MAKE) -C $(CDIR) ARCH=xen oldconfig - $(MAKE) -C $(CDIR) ARCH=xen dep -else -config-xen%: - $(MAKE) -C $(CDIR) ARCH=xen mrproper - @[ -e $(LINUX_CONFIG_DIR)/config-$(LINUX_VER)-$(subst config-,,$@) ] \ - && cp $(LINUX_CONFIG_DIR)/config-$(LINUX_VER)-$(subst config-,,$@) \ - $(CDIR)/.config || \ - $(MAKE) -C $(CDIR) ARCH=xen $(subst config-,,$@)_defconfig -endif - -# build the specified linux tree -BDIR = $(subst linux-,linux-$(LINUX_VER)-,$@) -linux-xen%: - $(MAKE) -C $(BDIR) ARCH=xen modules - $(MAKE) -C $(BDIR) ARCH=xen INSTALL_MOD_PATH=$(INSTALL_DIR) \ - modules_install - $(MAKE) -C $(BDIR) ARCH=xen INSTALL_PATH=$(INSTALL_DIR) install - -NETBSD_RELEASE ?= 2.0 -NETBSD_VER ?= $(shell ( /bin/ls -ld netbsd-$(NETBSD_RELEASE)*-xen-sparse ) 2>/dev/null | \ - sed -e 's!^.*netbsd-\(.\+\)-xen-sparse!\1!' ) -NETBSD_CVSSNAP ?= 20040906 -NETBSD_SRC_PATH ?= .:.. -NETBSD_SRC ?= $(firstword $(foreach dir,$(subst :, ,$(NETBSD_SRC_PATH)),\ - $(wildcard $(dir)/netbsd-$(NETBSD_VER)-xen-kernel-$(NETBSD_CVSSNAP).tar.*z*))) -NETBSD_TOOLS_SRC ?= $(firstword $(foreach dir,$(subst :, ,$(NETBSD_SRC_PATH)),\ - $(wildcard $(dir)/netbsd-$(NETBSD_VER)-tools.tar.*z*))) - -NETBSD_TREES := netbsd-$(NETBSD_VER)-xenU - -pristine-netbsd-src: -ifeq ($(NETBSD_SRC),) - @echo "Cannot find netbsd-$(NETBSD_VER)-xen-kernel-$(NETBSD_CVSSNAP).tar.gz in path $(NETBSD_SRC_PATH)" - @wget http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads/netbsd-$(NETBSD_VER)-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2 -O./netbsd-$(NETBSD_VER)-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2 -NETBSD_SRC := ./netbsd-$(NETBSD_VER)-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2 -endif - -pristine-netbsd-tools-src: -ifeq ($(NETBSD_TOOLS_SRC),) - @echo "Cannot find netbsd-$(NETBSD_VER)-tools.tar.gz in path $(NETBSD_SRC_PATH)" - @wget http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads/netbsd-$(NETBSD_VER)-tools.tar.bz2 -O./netbsd-$(NETBSD_VER)-tools.tar.bz2 -NETBSD_TOOLS_SRC := ./netbsd-$(NETBSD_VER)-tools.tar.bz2 -endif - -netbsd-tools: pristine-netbsd-tools-src - @[ -d netbsd-$(NETBSD_RELEASE)-tools ] || { \ - echo extract $(NETBSD_TOOLS_SRC); \ - tar -jxf $(NETBSD_TOOLS_SRC); } - -mk-netbsd-trees: netbsd-tools pristine-netbsd-src - $(RM) -rf $(NETBSD_TREES) - echo $(NETBSD_SRC) | grep -q bz2 && \ - tar -jxf $(NETBSD_SRC) || tar -zxf $(NETBSD_SRC) - mv netbsd-$(NETBSD_VER)-xen-kernel-$(NETBSD_CVSSNAP) \ - netbsd-$(NETBSD_VER)-xenU - ( cd netbsd-$(NETBSD_VER)-xen-sparse ; \ - ./mkbuildtree ../netbsd-$(NETBSD_VER)-xenU ) - -# build the specified netbsd tree -NBDIR = $(subst netbsd-,netbsd-$(NETBSD_VER)-,$@) -netbsd-xen%: - $(MAKE) -C $(NBDIR) config - $(MAKE) -C $(NBDIR) netbsd - $(MAKE) -C $(NBDIR) INSTALL_PATH=$(INSTALL_DIR) INSTALL_NAME=boot/netbsd-$(NETBSD_VER)-$(subst netbsd-,,$@) install +# Build all the various kernels +kernels: + for i in $(KERNELS) ; do $(MAKE) -f buildconfigs/$$i build ; done + +# Delete the kernel build trees +kdelete: + for i in $(KERNELS) ; do $(MAKE) -f buildconfigs/$$i kdelete ; done + +# Make patches from kernel sparse trees +mkpatches: + $(MAKE) -f buildconfigs/Rules.mk mkpatches + # 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 world: $(MAKE) clean + $(MAKE) kdelete $(MAKE) all - $(MAKE) mk-linux-trees - $(MAKE) config-xenU - $(MAKE) linux-xenU - $(MAKE) config-xen0 - $(MAKE) linux-xen0 $(MAKE) docs -linux26: - $(MAKE) LINUX_RELEASE=2.6 mk-linux-trees - $(MAKE) LINUX_RELEASE=2.6 config-xenU - $(MAKE) LINUX_RELEASE=2.6 linux-xenU - $(MAKE) LINUX_RELEASE=2.6 config-xen0 - $(MAKE) LINUX_RELEASE=2.6 linux-xen0 - -linux24: - $(MAKE) LINUX_RELEASE=2.4 mk-linux-trees - $(MAKE) LINUX_RELEASE=2.4 config-xenU - $(MAKE) LINUX_RELEASE=2.4 linux-xenU - $(MAKE) LINUX_RELEASE=2.4 config-xen0 - $(MAKE) LINUX_RELEASE=2.4 linux-xen0 - -netbsd: - $(MAKE) mk-netbsd-trees - $(MAKE) netbsd-xenU +docs: + $(MAKE) -C docs all || true -clean: +clean: $(MAKE) -C xen clean $(MAKE) -C tools clean $(MAKE) -C docs clean -# clean, but blow away linux build tree plus src tar ball +# clean, but blow away kernel build tree plus tar balls mrproper: clean - rm -rf dist patches $(LINUX_TREES) linux-$(LINUX_VER).tar.* + rm -rf install/* patches *.tar.bz2 + for i in `ls buildconfigs | grep -v Rules.mk` ; do $(MAKE) -f buildconfigs/$$i kdelete || true ; done + $(MAKE) -f buildconfigs/Rules.mk mrproper install-twisted: wget http://www.twistedmatrix.com/products/get-current.epy @@ -226,9 +91,18 @@ install-iptables: ( cd iptables-* ; \ make PREFIX= KERNEL_DIR=../linux-$(LINUX_VER)-xen0 install) +# Use this target with extreme care! uninstall: cp -a /etc/xen /etc/xen.old && rm -rf /etc/xen - rm -rf "/usr/lib/python2.2/site-packages/xen* /usr/lib/libxc* /usr/lib/python2.2/site-packages/Xc*" + rm -rf "/usr/lib/python2.?/site-packages/xen* /usr/lib/libxc* /usr/lib/python2.?/site-packages/Xc*" + +# Legacy target for compatibility +linux24: + $(MAKE) -f buildconfigs/linux-2.4-xen0 + $(MAKE) -f buildconfigs/linux-2.4-xenU + +# Legacy target for compatibility +linux26: + $(MAKE) -f buildconfigs/linux-2.6-xen0 + $(MAKE) -f buildconfigs/linux-2.6-xenU -docs: - $(MAKE) -C docs all || true |