WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] Factor out sparse tree makefile fragments

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] Factor out sparse tree makefile fragments and introduce hg-clone and
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Mon, 04 Jun 2007 03:15:53 -0700
Delivery-date: Mon, 04 Jun 2007 03:17:25 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxxxxx>
# Date 1180087420 -3600
# Node ID 3fcd0b9fd083aca0bbf2be6085269e39434308c6
# Parent  a717cb2fac908ba82619ba52e34a2cc77942df4f
Factor out sparse tree makefile fragments and introduce hg-clone and
tarball methods in preparation for migrating away from the sparse tree
layout.

This re-introduces 14883:6568c1882af5 and 14862:98efd2e410ae plus
further fixes.

Also add makefile fragments to support building the paravirt ops tree
(make linux-2.6-paravirt-build).

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxxxxx>
---
 .hgignore                                        |    1 
 buildconfigs/Rules.mk                            |   94 ---------------------
 buildconfigs/create_config.sh                    |    7 +
 buildconfigs/mk.linux-2.6-native                 |    2 
 buildconfigs/mk.linux-2.6-paravirt               |   11 ++
 buildconfigs/mk.linux-2.6-xen                    |  102 +++++++++++++++--------
 buildconfigs/mk.linux-2.6-xen0                   |    2 
 buildconfigs/mk.linux-2.6-xenU                   |    2 
 buildconfigs/mk.linux-2.6.5-SLES-xen             |   12 ++
 buildconfigs/mk.linux-2.6.9-RHEL-xen             |   12 ++
 buildconfigs/src.hg-clone                        |   26 +++++
 buildconfigs/src.sparse                          |   76 +++++++++++++++++
 buildconfigs/src.tarball                         |   25 +++++
 linux-2.6-xen-sparse/arch/i386/Makefile          |    2 
 linux-2.6-xen-sparse/arch/i386/boot-xen/Makefile |    4 
 linux-2.6-xen-sparse/arch/x86_64/Makefile        |    2 
 16 files changed, 247 insertions(+), 133 deletions(-)

diff -r a717cb2fac90 -r 3fcd0b9fd083 .hgignore
--- a/.hgignore Fri May 25 10:53:07 2007 +0100
+++ b/.hgignore Fri May 25 11:03:40 2007 +0100
@@ -66,6 +66,7 @@
 ^linux-[^/]*-xen/.*$
 ^linux-[^/]*-xen0/.*$
 ^linux-[^/]*-xenU/.*$
+^linux-[^/]*-paravirt/.*$
 ^linux-[^/]*\.patch$
 ^mkddbxen$
 ^netbsd-[^/]*-tools/.*$
diff -r a717cb2fac90 -r 3fcd0b9fd083 buildconfigs/Rules.mk
--- a/buildconfigs/Rules.mk     Fri May 25 10:53:07 2007 +0100
+++ b/buildconfigs/Rules.mk     Fri May 25 11:03:40 2007 +0100
@@ -3,78 +3,8 @@ include Config.mk
 
 export DESTDIR
 
-# Choose the best mirror to download linux kernel
-KERNEL_REPO = http://www.kernel.org
-
 ALLKERNELS = $(patsubst buildconfigs/mk.%,%,$(wildcard buildconfigs/mk.*))
 ALLSPARSETREES = $(patsubst %-xen-sparse,%,$(wildcard *-xen-sparse))
