2 # This file is in the public domain
7 OPLIST=`sh listallopts.sh`
17 export ODIR MNT RDIR FDIR
22 SRCCONF=${ODIR}/src.conf __MAKE_CONF=/dev/null \
26 if [ $a -ne 0 ] ; then
29 make -j 4 buildworld \
30 SRCCONF=${ODIR}/src.conf __MAKE_CONF=/dev/null \
34 if [ $a -ne 0 ] ; then
37 make -j 4 buildkernel \
39 SRCCONF=${ODIR}/src.conf __MAKE_CONF=/dev/null \
43 if [ $a -ne 0 ] ; then
50 trap "umount ${MNT} || true" 1 2 15 EXIT
51 newfs -O1 -U -b 4096 -f 512 /dev/md$MDUNIT
53 mount /dev/md${MDUNIT} ${MNT}
57 SRCCONF=${ODIR}/src.conf __MAKE_CONF=/dev/null \
62 if [ $a -ne 0 ] ; then
67 SRCCONF=${ODIR}/src.conf __MAKE_CONF=/dev/null \
72 if [ $a -ne 0 ] ; then
79 SRCCONF=${ODIR}/src.conf __MAKE_CONF=/dev/null \
83 if [ $a -ne 0 ] ; then
88 ( cd ${MNT} && mtree -c ) > ${FDIR}/_.mtree
89 ( cd ${MNT} && du ) > ${FDIR}/_.du
90 ( df -i ${MNT} ) > ${FDIR}/_.df
91 echo success > ${FDIR}/_.success
102 # Clean and recreate the ODIR
105 echo "=== Clean and recreate ${ODIR}"
106 if rm -rf ${ODIR} ; then
109 chflags -R noschg ${ODIR}
112 mkdir -p ${ODIR} ${FDIR} ${MNT}
116 trap "umount ${MNT} || true; mdconfig -d -u $MDUNIT" 1 2 15 EXIT
119 mdconfig -d -u $MDUNIT || true
120 dd if=/dev/zero of=${ODIR}/imgfile bs=1m count=250
121 mdconfig -a -t vnode -f ${ODIR}/imgfile -u $MDUNIT
123 # Build & install the reference world
126 echo "=== Build reference world"
127 echo '' > ${ODIR}/src.conf
128 MAKEOBJDIRPREFIX=$ODIR/_.ref
129 export MAKEOBJDIRPREFIX
131 echo "=== Install reference world"
134 mv ${FDIR}/_.* ${RDIR}/Ref
137 # Parse option list into subdirectories with src.conf files.
140 rm -rf ${RDIR}/[0-9a-f]*
143 echo "${o}=foo" > ${FDIR}/_src.conf
144 m=`md5 < ${FDIR}/_src.conf`
146 mv ${FDIR}/_src.conf ${RDIR}/$m/src.conf
150 # Run through each testtarget in turn
153 for d in ${RDIR}/[0-9a-z]*
155 if [ ! -d $d ] ; then
158 echo '------------------------------------------------'
160 echo '------------------------------------------------'
161 cp $d/src.conf ${ODIR}/src.conf
163 if [ ! -f $d/iw/done ] ; then
164 MAKEOBJDIRPREFIX=$ODIR/_.ref
165 export MAKEOBJDIRPREFIX
166 echo "# BW(ref)+IW(ref) `cat $d/src.conf`"
170 mv ${FDIR}/_.* $d/iw || true
173 if [ ! -f $d/bw/done ] ; then
174 MAKEOBJDIRPREFIX=$ODIR/_.tst
175 export MAKEOBJDIRPREFIX
176 echo "# BW(opt) `cat $d/src.conf`"
180 mv ${FDIR}/_.* $d/bw || true
182 echo "# BW(opt)+IW(opt) `cat $d/src.conf`"
184 mv ${FDIR}/_.* $d/w || true
187 echo "# BW(opt)+IW(ref) `cat $d/src.conf`"
188 echo '' > ${ODIR}/src.conf
190 mv ${FDIR}/_.* $d/bw || true
193 mv ${FDIR}/_.* $d/bw || true
194 touch $d/bw/done $d/w/done