diff options
author | cl349@freefall.cl.cam.ac.uk <cl349@freefall.cl.cam.ac.uk> | 2004-11-03 18:54:03 +0000 |
---|---|---|
committer | cl349@freefall.cl.cam.ac.uk <cl349@freefall.cl.cam.ac.uk> | 2004-11-03 18:54:03 +0000 |
commit | 81322d7eefbcaeab52da5a1c584b17703a78d2f4 (patch) | |
tree | 3a84034c3ea895801745cfb95d8b4d0d950c351c | |
parent | 129eeeb2355df53999040179046df7cc79f637bd (diff) | |
download | xen-81322d7eefbcaeab52da5a1c584b17703a78d2f4.tar.gz xen-81322d7eefbcaeab52da5a1c584b17703a78d2f4.tar.bz2 xen-81322d7eefbcaeab52da5a1c584b17703a78d2f4.zip |
bitkeeper revision 1.1159.156.1 (4189294bhEVxhbLKBhFfQF071MOltw)
Build system cleanups.
-rw-r--r-- | Makefile | 19 | ||||
-rw-r--r-- | buildconfigs/Rules.mk | 112 | ||||
-rw-r--r-- | buildconfigs/mk.linux-2.4-xen0 | 19 | ||||
-rw-r--r-- | buildconfigs/mk.linux-2.4-xenU | 19 | ||||
-rw-r--r-- | buildconfigs/mk.linux-2.6-xen0 | 19 | ||||
-rw-r--r-- | buildconfigs/mk.linux-2.6-xenU | 19 | ||||
-rw-r--r-- | buildconfigs/mk.netbsd-2.0-xenU | 32 |
7 files changed, 97 insertions, 142 deletions
@@ -12,9 +12,13 @@ SOURCEFORGE_MIRROR := http://heanet.dl.sourceforge.net/sourceforge #KERNELS = mk.linux-2.6-xen0 mk.linux-2.6-xenU mk.linux-2.4-xen0 mk.linux-2.4-xenU mk.netbsd-2.0-xenU KERNELS = mk.linux-2.6-xen0 mk.linux-2.6-xenU +ALLKERNELS = $(patsubst buildconfigs/%,%,$(wildcard buildconfigs/mk.*)) +ALLSPARSETREES = $(patsubst %-xen-sparse,%,$(wildcard *-xen-sparse)) + export INSTALL_DIR SOURCEFORGE_MIRROR -.PHONY: all dist install xen tools kernels docs kdelete kclean mkpatches world clean mrproper +.PHONY: all dist install xen tools kernels docs world clean mkpatches mrproper +.PHONY: kbuild kdelete kclean all: dist @@ -49,17 +53,19 @@ docs: sh ./docs/check_pkgs && \ $(MAKE) prefix=$(INSTALL_DIR) dist=yes -C docs install || true +kbuild: kernels + # Delete the kernel build trees entirely kdelete: for i in $(KERNELS) ; do $(MAKE) -f buildconfigs/$$i delete ; done # Clean the kernel build trees kclean: - for i in $(KERNELS) ; do $(MAKE) -f buildconfigs/$$i delete ; done + for i in $(KERNELS) ; do $(MAKE) -f buildconfigs/$$i clean ; done # Make patches from kernel sparse trees mkpatches: - $(MAKE) -f buildconfigs/Rules.mk mkpatches + for i in $(ALLSPARSETREES) ; do $(MAKE) -f buildconfigs/Rules.mk $$i-xen.patch ; done # build xen, the tools, and a domain 0 plus unprivileged linux-xen images, @@ -77,9 +83,10 @@ clean: $(MAKE) -C docs clean # clean, but blow away kernel build tree plus tar balls -mrproper: clean kdelete - rm -rf dist patches *.tar.bz2 - $(MAKE) -f buildconfigs/Rules.mk mrproper +mrproper: clean + rm -rf dist patches + for i in $(ALLKERNELS) ; do $(MAKE) -f buildconfigs/$$i delete ; done + for i in $(ALLSPARSETREES) ; do $(MAKE) -f buildconfigs/Rules.mk $$i-mrproper ; done install-twisted: wget http://www.twistedmatrix.com/products/get-current.epy diff --git a/buildconfigs/Rules.mk b/buildconfigs/Rules.mk index 17826830f3..3c7194c2c6 100644 --- a/buildconfigs/Rules.mk +++ b/buildconfigs/Rules.mk @@ -1,80 +1,68 @@ # We expect these two to already be set if people # are using the top-level Makefile -DIST_DIR ?= $(shell pwd)/dist -INSTALL_DIR ?= $(DIST_DIR)/install +DIST_DIR ?= $(shell pwd)/dist +INSTALL_DIR ?= $(DIST_DIR)/install +.PHONY: mkpatches mrproper -# Figure out which Linux version -LINUX_26VER ?= $(shell ( /bin/ls -ld linux-2.6.*-xen-sparse ) \ - 2>/dev/null | sed -e 's!^.*linux-\(.\+\)-xen-sparse!\1!' ) -LINUX_24VER ?= $(shell ( /bin/ls -ld linux-2.4.*-xen-sparse ) \ - 2>/dev/null | sed -e 's!^.*linux-\(.\+\)-xen-sparse!\1!' ) -LINUX_SRC_PATH ?= .:.. +# Expand Linux series to Linux version +LINUX_SERIES ?= 2.6 +LINUX_VER ?= $(patsubst linux-%-xen-sparse,%,$(wildcard linux-$(LINUX_SERIES)*-xen-sparse)) -LINUX_26SRC ?= $(firstword $(foreach dir,$(subst :, ,$(LINUX_SRC_PATH)),\ - $(wildcard $(dir)/linux-$(LINUX_26VER).tar.*z*))) +# Setup Linux search patch +LINUX_SRC_PATH ?= .:.. +vpath linux-%.tar.bz2 $(LINUX_SRC_PATH) -LINUX_24SRC ?= $(firstword $(foreach dir,$(subst :, ,$(LINUX_SRC_PATH)),\ - $(wildcard $(dir)/linux-$(LINUX_24VER).tar.*z*))) +# download a pristine Linux kernel tarball if there isn't one in LINUX_SRC_PATH +linux-%.tar.bz2: override _LINUX_VDIR = $(word 1,$(subst ., ,$*)).$(word 2,$(subst ., ,$*)) +linux-%.tar.bz2: + echo "Cannot find linux-$*.tar.bz2 in path $(LINUX_SRC_PATH)" + wget http://www.kernel.org/pub/linux/kernel/v$(_LINUX_VDIR)/linux-$*.tar.bz2 -O./$@ -.PHONY: mkpatches linux-$(LINUX_24VER)-xen.patch linux-$(LINUX_26VER)-xen.patch mrproper -# search for a pristine kernel tar ball, or try downloading one -linux-$(LINUX_26VER).tar.bz2: -ifeq ($(LINUX_26SRC),) - echo "Cannot find linux-$(LINUX_26VER).tar.bz2 in path $(LINUX_SRC_PATH)" - wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-$(LINUX_26VER).tar.bz2 -O./linux-$(LINUX_26VER).tar.bz2 -LINUX_26SRC := ./linux-$(LINUX_26VER).tar.bz2 -endif -pristine-linux-$(LINUX_26VER): $(LINUX_26SRC) - rm -rf tmp-linux-$(LINUX_26VER) $@ && \ - mkdir -p tmp-linux-$(LINUX_26VER) && \ - tar -C tmp-linux-$(LINUX_26VER) -jxf $(LINUX_26SRC) && \ - mv tmp-linux-$(LINUX_26VER)/* $@ - touch $@ # update timestamp to avoid rebuild - @rm -rf tmp-linux-$(LINUX_26VER) - - -# search for a pristine kernel tar ball, or try downloading one -linux-$(LINUX_24VER).tar.bz2: -ifeq ($(LINUX_24SRC),) - echo "Cannot find linux-$(LINUX_24VER).tar.bz2 in path $(LINUX_SRC_PATH)" - wget http://www.kernel.org/pub/linux/kernel/v2.4/linux-$(LINUX_24VER).tar.bz2 -O./linux-$(LINUX_24VER).tar.bz2 -LINUX_24SRC := ./linux-$(LINUX_24VER).tar.bz2 -endif - -pristine-linux-$(LINUX_24VER): $(LINUX_24SRC) - rm -rf tmp-linux-$(LINUX_24VER) $@ && \ - mkdir -p tmp-linux-$(LINUX_24VER) && \ - tar -C tmp-linux-$(LINUX_24VER) -jxf $(LINUX_24SRC) && \ - mv tmp-linux-$(LINUX_24VER)/* $@ && \ - touch $@ # update timestamp to avoid rebuild - @rm -rf tmp-linux-$(LINUX_24VER) +# Expand NetBSD release to NetBSD version +NETBSD_RELEASE ?= 2.0 +NETBSD_VER ?= $(patsubst netbsd-%-xen-sparse,%,$(wildcard netbsd-$(NETBSD_RELEASE)*-xen-sparse)) +NETBSD_CVSSNAP ?= 20040906 -linux-$(LINUX_24VER)-xen.patch: pristine-linux-$(LINUX_24VER) - rm -rf tmp-$@ - cp -al pristine-linux-$(LINUX_24VER) tmp-$@ - ( cd linux-$(LINUX_24VER)-xen-sparse ; \ - ./mkbuildtree ../tmp-$@ ) - diff -Nurp pristine-linux-$(LINUX_24VER) tmp-$@ > $@ || true - rm -rf tmp-$@ +# Setup NetBSD search patch +NETBSD_SRC_PATH ?= .:.. +vpath netbsd-%.tar.bz2 $(NETBSD_SRC_PATH) + +# download a pristine NetBSD tarball if there isn't one in NETBSD_SRC_PATH +netbsd-%-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2: + echo "Cannot find $@ 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-%.tar.bz2: netbsd-%-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2 + ln -fs $< $@ + + + + +pristine-%: %.tar.bz2 + rm -rf tmp-$* $@ && \ + mkdir -p tmp-$* && \ + tar -C tmp-$* -jxf $< && \ + mv tmp-$*/* $@ + touch $@ # update timestamp to avoid rebuild + @rm -rf tmp-$* -linux-$(LINUX_26VER)-xen.patch: pristine-linux-$(LINUX_26VER) +%-xen.patch: pristine-% rm -rf tmp-$@ - cp -al pristine-linux-$(LINUX_26VER) tmp-$@ - ( cd linux-$(LINUX_26VER)-xen-sparse ; \ - ./mkbuildtree ../tmp-$@ ) - diff -Nurp pristine-linux-$(LINUX_26VER) tmp-$@ > $@ || true + cp -al pristine-$* tmp-$@ + ( cd $*-xen-sparse && ./mkbuildtree ../tmp-$@ ) + diff -Nurp pristine-$* tmp-$@ > $@ || true rm -rf tmp-$@ -mkpatches: linux-$(LINUX_24VER)-xen.patch linux-$(LINUX_26VER)-xen.patch +%-mrproper: + rm -rf pristine-$* $*.tar.bz2 + rm -rf $*-xen.patch + rm -rf $*-tools $*-tools.tar.bz2 -mrproper: - rm -rf pristine-linux-$(LINUX_24VER) linux-$(LINUX_24VER).tar.bz2 - rm -rf pristine-linux-$(LINUX_26VER) linux-$(LINUX_26VER).tar.bz2 - rm -rf linux-$(LINUX_24VER)-xen.patch linux-$(LINUX_26VER)-xen.patch - rm -rf pristine-netbsd-2.0 netbsd-2.0-tools +# never delete any intermediate files. +.SECONDARY: diff --git a/buildconfigs/mk.linux-2.4-xen0 b/buildconfigs/mk.linux-2.4-xen0 index 713b746c03..c83291324e 100644 --- a/buildconfigs/mk.linux-2.4-xen0 +++ b/buildconfigs/mk.linux-2.4-xen0 @@ -1,7 +1,9 @@ +LINUX_SERIES = 2.4 + EXTRAVERSION = xen0 -FULLVERSION = $(LINUX_24VER)-$(EXTRAVERSION) +FULLVERSION = $(LINUX_VER)-$(EXTRAVERSION) LINUX_DIR = linux-$(FULLVERSION) @@ -19,11 +21,11 @@ patches/ebtables.diff: mkdir -p patches wget http://www.cl.cam.ac.uk/netos/xen/downloads/ebtables-brnf-5_vs_2.4.27.diff.gz -O- | gunzip -c > $@ -$(LINUX_DIR): pristine-linux-$(LINUX_24VER) patches/ebtables.diff +$(LINUX_DIR): pristine-linux-$(LINUX_VER) patches/ebtables.diff rm -rf $(LINUX_DIR) - cp -al pristine-linux-$(LINUX_24VER) $(LINUX_DIR) + cp -al pristine-linux-$(LINUX_VER) $(LINUX_DIR) # Apply arch-xen patches - ( cd linux-$(LINUX_24VER)-xen-sparse ; \ + ( cd linux-$(LINUX_VER)-xen-sparse ; \ ./mkbuildtree ../$(LINUX_DIR) ) # Patch kernel Makefile to set EXTRAVERSION ( cd $(LINUX_DIR) ; \ @@ -40,11 +42,4 @@ clean: $(MAKE) -C $(LINUX_DIR) ARCH=xen clean delete: - rm -rf tmp-linux-$(LINUX_24VER) $(LINUX_DIR) - - - - - - - + rm -rf tmp-linux-$(LINUX_VER) $(LINUX_DIR) diff --git a/buildconfigs/mk.linux-2.4-xenU b/buildconfigs/mk.linux-2.4-xenU index 7099d12c20..c1afc93708 100644 --- a/buildconfigs/mk.linux-2.4-xenU +++ b/buildconfigs/mk.linux-2.4-xenU @@ -1,7 +1,9 @@ +LINUX_SERIES = 2.4 + EXTRAVERSION = xenU -FULLVERSION = $(LINUX_24VER)-$(EXTRAVERSION) +FULLVERSION = $(LINUX_VER)-$(EXTRAVERSION) LINUX_DIR = linux-$(FULLVERSION) @@ -19,11 +21,11 @@ patches/ebtables.diff: mkdir -p patches wget http://www.cl.cam.ac.uk/netos/xen/downloads/ebtables-brnf-5_vs_2.4.27.diff.gz -O- | gunzip -c > $@ -$(LINUX_DIR): pristine-linux-$(LINUX_24VER) patches/ebtables.diff +$(LINUX_DIR): pristine-linux-$(LINUX_VER) patches/ebtables.diff rm -rf $(LINUX_DIR) - cp -al pristine-linux-$(LINUX_24VER) $(LINUX_DIR) + cp -al pristine-linux-$(LINUX_VER) $(LINUX_DIR) # Apply arch-xen patches - ( cd linux-$(LINUX_24VER)-xen-sparse ; \ + ( cd linux-$(LINUX_VER)-xen-sparse ; \ ./mkbuildtree ../$(LINUX_DIR) ) # Patch kernel Makefile to set EXTRAVERSION ( cd $(LINUX_DIR) ; \ @@ -38,11 +40,4 @@ clean: $(MAKE) -C $(LINUX_DIR) ARCH=xen clean delete: - rm -rf tmp-linux-$(LINUX_24VER) $(LINUX_DIR) - - - - - - - + rm -rf tmp-linux-$(LINUX_VER) $(LINUX_DIR) diff --git a/buildconfigs/mk.linux-2.6-xen0 b/buildconfigs/mk.linux-2.6-xen0 index 18e315ef71..67a5c7b3a8 100644 --- a/buildconfigs/mk.linux-2.6-xen0 +++ b/buildconfigs/mk.linux-2.6-xen0 @@ -1,7 +1,9 @@ +LINUX_SERIES = 2.6 + EXTRAVERSION = xen0 -FULLVERSION = $(LINUX_26VER)-$(EXTRAVERSION) +FULLVERSION = $(LINUX_VER)-$(EXTRAVERSION) LINUX_DIR = linux-$(FULLVERSION) @@ -15,11 +17,11 @@ build: $(LINUX_DIR) $(MAKE) -C $(LINUX_DIR) ARCH=xen INSTALL_PATH=$(INSTALL_DIR) install # The real action starts here! -$(LINUX_DIR): pristine-linux-$(LINUX_26VER) +$(LINUX_DIR): pristine-linux-$(LINUX_VER) rm -rf $(LINUX_DIR) - cp -al pristine-linux-$(LINUX_26VER) $(LINUX_DIR) + cp -al pristine-linux-$(LINUX_VER) $(LINUX_DIR) # Apply arch-xen patches - ( cd linux-$(LINUX_26VER)-xen-sparse ; \ + ( cd linux-$(LINUX_VER)-xen-sparse ; \ ./mkbuildtree ../$(LINUX_DIR) ) # Patch kernel Makefile to set EXTRAVERSION ( cd $(LINUX_DIR) ; \ @@ -33,11 +35,4 @@ clean: $(MAKE) -C $(LINUX_DIR) ARCH=xen clean delete: - rm -rf tmp-linux-$(LINUX_26VER) $(LINUX_DIR) - - - - - - - + rm -rf tmp-linux-$(LINUX_VER) $(LINUX_DIR) diff --git a/buildconfigs/mk.linux-2.6-xenU b/buildconfigs/mk.linux-2.6-xenU index c52d76be26..6782cf07b7 100644 --- a/buildconfigs/mk.linux-2.6-xenU +++ b/buildconfigs/mk.linux-2.6-xenU @@ -1,7 +1,9 @@ +LINUX_SERIES = 2.6 + EXTRAVERSION = xenU -FULLVERSION = $(LINUX_26VER)-$(EXTRAVERSION) +FULLVERSION = $(LINUX_VER)-$(EXTRAVERSION) LINUX_DIR = linux-$(FULLVERSION) @@ -16,11 +18,11 @@ build: $(LINUX_DIR) $(MAKE) -C $(LINUX_DIR) ARCH=xen INSTALL_PATH=$(INSTALL_DIR) install -$(LINUX_DIR): pristine-linux-$(LINUX_26VER) +$(LINUX_DIR): pristine-linux-$(LINUX_VER) rm -rf $(LINUX_DIR) - cp -al pristine-linux-$(LINUX_26VER) $(LINUX_DIR) + cp -al pristine-linux-$(LINUX_VER) $(LINUX_DIR) # Apply arch-xen patches - ( cd linux-$(LINUX_26VER)-xen-sparse ; \ + ( cd linux-$(LINUX_VER)-xen-sparse ; \ ./mkbuildtree ../$(LINUX_DIR) ) # Patch kernel Makefile to set EXTRAVERSION ( cd $(LINUX_DIR) ; \ @@ -34,11 +36,4 @@ clean: $(MAKE) -C $(LINUX_DIR) ARCH=xen clean delete: - rm -rf tmp-linux-$(LINUX_26VER) $(LINUX_DIR) - - - - - - - + rm -rf tmp-linux-$(LINUX_VER) $(LINUX_DIR) diff --git a/buildconfigs/mk.netbsd-2.0-xenU b/buildconfigs/mk.netbsd-2.0-xenU index 0e2ae60faa..53e02b739f 100644 --- a/buildconfigs/mk.netbsd-2.0-xenU +++ b/buildconfigs/mk.netbsd-2.0-xenU @@ -1,5 +1,6 @@ NETBSD_RELEASE ?= 2.0 +NETBSD_CVSSNAP ?= 20040906 EXTRAVERSION = xenU @@ -11,40 +12,19 @@ NETBSD_DIR = netbsd-$(FULLVERSION) include buildconfigs/Rules.mk -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*))) - build: $(NETBSD_DIR) netbsd-$(EXTRAVERSION) -netbsd-$(NETBSD_VER)-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2: -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-$(NETBSD_VER): $(NETBSD_SRC) - rm -rf tmp-netbsd-$(NETBSD_VER) $@ && \ - mkdir -p tmp-netbsd-$(NETBSD_VER) && \ - tar -C tmp-netbsd-$(NETBSD_VER) -jxf $(NETBSD_SRC) && \ - mv tmp-netbsd-$(NETBSD_VER)/* $@ - touch $@ # update timestamp to avoid rebuild - @rm -rf tmp-netbsd-$(NETBSD_VER) +NETBSD_TOOLS_SRC ?= $(firstword $(foreach dir,$(subst :, ,$(NETBSD_SRC_PATH)),\ + $(wildcard $(dir)/netbsd-$(NETBSD_VER)-tools.tar.*z*))) -pristine-netbsd-tools-src: +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 +netbsd-tools: netbsd-tools-src @[ -d netbsd-$(NETBSD_RELEASE)-tools ] || { \ echo extract $(NETBSD_TOOLS_SRC); \ tar -jxf $(NETBSD_TOOLS_SRC); } @@ -60,7 +40,7 @@ $(NETBSD_DIR): netbsd-tools pristine-netbsd-$(NETBSD_VER) netbsd-xen%: $(MAKE) -C netbsd-$(FULLVERSION) config $(MAKE) -C netbsd-$(FULLVERSION) netbsd - $(MAKE) -C netbsd-$(FULLVERSION) INSTALL_PATH=$(INSTALL_DIR) INSTALL_NAME=boot/netbsd-$(NETBSD_VER)-$(subst netbsd-,,$@) install + $(MAKE) -C netbsd-$(FULLVERSION) INSTALL_PATH=$(INSTALL_DIR) INSTALL_NAME=boot/netbsd-$(NETBSD_VER)-xen$* install clean: $(MAKE) -C netbsd-$(FULLVERSION) clean |