1148601Sphk#!/bin/sh
2148601Sphk# This file is in the public domain
3148601Sphk# $FreeBSD$
4148601Sphk
5157118Sphkset -e
6148601Sphk
7148884Sphksh reduce.sh
8148601Sphk
9157118SphkOPLIST=`sh listallopts.sh`
10148601Sphk
11148884SphkODIR=/usr/obj/`pwd`
12148884SphkRDIR=${ODIR}/_.result
13148884Sphkexport ODIR RDIR
14148601Sphk
15148884Sphktable_td () (
16148601Sphk
17148884Sphk	awk -v R=$1 -v T=$2 -v M=$4 '
18148884Sphk	BEGIN	{
19148884Sphk		t= R "-" T
20148884Sphk	}
21148884Sphk	$1 == t {
22148884Sphk		if ($3 == 0 && $5 == 0 && $7 == 0) {
23148884Sphk			printf "<TD align=center COLSPAN=5>no effect</TD>"
24148884Sphk		} else {
25148884Sphk			if ($3 == 0) {
26148884Sphk				printf "<TD align=right>+%d</TD>", $3
27148884Sphk			} else {
28148884Sphk				printf "<TD align=right>"
29148884Sphk				printf "<A HREF=\"%s/%s.mtree.add.txt\">+%d</A>", M, t, $3
30148884Sphk				printf "</TD>"
31148884Sphk			}
32148884Sphk			if ($5 == 0) {
33148884Sphk				printf "<TD align=right>-%d</TD>", $5
34148884Sphk			} else {
35148884Sphk				printf "<TD align=right>"
36148884Sphk				printf "<A HREF=\"%s/%s.mtree.sub.txt\">-%d</A>", M, t, $5
37148884Sphk				printf "</TD>"
38148884Sphk			}
39148884Sphk			if ($7 == 0) {
40148884Sphk				printf "<TD align=right>*%d</TD>", $7
41148884Sphk			} else {
42148884Sphk				printf "<TD align=right>"
43148884Sphk				printf "<A HREF=\"%s/%s.mtree.chg.txt\">*%d</A>", M, t, $7
44148884Sphk				printf "</TD>"
45148884Sphk			}
46148884Sphk			printf "<TD align=right>%d</TD>", $9
47148884Sphk			printf "<TD align=right>%d</TD>", -$11
48148884Sphk		}
49148884Sphk		printf "\n"
50148884Sphk		d = 1
51148884Sphk		}
52148884Sphk	END	{
53148884Sphk		if (d != 1) {
54148884Sphk			printf "<TD COLSPAN=5></TD>"
55148884Sphk		}
56148884Sphk	}
57148884Sphk	' $3/stats
58148884Sphk	mkdir -p $HDIR/$4
59157118Sphk	cp $3/r*.txt $HDIR/$4 || true
60148884Sphk)
61148601Sphk
62148884SphkHDIR=${ODIR}/HTML
63148884Sphkrm -rf ${HDIR}
64148884Sphkmkdir -p ${HDIR}
65148884SphkH=${HDIR}/index.html
66148884Sphk
67157118Sphkecho '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
68157118Sphk<HTML>' > $H
69148884Sphk
70157118Sphkecho '<HEAD>
71157118Sphk<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
72157118Sphk<TITLE>FreeBSD Build Options Survey</TITLE>
73157118Sphk</HEAD>
74157118Sphk<BODY bgcolor="#FFFFFF">
75157118Sphk' >> $H
76148601Sphk
77157118Sphkecho '
78157118Sphk<H2>The table is explained at the bottom</H2>
79157118Sphk<HR>
80157118Sphk' >> $H
81157118Sphk
82157118Sphkecho '<TABLE  border="1" cellspacing="0">' >> $H
83157118Sphk
84148884Sphkecho "<TR>" >> $H
85157118Sphkecho "<TH ROWSPAN=2>src.conf</TH>" >> $H
86157118Sphkecho "<TH ROWSPAN=2>MK_FOO</TH>" >> $H
87157118Sphkecho "<TH ROWSPAN=2></TH>" >> $H
88148884Sphkecho "<TH COLSPAN=5>BuildWorld</TH>" >> $H
89157118Sphkecho "<TH ROWSPAN=2></TH>" >> $H
90148884Sphkecho "<TH COLSPAN=5>InstallWorld</TH>" >> $H
91157118Sphkecho "<TH ROWSPAN=2></TH>" >> $H
92148884Sphkecho "<TH COLSPAN=5>World</TH>" >> $H
93148884Sphkecho "</TR>" >> $H
94148884Sphk
95148884Sphkecho "<TR>" >> $H
96148884Sphkfor i in bw iw w
97148601Sphkdo
98148884Sphk	echo "<TH>A</TH>" >> $H
99148884Sphk	echo "<TH>D</TH>" >> $H
100148884Sphk	echo "<TH>C</TH>" >> $H
101148884Sphk	echo "<TH>KB</TH>" >> $H
102148884Sphk	echo "<TH>Delta</TH>" >> $H
103148884Sphkdone
104148884Sphkecho "</TR>" >> $H
105148601Sphk
106157118Sphkmajcol ( ) (
107157118Sphk	echo "<TD></TD>" >> $H
108157118Sphk	if [ ! -f $3/$1/done ] ; then
109157118Sphk		echo "<TD align=center COLSPAN=5>no data yet</TD>" >> $H
110157118Sphk	elif [ -f $3/$1/_.success ] ; then
111157118Sphk		table_td $2 $1 $3 $4 >> $H
112157118Sphk	else
113157118Sphk		echo "<TD align=center COLSPAN=5>failed</TD>" >> $H
114157118Sphk	fi
115157118Sphk)
116157118Sphk
117157118Sphk
118157118Sphkfor o in $OPLIST
119148884Sphkdo
120157118Sphk	md=`echo "${o}=foo" | md5`
121148884Sphk	m=${RDIR}/$md
122148884Sphk	if [ ! -d $m ] ; then
123148884Sphk		continue
124148884Sphk	fi
125148884Sphk	if [ ! -f $m/stats ] ; then
126148884Sphk		continue
127148884Sphk	fi
128157118Sphk	echo "=== mkhtml ${d}_${o}"
129148601Sphk
130148884Sphk	echo "<TR>" >> $H
131148884Sphk	echo "<TD><PRE>" >> $H
132157118Sphk	cat $m/src.conf >> $H
133148884Sphk	echo "</PRE></TD>" >> $H
134157118Sphk	echo "<TD><PRE>" >> $H
135157132Sphk	if [ -f $m/bw/_.sc ] ; then
136157132Sphk		comm -13 ${RDIR}/Ref/_.sc $m/bw/_.sc >> $H
137148884Sphk	fi
138157118Sphk	echo "</PRE></TD>" >> $H
139157118Sphk
140157118Sphk	majcol bw r $m $md
141157118Sphk	majcol iw r $m $md
142157118Sphk	majcol w  r $m $md
143148601Sphk	echo "</TR>" >> $H
144148601Sphkdone
145148884Sphkecho "</TABLE>" >> $H
146157118Sphkecho '
147157118Sphk<HR>
148157118Sphk<H2>How to read this table</H2>
149157118Sphk<P>
150157118SphkThe table has five major columns.
151157118Sphk
152157118Sphk<OL>
153157118Sphk<LI><P><B>src.conf</B></P>
154157118Sphk<P>The name of the option being tested</P>
155157118Sphk<P>
156157118SphkAll options are tested both in their WITH_FOO and WITHOUT_FOO variants
157157118Sphkbut if the option has no effect (ie: is the default) it will not appear
158157118Sphkin the table
159157118Sphk</P>
160157118Sphk</LI>
161157118Sphk
162157118Sphk<LI><P><B>MK_FOO</B></P>
163157118Sphk<P>Internal build flags affected by this option </P>
164157118Sphk</LI>
165157118Sphk
166157118Sphk<LI><P><B>Buildworld</B></P>
167157118Sphk<P>What happens when the option is given to buildworld but not installworld</P>
168157118Sphk<PRE>Ie:
169157118Sphk	make buildworld WITH_FOO=yes
170157118Sphk	make installworld 
171157118Sphk</PRE>
172157118Sphk</LI>
173157118Sphk
174157118Sphk<LI><P><B>Installworld</B></P>
175157118Sphk<P>What happens when the option is given to installworld but not buildworld</P>
176157118Sphk<PRE>Ie:
177157118Sphk	make buildworld 
178157118Sphk	make installworld WITH_FOO=yes
179157118Sphk</PRE>
180157118Sphk</LI>
181157118Sphk
182157118Sphk<LI><P><B>World</B></P>
183157118Sphk<P>What happens when the option is given to both buildworld and installworld</P>
184157118Sphk<PRE>Ie:
185157118Sphk	make buildworld WITH_FOO=yes
186157118Sphk	make installworld WITH_FOO=yes
187157118Sphk</PRE>
188157118Sphk</LI>
189157118Sphk</OL>
190157118Sphk
191157118Sphk<P>Inside each of the last three major columns there are five subcolumns</P>
192157118Sphk<OL>
193157118Sphk<LI><P><B>A</B></P>
194157118Sphk<P>Number of added files/directories (relative to the option not be given</P>
195157118Sphk<P>If non-zero, the number links to a list of the added files/directories</P>
196157118Sphk</LI>
197157118Sphk<LI><P><B>D</B></P>
198157118Sphk<P>Number of deleted files/directories (relative to the option not be given</P>
199157118Sphk<P>If non-zero, the number links to a list of the files not installed files/directories</P>
200157118Sphk</LI>
201157118Sphk<LI><P><B>C</B></P>
202157118Sphk<P>Number of changed files/directories (relative to the option not be given</P>
203157118Sphk<P>If non-zero, the number links to a list of the files/directories which are differnet (two lines each)</P>
204157118Sphk</LI>
205157118Sphk<LI><P><B>KB</B></P>
206157118Sphk<P>Size of installed operating system in kilobytes</P>
207157118Sphk<LI><P><B>Delta</B></P>
208157118Sphk<P>Size change in kilobytes relative to the option not be given</P>
209157118Sphk</LI>
210157118Sphk</OL>
211157118Sphk
212157118Sphk<HR>' >> $H
213157118Sphkecho '
214157118Sphk<p>
215157118Sphk    <a href="http://validator.w3.org/check?uri=referer"><img
216157118Sphk        src="http://www.w3.org/Icons/valid-html401"
217157118Sphk        alt="Valid HTML 4.01 Transitional" height="31" width="88"></a>
218157118Sphk</p>
219157118Sphk
220157118Sphk' >> $H
221148884Sphkecho "</HTML>" >> $H
222148601Sphk
223157118Sphkecho "rsync phk"
224148884Sphkrsync -r $HDIR/. phk@phk:www/misc/build_options
225