-
-# Setup pristine search path
-PRISTINE_SRC_PATH      ?= .:..
-vpath pristine-% $(PRISTINE_SRC_PATH)
-
-# Let XEN_TARGET_ARCH override ARCH.
-ifeq ($(XEN_TARGET_ARCH),x86_32)
-LINUX_ARCH     ?= i386
-else
-LINUX_ARCH     ?= $(XEN_TARGET_ARCH)
-endif
-
-# Expand Linux series to Linux version
-LINUX_SERIES   ?= 2.6
-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)
-
-# 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 $@ in path $(LINUX_SRC_PATH)"
-       wget $(KERNEL_REPO)/pub/linux/kernel/v$(_LINUX_VDIR)/$@ -O./$@
-
-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:
-       @echo "Cannot find $(@F) in path $(LINUX_SRC_PATH)"
-       wget 
$(KERNEL_REPO)/pub/linux/kernel/v$(_LINUX_VDIR)/$(_LINUX_XDIR)/$(@F) -O./$@
-
-pristine-%: pristine-%/.valid-pristine
-       @true
-
-pristine-%/.valid-pristine: %.tar.bz2
-       rm -rf tmp-pristine-$* $(@D)
-       mkdir -p tmp-pristine-$*
-       tar -C tmp-pristine-$* -jxf $<
-       -@rm -f tmp-pristine-$*/pax_global_header
-       mv tmp-pristine-$*/* $(@D)
-       @rm -rf tmp-pristine-$*
-       touch $(@D)/.hgskip
-       touch $@ # update timestamp to avoid rebuild
-
-PATCHDIRS := $(wildcard patches/*-*)
-
-ifneq ($(PATCHDIRS),)
--include $(patsubst %,%/.makedep,$(PATCHDIRS))
-
-$(patsubst patches/%,patches/%/.makedep,$(PATCHDIRS)): patches/%/.makedep: 
-       @echo 'ref-$*/.valid-ref: $$(wildcard patches/$*/*.patch)' >$@
-
-ref-%/.valid-ref: pristine-%/.valid-pristine
-       set -e
-       rm -rf $(@D)
-       cp -al $(<D) $(@D)
-       if [ -d patches/$* ] ; then                                    \
-           echo Applying patches from patches/$*... ;                 \
-           for i in $$(cat patches/$*/series) ; do                    \
-               echo ... $$i ;                                         \
-               patch -d $(@D) -p1 --quiet <patches/$*/$$i || exit 1 ; \
-            done ;                                                    \
-       fi
-       touch $@ # update timestamp to avoid rebuild
-endif
 
 %-install:
        $(MAKE) -f buildconfigs/mk.$* build
@@ -101,32 +31,13 @@ endif
 %-clean:
        $(MAKE) -f buildconfigs/mk.$* clean
 
-linux-2.6-xen.patch: ref-linux-$(LINUX_VER)/.valid-ref
-       rm -rf tmp-$@
-       cp -al $(<D) tmp-$@
-       ( cd linux-2.6-xen-sparse && bash ./mkbuildtree ../tmp-$@ )     
-       diff -Nurp $(patsubst ref%,pristine%,$(<D)) tmp-$@ > $@ || true
-       rm -rf tmp-$@
-
-%-xen.patch: ref-%/.valid-ref
-       rm -rf tmp-$@
-       cp -al $(<D) tmp-$@
-       ( cd $*-xen-sparse && bash ./mkbuildtree ../tmp-$@ )    
-       diff -Nurp $(patsubst ref%,pristine%,$(<D)) tmp-$@ > $@ || true
-       rm -rf tmp-$@
+%.patch:
+       $(MAKE) -f buildconfigs/mk.$* $@
 
 %-mrproper:
-       $(MAKE) -f buildconfigs/mk.$*-xen mrpropper
+       $(MAKE) -f buildconfigs/mk.$*-xen mrproper
        rm -rf pristine-$(*)* ref-$(*)*
        rm -rf $*-xen.patch
 
-.PHONY: config-update-pae
-config-update-pae:
-ifeq ($(XEN_TARGET_X86_PAE),y)
-       sed -e 's!^CONFIG_HIGHMEM4G=y$$!\# CONFIG_HIGHMEM4G is not set!;s!^\# 
CONFIG_HIGHMEM64G is not set$$!CONFIG_HIGHMEM64G=y!' $(CONFIG_FILE) > 
$(CONFIG_FILE)- && mv $(CONFIG_FILE)- $(CONFIG_FILE)
-else
-       grep '^CONFIG_HIGHMEM64G=y' $(CONFIG_FILE) >/dev/null && ( sed -e 
's!^CONFIG_HIGHMEM64G=y$$!\# CONFIG_HIGHMEM64G is not set!;s!^\# 
CONFIG_HIGHMEM4G is not set$$!CONFIG_HIGHMEM4G=y!' $(CONFIG_FILE) > 
$(CONFIG_FILE)- && mv $(CONFIG_FILE)- $(CONFIG_FILE) ) || true
-endif
-
 # never delete any intermediate files.
 .SECONDARY:
diff -r a717cb2fac90 -r 3fcd0b9fd083 buildconfigs/create_config.sh
--- a/buildconfigs/create_config.sh     Fri May 25 10:53:07 2007 +0100
+++ b/buildconfigs/create_config.sh     Fri May 25 11:03:40 2007 +0100
@@ -18,23 +18,26 @@ systype=$4
 # Start with initial config skeleton file, if any.
 # Derive from linux-defconfig_xen_x86_32 otherwise.
 #
