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>