[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [Xen-devel] Re: [PATCH]: Various build clean-ups
> Various build clean-ups > > This is a fairly chunky patch to clean up the build a bit. > Please let me know if you would like any portions ommited, or > broken out. This is generally good stuff, but build system changes this close to a release are just asking for trouble. Could you split out any actual fixes and repost the rest in a week or so? Thanks, Ian > Also, I am left with two questions > 1. Should buildconfigs/{mk.linux-2.6-xen0,mk.linux-2.6-xenU} > be removed? > 2. Should the NETBSD portions (of buildconfigs/Rules.mk) be removed? > > Changes > ------- > > Python > * Make sure that DESTDIR is set, otherwise, if > XEN_PYTHON_NATIVE_INSTALL then python installs go into a relative > directory, rather then under the default prefix (usually /usr) > This is done by setting it if unset in Config.mk > > .PHONY > * Move .PHONY directives next to targets, this makes them a lot easier > to miss > * Add missing .PHONY directives > > Dependency installation targets > * Expand out install-iptables and install-logging into > build-, install-, dist-, clean- and distclean- > to make them consistent with other targets > * Call distclean-iptables and distclean-logging from distclean, > so distclean really cleans the tree, even if the logging or > iptables targets have been used > > Iptables > * Upgrade iptables from 1.2.11 to 1.3.5, as the > former does not seem to compile with linux-2.6.16 > * Update iptables download URL from http://www.netfilter.org/files to > http://www.netfilter.org/projects/iptables/files/ > * Make iptables targets depend on prep-kernels, > as the kernel needs to be there for some components of iptables > It will still build without the kernel, however, the build > will differ depending on if prep-kernels had previously been > called or not > * Update domU kernel dir from linux-$(LINUX_VER)-xenU to > linux-$(LINUX_VER)-xen > > Documentation > * Tidy up output of make help > * Document the use of the XEN_PYTHON_NATIVE_INSTALL > environment variable > > Kernels > * Don't delete non-existent %.tar.bz2 in > buildconfigs/Rules.mk's %-mrproper > * Add a mrpropper target to buildconfigs/mk.linux-2.6-xen, and > have this delete the local patch and tarball > * Make distclean depend on kclean, rather than calling clean > target by hand > * Stop kclean from erroring out if the kernel directory doesn't exist > * Remove patches/*/.makedep in top level Makefile rather than in > buildconfigs/Rules.mk, as calling rules in the latter causes > patches/*/.make to be created > (Magnus) > > Tar > * Use --bzip2 instead of -j with tar, as its backwards compatible > > Download > * Allow LINUX_REPO, NETBSD_REPO, PYTHON_LOGGING_REPO and IPTABLES_REPO > to specify the URL of the repository for the linux kernel, > netbsd kernel, python logging package and iptables > - Defaults are: > LINUX_REPO http://www.kernel.org/pub/linux/kernel/ > NETBSD_REPO > http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads > PYTHON_LOGGING_REPO http://www.red-dove.com > IPTABLES_REPO > http://www.netfilter.org/projects/iptables/files > * Allow each of these variables to be overridden in the environment > * With the exception of LINUX_REPO, the URL should be the full > path to the tarball. > * For LINUX_REPO it should be the path, trimmed to give a structure > equivalent to http://www.kernel.org/pub/linux/kernel/ > - The kernel tarball will be downloaded from > $(LINUX_REPO)/v$(KERNEL_MAJOR).$(KERNEL_MINOR)/ > e.g. http://www.kernel.org/pub/linux/kernel/v2.6 > Where KERNEL_MAJOR and KERNEL_MINOR are calculated at runtime > - The path of the tarball can be overridden using > LINUX_REPO_KERNEL_PATH > in the environment, in which case the tarball will be > downloaded from > $(LINUX_REPO)/v$(LINUX_REPO_KERNEL_PATH)/ > - If needed kernel patches will be downloaded from > $(LINUX_REPO)/v$(KERNEL_MAJOR).$(KERNEL_MINOR)/snapshots > if present, else > $(LINUX_REPO)/v$(KERNEL_MAJOR).$(KERNEL_MINOR)/testing > This will depend on the version of the patch > - The path of the tarball can be overridden using > LINUX_REPO_KERNEL_PATH > in the environment, in which case the patch will be downloaded from > $(LINUX_REPO)/v$(LINUX_REPO_PATCH_PATH)/ > - The intention of LINUX_REPO_KERNEL_PATH and LINUX_REPO_PATCH_PATH > is to allow for sites that don't follow the directory hierarchy of > kernel.org, while simplifying the presumably common case > where they do > * Previously KERNEL_REPO had similar properties to LINUX_REPO, but > it was not as flexible, had a somewhat presumptuous name and could > not be overridden in the environment. It has been removed > * Allow DOWNLOAD_PATH to set a search path for previously > downloaded files > - Use the first element of the path as the directory to save > downloaded files > - Default is LINUX_SRC_PATH if set in environment, else .:.. > - Note that kclean-tarball, makedistlcean-* and friends > intentionally only remove tarballs in the top level xen directory, > regardless of the value of this variable. This is to allow > more persistent storage of tarballs in a specified location, > which cam be manually cleaned if desired. > > mkbuildtree > * Don't assume mkbuiltree scripts are executable > > pygryb > * clean a.out > (Magnus) > > Signed-Off-By: Horms <horms@xxxxxxxxxxxx> > Signed-Off-By: Magnus Damm <magnus@xxxxxxxxxxxxx> > > Config.mk | 15 + > Makefile | 199 > +++++++++++++++++++++---- > buildconfigs/Rules.mk | 34 ++-- > buildconfigs/mk.linux-2.6-xen | 18 +- > linux-2.6-xen-sparse/drivers/xen/Makefile | 26 +-- > linux-2.6-xen-sparse/drivers/xen/core/Makefile | 21 ++ > linux-2.6-xen-sparse/mkbuildtree | 8 - > tools/debugger/gdb/gdbbuild | 2 > tools/misc/xen-clone | 2 > tools/pygrub/Makefile | 2 > 10 files changed, 256 insertions(+), 71 deletions(-) > > diff -r 40c23921e729 Config.mk > --- a/Config.mk Mon Mar 27 18:03:03 2006 +0100 > +++ b/Config.mk Tue Mar 28 18:49:58 2006 +0900 > @@ -24,6 +24,7 @@ OBJDUMP = $(CROSS_COMPILE)objdump > OBJDUMP = $(CROSS_COMPILE)objdump > > DISTDIR ?= $(XEN_ROOT)/dist > +DESTDIR ?= / > > INSTALL = install > INSTALL_DIR = $(INSTALL) -d -m0755 > @@ -68,7 +69,19 @@ CFLAGS += $(foreach i, $(EXTRA_INCLUDES) > CFLAGS += $(foreach i, $(EXTRA_INCLUDES), -I$(i)) > > # Choose the best mirror to download linux kernel > -KERNEL_REPO = http://www.kernel.org > +DOWNLOAD_PATH_DEFAULT := .:.. > +ifdef LINUX_SRC_PATH > +DOWNLOAD_PATH ?= $(LINUX_SRC_PATH) # Compatibility else > DOWNLOAD_PATH > +?= $(DOWNLOAD_PATH_DEFAULT) endif > +DOWNLOAD_DIR := $(firstword $(subst :, ,$(DOWNLOAD_PATH))) > +# LINUX_REPO_KERNEL_PATH Set in buildconfigs/Rules.mk, if not in > +environment # LINUX_REPO_PATCH_PATH Set in > buildconfigs/Rules.mk, if not in environment > +LINUX_REPO ?= http://www.kernel.org/pub/linux/kernel/ > +NETBSD_REPO ?= > http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads > +PYTHON_LOGGING_REPO ?= http://www.red-dove.com IPTABLES_REPO ?= > +http://www.netfilter.org/projects/iptables/files > > # If ACM_SECURITY = y, then the access control module is > compiled # into Xen and the policy type can be set by the > boot policy file diff -r 40c23921e729 Makefile > --- a/Makefile Mon Mar 27 18:03:03 2006 +0100 > +++ b/Makefile Tue Mar 28 18:49:58 2006 +0900 > @@ -14,6 +14,7 @@ endif > endif > > # Default target must appear before any include lines > +.PHONY: all > all: dist > > XEN_ROOT=$(CURDIR) > @@ -24,12 +25,10 @@ export 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 > install: install-xen install-kernels install-tools install-docs > > +.PHONY: build > build: kernels > $(MAKE) -C xen build > $(MAKE) -C tools build > @@ -38,10 +37,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,79 +55,165 @@ 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 > -distclean: clean > +# clean, but blow away kernel build tree plus tarballs in the xen > +source tree > +.PHONY: distclean > +distclean: clean kdelete distclean-logging distclean-iptables > rm -rf dist patches/tmp > - for i in $(ALLKERNELS) ; do $(MAKE) $$i-delete ; done > for i in $(ALLSPARSETREES) ; do $(MAKE) $$i-mrproper ; done > + rm -rf patches/*/.makedep > > # Linux name for GNU distclean > +.PHONY: mrproper > mrproper: distclean > > -install-logging: LOGGING=logging-0.4.9.2 > -install-logging: > - [ -f $(LOGGING).tar.gz ] || wget > http://www.red-dove.com/$(LOGGING).tar.gz > - tar -zxf $(LOGGING).tar.gz > - cd $(LOGGING) && python setup.py install > - > -# handy target to upgrade iptables (use rpm or apt-get in preference) > -install-iptables: > - wget http://www.netfilter.org/files/iptables-1.2.11.tar.bz2 > - tar -jxf iptables-1.2.11.tar.bz2 > - $(MAKE) -C iptables-1.2.11 PREFIX= > KERNEL_DIR=../linux-$(LINUX_VER)-xen0 install > - > +# handy targets to upgrade loging (use rpm or apt-get in preference) > +LOGGING=logging-0.4.9.2 > + > +vpath $(LOGGING).tar.gz $(DOWNLOAD_PATH) > +$(LOGGING).tar.gz: > + wget $(IPTABLES_REPO)/$@ -O$(DOWNLOAD_DIR)/$@ \ > + || { rm -f $(DOWNLOAD_DIR)/$@; false; } > + > +# N.B: Not .PHONY > +prep-stamp-logging: > + [ -d $(LOGGING) ] || tar -zxf $< > + touch $@ > + > +.PHONY: prep-logging > +prep-logging: prep-stamp-logging > + > +.PHONY: build-logging > +build-logging: prep-logging > + cd $(LOGGING) && python setup.py build > + > +.PHONY: install-logging > +install-logging: build-logging > +ifndef XEN_PYTHON_NATIVE_INSTALL > + cd $(LOGGING) && python setup.py install --home="$(DESTDIR)/usr" > +else > + cd $(LOGGING) && python setup.py install --root="$(DESTDIR)" > +endif > + > +.PHONY: dist-logging > +dist-logging: DESTDIR=$(DISTDIR)/install > +dist-logging: install-logging > + @: # do nothing > + > +.PHONY: clean-logging > +clean-logging: > + [ ! -d $(LOGGING) ] || ( cd $(LOGGING) && python > setup.py clean; ) > + > +.PHONY: distclean-logging > +distclean-logging: clean-logging > + rm -f prep-stamp-logging $(LOGGING).tar.gz > + rm -rf $(LOGGING) > + > +# handy targets to upgrade iptables (use rpm or apt-get in > preference) > +IPTABLES=iptables-1.3.5 > + > +vpath $(IPTABLES).tar.bz2 $(DOWNLOAD_PATH) > +$(IPTABLES).tar.bz2: > + wget $(IPTABLES_REPO)/$@ -O$(DOWNLOAD_DIR)/$@ \ > + || { rm -f $(DOWNLOAD_DIR)/$@; false; } > + > +# N.B: Not .PHONY > +prep-stamp-iptables: $(IPTABLES).tar.bz2 > + [ -d $(IPTABLES) ] || tar --bzip2 -xf $< > + touch $@ > + > +.PHONY: prep-iptables > +prep-iptables: prep-stamp-iptables > + > +.PHONY: build-iptables > +build-iptables: prep-iptables prep-kernels > + $(MAKE) -C $(IPTABLES) PREFIX= > KERNEL_DIR=../linux-$(LINUX_VER)-xen > + > +.PHONY: install-iptables > +install-iptables: build-iptables > + $(MAKE) -C $(IPTABLES) PREFIX= > KERNEL_DIR=../linux-$(LINUX_VER)-xen \ > + install > + > +.PHONY: dist-iptables > +dist-iptables: DESTDIR=$(DISTDIR)/install > +dist-iptables: install-iptables > + @: # do nothing > + > +.PHONY: clean-iptables > +clean-iptables: > + [ ! -d $(IPTABLES) ] || $(MAKE) -C $(IPTABLES) PREFIX= \ > + KERNEL_DIR=../linux-$(LINUX_VER)-xen clean > + > +.PHONY: distclean-iptables > +distclean-iptables: clean-iptables > + rm -f prep-stamp-iptables $(IPTABLES).tar.bz2 > + rm -rf $(IPTABLES) > + > +.PHONY: help > help: > @echo 'Installation targets:' > @echo ' install - build and install everything' > @@ -137,8 +224,8 @@ help: > @echo '' > @echo 'Building targets:' > @echo ' dist - build and install > everything into local dist directory' > - @echo ' world - clean everything, delete > guest kernel build' > - @echo ' trees then make dist' > + @echo ' world - clean everything, delete > guest kernel build trees' > + @echo ' then make dist' > @echo ' xen - build and install Xen hypervisor' > @echo ' tools - build and install tools' > @echo ' kernels - build and install guest kernels' > @@ -147,25 +234,80 @@ help: > @echo ' dev-docs - build developer-only documentation' > @echo '' > @echo 'Cleaning targets:' > - @echo ' clean - clean the Xen, tools and > docs (but not' > - @echo ' guest kernel) trees' > - @echo ' distclean - clean plus delete kernel > tarballs and kernel' > - @echo ' build trees' > + @echo ' clean - clean the Xen, tools and > docs (but not guest kernel trees)' > + @echo ' distclean - clean plus delete kernel > build trees and' > + @echo ' local downloaded files' > @echo ' kdelete - delete guest kernel build trees' > @echo ' kclean - clean guest kernel build trees' > @echo '' > - @echo 'Dependency installation targets:' > - @echo ' install-logging - install the Python Logging package' > + @echo 'Dependency installation targets (Python Logging > package):' > + @echo ' build-logging - build logging' > + @echo ' install-logging - install logging tools' > + @echo ' dist-logging - install logging tools into > local directory' > + @echo ' clean-logging - clean logging' > + @echo ' distclean-logging' > + @echo ' - clean logging plus' > + @echo ' delete logging tree and > local tarball' > + @echo ' * distclean-logging is called by distclean,' > + @echo ' but other targets are indepenent of > non-logging targets' > + @echo '' > + @echo 'Dependency installation targets (iptables):' > + @echo ' build-iptables - build iptables' > @echo ' install-iptables - install iptables tools' > + @echo ' dist-iptables - install iptables tools into > local directory' > + @echo ' clean-iptables - clean iptables' > + @echo ' distclean-iptables' > + @echo ' - clean iptables plus' > + @echo ' delete iptables tree and > local tarball' > + @echo ' * distclean-iptables is called by distclean,' > + @echo ' but other targets are indepenent of > non-iptables targets' > @echo '' > @echo 'Miscellaneous targets:' > @echo ' prep-kernels - prepares kernel > directories, does not build' > @echo ' mkpatches - make patches against > vanilla kernels from' > @echo ' sparse trees' > - @echo ' uninstall - attempt to remove installed > Xen tools (use' > - @echo ' with extreme care!)' > + @echo ' uninstall - attempt to remove installed > Xen tools' > + @echo ' (use with extreme care!)' > + @echo > + @echo 'Environment:' > + @echo ' XEN_PYTHON_NATIVE_INSTALL=y' > + @echo ' - native python install or dist' > + @echo ' install into > prefix/lib/python<VERSION>' > + @echo ' instead of <PREFIX>/lib/python' > + @echo ' true if set to non-empty > value, false otherwise' > + @echo ' LINUX_REPO=URL - Base URL to download linux > kernel from' > + @echo ' Default: $(LINUX_REPO)' > + @echo ' LINUX_REPO_KERNEL_PATH=DIRECTORY' > + @echo ' - LINUX_REPO assumes that the > URL has the same directory' > + @echo ' structure as > http://www.kernel.org/pub/linux/kernel/' > + @echo ' and the rest of the path to > the tarball is derived.' > + @echo ' If set, override the derivation.' > + @echo ' Default: $(LINUX_REPO)' > + @echo ' LINUX_REPO_PATCHL_PATH=DIRECTORY' > + @echo ' - LINUX_REPO assumes that the > URL has the same directory' > + @echo ' structure as > http://www.kernel.org/pub/linux/kernel/' > + @echo ' and the rest of the path to > the patches is derived.' > + @echo ' If set, override the derivation.' > + @echo ' Default: $(LINUX_REPO)' > + @echo ' NETBSD_REPO=URL - Base URL to download netbsd > kernel from' > + @echo ' Default: $(NETBSD_REPO)' > + @echo ' PYTHON_LOGGING_REPO=URL' > + @echo ' - Base URL to download python > loging package from' > + @echo ' Default: $(PYTHON_LOGGING_REPO)' > + @echo ' IPTABLES_REPO=URL' > + @echo ' - Base URL to download iptables from' > + @echo ' Default: $(IPTABLES_REPO)' > + @echo ' DOWNLOAD_PATH=PATH' > + @echo ' - Directory to search for > downloadable files' > + @echo ' ":" delimited' > + @echo ' First element will be used > as the directory' > + @echo ' to store any downloaded files in' > + @echo ' Default: LINUX_SRC_PATH if > set, else $(DOWNLOAD_PATH_DEFAULT)' > + > + > > # 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 @@ -199,5 +341,6 @@ uninstall: > rm -rf $(D)/usr/share/man/man8/xen* > > # Legacy targets for compatibility > +.PHONY: linux26 > linux26: > $(MAKE) 'KERNELS=linux-2.6*' kernels > diff -r 40c23921e729 buildconfigs/Rules.mk > --- a/buildconfigs/Rules.mk Mon Mar 27 18:03:03 2006 +0100 > +++ b/buildconfigs/Rules.mk Tue Mar 28 18:49:58 2006 +0900 > @@ -24,21 +24,28 @@ LINUX_VER ?= $(shell grep "^LINUX_VER" b > LINUX_VER ?= $(shell grep "^LINUX_VER" > buildconfigs/mk.linux-2.6-xen | sed -e 's/.*=[ ]*//') > > # Setup Linux search path > -LINUX_SRC_PATH ?= .:.. > -vpath linux-%.tar.bz2 $(LINUX_SRC_PATH) -vpath patch-%.bz2 > $(LINUX_SRC_PATH) > +vpath linux-%.tar.bz2 $(DOWNLOAD_PATH) > +vpath patch-%.bz2 $(DOWNLOAD_PATH) > > # download a pristine Linux kernel tarball if there isn't > one in LINUX_SRC_PATH > +ifndef LINUX_REPO_KERNEL_PATH > linux-%.tar.bz2: override _LINUX_VDIR = $(word 1,$(subst ., > ,$*)).$(word 2,$(subst ., ,$*)) > +linux-%.tar.bz2: LINUX_REPO_KERNEL_PATH = v$(_LINUX_VDIR) endif > linux-%.tar.bz2: > @echo "Cannot find $@ in path $(LINUX_SRC_PATH)" > - wget $(KERNEL_REPO)/pub/linux/kernel/v$(_LINUX_VDIR)/$@ -O./$@ > + wget $(LINUX_REPO)/$(LINUX_REPO_KERNEL_PATH)/$@ > -O$(DOWNLOAD_DIR)/$@ \\ > + || { rm -f $(DOWNLOAD_DIR)/$@; false; } > > +ifndef LINUX_REPO_PATCH_PATH > patch-%.bz2: override _LINUX_VDIR = $(word 1,$(subst ., > ,$(*F))).$(word 2,$(subst ., ,$(*F))) > patch-%.bz2: override _LINUX_XDIR = $(if $(word 3,$(subst -, > ,$(*F))),snapshots,testing) > +patch-%.bz2: LINUX_REPO_PATCH_PATH = v$(_LINUX_VDIR)/$(_LINUX_XDIR) > +endif > patch-%.bz2: > @echo "Cannot find $(@F) in path $(LINUX_SRC_PATH)" > - wget > $(KERNEL_REPO)/pub/linux/kernel/v$(_LINUX_VDIR)/$(_LINUX_XDIR) > /$(@F) -O./$@ > + wget $(LINUX_REPO)/$(LINUX_REPO_PATCH_PATH)/$(@F) \ > + -O$(DOWNLOAD_DIR)/$@ || { rm -f > $(DOWNLOAD_DIR)/$@; false; } > > # Expand NetBSD release to NetBSD version NETBSD_RELEASE > ?= 2.0 @@ -52,7 +59,8 @@ 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/$@ -O./$@ > + wget $(NETBSD_REPO)/$@ -O$(DOWNLOAD_DIR)/$@ || \ > + || { rm -f $(DOWNLOAD_DIR)/$@; false; } > > netbsd-%.tar.bz2: netbsd-%-xen-kernel-$(NETBSD_CVSSNAP).tar.bz2 > ln -fs $< $@ > @@ -67,9 +75,10 @@ pristine-%: pristine-%/.valid-pristine > @true > > pristine-%/.valid-pristine: %.tar.bz2 > + @ echo pristing-target: $@ > rm -rf tmp-pristine-$* $(@D) > mkdir -p tmp-pristine-$* > - tar -C tmp-pristine-$* -jxf $< > + tar -C tmp-pristine-$* --bzip2 -xf $< > -@rm -f tmp-pristine-$*/pax_global_header > mv tmp-pristine-$*/* $(@D) > @rm -rf tmp-pristine-$* > @@ -83,9 +92,6 @@ ifneq ($(PATCHDIRS),) > > $(patsubst patches/%,patches/%/.makedep,$(PATCHDIRS)): > patches/%/.makedep: > @echo 'ref-$*/.valid-ref: $$(wildcard patches/$*/*.patch)' >$@ > - > -clean:: > - rm -f patches/*/.makedep > > ref-%/.valid-ref: pristine-%/.valid-pristine > set -e > @@ -113,6 +119,7 @@ endif > > %-delete: > $(MAKE) -f buildconfigs/mk.$* delete > + rm -f % > > %-clean: > $(MAKE) -f buildconfigs/mk.$* clean > @@ -123,19 +130,20 @@ linux-2.6-xen.patch: ref-linux-$(LINUX_V > linux-2.6-xen.patch: ref-linux-$(LINUX_VER)/.valid-ref > rm -rf tmp-$@ > cp -al $(<D) tmp-$@ > - ( cd linux-2.6-xen-sparse && ./mkbuildtree ../tmp-$@ ) > + ( cd linux-2.6-xen-sparse && sh ./mkbuildtree ../tmp-$@ ) > diff -Nurp $(<D) tmp-$@ > $@ || true > rm -rf tmp-$@ > > %-xen.patch: ref-%/.valid-ref > rm -rf tmp-$@ > cp -al $(<D) tmp-$@ > - ( cd $*-xen-sparse && ./mkbuildtree ../tmp-$@ ) > + ( cd $*-xen-sparse && sh ./mkbuildtree ../tmp-$@ ) > diff -Nurp $(<D) tmp-$@ > $@ || true > rm -rf tmp-$@ > > %-mrproper: %-mrproper-extra > - rm -rf pristine-$(*)* ref-$(*)* $*.tar.bz2 > + $(MAKE) -f buildconfigs/mk.$*-xen mrpropper > + rm -rf pristine-$(*)* ref-$(*)* > rm -rf $*-xen.patch > > netbsd-%-mrproper-extra: > diff -r 40c23921e729 buildconfigs/mk.linux-2.6-xen > --- a/buildconfigs/mk.linux-2.6-xen Mon Mar 27 18:03:03 2006 +0100 > +++ b/buildconfigs/mk.linux-2.6-xen Tue Mar 28 18:49:58 2006 +0900 > @@ -11,9 +11,8 @@ LINUX_DIR = $(OS)-$(LINUX_VER)-$(EXTR > > 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 > ; \ @@ -26,8 +25,8 @@ build: $(LINUX_DIR)/include/linux/autoco > rm -rf $(LINUX_DIR) > cp -al $(<D) $(LINUX_DIR) > # Apply arch-xen patches > - ( cd linux-$(LINUX_SERIES)-xen-sparse ; \ > - LINUX_ARCH=$(LINUX_ARCH) ./mkbuildtree ../$(LINUX_DIR) ) > + ( cd linux-$(LINUX_SERIES)-xen-sparse && \ > + LINUX_ARCH=$(LINUX_ARCH) sh ./mkbuildtree ../$(LINUX_DIR) ) > # Re-use config from install dir if one exits else use > default config > CONFIG_VERSION=$$(sed -ne 's/^EXTRAVERSION = //p' > $(LINUX_DIR)/Makefile); \ > [ -r > $(DESTDIR)/boot/config-$(LINUX_VER)$$CONFIG_VERSION-$(EXTRAVER > SION) ] && \ @@ -42,14 +41,23 @@ build: > $(LINUX_DIR)/include/linux/autoco > 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 > + [ ! -d $(LINUX_DIR) ] || \ > + $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) clean > > +.PHONY: delete > delete: > rm -rf tmp-$(OS)-$(LINUX_VER) $(LINUX_DIR) > + > +.PHONY: mrpropper > +mrpropper: > + rm -f $(LINUX_SRCS) > diff -r 40c23921e729 linux-2.6-xen-sparse/drivers/xen/Makefile > --- a/linux-2.6-xen-sparse/drivers/xen/Makefile Mon Mar > 27 18:03:03 2006 +0100 > +++ b/linux-2.6-xen-sparse/drivers/xen/Makefile Tue Mar > 28 18:49:58 2006 +0900 > @@ -1,22 +1,20 @@ > > -obj-y += net_driver_util.o > -obj-y += util.o > +obj-y += util.o > > obj-y += core/ > -obj-y += char/ > obj-y += console/ > obj-y += evtchn/ > -obj-y += balloon/ > +#obj-y += balloon/ > obj-y += privcmd/ > +obj-y += blkback/ > +#obj-y += netback/ > +obj-y += blkfront/ > obj-y += xenbus/ > +#obj-y += netfront/ > +#obj-$(CONFIG_XEN_PRIVILEGED_GUEST) += privcmd/ > +#obj-$(CONFIG_XEN_BLKDEV_BACKEND) += blkback/ > +#obj-$(CONFIG_XEN_NETDEV_BACKEND) += netback/ > +#obj-$(CONFIG_XEN_BLKDEV_FRONTEND) += blkfront/ > +#obj-$(CONFIG_XEN_NETDEV_FRONTEND) += netfront/ > +#obj-$(CONFIG_XEN_BLKDEV_TAP) += blktap/ > > -obj-$(CONFIG_XEN_BLKDEV_BACKEND) += blkback/ > -obj-$(CONFIG_XEN_NETDEV_BACKEND) += netback/ > -obj-$(CONFIG_XEN_TPMDEV_BACKEND) += tpmback/ > -obj-$(CONFIG_XEN_BLKDEV_FRONTEND) += blkfront/ > -obj-$(CONFIG_XEN_NETDEV_FRONTEND) += netfront/ > -obj-$(CONFIG_XEN_BLKDEV_TAP) += blktap/ > -obj-$(CONFIG_XEN_TPMDEV_FRONTEND) += tpmfront/ > -obj-$(CONFIG_XEN_PCIDEV_BACKEND) += pciback/ > -obj-$(CONFIG_XEN_PCIDEV_FRONTEND) += pcifront/ > - > diff -r 40c23921e729 linux-2.6-xen-sparse/drivers/xen/core/Makefile > --- a/linux-2.6-xen-sparse/drivers/xen/core/Makefile Mon Mar > 27 18:03:03 2006 +0100 > +++ b/linux-2.6-xen-sparse/drivers/xen/core/Makefile Tue Mar > 28 18:49:58 2006 +0900 > @@ -2,10 +2,25 @@ > # Makefile for the linux kernel. > # > > -obj-y := evtchn.o reboot.o gnttab.o features.o > +XENARCH := $(subst ",,$(CONFIG_XENARCH)) > > +CPPFLAGS_vmlinux.lds += -U$(XENARCH) > + > +$(obj)/vmlinux.lds.S: > + @ln -fsn $(srctree)/arch/$(XENARCH)/kernel/vmlinux.lds.S $@ > + > + > +obj-y := gnttab.o > obj-$(CONFIG_PROC_FS) += xen_proc.o > -obj-$(CONFIG_NET) += skbuff.o > -obj-$(CONFIG_SMP) += smpboot.o > + > +ifeq ($(ARCH),ia64) > +obj-y += evtchn_ia64.o > +obj-y += xenia64_init.o > +else > +extra-y += vmlinux.lds > +obj-y += reboot.o evtchn.o fixup.o > +obj-$(CONFIG_SMP) += smp.o # > setup_profiling_timer def'd in ia64 > +obj-$(CONFIG_NET) += skbuff.o # until networking is up on ia64 > +endif > obj-$(CONFIG_SYSFS) += hypervisor_sysfs.o > obj-$(CONFIG_XEN_SYSFS) += xen_sysfs.o > diff -r 40c23921e729 linux-2.6-xen-sparse/mkbuildtree > --- a/linux-2.6-xen-sparse/mkbuildtree Mon Mar 27 > 18:03:03 2006 +0100 > +++ b/linux-2.6-xen-sparse/mkbuildtree Tue Mar 28 > 18:49:58 2006 +0900 > @@ -90,8 +90,8 @@ RS=$DESTPATH > RS=$DESTPATH > > # Arch-specific pre-processing > -if [ -x arch/${LINUX_ARCH}/xen-mkbuildtree-pre ]; then > - arch/${LINUX_ARCH}/xen-mkbuildtree-pre > +if [ -e arch/${LINUX_ARCH}/xen-mkbuildtree-pre ]; then > + sh arch/${LINUX_ARCH}/xen-mkbuildtree-pre > fi > > # Remove old copies of files and directories at the > destination @@ -115,6 +115,6 @@ relative_lndir > ../../../${RS}/../xen/inc > > # Arch-specific post-processing > cd ${AD} > -if [ -x arch/${LINUX_ARCH}/xen-mkbuildtree-post ]; then > - arch/${LINUX_ARCH}/xen-mkbuildtree-post > +if [ -e arch/${LINUX_ARCH}/xen-mkbuildtree-post ]; then > + sh arch/${LINUX_ARCH}/xen-mkbuildtree-post > fi > diff -r 40c23921e729 tools/debugger/gdb/gdbbuild > --- a/tools/debugger/gdb/gdbbuild Mon Mar 27 18:03:03 2006 +0100 > +++ b/tools/debugger/gdb/gdbbuild Tue Mar 28 18:49:58 2006 +0900 > @@ -7,7 +7,7 @@ tar xjf gdb-6.2.1.tar.bz2 tar xjf gdb-6.2.1.tar.bz2 > > cd gdb-6.2.1-xen-sparse > -./mkbuildtree ../gdb-6.2.1 > +sh ./mkbuildtree ../gdb-6.2.1 > > cd .. > mkdir gdb-6.2.1-linux-i386-xen > diff -r 40c23921e729 tools/misc/xen-clone > --- a/tools/misc/xen-clone Mon Mar 27 18:03:03 2006 +0100 > +++ b/tools/misc/xen-clone Tue Mar 28 18:49:58 2006 +0900 > @@ -113,7 +113,7 @@ else > > # Turn linux into xenolinux then build it > cd xenolinux-${LINUX_VER}-sparse > - ./mkbuildtree ../../linux-${LINUX_VER} > + sh ./mkbuildtree ../../linux-${LINUX_VER} > cd ../.. > mv linux-${LINUX_VER} xenolinux-${LINUX_VER} > cd xenolinux-${LINUX_VER} > diff -r 40c23921e729 tools/pygrub/Makefile > --- a/tools/pygrub/Makefile Mon Mar 27 18:03:03 2006 +0100 > +++ b/tools/pygrub/Makefile Tue Mar 28 18:49:58 2006 +0900 > @@ -15,4 +15,4 @@ endif > endif > > clean: > - rm -rf build tmp *.pyc *.pyo *.o *.a *~ > + rm -rf build tmp *.pyc *.pyo *.o *.a *~ a.out > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-devel > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |