Annotation of embedaddon/bird/tools/mergedirs, revision 1.1.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>