-skeleton=buildconfigs/linux-defconfig_${extraversion}_${target_arch}${systype}
+skeleton=buildconfigs/linux-defconfig_${extraversion#-}_${target_arch}${systype}
 [ -r $skeleton ] || skeleton=buildconfigs/linux-defconfig_xen_x86_32
 [ -r $skeleton.local ] && skeleton=$skeleton.local
 cp $skeleton $config_file
 
+echo "Using $skeleton as base config"
 
 # Update
 #
 filter_template="s/^#\{0,1\} *\(CONFIG[^= ]*\).*/\/^#\\\{0,1\\\} *\1[= 
].*\/d/p"
-config_dirs="buildconfigs/conf.linux buildconfigs/conf.linux-${target_arch} 
buildconfigs/conf.linux-${extraversion} 
buildconfigs/conf.linux-${target_arch}-${extraversion}"
+config_dirs="buildconfigs/conf.linux buildconfigs/conf.linux-${target_arch} 
buildconfigs/conf.linux${extraversion} 
buildconfigs/conf.linux-${target_arch}${extraversion}"
 
 for config_dir in $config_dirs
 do
     if [ -d $config_dir ]; then
+        echo "Processing $config_dir..." 1>&2
         # processing is done in alphanumeric order
         find $config_dir -type f | sort | while read update
         do
+            echo "   ... $update" 1>&2
             # create the filter rules in a temp file
             filter_rules=`mktemp -t xenupdateconf.XXXXXXXXXX`
             sed -n "${filter_template}" < $update > $filter_rules
diff -r a717cb2fac90 -r 3fcd0b9fd083 buildconfigs/mk.linux-2.6-native
--- a/buildconfigs/mk.linux-2.6-native  Fri May 25 10:53:07 2007 +0100
+++ b/buildconfigs/mk.linux-2.6-native  Fri May 25 11:03:40 2007 +0100
@@ -1,4 +1,4 @@ EXTRAVERSION = native
-EXTRAVERSION = native
+EXTRAVERSION = -native
 IMAGE_TARGET = bzImage
 INSTALL_BOOT_PATH = $(DESTDIR)/boot
 include buildconfigs/mk.linux-2.6-xen
diff -r a717cb2fac90 -r 3fcd0b9fd083 buildconfigs/mk.linux-2.6-paravirt
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/buildconfigs/mk.linux-2.6-paravirt        Fri May 25 11:03:40 2007 +0100
@@ -0,0 +1,11 @@
+XEN_LINUX_SOURCE ?= tarball
+XEN_LINUX_MIRROR ?= http://xenbits.xensource.com/ext/paravirt_ops/
+LINUX_VER ?= 2.6-paravirt
+
+# This target currently only supports x86_32.
+XEN_TARGET_ARCH = x86_32
+IMAGE_TARGET ?= vmlinux bzImage
+
+EXTRAVERSION ?=
+
+include buildconfigs/mk.linux-2.6-xen
diff -r a717cb2fac90 -r 3fcd0b9fd083 buildconfigs/mk.linux-2.6-xen
--- a/buildconfigs/mk.linux-2.6-xen     Fri May 25 10:53:07 2007 +0100
+++ b/buildconfigs/mk.linux-2.6-xen     Fri May 25 11:03:40 2007 +0100
@@ -1,21 +1,28 @@ LINUX_SERIES = 2.6
 LINUX_SERIES = 2.6
-LINUX_VER    = 2.6.18
+LINUX_VER    ?= 2.6.18
 
-EXTRAVERSION ?= xen
+EXTRAVERSION ?= -xen
 
-LINUX_SRCDIR = linux-$(LINUX_VER)-xen
-LINUX_DIR    = build-linux-$(LINUX_VER)-$(EXTRAVERSION)_$(XEN_TARGET_ARCH)
+XEN_LINUX_SOURCE ?= sparse
+
+# Let XEN_TARGET_ARCH override ARCH.
+ifeq ($(XEN_TARGET_ARCH),x86_32)
+LINUX_ARCH     ?= i386
+else
+LINUX_ARCH     ?= $(XEN_TARGET_ARCH)
+endif
+
+LINUX_DIR     = build-linux-$(LINUX_VER)$(EXTRAVERSION)_$(XEN_TARGET_ARCH)
 
 IMAGE_TARGET ?= vmlinuz
