mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
build: remove Linux kernel build integration.
We haven't shipped a XenoLinux kernel for more releases than I can remember. We held onto these because osstest was using them but this is no longer the case. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
This commit is contained in:
1 parent
0a49101d0e
commit
40305629dc
26 files changed
+11
-1462
No files matched your search
@@ -7,7 +7,7 @@
|
||||
all: dist
|
||||
|
||||
-include config/Toplevel.mk
|
||||
SUBSYSTEMS?=xen kernels tools stubdom docs
|
||||
SUBSYSTEMS?=xen tools stubdom docs
|
||||
TARGS_DIST=$(patsubst %, dist-%, $(SUBSYSTEMS))
|
||||
TARGS_INSTALL=$(patsubst %, install-%, $(SUBSYSTEMS))
|
||||
|
||||
@@ -15,15 +15,15 @@ export XEN_ROOT=$(CURDIR)
|
||||
include Config.mk
|
||||
|
||||
SUBARCH := $(subst x86_32,i386,$(XEN_TARGET_ARCH))
|
||||
export XEN_TARGET_ARCH SUBARCH XEN_SYSTYPE
|
||||
include buildconfigs/Rules.mk
|
||||
export XEN_TARGET_ARCH SUBARCH
|
||||
export DESTDIR
|
||||
|
||||
# build and install everything into the standard system directories
|
||||
.PHONY: install
|
||||
install: $(TARGS_INSTALL)
|
||||
|
||||
.PHONY: build
|
||||
build: kernels
|
||||
build:
|
||||
$(MAKE) -C xen build
|
||||
$(MAKE) -C tools build
|
||||
$(MAKE) -C stubdom build
|
||||
@@ -54,17 +54,12 @@ dist-%: install-%
|
||||
@: # do nothing
|
||||
|
||||
# Legacy dist targets
|
||||
.PHONY: xen tools stubdom kernels docs
|
||||
.PHONY: xen tools stubdom docs
|
||||
xen: dist-xen
|
||||
tools: dist-tools
|
||||
kernels: dist-kernels
|
||||
stubdom: dist-stubdom
|
||||
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
|
||||
@@ -95,10 +90,6 @@ endif
|
||||
install-tools: $(QEMU_TRAD_DIR_TARGET) $(QEMU_XEN_DIR_TARGET)
|
||||
$(MAKE) -C tools install
|
||||
|
||||
.PHONY: install-kernels
|
||||
install-kernels:
|
||||
for i in $(XKERNELS) ; do $(MAKE) $$i-install || exit 1; done
|
||||
|
||||
.PHONY: install-stubdom
|
||||
install-stubdom: $(QEMU_TRAD_DIR_TARGET) install-tools
|
||||
$(MAKE) -C stubdom install
|
||||
@@ -122,27 +113,12 @@ install-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
|
||||
|
||||
# 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
|
||||
# build xen and the tools 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
|
||||
|
||||
# Package a build in a debball file, that is inside a .deb format
|
||||
@@ -159,7 +135,6 @@ debball: dist
|
||||
rpmball: dist
|
||||
bash ./tools/misc/mkrpm $(XEN_ROOT) $$($(MAKE) -C xen xenversion --no-print-directory)
|
||||
|
||||
# clean doesn't do a kclean
|
||||
.PHONY: clean
|
||||
clean::
|
||||
$(MAKE) -C xen clean
|
||||
@@ -170,7 +145,7 @@ ifeq (x86_64,$(XEN_TARGET_ARCH))
|
||||
endif
|
||||
$(MAKE) -C docs clean
|
||||
|
||||
# clean, but blow away kernel build tree plus tarballs
|
||||
# clean, but blow away tarballs
|
||||
.PHONY: distclean
|
||||
distclean:
|
||||
rm -f config/Toplevel.mk
|
||||
@@ -181,9 +156,7 @@ ifeq (x86_64,$(XEN_TARGET_ARCH))
|
||||
XEN_TARGET_ARCH=x86_32 $(MAKE) -C stubdom distclean
|
||||
endif
|
||||
$(MAKE) -C docs distclean
|
||||
rm -rf dist patches/tmp
|
||||
for i in $(ALLKERNELS) ; do $(MAKE) $$i-delete ; done
|
||||
rm -rf patches/*/.makedep
|
||||
rm -rf dist
|
||||
rm -rf config.log config.status config.cache autom4te.cache
|
||||
|
||||
# Linux name for GNU distclean
|
||||
@@ -203,19 +176,15 @@ help:
|
||||
@echo ' install - build and install everything'
|
||||
@echo ' install-xen - build and install the Xen hypervisor'
|
||||
@echo ' install-tools - build and install the control tools'
|
||||
@echo ' install-kernels - build and install guest kernels'
|
||||
@echo ' install-stubdom - build and install the stubdomain images'
|
||||
@echo ' install-docs - build and install user documentation'
|
||||
@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 then make dist'
|
||||
@echo ' xen - build and install Xen hypervisor'
|
||||
@echo ' tools - build and install tools'
|
||||
@echo ' stubdom - build and install the stubdomain images'
|
||||
@echo ' kernels - build and install guest kernels'
|
||||
@echo ' kbuild - synonym for make kernels'
|
||||
@echo ' docs - build and install user documentation'
|
||||
@echo ' dev-docs - build developer-only documentation'
|
||||
@echo ''
|
||||
@@ -223,11 +192,8 @@ help:
|
||||
@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 'Miscellaneous targets:'
|
||||
@echo ' prep-kernels - prepares kernel directories, does not build'
|
||||
@echo ' uninstall - attempt to remove installed Xen tools'
|
||||
@echo ' (use with extreme care!)'
|
||||
@echo
|
||||
@@ -255,11 +221,6 @@ uninstall:
|
||||
make -C tools uninstall
|
||||
rm -rf $(D)/boot/tboot*
|
||||
|
||||
# Legacy targets for compatibility
|
||||
.PHONY: linux26
|
||||
linux26:
|
||||
$(MAKE) 'KERNELS=linux-2.6*' kernels
|
||||
|
||||
.PHONY: xenversion
|
||||
xenversion:
|
||||
@$(MAKE) --no-print-directory -C xen xenversion
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
|
||||
include Config.mk
|
||||
|
||||
export DESTDIR
|
||||
|
||||
ALLKERNELS = $(patsubst buildconfigs/mk.%,%,$(wildcard buildconfigs/mk.*))
|
||||
|
||||
%-install:
|
||||
$(MAKE) -f buildconfigs/mk.$* build
|
||||
|
||||
%-dist: DESTDIR=$(DISTDIR)/install
|
||||
%-dist: %-install
|
||||
@: # do nothing
|
||||
|
||||
# Legacy dist target
|
||||
%-build: %-dist
|
||||
@: # do nothing
|
||||
|
||||
%-prep: DESTDIR=$(DISTDIR)/install
|
||||
%-prep:
|
||||
$(MAKE) -f buildconfigs/mk.$* prep
|
||||
|
||||
%-config: DESTDIR=$(DISTDIR)/install
|
||||
%-config:
|
||||
$(MAKE) -f buildconfigs/mk.$* config
|
||||
|
||||
%-delete:
|
||||
$(MAKE) -f buildconfigs/mk.$* delete
|
||||
|
||||
%-clean:
|
||||
$(MAKE) -f buildconfigs/mk.$* clean
|
||||
|
||||
%.patch:
|
||||
$(MAKE) -f buildconfigs/mk.$* $@
|
||||
|
||||
%-mrproper:
|
||||
$(MAKE) -f buildconfigs/mk.$*-xen mrproper
|
||||
rm -rf pristine-$(*)* ref-$(*)*
|
||||
rm -rf $*-xen.patch
|
||||
|
||||
# never delete any intermediate files.
|
||||
.SECONDARY:
|
||||
@@ -1,127 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
if [ $# -ne 1 ] ; then
|
||||
echo "Usage $(basename $0) <config-file>" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
CONFIG=$1
|
||||
|
||||
setopt()
|
||||
{
|
||||
OPTION=$1
|
||||
VALUE=$2
|
||||
|
||||
# First remove any existing instances of this option
|
||||
sed -e "s/^# ${OPTION} is not set$//g ; s/^${OPTION}=.*$//g" -i "${CONFIG}"
|
||||
|
||||
# Then append the new value
|
||||
case ${VALUE} in
|
||||
n) echo "# ${OPTION} is not set" >> "${CONFIG}" ;;
|
||||
y|m|*) echo "${OPTION}=${VALUE}" >> "${CONFIG}" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
setopt CONFIG_PARAVIRT y
|
||||
setopt CONFIG_PARAVIRT_DEBUG y
|
||||
setopt CONFIG_PARAVIRT_GUEST y
|
||||
setopt CONFIG_PARAVIRT_SPINLOCKS y
|
||||
|
||||
setopt CONFIG_XEN y
|
||||
setopt CONFIG_XEN_BLKDEV_FRONTEND y
|
||||
setopt CONFIG_XEN_NETDEV_FRONTEND y
|
||||
setopt CONFIG_XEN_KBDDEV_FRONTEND y
|
||||
setopt CONFIG_XEN_FBDEV_FRONTEND y
|
||||
setopt CONFIG_XEN_PCIDEV_FRONTEND y
|
||||
setopt CONFIG_XEN_BALLOON y
|
||||
setopt CONFIG_XEN_SCRUB_PAGES y
|
||||
setopt CONFIG_XEN_DEV_EVTCHN y
|
||||
setopt CONFIG_XEN_BACKEND y
|
||||
setopt CONFIG_XEN_BLKDEV_BACKEND y
|
||||
setopt CONFIG_XEN_BLKDEV_TAP y
|
||||
setopt CONFIG_XEN_NETDEV_BACKEND y
|
||||
setopt CONFIG_XEN_PCIDEV_BACKEND y
|
||||
setopt CONFIG_XEN_PCIDEV_BACKEND_VPCI y
|
||||
setopt CONFIG_XEN_PCIDEV_BACKEND_PASS n
|
||||
setopt CONFIG_XEN_PCIDEV_BACKEND_SLOT n
|
||||
setopt CONFIG_XEN_PCIDEV_BE_DEBUG n
|
||||
setopt CONFIG_XENFS y
|
||||
setopt CONFIG_XEN_COMPAT_XENFS y
|
||||
setopt CONFIG_XEN_PCI_PASSTHROUGH y
|
||||
setopt CONFIG_HVC_XEN y
|
||||
setopt CONFIG_XEN_MAX_DOMAIN_MEMORY 32
|
||||
setopt CONFIG_XEN_DEBUG_FS y
|
||||
setopt CONFIG_XEN_DOM0 y
|
||||
setopt CONFIG_XEN_SYS_HYPERVISOR y
|
||||
setopt CONFIG_XEN_GNTDEV y
|
||||
setopt CONFIG_XEN_PLATFORM_PCI y
|
||||
|
||||
setopt CONFIG_VMI y
|
||||
setopt CONFIG_TUN y
|
||||
|
||||
setopt CONFIG_KVM y
|
||||
setopt CONFIG_KVM_INTEL y
|
||||
setopt CONFIG_KVM_AMD y
|
||||
setopt CONFIG_KVM_CLOCK y
|
||||
setopt CONFIG_KVM_GUEST n
|
||||
setopt CONFIG_KVM_TRACE n
|
||||
|
||||
setopt CONFIG_LGUEST n
|
||||
|
||||
setopt CONFIG_LOCALVERSION_AUTO n
|
||||
|
||||
setopt CONFIG_BRIDGE y
|
||||
|
||||
setopt CONFIG_DEBUG_STACK_USAGE n
|
||||
|
||||
setopt CONFIG_MEMORY_HOTPLUG y
|
||||
setopt CONFIG_MEMORY_HOTREMOVE y
|
||||
|
||||
setopt CONFIG_MIGRATION n
|
||||
|
||||
setopt CONFIG_ACPI_HOTPLUG_MEMORY n
|
||||
|
||||
# Should all be set one way or another in defconfig but aren't
|
||||
setopt CONFIG_NUMA n
|
||||
setopt CONFIG_X86_VSMP n
|
||||
setopt CONFIG_X86_UV n
|
||||
setopt CONFIG_CALGARY_IOMMU n
|
||||
setopt CONFIG_AMD_IOMMU n
|
||||
setopt CONFIG_MAXSMP n
|
||||
setopt CONFIG_SPARSEMEM_VMEMMAP n
|
||||
setopt CONFIG_I7300_IDLE n
|
||||
setopt CONFIG_DMAR n
|
||||
setopt CONFIG_INTR_REMAP n
|
||||
setopt CONFIG_GFS2_FS n
|
||||
setopt CONFIG_IOMMU_DEBUG n
|
||||
setopt CONFIG_X86_MCE_INTEL n
|
||||
setopt CONFIG_X86_MCE_AMD n
|
||||
setopt CONFIG_CRYPTO_AES_NI_INTEL n
|
||||
setopt CONFIG_CISS_SCSI_TAPE n
|
||||
|
||||
setopt CONFIG_FUSION y
|
||||
setopt CONFIG_FUSION_SPI m
|
||||
setopt CONFIG_FUSION_SAS m
|
||||
setopt CONFIG_FUSION_FC m
|
||||
setopt CONFIG_FUSION_MAX_SGE 128
|
||||
setopt CONFIG_FUSION_CTL n
|
||||
setopt CONFIG_FUSION_LOGGING n
|
||||
|
||||
setopt CONFIG_BLK_CPQ_CISS_DA m
|
||||
|
||||
case ${XEN_TARGET_ARCH} in
|
||||
x86_32) setopt CONFIG_64BIT n ;;
|
||||
x86_64)
|
||||
setopt CONFIG_64BIT y
|
||||
setopt CONFIG_IA32_EMULATION y
|
||||
setopt CONFIG_IA32_AOUT n
|
||||
setopt CONFIG_CRYPTO_AES_X86_64 n
|
||||
setopt CONFIG_CRYPTO_SALSA20_X86_64 n
|
||||
setopt CONFIG_CRYPTO_TWOFISH_X86_64 n
|
||||
;;
|
||||
*) ;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
@@ -1,7 +0,0 @@
|
||||
*.size
|
||||
*.pyc
|
||||
checker
|
||||
checker.c
|
||||
ia64.h
|
||||
x86_32.h
|
||||
x86_64.h
|
||||
@@ -1,742 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
#
|
||||
# ketchup 0.9.8
|
||||
# http://selenic.com/ketchup/wiki
|
||||
#
|
||||
# Copyright 2004 Matt Mackall <mpm@selenic.com>
|
||||
#
|
||||
# This software may be used and distributed according to the terms
|
||||
# of the GNU General Public License, incorporated herein by reference.
|
||||
#
|
||||
# Usage:
|
||||
#
|
||||
# in an existing kernel directory, run:
|
||||
#
|
||||
# ketchup <version>
|
||||
#
|
||||
# where version is a complete kernel version, or a branch name to grab
|
||||
# the latest version
|
||||
#
|
||||
# You can override some variables by creating a ~/.ketchuprc file.
|
||||
# The ~/.ketchuprc is just a Python script, eg. it might look like this:
|
||||
#
|
||||
# kernel_url = 'http://kernel.localdomain/pub/linux/kernel'
|
||||
# archive = os.environ["HOME"] + '/tmp/ketchup-archive'
|
||||
# gpg = '/weird/path/to/gpg'
|
||||
#
|
||||
|
||||
import re, sys, urllib, os, getopt, glob, shutil
|
||||
|
||||
def error(*args):
|
||||
sys.stderr.write("ketchup: ")
|
||||
for a in args:
|
||||
sys.stderr.write(str(a))
|
||||
sys.stderr.write("\n")
|
||||
|
||||
def qprint(*args):
|
||||
if not options["quiet"]:
|
||||
sys.stdout.write(" ".join(map(str, args)))
|
||||
sys.stdout.write("\n")
|
||||
|
||||
def lprint(*args):
|
||||
sys.stdout.write(" ".join(map(str, args)))
|
||||
sys.stdout.write("\n")
|
||||
|
||||
|
||||
def fancyopts(args, options, state, syntax=''):
|
||||
long = []
|
||||
short = ''
|
||||
map = {}
|
||||
dt = {}
|
||||
|
||||
def help(state, opt, arg, options = options, syntax = syntax):
|
||||
lprint("Usage: ", syntax)
|
||||
|
||||
for s, l, d, c in options:
|
||||
opt = ' '
|
||||
if s: opt = opt + '-' + s + ' '
|
||||
if l: opt = opt + '--' + l + ' '
|
||||
if d: opt = opt + '(' + str(d) + ')'
|
||||
lprint(opt)
|
||||
if c: lprint(' %s' % c)
|
||||
sys.exit(0)
|
||||
|
||||
options = [('h', 'help', help, 'Show usage info')] + options
|
||||
|
||||
for s, l, d, c in options:
|
||||
map['-'+s] = map['--'+l]=l
|
||||
state[l] = d
|
||||
dt[l] = type(d)
|
||||
if not d is None and not type(d) is type(help): s, l = s + ':', l + '='
|
||||
if s: short = short + s
|
||||
if l: long.append(l)
|
||||
|
||||
if os.environ.has_key("KETCHUP_OPTS"):
|
||||
args = os.environ["KETCHUP_OPTS"].split() + args
|
||||
|
||||
try:
|
||||
opts, args = getopt.getopt(args, short, long)
|
||||
except getopt.GetoptError:
|
||||
help(state, None, args)
|
||||
sys.exit(-1)
|
||||
|
||||
for opt, arg in opts:
|
||||
if dt[map[opt]] is type(help): state[map[opt]](state,map[opt],arg)
|
||||
elif dt[map[opt]] is type(1): state[map[opt]] = int(arg)
|
||||
elif dt[map[opt]] is type(''): state[map[opt]] = arg
|
||||
elif dt[map[opt]] is type([]): state[map[opt]].append(arg)
|
||||
elif dt[map[opt]] is type(None): state[map[opt]] = 1
|
||||
|
||||
return args
|
||||
|
||||
# Default values
|
||||
kernel_url = 'http://www.kernel.org/pub/linux/kernel'
|
||||
archive = os.environ["HOME"] + "/.ketchup"
|
||||
rename_prefix = 'linux-'
|
||||
rename_with_localversion = False
|
||||
wget = "/usr/bin/wget"
|
||||
gpg = "/usr/bin/gpg"
|
||||
precommand = postcommand = None
|
||||
default_tree = None
|
||||
local_trees = {}
|
||||
|
||||
# Functions to parse version strings
|
||||
|
||||
def tree(ver):
|
||||
return float(re.match(r'(\d+\.\d+)', ver).group(1))
|
||||
|
||||
def rev(ver):
|
||||
p = pre(ver)
|
||||
r = int(re.match(r'\d+\.\d+\.(\d+)', ver).group(1))
|
||||
if p: r = r - 1
|
||||
return r
|
||||
|
||||
def pre(ver):
|
||||
try: return re.match(r'\d+\.\d+\.\d+(\.\d+)?-((rc|pre)\d+)', ver).group(2)
|
||||
except: return None
|
||||
|
||||
def post(ver):
|
||||
try: return re.match(r'\d+\.\d+\.\d+\.(\d+)', ver).group(1)
|
||||
except: return None
|
||||
|
||||
def pretype(ver):
|
||||
try: return re.match(r'\d+\.\d+\.\d+(\.\d+)?-((rc|pre)\d+)', ver).group(3)
|
||||
except: return None
|
||||
|
||||
def prenum(ver):
|
||||
try: return int(re.match(r'\d+\.\d+\.\d+-((rc|pre)(\d+))', ver).group(3))
|
||||
except: return None
|
||||
|
||||
def prebase(ver):
|
||||
return re.match(r'(\d+\.\d+\.\d+((-(rc|pre)|\.)\d+)?)', ver).group(1)
|
||||
|
||||
def revbase(ver):
|
||||
return "%s.%s" % (tree(ver), rev(ver))
|
||||
|
||||
def base(ver):
|
||||
v = revbase(ver)
|
||||
if post(ver): v += "." + post(ver)
|
||||
return v
|
||||
|
||||
def forkname(ver):
|
||||
try: return re.match(r'\d+.\d+.\d+(\.\d+)?(-(rc|pre)\d+)?(-(\w+?)\d+)?',
|
||||
ver).group(5)
|
||||
except: return None
|
||||
|
||||
def forknum(ver):
|
||||
try: return int(
|
||||
re.match(r'\d+.\d+.\d+(\.\d+)?(-(rc|pre)\d+)?(-(\w+?)(\d+))?',
|
||||
ver).group(6))
|
||||
except: return None
|
||||
|
||||
def fork(ver):
|
||||
try: return re.match(r'\d+.\d+.\d+(\.\d+)?(-(rc|pre)\d+)?(-(\w+))?', ver).group(4)
|
||||
except: return None
|
||||
|
||||
def get_ver(makefile):
|
||||
""" Read the version information from the specified makefile """
|
||||
part = {}
|
||||
parts = "VERSION PATCHLEVEL SUBLEVEL EXTRAVERSION".split(' ')
|
||||
m = open(makefile)
|
||||
for l in m.readlines():
|
||||
for p in parts:
|
||||
try: part[p] = re.match(r'%s\s*=\s*(\S+)' % p, l).group(1)
|
||||
except: pass
|
||||
|
||||
version = "%s.%s.%s" % tuple([part[p] for p in parts[:3]])
|
||||
version += part.get("EXTRAVERSION","")
|
||||
return version
|
||||
|
||||
def get_localversion():
|
||||
v = ''
|
||||
|
||||
for name in glob.glob('localversion*'):
|
||||
try: v += open(name).readline().strip()
|
||||
except: pass
|
||||
|
||||
try:
|
||||
c = open('.config').read()
|
||||
v += re.search(r'^CONFIG_LOCALVERSION="(.+)"', c, re.M).group(1)
|
||||
except: pass
|
||||
|
||||
return v
|
||||
|
||||
def compare_ver(a, b):
|
||||
"""
|
||||
Compare kernel versions a and b
|
||||
|
||||
Note that -pre and -rc versions sort before the version they modify,
|
||||
-pre sorts before -rc, -bk, -git, and -mm, etc. sort alphabetically.
|
||||
"""
|
||||
if a == b: return 0
|
||||
|
||||
c = cmp(float(tree(a)), float(tree(b)))
|
||||
if c: return c
|
||||
c = cmp(rev(a), rev(b))
|
||||
if c: return c
|
||||
c = cmp(int(post(a) or 0), int(post(b) or 0))
|
||||
if c: return c
|
||||
c = cmp(pretype(a), pretype(b)) # pre sorts before rc
|
||||
if c: return c
|
||||
c = cmp(prenum(a), prenum(b))
|
||||
if c: return c
|
||||
c = cmp(forkname(a), forkname(b))
|
||||
if c: return c
|
||||
return cmp(forknum(a), forknum(b))
|
||||
|
||||
def last(url, pat="(.*/)"):
|
||||
for l in urllib.urlopen(url).readlines():
|
||||
m = re.search('(?i)<a href="%s">' % pat, l)
|
||||
if m: n = m.group(1)
|
||||
return n
|
||||
|
||||
def latest_mm(url, pat):
|
||||
url = kernel_url + '/people/akpm/patches/2.6/'
|
||||
url += last(url)
|
||||
part = last(url)
|
||||
return part[:-1]
|
||||
|
||||
def latest_ck(url, pat):
|
||||
url = "http://ck.kolivas.org/patches/2.6/pre-releases/"
|
||||
url += last(url)
|
||||
part = last(url)
|
||||
pre = part[:-1]
|
||||
|
||||
url = "http://ck.kolivas.org/patches/2.6/"
|
||||
url += last(url,"(2.6.*/)")
|
||||
part = last(url)
|
||||
rel = part[:-1]
|
||||
|
||||
l = [pre, rel]
|
||||
l.sort(compare_ver)
|
||||
return l[-1]
|
||||
|
||||
def latest_dir(url, pat):
|
||||
"""Find the latest link matching pat at url after sorting"""
|
||||
p = []
|
||||
for l in urllib.urlopen(url).readlines():
|
||||
m = re.search('"%s"' % pat, l)
|
||||
if m: p.append(m.group(1))
|
||||
|
||||
if not p: return None
|
||||
|
||||
p.sort(compare_ver)
|
||||
return p[-1]
|
||||
|
||||
# mbligh is lazy and has a bunch of empty directories
|
||||
def latest_mjb(url, pat):
|
||||
url = kernel_url + '/people/mbligh/'
|
||||
|
||||
# find the last Linus release and search backwards
|
||||
l = [find_ver('2.6'), find_ver("2.6-pre")]
|
||||
l.sort(compare_ver)
|
||||
linus = l[-1]
|
||||
|
||||
p = []
|
||||
for l in urllib.urlopen(url).readlines():
|
||||
m = re.search('"(2\.6\..*/)"', l)
|
||||
if m:
|
||||
v = m.group(1)
|
||||
if compare_ver(v, linus) <= 0:
|
||||
p.append(v)
|
||||
|
||||
p.sort(compare_ver)
|
||||
p.reverse()
|
||||
|
||||
for ver in p:
|
||||
mjb = latest_dir(url + ver, pat)
|
||||
if mjb: return mjb
|
||||
|
||||
return None
|
||||
|
||||
def latest_26_tip(url, pat):
|
||||
l = [find_ver('2.6'), find_ver('2.6-git'), find_ver('2.6-pre')]
|
||||
l.sort(compare_ver)
|
||||
return l[-1]
|
||||
|
||||
def find_info(ver):
|
||||
b = "%.1f" % tree(ver)
|
||||
f = forkname(ver)
|
||||
p = pre(ver)
|
||||
|
||||
s = b
|
||||
if f:
|
||||
s = "%s-%s" % (b, f)
|
||||
elif p:
|
||||
s = "%s-pre" % b
|
||||
|
||||
return version_info[s]
|
||||
|
||||
def version_urls(ver):
|
||||
""" Return the URL for the patch associated with the specified version """
|
||||
i = find_info(ver)[1]
|
||||
if type(i) != type([]):
|
||||
i = [i]
|
||||
|
||||
v = {
|
||||
'full': ver,
|
||||
'tree': tree(ver),
|
||||
'base': base(ver),
|
||||
'prebase': prebase(ver)
|
||||
}
|
||||
|
||||
l = []
|
||||
for e in i:
|
||||
l.append(e % v)
|
||||
|
||||
return l
|
||||
|
||||
def patch_path(ver):
|
||||
return os.path.join(archive, os.path.basename(version_urls(ver)[0]))
|
||||
|
||||
def download(url, f):
|
||||
qprint("Downloading %s" % os.path.basename(url))
|
||||
if options["dry-run"]:
|
||||
return 1
|
||||
|
||||
if not options["wget"]:
|
||||
p = urllib.urlopen(url).read()
|
||||
if p.find("<title>404") != -1:
|
||||
return None
|
||||
open(f, 'w').write(p)
|
||||
else:
|
||||
e = os.system("%s -c -O %s %s" %
|
||||
(options["wget"], f + ".partial", url))
|
||||
if e:
|
||||
return None
|
||||
os.rename(f + ".partial", f)
|
||||
|
||||
return 1
|
||||
|
||||
def verify(url, f, sign):
|
||||
if options["no-gpg"] or options["dry-run"] or not options["gpg-path"]:
|
||||
return 1
|
||||
|
||||
sf = f + sign
|
||||
if not download(url + sign, sf):
|
||||
error("signature download failed")
|
||||
error("removing files...")
|
||||
os.unlink(f)
|
||||
return 0
|
||||
|
||||
qprint("Verifying signature...")
|
||||
r = os.system("%s --verify %s %s" % (options["gpg-path"], sf, f))
|
||||
if r:
|
||||
error("gpg returned %d" % r)
|
||||
error("removing files...")
|
||||
os.unlink(f)
|
||||
os.unlink(sf)
|
||||
return 0
|
||||
|
||||
return 1
|
||||
|
||||
def trydownload(urls, f, sign):
|
||||
for url in urls:
|
||||
if download(url, f):
|
||||
if not sign or verify(url, f, sign):
|
||||
return f
|
||||
if url[-4:] == ".bz2":
|
||||
f2 = f[:-4] + ".gz"
|
||||
url2 = url[:-4] + ".gz"
|
||||
if download(url2, f2):
|
||||
if not sign or verify(url2, f2, sign):
|
||||
return f2
|
||||
return None
|
||||
|
||||
def get_patch(ver):
|
||||
"""Return the path to patch for given ver, downloading if necessary"""
|
||||
f = patch_path(ver)
|
||||
if os.path.exists(f):
|
||||
return f
|
||||
if f[-4:] == ".bz2":
|
||||
f2 = f[:-4] + ".gz"
|
||||
if os.path.exists(f2):
|
||||
return f2
|
||||
|
||||
urls = version_urls(ver)
|
||||
sign = find_info(ver)[3]
|
||||
if sign == 1: sign = ".sign"
|
||||
f = trydownload(urls, f, sign)
|
||||
if not f:
|
||||
error("patch download failed")
|
||||
sys.exit(-1)
|
||||
|
||||
return f
|
||||
|
||||
def apply_patch(ver, reverse = 0):
|
||||
"""Find the patch to upgrade from the predecessor of ver to ver and
|
||||
apply or reverse it."""
|
||||
p = get_patch(ver)
|
||||
r = ""
|
||||
if reverse:
|
||||
r = " -R"
|
||||
|
||||
qprint("Applying %s%s" % (os.path.basename(p), r))
|
||||
if options["dry-run"]:
|
||||
return ver
|
||||
|
||||
def cmd(patch, reverse, dry):
|
||||
base = "patch -l -p1%s" % reverse
|
||||
if dry:
|
||||
base += " --dry-run"
|
||||
|
||||
if p[-4:] == ".bz2":
|
||||
pipe = "bzcat %s | %s" % (patch, base)
|
||||
elif p[-3:] == ".gz":
|
||||
pipe = "zcat %s | %s" % (patch, base)
|
||||
else:
|
||||
pipe = "%s < %s" % (base, patch)
|
||||
|
||||
err = os.system(pipe + " > .patchdiag")
|
||||
if err:
|
||||
sys.stderr.write(open(".patchdiag").read())
|
||||
os.unlink(".patchdiag")
|
||||
return err
|
||||
|
||||
err = cmd(p, r, 1)
|
||||
if err:
|
||||
error("patch %s failed: %d" % (p, err))
|
||||
sys.exit(-1)
|
||||
|
||||
err = cmd(p, r, 0)
|
||||
if err:
|
||||
error("patch %s failed while it was supposed to apply: %d" % (p, err))
|
||||
sys.exit(-1)
|
||||
|
||||
def untar(tarfile):
|
||||
old = os.getcwd()
|
||||
os.mkdir("ketchup-tmp")
|
||||
os.chdir("ketchup-tmp")
|
||||
|
||||
err = os.system("bzcat %s | tar -xf -" % tarfile)
|
||||
if err:
|
||||
error("Unpacking failed: ", err)
|
||||
sys.exit(-1)
|
||||
|
||||
err = os.system("mv linux*/* linux*/.[^.]* ..; rmdir linux*")
|
||||
if err:
|
||||
error("Unpacking failed: ", err)
|
||||
sys.exit(-1)
|
||||
|
||||
os.chdir(old)
|
||||
shutil.rmtree("ketchup-tmp")
|
||||
|
||||
def install_nearest(ver):
|
||||
t = tree(ver)
|
||||
tarballs = glob.glob(archive + "/linux-%s.*.tar.bz2" % t)
|
||||
list = []
|
||||
|
||||
for f in tarballs:
|
||||
m = re.match(r'.*/linux-(.*).tar.bz2$', f)
|
||||
v = m.group(1)
|
||||
d = abs(rev(v) - rev(ver))
|
||||
list.append((d, f, v))
|
||||
list.sort()
|
||||
|
||||
if not list or (options["full-tarball"] and list[0][0]):
|
||||
f = "linux-%s.tar.bz2" % ver
|
||||
url = "%s/v%s/%s" % (kernel_url, t, f)
|
||||
f = archive + "/" + f
|
||||
|
||||
sign = find_info(ver)[3]
|
||||
if sign == 1: sign = ".sign"
|
||||
|
||||
f = trydownload([url], f, sign)
|
||||
if not f:
|
||||
error("Tarball download failed")
|
||||
sys.exit(-1)
|
||||
|
||||
else:
|
||||
f = list[0][1]
|
||||
ver = list[0][2]
|
||||
|
||||
qprint("Unpacking %s" % os.path.basename(f))
|
||||
if options["dry-run"]: return ver
|
||||
untar(f)
|
||||
|
||||
return ver
|
||||
|
||||
def find_ver(ver):
|
||||
if ver in version_info.keys():
|
||||
v = version_info[ver]
|
||||
d = v[1]
|
||||
if type(d) is type([]):
|
||||
d = d[0]
|
||||
for n in range(5):
|
||||
return v[0](os.path.dirname(d), v[2])
|
||||
error('retrying version lookup for %s' % ver)
|
||||
else:
|
||||
return ver
|
||||
|
||||
def transform(a, b):
|
||||
if a == b:
|
||||
qprint("Nothing to do!")
|
||||
return
|
||||
if not a:
|
||||
a = install_nearest(base(b))
|
||||
t = tree(a)
|
||||
if t != tree(b):
|
||||
error("Can't patch %s to %s" % (tree(a), tree(b)))
|
||||
sys.exit(-1)
|
||||
if fork(a):
|
||||
apply_patch(a, 1)
|
||||
a = prebase(a)
|
||||
if prebase(a) != prebase(b):
|
||||
if pre(a):
|
||||
apply_patch(a, 1)
|
||||
a = base(a)
|
||||
|
||||
if post(a) and post(a) != post(b):
|
||||
apply_patch(prebase(a), 1)
|
||||
|
||||
ra, rb = rev(a), rev(b)
|
||||
if ra > rb:
|
||||
for r in range(ra, rb, -1):
|
||||
apply_patch("%s.%s" % (t, r), -1)
|
||||
if ra < rb:
|
||||
for r in range(ra + 1, rb + 1):
|
||||
apply_patch("%s.%s" % (t, r))
|
||||
a = revbase(b)
|
||||
|
||||
if post(b) and post(a) != post(b):
|
||||
apply_patch(prebase(b), 0)
|
||||
a = base(b)
|
||||
|
||||
if pre(b):
|
||||
apply_patch(prebase(b))
|
||||
a = prebase(b)
|
||||
|
||||
if fork(b):
|
||||
a = apply_patch(b)
|
||||
|
||||
def rename_dir(v):
|
||||
"""Rename the current directory to linux-v, where v is the function arg"""
|
||||
if rename_with_localversion:
|
||||
v += get_localversion()
|
||||
cwd = os.getcwd()
|
||||
basedir = os.path.dirname(cwd)
|
||||
newdir = os.path.join(basedir, rename_prefix + v)
|
||||
if newdir == cwd:
|
||||
return
|
||||
if os.access(newdir, os.F_OK):
|
||||
error("Cannot rename directory, destination exists: %s", newdir);
|
||||
return
|
||||
os.rename(cwd, newdir)
|
||||
qprint('Current directory renamed to %s' % newdir)
|
||||
|
||||
|
||||
# latest lookup function, canonical urls, pattern for lookup function,
|
||||
# signature flag, description
|
||||
version_info = {
|
||||
'2.4': (latest_dir,
|
||||
kernel_url + "/v2.4" + "/patch-%(base)s.bz2",
|
||||
r'patch-(.*?).bz2',
|
||||
1, "old stable kernel series"),
|
||||
'2.4-pre': (latest_dir,
|
||||
kernel_url + "/v2.4" + "/testing/patch-%(prebase)s.bz2",
|
||||
r'patch-(.*?).bz2',
|
||||
1, "old stable kernel series prereleases"),
|
||||
'2.6': (latest_dir,
|
||||
kernel_url + "/v2.6" + "/patch-%(prebase)s.bz2",
|
||||
r'patch-(.*?).bz2',
|
||||
1, "current stable kernel series"),
|
||||
'2.6-rc': (latest_dir,
|
||||
kernel_url + "/v2.6" + "/testing/patch-%(prebase)s.bz2",
|
||||
r'patch-(.*?).bz2',
|
||||
1, "current stable kernel series prereleases"),
|
||||
'2.6-pre': (latest_dir,
|
||||
kernel_url + "/v2.6" + "/testing/patch-%(prebase)s.bz2",
|
||||
r'patch-(.*?).bz2',
|
||||
1, "current stable kernel series prereleases"),
|
||||
'2.6-git': (latest_dir,
|
||||
[kernel_url + "/v2.6" + "/snapshots/patch-%(full)s.bz2",
|
||||
kernel_url + "/v2.6" + "/snapshots/old/patch-%(full)s.bz2"],
|
||||
r'patch-(.*?).bz2',
|
||||
1, "current stable kernel series snapshots"),
|
||||
'2.6-bk': (latest_dir,
|
||||
[kernel_url + "/v2.6" + "/snapshots/patch-%(full)s.bz2",
|
||||
kernel_url + "/v2.6" + "/snapshots/old/patch-%(full)s.bz2"],
|
||||
r'patch-(.*?).bz2',
|
||||
1, "old stable kernel series snapshots"),
|
||||
'2.6-tip': (latest_26_tip, "", "", 1,
|
||||
"current stable kernel series tip"),
|
||||
'2.6-mm': (latest_mm,
|
||||
kernel_url + "/people/akpm/patches/" +
|
||||
"%(tree)s/%(prebase)s/%(full)s/%(full)s.bz2", "",
|
||||
1, "Andrew Morton's -mm development tree"),
|
||||
'2.6-tiny': (latest_dir,
|
||||
"http://www.selenic.com/tiny/%(full)s.patch.bz2",
|
||||
r'(2.6.*?).patch.bz2',
|
||||
1, "Matt Mackall's -tiny tree for small systems"),
|
||||
'2.6-mjb': (latest_mjb,
|
||||
kernel_url + "/people/mbligh/%(prebase)s/patch-%(full)s.bz2",
|
||||
r'patch-(2.6.*?).bz2',
|
||||
1, "Martin Bligh's random collection 'o crap"),
|
||||
'2.6-rt': (latest_dir,
|
||||
["http://people.redhat.com/mingo/" +
|
||||
"realtime-preempt/patch-%(full)s",
|
||||
"http://people.redhat.com/mingo/" +
|
||||
"realtime-preempt/older/patch-%(full)s"],
|
||||
r'patch-(2.6.*?)',
|
||||
0, "Ingo Molnar's realtime-preempt kernel"),
|
||||
'2.6-ck': (latest_ck,
|
||||
["http://ck.kolivas.org/patches/2.6/" +
|
||||
"%(prebase)s/%(full)s/patch-%(full)s.bz2",
|
||||
"http://ck.kolivas.org/patches/2.6/pre-releases/" +
|
||||
"%(prebase)s/%(full)s/patch-%(full)s.bz2"],
|
||||
"", ".sig",
|
||||
"Con Kolivas' patches for system responsiveness (desktop)"),
|
||||
'2.6-cks': (latest_dir,
|
||||
"http://ck.kolivas.org/patches/cks/patch-%(full)s.bz2",
|
||||
r'patch-(2.6.*?).bz2', ".sig",
|
||||
"Con Kolivas' patches for system responsiveness (server)")
|
||||
}
|
||||
|
||||
# Override defaults with ~/.ketchuprc which is just a Python script
|
||||
rcpath = os.path.expanduser('~/.ketchuprc')
|
||||
if os.path.isfile(rcpath):
|
||||
try:
|
||||
execfile(rcpath)
|
||||
except Exception, e:
|
||||
sys.exit('Failed parsing %s\nError was: %s' % (rcpath, e))
|
||||
|
||||
# Add local trees
|
||||
for k,v in local_trees.items():
|
||||
version_info[k] = v
|
||||
|
||||
# Environment variables override defaults and ketchuprc
|
||||
kernel_url = os.environ.get("KETCHUP_URL", kernel_url)
|
||||
archive = os.environ.get("KETCHUP_ARCH", archive)
|
||||
|
||||
# And finally command line overrides everything
|
||||
if not os.path.exists(wget): wget = ""
|
||||
if not os.path.exists(gpg): gpg = ""
|
||||
|
||||
options = {}
|
||||
opts = [
|
||||
('a', 'archive', archive, 'cache directory'),
|
||||
('d', 'directory', '.', 'directory to update'),
|
||||
('f', 'full-tarball', None, 'if unpacking a tarball, download the latest'),
|
||||
('g', 'gpg-path', gpg, 'path for GnuPG'),
|
||||
('G', 'no-gpg', None, 'disable GPG signature verification'),
|
||||
('k', 'kernel-url', kernel_url, 'base url for kernel.org mirror'),
|
||||
('l', 'list-trees', None, 'list supported trees'),
|
||||
('m', 'show-makefile', None, 'output version in makefile <arg>'),
|
||||
('n', 'dry-run', None, 'don\'t download or apply patches'),
|
||||
('p', 'show-previous', None, 'output version previous to <arg>'),
|
||||
('q', 'quiet', None, 'reduce output'),
|
||||
('r', 'rename-directory', None, 'rename updated directory to %s<v>'
|
||||
% rename_prefix),
|
||||
('s', 'show-latest', None, 'output the latest version of <arg>'),
|
||||
('u', 'show-url', None, 'output URL for <arg>'),
|
||||
('w', 'wget', wget, 'command to use for wget'),
|
||||
]
|
||||
|
||||
args = fancyopts(sys.argv[1:], opts, options,
|
||||
'ketchup [options] [ver]')
|
||||
|
||||
archive = options["archive"]
|
||||
kernel_url = options["kernel-url"]
|
||||
if options["no-gpg"]: options["gpg-path"] = ''
|
||||
|
||||
# Process args
|
||||
|
||||
if not os.path.exists(options["directory"]):
|
||||
qprint("Creating target directory", options["directory"])
|
||||
os.mkdir(options["directory"])
|
||||
os.chdir(options["directory"])
|
||||
|
||||
if os.path.isfile(".ketchuprc"):
|
||||
try:
|
||||
execfile(".ketchuprc")
|
||||
except Exception, e:
|
||||
sys.exit('Failed parsing .ketchuprc\nError was: %s' % (e))
|
||||
|
||||
if options["list-trees"]:
|
||||
l = version_info.keys()
|
||||
l.sort()
|
||||
for tree in l:
|
||||
if version_info[tree][3] == 0:
|
||||
lprint(tree, "(unsigned)")
|
||||
else:
|
||||
lprint(tree, "(signed)")
|
||||
lprint(" " + version_info[tree][4])
|
||||
sys.exit(0)
|
||||
|
||||
if options["show-makefile"] and len(args) < 2:
|
||||
if not args:
|
||||
lprint(get_ver("Makefile"))
|
||||
else:
|
||||
lprint(get_ver(args[0]))
|
||||
sys.exit(0)
|
||||
|
||||
if len(args) == 0 and default_tree:
|
||||
qprint("Using default tree \"%s\"" % (default_tree))
|
||||
args.append(default_tree)
|
||||
|
||||
if len(args) != 1:
|
||||
error("No version given on command line and no default in configuration")
|
||||
sys.exit(-1)
|
||||
|
||||
if options["show-latest"]:
|
||||
lprint(find_ver(args[0]))
|
||||
sys.exit(0)
|
||||
|
||||
if options["show-url"]:
|
||||
lprint(version_urls(find_ver(args[0]))[0])
|
||||
sys.exit(0)
|
||||
|
||||
if options["show-previous"]:
|
||||
v = find_ver(args[0])
|
||||
p = prebase(v)
|
||||
if p == v: p = base(v)
|
||||
if p == v:
|
||||
if rev(v) > 0: p = "%.1f.%s" % (tree(v), rev(v) -1)
|
||||
else: p = "unknown"
|
||||
lprint(p)
|
||||
sys.exit(0)
|
||||
|
||||
if not os.path.exists(options["archive"]):
|
||||
qprint("Creating cache directory", options["archive"])
|
||||
os.mkdir(options["archive"])
|
||||
|
||||
if precommand and os.system(precommand):
|
||||
sys.exit('Precommand "%s" failed!' % precommand)
|
||||
|
||||
try:
|
||||
a = get_ver('Makefile')
|
||||
except:
|
||||
a = None
|
||||
|
||||
if not a and os.listdir("."):
|
||||
error("Can't find kernel version for non-empty directory")
|
||||
sys.exit(-1)
|
||||
|
||||
b = find_ver(args[0])
|
||||
qprint("%s -> %s" % (a, b))
|
||||
transform(a, b)
|
||||
if options["rename-directory"] and not options["dry-run"]:
|
||||
rename_dir(b)
|
||||
|
||||
if postcommand and os.system(postcommand):
|
||||
sys.exit('Postcommand "%s" failed!' % postcommand)
|
||||
@@ -1,10 +0,0 @@
|
||||
XEN_LINUX_SOURCE ?= tarball
|
||||
LINUX_VER ?= 2.6
|
||||
|
||||
IMAGE_TARGET ?= vmlinux bzImage
|
||||
|
||||
XEN_LINUX_CONFIG_UPDATE := buildconfigs/enable-xen-config
|
||||
|
||||
EXTRAVERSION ?=
|
||||
|
||||
include buildconfigs/mk.linux-2.6-common
|
||||
@@ -1,154 +0,0 @@
|
||||
LINUX_SERIES = 2.6
|
||||
|
||||
# Linux search path, will be searched for tarballs and mercurial
|
||||
# repositories.
|
||||
LINUX_SRC_PATH ?= .:..
|
||||
|
||||
# The source directory is not automatically updated to avoid blowing
|
||||
# away developer's changes. If you want to automatically pull a new
|
||||
# version of the Linux tree then add `XEN_LINUX_UPDATE=y' to your make
|
||||
# command line.
|
||||
ifeq ($(XEN_LINUX_UPDATE),y)
|
||||
__XEN_LINUX_UPDATE = $(LINUX_SRCDIR)/.force-update
|
||||
else
|
||||
__XEN_LINUX_UPDATE =
|
||||
endif
|
||||
|
||||
ifeq ($(XEN_LINUX_NONINTERACTIVE_CONFIG),y)
|
||||
__NONINT_CONFIG = yes $$'\n' |
|
||||
else
|
||||
__NONINT_CONFIG =
|
||||
endif
|
||||
|
||||
LINUX_DIR = build-linux-$(LINUX_VER)$(EXTRAVERSION)_$(XEN_TARGET_ARCH)
|
||||
|
||||
IMAGE_TARGET ?= vmlinuz
|
||||
|
||||
LINUX_VER3 := $(LINUX_SERIES).$(word 3, $(subst ., ,$(LINUX_VER)))
|
||||
|
||||
.PHONY: _build
|
||||
_build: build
|
||||
|
||||
-include buildconfigs/src.$(XEN_LINUX_SOURCE)
|
||||
|
||||
LINUX_ARCH = $$(sh buildconfigs/select-linux-arch $(LINUX_SRCDIR))
|
||||
IMAGE_PATH = $$(sh buildconfigs/select-linux-image $(LINUX_DIR) $(LINUX_ARCH) $(IMAGE_TARGET))
|
||||
|
||||
INSTALL_BOOT_PATH := $(DESTDIR)/boot
|
||||
|
||||
# Default to allowing interface mismatch
|
||||
ifndef XEN_LINUX_ALLOW_INTERFACE_MISMATCH
|
||||
XEN_LINUX_ALLOW_INTERFACE_MISMATCH := y
|
||||
endif
|
||||
|
||||
KERNELRELEASE = $(shell $(MAKE) -s --no-print-directory -C $(LINUX_DIR) kernelrelease)
|
||||
|
||||
# The real action starts here!
|
||||
.PHONY: build
|
||||
build: $(LINUX_DIR)/include/linux/autoconf.h
|
||||
ifneq ($(XEN_LINUX_ALLOW_INTERFACE_MISMATCH),y)
|
||||
@if ! diff -urN -X buildconfigs/interface.exclude \
|
||||
$(LINUX_SRCDIR)/include/xen/interface xen/include/public ; then \
|
||||
echo "" 1>&2 ; \
|
||||
echo " *** $(LINUX_SRCDIR)/include/xen/interface is out of date " 1>&2 ; \
|
||||
echo " *** relative to $(XEN_ROOT)/xen/include/public." 1>&2 ; \
|
||||
echo "" 1>&2 ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
endif
|
||||
if grep "^CONFIG_MODULES=" $(LINUX_DIR)/.config ; then \
|
||||
$(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) modules || exit 1 ; \
|
||||
$(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) INSTALL_MOD_PATH=$(DESTDIR) modules_install ; \
|
||||
fi
|
||||
$(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) INSTALL_PATH=$(DESTDIR) $(IMAGE_TARGET)
|
||||
mkdir -p $(INSTALL_BOOT_PATH)
|
||||
@cp -v $(IMAGE_PATH) $(INSTALL_BOOT_PATH)/vmlinuz-$(KERNELRELEASE)
|
||||
@cp -v $(LINUX_DIR)/.config $(INSTALL_BOOT_PATH)/config-$(KERNELRELEASE)
|
||||
@cp -v $(LINUX_DIR)/System.map $(INSTALL_BOOT_PATH)/System.map-$(KERNELRELEASE)
|
||||
|
||||
$(LINUX_DIR)/include/linux/autoconf.h: CONFIG_FILE=$(CURDIR)/$(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 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); \
|
||||
if [ ! -z "$(XEN_LINUX_CONFIG)" -a -r "$(XEN_LINUX_CONFIG)" ]; then \
|
||||
cp $(XEN_LINUX_CONFIG) $(CONFIG_FILE); \
|
||||
elif [ -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
|
||||
ifneq ($(XEN_LINUX_CONFIG_UPDATE),)
|
||||
echo "Updating $(CONFIG_FILE) using $(XEN_LINUX_CONFIG_UPDATE)"
|
||||
sh $(XEN_LINUX_CONFIG_UPDATE) $(CONFIG_FILE)
|
||||
endif
|
||||
ifeq ($(XEN_TARGET_ARCH),x86_32)
|
||||
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)
|
||||
endif
|
||||
ifneq ($(EXTRAVERSION),)
|
||||
echo "$(EXTRAVERSION)" >$(LINUX_DIR)/localversion-xen
|
||||
endif
|
||||
$(__NONINT_CONFIG) $(MAKE) -C $(LINUX_SRCDIR) ARCH=$(LINUX_ARCH) oldconfig O=$$(/bin/pwd)/$(LINUX_DIR)
|
||||
@set -e ; 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 := $(CURDIR)/$(LINUX_SRCDIR)"; \
|
||||
echo "KERNELOUTPUT := $(CURDIR)/$(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
|
||||
$(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) prepare
|
||||
|
||||
.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::
|
||||
[ ! -d $(LINUX_DIR) ] || \
|
||||
$(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) clean
|
||||
|
||||
.PHONY: delete
|
||||
delete:
|
||||
rm -rf tmp-linux-$(LINUX_VER) $(LINUX_DIR) $(LINUX_SRCDIR)
|
||||
|
||||
.PHONY: mrproper
|
||||
mrproper:
|
||||
rm -rf $(LINUX_SRCDIR)
|
||||
rm -f linux-$(LINUX_VER).tar.bz2
|
||||
|
||||
.PHONY: $(LINUX_SRCDIR)/.force-update
|
||||
$(LINUX_SRCDIR)/.force-update:
|
||||
@ :
|
||||
@@ -1,2 +0,0 @@
|
||||
LINUX_VER ?= 2.6-git
|
||||
include buildconfigs/mk.linux-2.6
|
||||
@@ -1,2 +0,0 @@
|
||||
LINUX_VER ?= 2.6-mm
|
||||
include buildconfigs/mk.linux-2.6
|
||||
@@ -1,5 +0,0 @@
|
||||
EXTRAVERSION = -native
|
||||
IMAGE_TARGET = bzImage
|
||||
INSTALL_BOOT_PATH = $(DESTDIR)/boot
|
||||
|
||||
include buildconfigs/mk.linux-2.6-common
|
||||
@@ -1,17 +0,0 @@
|
||||
XEN_LINUX_SOURCE ?= git-clone
|
||||
LINUX_VER ?= 2.6-pvops
|
||||
|
||||
IMAGE_TARGET ?= bzImage
|
||||
|
||||
XEN_LINUX_CONFIG_UPDATE := buildconfigs/enable-xen-config
|
||||
|
||||
ifeq ($(GIT_HTTP),y)
|
||||
XEN_LINUX_GIT_URL ?= http://www.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git
|
||||
else
|
||||
XEN_LINUX_GIT_URL ?= git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git
|
||||
endif
|
||||
XEN_LINUX_GIT_REMOTEBRANCH ?= xen/stable-2.6.32.x
|
||||
|
||||
EXTRAVERSION ?=
|
||||
|
||||
include buildconfigs/mk.linux-2.6-common
|
||||
@@ -1,2 +0,0 @@
|
||||
LINUX_VER ?= 2.6-rc
|
||||
include buildconfigs/mk.linux-2.6
|
||||
@@ -1,2 +0,0 @@
|
||||
LINUX_VER ?= 2.6-tip
|
||||
include buildconfigs/mk.linux-2.6
|
||||
@@ -1,17 +0,0 @@
|
||||
XEN_LINUX_SOURCE ?= git-clone
|
||||
LINUX_VER ?= 2.6-x86-latest
|
||||
|
||||
IMAGE_TARGET ?= bzImage vmlinux
|
||||
|
||||
XEN_LINUX_CONFIG_UPDATE := buildconfigs/enable-xen-config
|
||||
|
||||
ifeq ($(GIT_HTTP),y)
|
||||
XEN_LINUX_GIT_URL ?= http://www.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-tip.git
|
||||
else
|
||||
XEN_LINUX_GIT_URL ?= git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-tip.git
|
||||
endif
|
||||
XEN_LINUX_GIT_REMOTEBRANCH ?= auto-latest
|
||||
|
||||
EXTRAVERSION ?=
|
||||
|
||||
include buildconfigs/mk.linux-2.6-common
|
||||
@@ -1,6 +0,0 @@
|
||||
EXTRAVERSION ?= -xen
|
||||
LINUX_VER ?= 2.6.18
|
||||
|
||||
XEN_LINUX_SOURCE ?= hg-clone
|
||||
|
||||
include buildconfigs/mk.linux-2.6-common
|
||||
@@ -1,2 +0,0 @@
|
||||
EXTRAVERSION = -xen0
|
||||
include buildconfigs/mk.linux-2.6-xen
|
||||
@@ -1,2 +0,0 @@
|
||||
EXTRAVERSION = -xenU
|
||||
include buildconfigs/mk.linux-2.6-xen
|
||||
@@ -1,30 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
ME=$(basename $0)
|
||||
|
||||
if [ $# -lt 1 ] || [ $# -gt 2 ] ; then
|
||||
echo "usage: $ME <linux-build-directory>" 1>&2
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
LINUX_DIR=$1
|
||||
|
||||
case ${XEN_TARGET_ARCH} in
|
||||
x86_32|x86_64)
|
||||
if [ -d ${LINUX_DIR}/arch/x86 ] ; then
|
||||
ARCH=x86
|
||||
elif [ "${XEN_TARGET_ARCH}" = "x86_32" ] ; then
|
||||
ARCH=i386
|
||||
else
|
||||
ARCH=x86_64
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
ARCH=${XEN_TARGET_ARCH}
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "$ME: ${ARCH}" 1>&2
|
||||
echo ${ARCH}
|
||||
|
||||
exit 0
|
||||
@@ -1,33 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
ME=$(basename $0)
|
||||
|
||||
if [ $# -lt 3 ] ; then
|
||||
echo "usage: $ME <linux-build-directory> <linux-arch> <linux-targets...>" 1>&2
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
LINUX_DIR=$1
|
||||
LINUX_ARCH=$2
|
||||
LINUX_TARGET=$3 # We don't care about second and subsequent targets
|
||||
|
||||
case ${XEN_TARGET_ARCH} in
|
||||
ia64)
|
||||
IMAGE=${LINUX_DIR}/arch/ia64/hp/sim/boot/vmlinux.gz
|
||||
;;
|
||||
*)
|
||||
if [ -f ${LINUX_DIR}/arch/${LINUX_ARCH}/boot/${LINUX_TARGET} ] ; then
|
||||
IMAGE=${LINUX_DIR}/arch/${LINUX_ARCH}/boot/${LINUX_TARGET}
|
||||
elif [ -f ${LINUX_DIR}/${LINUX_TARGET} ] ; then
|
||||
IMAGE=${LINUX_DIR}/${LINUX_TARGET}
|
||||
else
|
||||
echo "$ME: cannot determine Linux image to use for ${LINUX_ARCH} in ${LINUX_DIR}" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "$ME: ${IMAGE}" 1>&2
|
||||
echo ${IMAGE}
|
||||
|
||||
exit 0
|
||||
@@ -1,69 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
ME=$(basename $0)
|
||||
|
||||
if [ $# -lt 1 ] || [ $# -gt 2 ] ; then
|
||||
echo "usage: $ME <repository-name> [search-path]" 1>&2
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
REPO=$1
|
||||
LINUX_SRC_PATH=$2
|
||||
|
||||
if [ X"${LINUX_SRC_PATH}" != X ] ; then
|
||||
echo "$ME: Searching \`${LINUX_SRC_PATH}' for $REPO" 1>&2
|
||||
IFS_saved="$IFS"
|
||||
IFS=:
|
||||
for i in $LINUX_SRC_PATH ; do
|
||||
# Ignore current directory since we will almost certainly find
|
||||
# the target directory there which breaks updating (there's no
|
||||
# point updating from yourself!).
|
||||
if [ X"." = X"${i}" ] ; then
|
||||
echo "$ME: Ignoring \`.'" 1>&2
|
||||
continue
|
||||
fi
|
||||
|
||||
if [ -d "$i/$REPO/.hg" ] ; then
|
||||
echo "$ME: Found $i/$REPO" 1>&2
|
||||
echo "$i/$REPO"
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
IFS="$IFS_saved"
|
||||
fi
|
||||
|
||||
if [ -d ${XEN_ROOT}/.hgxxx ] ; then
|
||||
XEN=$(hg -R ${XEN_ROOT} path default)
|
||||
if [ $? -ne 0 ] || [ X"$XEN" = "X" ] ; then
|
||||
echo "$ME: Unable to determine Xen repository parent." 1>&2
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
BASE=$(dirname ${XEN})
|
||||
if [ $? -ne 0 ] || [ X"$BASE" = "X" ] ; then
|
||||
echo "$ME: Unable to determine Xen repository base." 1>&2
|
||||
exit 1;
|
||||
fi
|
||||
if [ -d "$XEN" ] && [ ! -d "$BASE/$REPO" ] ; then
|
||||
echo "$ME: No such dir: $BASE/$REPO" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "$ME: Found ${BASE}/${REPO}" 1>&2
|
||||
|
||||
# If ${BASE}/${REPO} is a local directory then prepend file:// so that
|
||||
# the test in src.hg-clone will fail and we will clone instead of
|
||||
# linking this repository. We only want to link repositories which
|
||||
# were found via LINUX_SRC_PATH.
|
||||
if [ -d "${BASE}/${REPO}" ] ; then
|
||||
echo "file://${BASE}/${REPO}"
|
||||
else
|
||||
echo ${BASE}/${REPO}
|
||||
fi
|
||||
else
|
||||
echo "Unable to determine path to Linux source tree." 1>&2
|
||||
echo "Falling back to linux-2.6.18-xen Mercurial repository." 1>&2
|
||||
echo http://xenbits.xen.org/linux-2.6.18-xen.hg
|
||||
fi
|
||||
|
||||
exit 0
|
||||
@@ -1,32 +0,0 @@
|
||||
# Mercurial
|
||||
GIT ?= git
|
||||
|
||||
LINUX_SRCDIR ?= linux-$(LINUX_VER).git
|
||||
|
||||
# The URL of the remote GIT repository
|
||||
ifeq ($(XEN_LINUX_GIT_URL),)
|
||||
.ERROR: XEN_LINUX_GIT_URL not specified
|
||||
endif
|
||||
|
||||
# The branch in the remote repository
|
||||
ifeq ($(XEN_LINUX_GIT_REMOTEBRANCH),)
|
||||
.ERROR: XEN_LINUX_GIT_REMOTEBRANCH not specified
|
||||
endif
|
||||
|
||||
XEN_GIT_ORIGIN ?= xen
|
||||
|
||||
XEN_LINUX_GIT_LOCALBRANCH ?= $(XEN_LINUX_GIT_REMOTEBRANCH)
|
||||
|
||||
# Set XEN_LINUX_GITREV to update to a particlar revision.
|
||||
XEN_LINUX_GITREV ?= $(XEN_GIT_ORIGIN)/$(XEN_LINUX_GIT_REMOTEBRANCH)
|
||||
|
||||
$(LINUX_SRCDIR)/.valid-src: $(__XEN_LINUX_UPDATE)
|
||||
set -ex; \
|
||||
if ! [ -d $(LINUX_SRCDIR) ]; then \
|
||||
rm -rf $(LINUX_SRCDIR) $(LINUX_SRCDIR).tmp; \
|
||||
mkdir $(LINUX_SRCDIR).tmp; rmdir $(LINUX_SRCDIR).tmp; \
|
||||
$(GIT) clone -o $(XEN_GIT_ORIGIN) -n $(XEN_LINUX_GIT_URL) $(LINUX_SRCDIR).tmp; \
|
||||
(cd $(LINUX_SRCDIR).tmp; git checkout -b $(XEN_LINUX_GIT_LOCALBRANCH) $(XEN_LINUX_GITREV) ); \
|
||||
mv $(LINUX_SRCDIR).tmp $(LINUX_SRCDIR); \
|
||||
fi
|
||||
touch $@
|
||||
@@ -1,32 +0,0 @@
|
||||
# Mercurial
|
||||
HG ?= hg
|
||||
|
||||
LINUX_SRCDIR ?= linux-$(LINUX_VER)-xen.hg
|
||||
|
||||
# Repository to clone.
|
||||
XEN_LINUX_HGREPO ?= $$(sh buildconfigs/select-repository $(LINUX_SRCDIR) $(LINUX_SRC_PATH))
|
||||
|
||||
# Set XEN_LINUX_HGREV to update to a particlar revision.
|
||||
XEN_LINUX_HGREV ?= tip
|
||||
|
||||
$(LINUX_SRCDIR)/.valid-src: $(__XEN_LINUX_UPDATE)
|
||||
set -e ; \
|
||||
if [ ! -e $(LINUX_SRCDIR)/.hg ] ; then \
|
||||
__repo=$(XEN_LINUX_HGREPO) ; \
|
||||
if [ -d $${__repo} ] ; then \
|
||||
echo "Linking $${__repo} to $(LINUX_SRCDIR)." ; \
|
||||
ln -s $${__repo} $(LINUX_SRCDIR) ; \
|
||||
else \
|
||||
echo "Cloning $${__repo} to $(LINUX_SRCDIR)." ; \
|
||||
$(HG) clone $${__repo#file://} $(LINUX_SRCDIR) ; \
|
||||
fi ; \
|
||||
else \
|
||||
__parent=$$($(HG) -R $(LINUX_SRCDIR) path default) ; \
|
||||
echo "Pulling changes from $${__parent} into $(LINUX_SRCDIR)." ; \
|
||||
$(HG) -R $(LINUX_SRCDIR) pull $${__parent} ; \
|
||||
fi
|
||||
set -e ; if [ -n "$(XEN_LINUX_HGREV)" ] ; then \
|
||||
echo "Updating $(LINUX_SRCDIR) to revision $(XEN_LINUX_HGREV)." ; \
|
||||
( cd $(LINUX_SRCDIR) && $(HG) update $(XEN_LINUX_HGREV) ); \
|
||||
fi
|
||||
touch $@
|
||||
@@ -1,19 +0,0 @@
|
||||
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)
|
||||
|
||||
KETCHUP ?= python buildconfigs/ketchup
|
||||
|
||||
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)"
|
||||
false wget $(XEN_LINUX_MIRROR)/$@ -O./$@
|
||||
|
||||
# XXX create a pristine tree for diff -Nurp convenience
|
||||
|
||||
%/.valid-src: $(__XEN_LINUX_UPDATE)
|
||||
$(KETCHUP) -d $(@D) $(LINUX_VER)
|
||||
touch $@ # update timestamp to avoid rebuild
|
||||
@@ -1,8 +1 @@
|
||||
include $(XEN_ROOT)/config/StdGNU.mk
|
||||
|
||||
# You may use wildcards, e.g. KERNELS=*2.6*
|
||||
KERNELS ?=
|
||||
|
||||
XKERNELS := $(foreach kernel, $(KERNELS), \
|
||||
$(patsubst buildconfigs/mk.%,%, \
|
||||
$(wildcard buildconfigs/mk.$(kernel))) )
|
||||
@@ -592,7 +592,6 @@ SUBSYSTEMS
|
||||
docs
|
||||
stubdom
|
||||
tools
|
||||
kernels
|
||||
xen
|
||||
subdirs
|
||||
host_os
|
||||
@@ -645,7 +644,6 @@ ac_subst_files=''
|
||||
ac_user_opts='
|
||||
enable_option_checking
|
||||
enable_xen
|
||||
enable_kernels
|
||||
enable_tools
|
||||
enable_stubdom
|
||||
enable_docs
|
||||
@@ -654,7 +652,6 @@ enable_docs
|
||||
host_alias
|
||||
target_alias'
|
||||
ac_subdirs_all='xen
|
||||
kernels
|
||||
tools
|
||||
stubdom
|
||||
docs'
|
||||
@@ -1271,7 +1268,6 @@ Optional Features:
|
||||
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
|
||||
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
|
||||
--disable-xen Disable build and install of xen
|
||||
--disable-kernels Disable build and install of kernels
|
||||
--disable-tools Disable build and install of tools
|
||||
--enable-stubdom Enable build and install of stubdom
|
||||
--disable-docs Disable build and install of docs
|
||||
@@ -1891,52 +1887,6 @@ fi
|
||||
|
||||
|
||||
|
||||
# Check whether --enable-kernels was given.
|
||||
if test "${enable_kernels+set}" = set; then :
|
||||
enableval=$enable_kernels;
|
||||
|
||||
if test "x$enableval" = "xyes"; then :
|
||||
|
||||
|
||||
kernels=y
|
||||
SUBSYSTEMS="$SUBSYSTEMS kernels"
|
||||
|
||||
|
||||
else
|
||||
|
||||
if test "x$enableval" = "xno"; then :
|
||||
|
||||
|
||||
kernels=n
|
||||
|
||||
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
|
||||
else
|
||||
|
||||
|
||||
kernels=y
|
||||
SUBSYSTEMS="$SUBSYSTEMS kernels"
|
||||
|
||||
|
||||
fi
|
||||
|
||||
|
||||
if test -e "kernels/configure"; then :
|
||||
|
||||
if test "x$kernels" = "xy" || test "x$kernels" = "x" ; then
|
||||
subdirs="$subdirs kernels"
|
||||
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
# Check whether --enable-tools was given.
|
||||
if test "${enable_tools+set}" = set; then :
|
||||
enableval=$enable_tools;
|
||||
|
||||
@@ -23,7 +23,6 @@ case "$host_cpu" in
|
||||
esac
|
||||
|
||||
AX_SUBSYSTEM_DEFAULT_ENABLE([xen])
|
||||
AX_SUBSYSTEM_DEFAULT_ENABLE([kernels])
|
||||
AX_SUBSYSTEM_DEFAULT_ENABLE([tools])
|
||||
AX_SUBSYSTEM_CONDITIONAL([stubdom], $arch_enable_stubdom)
|
||||
AX_SUBSYSTEM_DEFAULT_ENABLE([docs])
|
||||
|
||||