diff options
author | cl349@labyrinth.cl.cam.ac.uk <cl349@labyrinth.cl.cam.ac.uk> | 2004-09-06 18:52:41 +0000 |
---|---|---|
committer | cl349@labyrinth.cl.cam.ac.uk <cl349@labyrinth.cl.cam.ac.uk> | 2004-09-06 18:52:41 +0000 |
commit | 2a632d88f77c98ce72f4ead7c372f74a3fb840a8 (patch) | |
tree | e74d6588617e9b67e54e8ce9b461092911266d56 /netbsd-2.0-xen-sparse | |
parent | 82239e3ad01d83ea386780d2107d4a2cef050631 (diff) | |
download | xen-2a632d88f77c98ce72f4ead7c372f74a3fb840a8.tar.gz xen-2a632d88f77c98ce72f4ead7c372f74a3fb840a8.tar.bz2 xen-2a632d88f77c98ce72f4ead7c372f74a3fb840a8.zip |
bitkeeper revision 1.1159.72.1 (413cb1f9MtRHM7cQFiJRcJ1gYUPxdw)
Add NetBSD support.
Diffstat (limited to 'netbsd-2.0-xen-sparse')
-rw-r--r-- | netbsd-2.0-xen-sparse/Makefile | 20 | ||||
-rwxr-xr-x | netbsd-2.0-xen-sparse/mkbuildtree | 114 | ||||
-rwxr-xr-x | netbsd-2.0-xen-sparse/nbconfig-xen | 20 | ||||
-rwxr-xr-x | netbsd-2.0-xen-sparse/nbmake-xen | 26 |
4 files changed, 180 insertions, 0 deletions
diff --git a/netbsd-2.0-xen-sparse/Makefile b/netbsd-2.0-xen-sparse/Makefile new file mode 100644 index 0000000000..def3b4427e --- /dev/null +++ b/netbsd-2.0-xen-sparse/Makefile @@ -0,0 +1,20 @@ +# +# +# + +.PHONY: config netbsd + +TOPDIR ?= $(shell pwd) +NETBSD_RELEASE ?= $(patsubst netbsd-%-xen%,%,$(notdir $(TOPDIR))) +NETBSD_VER ?= $(patsubst netbsd-%-xen%,%,$(notdir $(TOPDIR))) + +config: + @mkdir -p compile/XEN + cd compile/XEN && TOPDIR=$(TOPDIR) NETBSD_VER=$(NETBSD_VER) ../../nbconfig-xen XEN + +netbsd: + cd compile/XEN && TOPDIR=$(TOPDIR) NETBSD_VER=$(NETBSD_VER) ../../nbmake-xen dependall + +install: + @mkdir -p $(dir $(INSTALL_PATH)/$(INSTALL_NAME)) + install -c compile/XEN/netbsd $(INSTALL_PATH)/$(INSTALL_NAME) diff --git a/netbsd-2.0-xen-sparse/mkbuildtree b/netbsd-2.0-xen-sparse/mkbuildtree new file mode 100755 index 0000000000..2db906080a --- /dev/null +++ b/netbsd-2.0-xen-sparse/mkbuildtree @@ -0,0 +1,114 @@ +#!/bin/sh + +# mkbuildtree <build tree> +# +# Creates symbolic links in <build tree> for the sparse tree +# in the current directory. + +# Script to determine the relative path between two directories. +# Copyright (c) D. J. Hawkey Jr. 2002 +# Fixed for Xen project by K. Fraser in 2003. +abs_to_rel () +{ + local CWD SRCPATH + + if [ "$1" != "/" -a "${1##*[^/]}" = "/" ]; then + SRCPATH=${1%?} + else + SRCPATH=$1 + fi + if [ "$2" != "/" -a "${2##*[^/]}" = "/" ]; then + DESTPATH=${2%?} + else + DESTPATH=$2 + fi + + CWD=$PWD + [ "${1%%[^/]*}" != "/" ] && cd $1 && SRCPATH=$PWD + [ "${2%%[^/]*}" != "/" ] && cd $2 && DESTPATH=$PWD + [ "$CWD" != "$PWD" ] && cd $CWD + + BASEPATH=$SRCPATH + + [ "$SRCPATH" = "$DESTPATH" ] && DESTPATH="." && return + [ "$SRCPATH" = "/" ] && DESTPATH=${DESTPATH#?} && return + + while [ "$BASEPATH/" != "${DESTPATH%${DESTPATH#$BASEPATH/}}" ]; do + BASEPATH=${BASEPATH%/*} + done + + SRCPATH=${SRCPATH#$BASEPATH} + DESTPATH=${DESTPATH#$BASEPATH} + DESTPATH=${DESTPATH#?} + while [ -n "$SRCPATH" ]; do + SRCPATH=${SRCPATH%/*} + DESTPATH="../$DESTPATH" + done + + [ -z "$BASEPATH" ] && BASEPATH="/" + [ "${DESTPATH##*[^/]}" = "/" ] && DESTPATH=${DESTPATH%?} +} + +# relative_lndir <target_dir> +# Creates a tree of symlinks in the current working directory that mirror +# real files in <target_dir>. <target_dir> should be relative to the current +# working directory. Symlinks in <target_dir> are ignored. Source-control files +# are ignored. +relative_lndir () +{ + local SYMLINK_DIR REAL_DIR pref i j + SYMLINK_DIR=$PWD + REAL_DIR=$1 + ( + cd $REAL_DIR + for i in `find . -type d | grep -v SCCS`; do + [ -d $SYMLINK_DIR/$i ] || mkdir -p $SYMLINK_DIR/$i + ( + cd $i + pref=`echo $i | sed -e 's#/[^/]*#../#g' -e 's#^\.##'` + for j in `find . -type f -o -type l -maxdepth 1`; do + ln -sf ${pref}${REAL_DIR}/$i/$j ${SYMLINK_DIR}/$i/$j + done + ) + done + ) +} + +[ "$1" == "" ] && { echo "Syntax: $0 <linux tree to xenify>"; exit 1; } + +# Get absolute path to the destination directory +pushd . >/dev/null +cd ${1} +AD=$PWD +popd >/dev/null + +# Get absolute path to the source directory +AS=`pwd` + +# Get path to source, relative to destination +abs_to_rel ${AD} ${AS} +RS=$DESTPATH + +# Remove old copies of files and directories at the destination +for i in `find . -type f -o -type l` ; do rm -f ${AD}/${i#./} ; done + +# We now work from the destination directory +cd ${AD} + +# Remove old symlinks +for i in `find . -type l`; do rm -f $i; done + +# Create symlinks of files and directories which exist in the sparse source +relative_lndir ${RS} +rm -f mkbuildtree + + +# Create links to the shared definitions of the hypervisor interface +rm -rf ${AD}/sys/arch/xen/include/hypervisor-ifs +mkdir ${AD}/sys/arch/xen/include/hypervisor-ifs +cd ${AD}/sys/arch/xen/include/hypervisor-ifs +relative_lndir ../../../../../${RS}/../xen/include/hypervisor-ifs + +# Remove files which don't exist anymore +rm -rf ${AD}/sys/arch/xen/xen/events.c +rm -rf ${AD}/sys/arch/xen/include/events.h diff --git a/netbsd-2.0-xen-sparse/nbconfig-xen b/netbsd-2.0-xen-sparse/nbconfig-xen new file mode 100755 index 0000000000..38a485c6a4 --- /dev/null +++ b/netbsd-2.0-xen-sparse/nbconfig-xen @@ -0,0 +1,20 @@ +#! /bin/sh +# + +: ${HOS:=$(uname -s | tr /A-Z/ /a-z/)} +: ${HARCH:=$(uname -i)} +: ${NETBSD_RELEASE:=$(basename $(cd $(dirname $0) && pwd) | sed 's/netbsd-\([0-9]\+\.[0-9]\+\).*/\1/')} +: ${NETBSD_VERSION:=$(basename $(cd $(dirname $0) && pwd) | sed 's/netbsd-\([0-9]\+\.[0-9]\+.*\)-xen.*/\1/')} + +TOOLDIR="$TOPDIR/../netbsd-${NETBSD_RELEASE}-tools/$HOS-$HARCH"; export TOOLDIR + +CONF="$1" +case "$1" in + /*) + CONF="$1" + ;; + *) + CONF="$TOPDIR"/sys/arch/xen/conf/"$1" + ;; +esac +exec "${TOOLDIR}/bin/nbconfig" -b $(pwd) -s "$TOPDIR"/sys "$CONF" diff --git a/netbsd-2.0-xen-sparse/nbmake-xen b/netbsd-2.0-xen-sparse/nbmake-xen new file mode 100755 index 0000000000..7e2178f01e --- /dev/null +++ b/netbsd-2.0-xen-sparse/nbmake-xen @@ -0,0 +1,26 @@ +#! /bin/sh +# Set proper variables to allow easy "make" building of a NetBSD subtree. +# Generated from: $NetBSD: build.sh,v 1.126 2004/02/04 11:23:40 lukem Exp $ +# + +: ${HOS:=$(uname -s | tr /A-Z/ /a-z/)} +: ${HARCH:=$(uname -i)} +: ${NETBSD_RELEASE:=$(basename $(cd $(dirname $0) && pwd) | sed 's/netbsd-\([0-9]\+\.[0-9]\+\).*/\1/')} +: ${NETBSD_VERSION:=$(basename $(cd $(dirname $0) && pwd) | sed 's/netbsd-\([0-9]\+\.[0-9]\+.*\)-xen.*/\1/')} + +NETBSDSRCDIR="$TOPDIR"; export NETBSDSRCDIR +DESTDIR="$TOPDIR/root"; export DESTDIR +unset MAKEOBJDIRPREFIX +MAKEOBJDIR='${.CURDIR:C,^'"$TOPDIR,$TOPDIR/obj,}"; export MAKEOBJDIR +RELEASEDIR="$TOPDIR/release"; export RELEASEDIR +MKUNPRIVED='yes'; export MKUNPRIVED +MAKEVERBOSE='1'; export MAKEVERBOSE +LC_ALL='C'; export LC_ALL +TOOLDIR="$TOPDIR/../netbsd-${NETBSD_RELEASE}-tools/$HOS-$HARCH"; export TOOLDIR +MACHINE='i386'; export MACHINE +MACHINE_ARCH='i386'; export MACHINE_ARCH +MAKEFLAGS="-de -m $TOPDIR/share/mk MKOBJDIRS=yes"; export MAKEFLAGS +BUILDID="${NETBSD_RELEASE}"; export BUILDID +USETOOLS=yes; export USETOOLS + +exec "${TOOLDIR}/bin/nbmake" ${1+"$@"} |