-INSTALL_BOOT_PATH ?= $(DESTDIR)
-
-ifeq ($(XEN_TARGET_ARCH),ia64)
 INSTALL_BOOT_PATH := $(DESTDIR)/boot
-endif
 
 LINUX_VER3  := $(LINUX_SERIES).$(word 3, $(subst ., ,$(LINUX_VER)))
 
-include buildconfigs/Rules.mk
+.PHONY: _build
+_build: build
+
+include buildconfigs/src.$(XEN_LINUX_SOURCE)
 
 # The real action starts here!
 .PHONY: build
@@ -28,31 +35,63 @@ build: $(LINUX_DIR)/include/linux/autoco
        mkdir -p $(INSTALL_BOOT_PATH)
        $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) 
INSTALL_PATH=$(INSTALL_BOOT_PATH) install
 
-$(LINUX_SRCDIR)/.valid-src: ref-linux-$(LINUX_VER)/.valid-ref
-       rm -rf $(LINUX_SRCDIR)
-       cp -al $(<D) $(LINUX_SRCDIR)
-       # Apply arch-xen patches
-       ( cd linux-$(LINUX_SERIES)-xen-sparse && \
-          LINUX_ARCH=$(LINUX_ARCH) bash ./mkbuildtree ../$(LINUX_SRCDIR) )
-       # Patch kernel Makefile to set EXTRAVERSION
-       ( cd $(LINUX_SRCDIR) ; \
-         sed -e 's,^EXTRAVERSION.*,&$$(XENGUEST),' \
-             -e 's,^KERNELRELEASE,XENGUEST := $$(shell [ -r 
$$(objtree)/.xenguest ] \&\& cat $$(objtree)/.xenguest)\n&,' Makefile >Mk.tmp ; 
\
-         rm -f Makefile ; mv Mk.tmp Makefile )
-       touch $@
-
+$(LINUX_DIR)/include/linux/autoconf.h: CONFIG_FILE=$(PWD)/$(LINUX_DIR)/.config
 $(LINUX_DIR)/include/linux/autoconf.h: $(LINUX_SRCDIR)/.valid-src
        rm -rf $(LINUX_DIR)
        mkdir -p $(LINUX_DIR)
-       # Re-use config from install dir if one exits else use default config
+       # Re-use config from install dir if one exists. Next try to use
+       # buildconfigs/create_config.sh is one is provided by the source
+       # tree. Finally attempt to use make defconfig.
+       set -e ; \
        CONFIG_VERSION=$$(sed -ne 's/$$(XENGUEST)//; s/^EXTRAVERSION = //p' 
$(LINUX_SRCDIR)/Makefile); \
-       [ -r 
$(DESTDIR)/boot/config-$(LINUX_VER3)$$CONFIG_VERSION-$(EXTRAVERSION) ] && \
-         cp 
$(DESTDIR)/boot/config-$(LINUX_VER3)$$CONFIG_VERSION-$(EXTRAVERSION) 
$(LINUX_DIR)/.config \
-         || sh buildconfigs/create_config.sh $(LINUX_DIR)/.config 
$(EXTRAVERSION) $(XEN_TARGET_ARCH) $(XEN_SYSTYPE)
-       # See if we need to munge config to enable PAE
-       $(MAKE) CONFIG_FILE=$(LINUX_DIR)/.config -f buildconfigs/Rules.mk 
config-update-pae
-       echo "-$(EXTRAVERSION)" >$(LINUX_DIR)/.xenguest
+       if [ -r 
$(DESTDIR)/boot/config-$(LINUX_VER3)$$CONFIG_VERSION$(EXTRAVERSION) ] ; then \
+         cp 
$(DESTDIR)/boot/config-$(LINUX_VER3)$$CONFIG_VERSION$(EXTRAVERSION) 
$(CONFIG_FILE) ; \
+        elif [ -e $(LINUX_SRCDIR)/buildconfigs/create_config.sh ] ; then \
+         cd $(LINUX_SRCDIR) && sh buildconfigs/create_config.sh \
+               $(CONFIG_FILE) $(EXTRAVERSION) $(XEN_TARGET_ARCH) 
$(XEN_SYSTYPE) ; \
+          echo "Configured $(LINUX_DIR) using create_config.sh" ; \
+       elif $(MAKE) -C $(LINUX_SRCDIR) ARCH=$(LINUX_ARCH) defconfig 
O=$$(/bin/pwd)/$(LINUX_DIR) ; then \
+         echo "Configured $(LINUX_DIR) using defconfig" ; \
+       else \
+          echo "No configuration method found for this kernel" ; \
+       fi
+ifeq ($(XEN_TARGET_ARCH),x86_32)
+ifeq ($(pae),y)
+       sed -e 's!^CONFIG_HIGHMEM4G=y$$!\# CONFIG_HIGHMEM4G is not set!;s!^\# 
CONFIG_HIGHMEM64G is not set$$!CONFIG_HIGHMEM64G=y!' $(CONFIG_FILE) > 
$(CONFIG_FILE)- && mv $(CONFIG_FILE)- $(CONFIG_FILE)
+else
+       grep '^CONFIG_HIGHMEM64G=y' $(CONFIG_FILE) >/dev/null && ( sed -e 
's!^CONFIG_HIGHMEM64G=y$$!\# CONFIG_HIGHMEM64G is not set!;s!^\# 
CONFIG_HIGHMEM4G is not set$$!CONFIG_HIGHMEM4G=y!' $(CONFIG_FILE) > 
$(CONFIG_FILE)- && mv $(CONFIG_FILE)- $(CONFIG_FILE) ) || true
+endif
+endif
+ifneq ($(EXTRAVERSION),)
+       echo "$(EXTRAVERSION)" >$(LINUX_DIR)/localversion-xen
+endif
        $(MAKE) -C $(LINUX_SRCDIR) ARCH=$(LINUX_ARCH) oldconfig 
