]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - tools/tools/build_option_survey/reduce.sh
Add 'contrib/unifdef/' from commit '0da44885831dc0a43c4ca6ff04a2430993cc0a80'
[FreeBSD/FreeBSD.git] / tools / tools / build_option_survey / reduce.sh
1 #!/bin/sh
2 # This file is in the public domain
3
4 set -e
5
6 OPLIST=`sh listallopts.sh`
7
8 ODIR=/usr/obj/`pwd`
9 RDIR=${ODIR}/_.result
10 export ODIR RDIR
11
12
13 compa ( ) (
14         if [ ! -f $1/_.mtree ] ; then
15                 return
16         fi
17         if [ ! -f $2/_.mtree ] ; then
18                 return
19         fi
20         
21         mtree -k uid,gid,mode,nlink,size,link,type,flags \
22             -f ${1}/_.mtree -f $2/_.mtree > $2/_.mtree.all.txt || true
23         grep '^         ' $2/_.mtree.all.txt > $4/$3.mtree.chg.txt || true
24         grep '^[^       ]' $2/_.mtree.all.txt > $4/$3.mtree.sub.txt || true
25         grep '^ [^      ]' $2/_.mtree.all.txt > $4/$3.mtree.add.txt || true
26         a=`wc -l < $4/$3.mtree.add.txt`
27         s=`wc -l < $4/$3.mtree.sub.txt`
28         c=`wc -l < $4/$3.mtree.chg.txt`
29         c=`expr $c / 2 || true`
30
31         br=`awk 'NR == 2 {print $3}' $1/_.df`
32         bt=`awk 'NR == 2 {print $3}' $2/_.df`
33         echo $3 A $a S $s C $c B $bt D `expr $br - $bt`
34 )
35
36 for o in $OPLIST
37 do
38         md=`echo "${o}=foo" | md5`
39         m=${RDIR}/$md
40         if [ ! -d $m ] ; then
41                 continue
42         fi
43         if [ ! -d $m/iw -a ! -d $m/bw -a ! -d $m/w ] ; then
44                 continue
45         fi
46         echo "=== reduce ${o}"
47
48         echo
49         echo -------------------------------------------------------------
50         echo $md
51         cat $m/src.conf
52         echo -------------------------------------------------------------
53         if [ ! -f $m/iw/done ] ; then
54                 echo "IW pending"
55         elif [ ! -f $m/iw/_.success ] ; then
56                 echo "IW failed"
57         fi
58         if [ ! -f $m/bw/done ] ; then
59                 echo "BW pending"
60         elif [ ! -f $m/bw/_.success ] ; then
61                 echo "BW failed"
62         fi
63         if [ ! -f $m/w/done ] ; then
64                 echo "W pending"
65         elif [ ! -f $m/w/_.success ] ; then
66                 echo "W failed"
67         fi
68         (
69         for x in iw bw w
70         do
71                 compa ${RDIR}/Ref/ $m/$x r-$x $m
72         done
73         ) > $m/stats
74         cat $m/stats
75 done
76 echo "== reduce done"