diff options
Diffstat (limited to 'tools/mergedirs')
-rwxr-xr-x | tools/mergedirs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tools/mergedirs b/tools/mergedirs new file mode 100755 index 0000000..581ea4c --- /dev/null +++ b/tools/mergedirs @@ -0,0 +1,36 @@ +#!/bin/sh + +if [ -z "$2" ] ; then + echo "Usage: mergedirs <obj-dir> <list-of-dirs>" + exit 1 + fi +TOPDIR=`pwd` +OBJDIR=$1 +LIBDIR=$OBJDIR/lib +shift +echo "Merging system-dependent modules" +MODULES=`for a in $@ ; do + sed <$a/Modules "s@\\(.*\\)@\\1 $a/\\1@" + done | + sort +0 -1 -u | + cut -d ' ' -f 2` +rm -rf $LIBDIR +mkdir -p $LIBDIR +for a in $MODULES ; do + echo $a + b=`basename $a` + ln -s $TOPDIR/$a $LIBDIR/$b + OBJ=`echo $b | sed '/\.c$/!d;s/\.c$/\.o/'` + if [ -n "$OBJ" ] ; then + OBJS="$OBJS $OBJ" + SRCS="$SRCS \\ + \$(TOPDIR)/$a" + fi + done +cat >$LIBDIR/Makefile <<EOF +OBJS=$OBJS +SRCS=$SRCS +LIB=birdlib.a + +include \$(TOPDIR)/Rules +EOF |