O=$$(/bin/pwd)/$(LINUX_DIR)
+       @if [ ! -f $(LINUX_DIR)/Makefile ] ; then \
+           echo "***********************************"; \
+           echo "oldconfig did not create a Makefile"; \
+           echo "Generating $(LINUX_DIR)/Makefile   "; \
+           echo "***********************************"; \
+           ( echo "# Automatically generated: don't edit"; \
+             echo ""; \
+             echo "VERSION = 2"; \
+             echo "PATCHLEVEL = 6"; \
+             echo ""; \
+             echo "KERNELSRC    := $(PWD)/$(LINUX_SRCDIR)"; \
+             echo "KERNELOUTPUT := $(PWD)/$(LINUX_DIR)"; \
+             echo ""; \
+             echo "MAKEFLAGS += --no-print-directory"; \
+             echo ""; \
+             echo ".PHONY: all \$$(MAKECMDGOALS)"; \
+             echo ""; \
+             echo "all:"; \
+             echo "    \$$(MAKE) -C \$$(KERNELSRC) O=\$$(KERNELOUTPUT)"; \
+             echo ""; \
+             echo "Makefile:;"; \
+             echo ""; \
+             echo "\$$(filter-out all Makefile,\$$(MAKECMDGOALS)) %/:"; \
+             echo "    \$$(MAKE) -C \$$(KERNELSRC) O=\$$(KERNELOUTPUT) \$$@"; \
+           ) > $(LINUX_DIR)/Makefile ; \
+       fi
 
 .PHONY: prep
 prep: $(LINUX_DIR)/include/linux/autoconf.h
@@ -67,12 +106,11 @@ clean::
        [ ! -d $(LINUX_DIR) ] || \
                $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) clean
 
-
 .PHONY: delete
 delete: 
        rm -rf tmp-linux-$(LINUX_VER) $(LINUX_DIR) 
 
-.PHONY: mrpropper
-mrpropper:
+.PHONY: mrproper
+mrproper:
        rm -rf $(LINUX_SRCDIR)
        rm -f linux-$(LINUX_VER).tar.bz2
diff -r a717cb2fac90 -r 3fcd0b9fd083 buildconfigs/mk.linux-2.6-xen0
--- a/buildconfigs/mk.linux-2.6-xen0    Fri May 25 10:53:07 2007 +0100
+++ b/buildconfigs/mk.linux-2.6-xen0    Fri May 25 11:03:40 2007 +0100
@@ -1,2 +1,2 @@ EXTRAVERSION = xen0
-EXTRAVERSION = xen0
+EXTRAVERSION = -xen0
 include buildconfigs/mk.linux-2.6-xen
