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