mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 18:21:39 +01:00
as well as building from mkpatch patch (I believe Rik hit that one). This puts xenstore headers in linux-public. Signed-off-by: Chris Wright <chrisw@osdl.org>
113 lines
2.9 KiB
Bash
Executable File
113 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# 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 . -maxdepth 1 -type f -o -type l`; 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} || { echo "cannot cd to ${1}"; exit 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} || { echo "cannot cd to ${AD}"; exit 1; }
|
|
|
|
# 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 Xen interfaces.
|
|
rm -rf ${AD}/include/asm-xen/xen-public
|
|
mkdir ${AD}/include/asm-xen/xen-public
|
|
cd ${AD}/include/asm-xen/xen-public
|
|
relative_lndir ../../../${RS}/../xen/include/public
|
|
|
|
cd ${AD}/drivers/xen/xenbus
|
|
ln -sf ../../../${RS}/../tools/xenstore/xenstored.h
|