diff -r a717cb2fac90 -r 3fcd0b9fd083 buildconfigs/mk.linux-2.6-xenU
--- a/buildconfigs/mk.linux-2.6-xenU    Fri May 25 10:53:07 2007 +0100
+++ b/buildconfigs/mk.linux-2.6-xenU    Fri May 25 11:03:40 2007 +0100
@@ -1,2 +1,2 @@ EXTRAVERSION = xenU
-EXTRAVERSION = xenU
+EXTRAVERSION = -xenU
 include buildconfigs/mk.linux-2.6-xen
diff -r a717cb2fac90 -r 3fcd0b9fd083 buildconfigs/mk.linux-2.6.5-SLES-xen
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/buildconfigs/mk.linux-2.6.5-SLES-xen      Fri May 25 11:03:40 2007 +0100
@@ -0,0 +1,12 @@
+# This tree only supports PAE
+XEN_TARGET_ARCH = x86_32
+XEN_TARGET_X86_PAE = y
+
+EXTRAVERSION = -xen
+LINUX_VER = 2.6.5-SLES
+
+XEN_LINUX_SOURCE = hg-clone
+XEN_LINUX_HGREPO ?= http://xenbits.xensource.com/kernels/sles9x.hg
+XEN_LINUX_HGREV  ?= tip
+
+include buildconfigs/mk.linux-2.6-xen
diff -r a717cb2fac90 -r 3fcd0b9fd083 buildconfigs/mk.linux-2.6.9-RHEL-xen
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/buildconfigs/mk.linux-2.6.9-RHEL-xen      Fri May 25 11:03:40 2007 +0100
@@ -0,0 +1,12 @@
+# This tree only supports PAE
+XEN_TARGET_ARCH = x86_32
+XEN_TARGET_X86_PAE = y
+
+EXTRAVERSION = -xen
+LINUX_VER = 2.6.9-RHEL
+
+XEN_LINUX_SOURCE = hg-clone
+XEN_LINUX_HGREPO ?= http://xenbits.xensource.com/kernels/rhel4x.hg
+XEN_LINUX_HGREV  ?= tip
+
+include buildconfigs/mk.linux-2.6-xen
diff -r a717cb2fac90 -r 3fcd0b9fd083 buildconfigs/src.hg-clone
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/buildconfigs/src.hg-clone Fri May 25 11:03:40 2007 +0100
@@ -0,0 +1,26 @@
+# Main repository to clone.
+XEN_LINUX_HGREPO ?= http://xenbits.xensource.com/linux-$(LINUX_VER)-xen.hg
+
+# Set this to pull additional changesets from a second source.
+
+# This can be useful if you use a local mirror for XEN_LINUX_HGREPO
+# (to reduce time spent cloning) but still want to pull the very
+# latest changesets from xenbits.
+XEN_LINUX_HGUPDATES ?=
+
+# Set this to update to a particlar revision.
+XEN_LINUX_HGREV  ?=
+
+LINUX_SRCDIR ?= linux-$(LINUX_VER)-xen.hg
+
+$(LINUX_SRCDIR)/.valid-src:
+       if [ ! -d $(LINUX_SRCDIR) ] ; then \
+           hg clone $(XEN_LINUX_HGREPO) $(LINUX_SRCDIR) ; \
+       fi
+       if [ -n "$(XEN_LINUX_HGUPDATES)" ] ; then \
+           hg pull -R $(LINUX_SRCDIR) $(XEN_LINUX_HGUPDATES) ; \
+       fi
+       if [ -n "$(XEN_LINUX_HGREV)" ] ; then \
+           hg update -R $(LINUX_SRCDIR) $(XEN_LINUX_HGREV) ; \
+       fi
+       touch $@
diff -r a717cb2fac90 -r 3fcd0b9fd083 buildconfigs/src.sparse
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/buildconfigs/src.sparse   Fri May 25 11:03:40 2007 +0100
@@ -0,0 +1,76 @@
+# Choose the best mirror to download linux kernel
+KERNEL_REPO = http://www.kernel.org
+
+LINUX_SRCDIR ?= linux-$(LINUX_VER)-xen
+
+# Setup pristine search path
+PRISTINE_SRC_PATH      ?= .:..
+vpath pristine-% $(PRISTINE_SRC_PATH)
+
+# Setup Linux search path
+LINUX_SRC_PATH ?= .:..
+vpath linux-%.tar.bz2 $(LINUX_SRC_PATH)
+vpath patch-%.bz2 $(LINUX_SRC_PATH)
+
+# 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 $@ in path $(LINUX_SRC_PATH)"
+       wget $(KERNEL_REPO)/pub/linux/kernel/v$(_LINUX_VDIR)/$@ -O./$@
+
+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:
+       @echo "Cannot find $(@F) in path $(LINUX_SRC_PATH)"
+       wget 
$(KERNEL_REPO)/pub/linux/kernel/v$(_LINUX_VDIR)/$(_LINUX_XDIR)/$(@F) -O./$@
+
+pristine-%: pristine-%/.valid-pristine
+       @true
+
+pristine-%/.valid-pristine: %.tar.bz2
+       rm -rf tmp-pristine-$* $(@D)
+       mkdir -p tmp-pristine-$*
+       tar -C tmp-pristine-$* -jxf $<
+       -@rm -f tmp-pristine-$*/pax_global_header
+       mv tmp-pristine-$*/* $(@D)
+       @rm -rf tmp-pristine-$*
+       touch $(@D)/.hgskip
+       touch $@ # update timestamp to avoid rebuild
+
+PATCHDIRS := $(wildcard patches/*-*)
+
+ifneq ($(PATCHDIRS),)
+-include $(patsubst %,%/.makedep,$(PATCHDIRS))
+
+$(patsubst patches/%,patches/%/.makedep,$(PATCHDIRS)): patches/%/.makedep: 
+       @echo 'ref-$*/.valid-ref: $$(wildcard patches/$*/*.patch)' >$@
+
+ref-%/.valid-ref: pristine-%/.valid-pristine
+       set -e
+       rm -rf $(@D)
+       cp -al $(<D) $(@D)
+       if [ -d patches/$* ] ; then                                    \
+           echo Applying patches from patches/$*... ;                 \
+           for i in $$(cat patches/$*/series) ; do                    \
+               echo ... $$i ;                                         \
+               patch -d $(@D) -p1 --quiet <patches/$*/$$i || exit 1 ; \
+            done ;                                                    \
+       fi
+       touch $@ # update timestamp to avoid rebuild
+endif
+
+$(LINUX_SRCDIR)/.valid-src: ref-linux-$(LINUX_VER)/.valid-ref
+       rm -rf $(LINUX_SRCDIR)
+       cp -al $(<D) $(LINUX_SRCDIR)
+       # Apply arch-xen patches
+       ( cd linux-$(LINUX_SERIES)-xen-sparse && \
+          LINUX_ARCH=$(LINUX_ARCH) bash ./mkbuildtree ../$(LINUX_SRCDIR) )
+       ( cd $(LINUX_SRCDIR) && [ -e buildconfigs ] || ln -s 
$(PWD)/buildconfigs buildconfigs )
+       touch $@
+
+linux-2.6-xen.patch: ref-linux-$(LINUX_VER)/.valid-ref
+       rm -rf tmp-$@
+       cp -al $(<D) tmp-$@
+       ( cd linux-2.6-xen-sparse && bash ./mkbuildtree ../tmp-$@ )
+       diff -Nurp $(patsubst ref%,pristine%,$(<D)) tmp-$@ > $@ || true
+       rm -rf tmp-$@
diff -r a717cb2fac90 -r 3fcd0b9fd083 buildconfigs/src.tarball
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/buildconfigs/src.tarball  Fri May 25 11:03:40 2007 +0100
@@ -0,0 +1,25 @@
+XEN_LINUX_MIRROR ?= http://www.kernel.org/pub/linux/kernel/v2.6/
+XEN_LINUX_TARBALL ?= linux-$(LINUX_VER)-xen.tar.bz2
+
+LINUX_SRCDIR ?= linux-$(LINUX_VER)
+
+# Setup Linux search path
+LINUX_SRC_PATH ?= .:..
+vpath linux-%.tar.bz2 $(LINUX_SRC_PATH)
+
+# download a pristine Linux kernel tarball if there isn't one in LINUX_SRC_PATH
+linux-%.tar.bz2:
+       @echo "Cannot find $@ in path $(LINUX_SRC_PATH)"
+       wget $(XEN_LINUX_MIRROR)/$@ -O./$@
+
+# XXX create a pristine tree for diff -Nurp convenience
+
+%/.valid-src: %.tar.bz2
+       rm -rf tmp-linux-$* $(@D)
+       mkdir -p tmp-linux-$*
+       tar -C tmp-linux-$* -jxf $<
+       -@rm -f tmp-linux-$*/pax_global_header
+       mv tmp-linux-$*/* $(@D)
+       @rm -rf tmp-linux-$*
+       touch $(@D)/.hgskip
+       touch $@ # update timestamp to avoid rebuild
diff -r a717cb2fac90 -r 3fcd0b9fd083 linux-2.6-xen-sparse/arch/i386/Makefile
--- a/linux-2.6-xen-sparse/arch/i386/Makefile   Fri May 25 10:53:07 2007 +0100
+++ b/linux-2.6-xen-sparse/arch/i386/Makefile   Fri May 25 11:03:40 2007 +0100
@@ -125,7 +125,7 @@ vmlinuz: vmlinux
        $(Q)$(MAKE) $(build)=$(boot) $@
 
 install:
-       $(Q)$(MAKE) $(build)=$(boot) XENGUEST=$(XENGUEST) $@
+       $(Q)$(MAKE) $(build)=$(boot) $@
 else
 all: bzImage
 
diff -r a717cb2fac90 -r 3fcd0b9fd083 
linux-2.6-xen-sparse/arch/i386/boot-xen/Makefile
--- a/linux-2.6-xen-sparse/arch/i386/boot-xen/Makefile  Fri May 25 10:53:07 
2007 +0100
+++ b/linux-2.6-xen-sparse/arch/i386/boot-xen/Makefile  Fri May 25 11:03:40 
2007 +0100
@@ -12,10 +12,8 @@ XINSTALL_NAME ?= $(KERNELRELEASE)
 XINSTALL_NAME ?= $(KERNELRELEASE)
 install:
        mkdir -p $(INSTALL_ROOT)/boot
-       ln -f -s vmlinuz-$(XINSTALL_NAME)$(INSTALL_SUFFIX) 
$(INSTALL_ROOT)/boot/vmlinuz-$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(XENGUEST)$(INSTALL_SUFFIX)
-       rm -f $(INSTALL_ROOT)/boot/vmlinuz-$(XINSTALL_NAME)$(INSTALL_SUFFIX)
        install -m0644 vmlinuz 
$(INSTALL_ROOT)/boot/vmlinuz-$(XINSTALL_NAME)$(INSTALL_SUFFIX)
        install -m0644 vmlinux 
$(INSTALL_ROOT)/boot/vmlinux-syms-$(XINSTALL_NAME)$(INSTALL_SUFFIX)
        install -m0664 .config 
$(INSTALL_ROOT)/boot/config-$(XINSTALL_NAME)$(INSTALL_SUFFIX)
        install -m0664 System.map 
$(INSTALL_ROOT)/boot/System.map-$(XINSTALL_NAME)$(INSTALL_SUFFIX)
-       ln -f -s vmlinuz-$(XINSTALL_NAME)$(INSTALL_SUFFIX) 
$(INSTALL_ROOT)/boot/vmlinuz-$(VERSION).$(PATCHLEVEL)$(XENGUEST)$(INSTALL_SUFFIX)
+       ln -f -s vmlinuz-$(XINSTALL_NAME)$(INSTALL_SUFFIX) 
$(INSTALL_ROOT)/boot/vmlinuz-$(VERSION).$(PATCHLEVEL)$(shell [ -e 
$(objtree)/localversion-xen ] && cat 
$(objtree)/localversion-xen)$(INSTALL_SUFFIX)
diff -r a717cb2fac90 -r 3fcd0b9fd083 linux-2.6-xen-sparse/arch/x86_64/Makefile
--- a/linux-2.6-xen-sparse/arch/x86_64/Makefile Fri May 25 10:53:07 2007 +0100
+++ b/linux-2.6-xen-sparse/arch/x86_64/Makefile Fri May 25 11:03:40 2007 +0100
@@ -91,7 +91,7 @@ vmlinuz: vmlinux
        $(Q)$(MAKE) $(build)=$(boot) $@
 
 install:
-       $(Q)$(MAKE) $(build)=$(boot) XENGUEST=$(XENGUEST) $@
+       $(Q)$(MAKE) $(build)=$(boot) $@
 else
 #Default target when executing "make"
 all: bzImage

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] Factor out sparse tree makefile fragments and introduce hg-clone and, Xen patchbot-unstable <=