[Sam Ravnborg]
> > This does not stop any attemp to make a simple wrapper that
> > creates and maintain a BUILD_TREE.
> > To check timestamps and link accordinly should not take too much
> > time, at least not at the second run.
[Greg Banks]
> Ok, why don't you and Peter Samuelson get together, create such a thing and
> we can compare it against kbuild2.5? If it's simple and a win, great!
Not sure about a win - but the following is certainly simple. It took
me 5 or 10 minutes. Perhaps there are cases it doesn't handle, but
I'm thinking it should work for most things.
TOTALLY UNTESTED, since it's intended solely as a proof of concept.
Also, I don't have any shadow trees already set up.
Peter
#!/bin/sh
# mkshadow: a hack to make a build tree from shadow source trees
#
# If something doesn't like the symlinks, replace 'ln -s' with 'ln'.
# Then you get hard links which should work anywhere, but which easily
# get out of sync with reality when you patch / edit the original
# files, depending on your editor.
if [ -z "$KBUILD_SRCTREE_000" ]; then
echo "no KBUILD_SRCTREE_000, nothing to do"
exit 0
fi
obj=$KBUILD_OBJTREE
test -n "$obj" || obj=.
src=$(set | sed -ne '/^KBUILD_SRCTREE_[0-9][0-9][0-9]=/s//p')
test -n "$src" || src=.
cd $obj
for s in $src; do
if [ ${s#/} = $s ]; then
echo "source tree '$s' is not absolute"
exit 1
elif [ $(cd $s; pwd -P) = $(pwd -P) ]; then
echo "source tree $(pwd -P) is also the object tree"
echo "this is not allowed"
exit 1
fi
(cd $s; find * -type d) | xargs mkdir -p;
(cd $s;
exec find * \( -type d -exec mkdir \{} \; \) -o \
\( -type f ! -name \*.prepend ! -name \*.append -print \) ) |
while read f; do
rm -f $f;
ln -s $s/$f $f
done
done
for s in $src; do
(cd $s;
exec find * -type f -name \*.prepend ) |
while read f; do
base=${f%.prepend}
if [ -f $base ]; then mv $base $base.; else touch $base.; fi
cat $s/$f $base. > $base
rm $base.
done
(cd $s;
exec find * -type f -name \*.append ) |
while read f; do
base=${f%.append}
if [ -f $base ]; then mv $base $base.; else touch $base.; fi
cat $s/$f $base. > $base
rm $base.
done
done
-------------------------------------------------------
This sf.net email is sponsored by: Jabber Inc.
Don't miss the IM event of the season | Special offer for OSDN members!
JabConf 2002, Aug. 20-22, Keystone, CO http://www.jabberconf.com/osdn
_______________________________________________
kbuild-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kbuild-devel