New tests.
[mono.git] / mcs / build / gensources.sh
1 #! /bin/sh
2
3 outfile=$1
4 incfile=$2
5 excfile=$3
6
7 process_includes_1() {
8     sed -e '/^[ \t]*$/d' -e '/^[ \t]*#/d' $1 > $2
9     if cmp -s $1 $2; then
10         false
11     else
12         sed -n 's,^[ \t]*#include ,,p' $1 |
13         while read inc; do
14             cat $inc >> $2
15             echo $outfile: $inc >> $outfile.makefrag
16             echo $inc: >> $outfile.makefrag
17         done
18     fi
19 }
20
21 process_includes() {
22     i=$1; o=$2; t=${2}.tmp
23     while process_includes_1 $i $o; do
24         mv $o $t
25         i=$t
26     done
27     rm -f $t
28 }
29
30 rm -f $outfile.makefrag
31
32 process_includes $incfile $outfile.inc
33
34 sort -u $outfile.inc > $outfile.inc_s
35 rm -f $outfile.inc
36
37 if test -z "$excfile"; then
38     mv $outfile.inc_s $outfile
39 else
40     process_includes $excfile $outfile.exc
41
42     sort -u $outfile.exc > $outfile.exc_s
43     rm -f $outfile.exc
44
45     sort -m $outfile.inc_s $outfile.exc_s | uniq -u > $outfile
46     rm -f $outfile.inc_s $outfile.exc_s
47 fi
48
49