Annotation of embedaddon/bird/tools/mergedirs, revision 1.1
1.1 ! misho 1: #!/bin/sh
! 2:
! 3: if [ -z "$4" ] ; then
! 4: echo "Usage: mergedirs <src-dir> <src-dir-rel> <obj-dir> <list-of-dirs>"
! 5: exit 1
! 6: fi
! 7: cpp=${CPP:-cc -E}
! 8: SRCDIR=$1
! 9: shift
! 10: SRCREL=$1
! 11: case $SRCDIR in
! 12: /*) ;;
! 13: *) SRCREL="../$SRCREL" ;;
! 14: esac
! 15: shift
! 16: OBJDIR=$1
! 17: LIBDIR=$OBJDIR/lib
! 18: CONFDIR=$OBJDIR/conf
! 19: shift
! 20:
! 21: echo "Merging system-dependent modules ($@)"
! 22: MODULES=`for a in $@ ; do
! 23: cat $SRCDIR/sysdep/config.h $SRCDIR/$a/Modules |
! 24: $cpp -U unix -D MACROS_ONLY -I $OBJDIR - |
! 25: sed "/^[ ]*\$/d;/^#/d;s@\\(.*\\)@\\1 $a/\\1@"
! 26: done |
! 27: sort -k1,1 -u |
! 28: cut -d ' ' -f 2`
! 29: rm -rf $LIBDIR $CONFDIR
! 30: mkdir -p $LIBDIR $CONFDIR
! 31: for a in $MODULES ; do
! 32: b=`basename $a`
! 33: case $b in
! 34: *.h) ln -s $SRCREL/$a $LIBDIR/$b
! 35: ;;
! 36: *.c) OBJ=`echo $b | sed 's/\.c$/\.o/'`
! 37: OBJS="$OBJS $OBJ"
! 38: SRCS="$SRCS \\
! 39: $b"
! 40: ln -s $SRCREL/$a $LIBDIR/$b
! 41: ;;
! 42: *.Y) CONFS="$CONFS\$(srcdir)/$a "
! 43: ln -s $SRCREL/$a $CONFDIR/$b
! 44: ;;
! 45: *) echo "$b: Unknown file type"
! 46: exit 1
! 47: ;;
! 48: esac
! 49: done
! 50:
! 51: cat >$LIBDIR/Makefile <<EOF
! 52: source=$SRCS
! 53: lib-dest=birdlib.a
! 54: root-rel=../
! 55:
! 56: include ../Rules
! 57: EOF
! 58:
! 59: sed <$SRCDIR/conf/Makefile >$CONFDIR/Makefile "s|@CONFS@|$CONFS|"
! 60: CONFS=`cd $SRCDIR ; ls conf/*.[chl]`
! 61: for a in $CONFS ; do
! 62: ln -s $SRCREL/$a $CONFDIR/
! 63: done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>