1148601Sphk#!/bin/sh 2148601Sphk# This file is in the public domain 3148601Sphk# $FreeBSD$ 4148601Sphk 5157118Sphkset -ex 6148884Sphk 7157118SphkOPLIST=`sh listallopts.sh` 8148884Sphk 9157118SphkMDUNIT=47 10157118Sphkexport MDUNIT 11148601Sphk 12157118SphkODIR=/usr/obj/`pwd` 13157118SphkFDIR=${ODIR}/files 14157118SphkMNT=${ODIR}/_.mnt 15157118SphkRDIR=${ODIR}/_.result 16157118Sphk 17157118Sphkexport ODIR MNT RDIR FDIR 18157118Sphk 19148601Sphkbw ( ) ( 20148601Sphk cd ../../.. 21157118Sphk make showconfig \ 22157118Sphk SRCCONF=${ODIR}/src.conf __MAKE_CONF=/dev/null \ 23157118Sphk > ${FDIR}/_.sc 2>&1 24157118Sphk a=$? 25157118Sphk echo retval $a 26157118Sphk if [ $a -ne 0 ] ; then 27157118Sphk exit 1 28157118Sphk fi 29148601Sphk make -j 4 buildworld \ 30157118Sphk SRCCONF=${ODIR}/src.conf __MAKE_CONF=/dev/null \ 31157118Sphk > ${FDIR}/_.bw 2>&1 32157118Sphk a=$? 33157118Sphk echo retval $a 34157118Sphk if [ $a -ne 0 ] ; then 35157118Sphk exit 1 36157118Sphk fi 37148601Sphk make -j 4 buildkernel \ 38148601Sphk KERNCONF=GENERIC \ 39157118Sphk SRCCONF=${ODIR}/src.conf __MAKE_CONF=/dev/null \ 40157118Sphk > ${FDIR}/_.bk 2>&1 41157118Sphk a=$? 42157118Sphk echo retval $a 43157118Sphk if [ $a -ne 0 ] ; then 44157118Sphk exit 1 45157118Sphk fi 46157118Sphk exit 0 47148601Sphk) 48148601Sphk 49148601Sphkiw ( ) ( 50157118Sphk trap "umount ${MNT} || true" 1 2 15 EXIT 51157118Sphk newfs -O1 -U -b 4096 -f 512 /dev/md$MDUNIT 52148601Sphk mkdir -p ${MNT} 53157118Sphk mount /dev/md${MDUNIT} ${MNT} 54148601Sphk 55148601Sphk cd ../../.. 56148601Sphk make installworld \ 57157118Sphk SRCCONF=${ODIR}/src.conf __MAKE_CONF=/dev/null \ 58148601Sphk DESTDIR=${MNT} \ 59157118Sphk > ${FDIR}/_.iw 2>&1 60157118Sphk a=$? 61157118Sphk echo retval $a 62157118Sphk if [ $a -ne 0 ] ; then 63157118Sphk exit 1 64157118Sphk fi 65148601Sphk cd etc 66148601Sphk make distribution \ 67157118Sphk SRCCONF=${ODIR}/src.conf __MAKE_CONF=/dev/null \ 68148601Sphk DESTDIR=${MNT} \ 69157118Sphk > ${FDIR}/_.etc 2>&1 70157118Sphk a=$? 71157118Sphk echo retval $a 72157118Sphk if [ $a -ne 0 ] ; then 73157118Sphk exit 1 74157118Sphk fi 75148601Sphk cd .. 76148601Sphk make installkernel \ 77148601Sphk KERNCONF=GENERIC \ 78148601Sphk DESTDIR=${MNT} \ 79157118Sphk SRCCONF=${ODIR}/src.conf __MAKE_CONF=/dev/null \ 80157118Sphk > ${FDIR}/_.ik 2>&1 81157118Sphk a=$? 82157118Sphk echo retval $a 83157118Sphk if [ $a -ne 0 ] ; then 84157118Sphk exit 1 85157118Sphk fi 86148601Sphk 87148601Sphk sync ${MNT} 88157118Sphk ( cd ${MNT} && mtree -c ) > ${FDIR}/_.mtree 89157118Sphk ( cd ${MNT} && du ) > ${FDIR}/_.du 90157118Sphk ( df -i ${MNT} ) > ${FDIR}/_.df 91157118Sphk echo success > ${FDIR}/_.success 92157118Sphk sync 93157118Sphk sleep 1 94157118Sphk sync 95157118Sphk sleep 1 96157118Sphk trap "" 1 2 15 EXIT 97157118Sphk umount ${MNT} 98157118Sphk echo "iw done" 99148601Sphk) 100148601Sphk 101148601Sphk 102157118Sphk# Clean and recreate the ODIR 103148884Sphk 104157118Sphkif true ; then 105157118Sphk echo "=== Clean and recreate ${ODIR}" 106148601Sphk if rm -rf ${ODIR} ; then 107148601Sphk true 108148601Sphk else 109148601Sphk chflags -R noschg ${ODIR} 110148601Sphk rm -rf ${ODIR} 111148601Sphk fi 112157118Sphk mkdir -p ${ODIR} ${FDIR} ${MNT} 113148601Sphk 114148601Sphkfi 115148601Sphk 116157118Sphktrap "umount ${MNT} || true; mdconfig -d -u $MDUNIT" 1 2 15 EXIT 117148601Sphk 118157118Sphkumount $MNT || true 119157118Sphkmdconfig -d -u $MDUNIT || true 120157118Sphkdd if=/dev/zero of=${ODIR}/imgfile bs=1m count=250 121157118Sphkmdconfig -a -t vnode -f ${ODIR}/imgfile -u $MDUNIT 122157118Sphk 123157118Sphk# Build & install the reference world 124157118Sphk 125157118Sphkif true ; then 126157118Sphk echo "=== Build reference world" 127157118Sphk echo '' > ${ODIR}/src.conf 128148884Sphk MAKEOBJDIRPREFIX=$ODIR/_.ref 129148884Sphk export MAKEOBJDIRPREFIX 130148884Sphk bw 131157118Sphk echo "=== Install reference world" 132157118Sphk mkdir -p ${RDIR}/Ref 133157118Sphk iw 134157118Sphk mv ${FDIR}/_.* ${RDIR}/Ref 135148884Sphkfi 136148601Sphk 137157118Sphk# Parse option list into subdirectories with src.conf files. 138148601Sphk 139157118Sphkif true ; then 140157118Sphk rm -rf ${RDIR}/[0-9a-f]* 141157118Sphk for o in $OPLIST 142148601Sphk do 143157118Sphk echo "${o}=foo" > ${FDIR}/_src.conf 144157118Sphk m=`md5 < ${FDIR}/_src.conf` 145148884Sphk mkdir -p ${RDIR}/$m 146157118Sphk mv ${FDIR}/_src.conf ${RDIR}/$m/src.conf 147148601Sphk done 148148601Sphkfi 149148601Sphk 150148884Sphk# Run through each testtarget in turn 151148884Sphk 152148601Sphkif true ; then 153148884Sphk for d in ${RDIR}/[0-9a-z]* 154148601Sphk do 155148884Sphk if [ ! -d $d ] ; then 156148884Sphk continue; 157148884Sphk fi 158148884Sphk echo '------------------------------------------------' 159157118Sphk cat $d/src.conf 160148884Sphk echo '------------------------------------------------' 161157118Sphk cp $d/src.conf ${ODIR}/src.conf 162148601Sphk 163148884Sphk if [ ! -f $d/iw/done ] ; then 164157118Sphk MAKEOBJDIRPREFIX=$ODIR/_.ref 165157118Sphk export MAKEOBJDIRPREFIX 166157118Sphk echo "# BW(ref)+IW(ref) `cat $d/src.conf`" 167148884Sphk rm -rf $d/iw 168148884Sphk mkdir -p $d/iw 169157118Sphk iw || true 170157118Sphk mv ${FDIR}/_.* $d/iw || true 171148884Sphk touch $d/iw/done 172148601Sphk fi 173148884Sphk if [ ! -f $d/bw/done ] ; then 174148884Sphk MAKEOBJDIRPREFIX=$ODIR/_.tst 175148884Sphk export MAKEOBJDIRPREFIX 176157118Sphk echo "# BW(opt) `cat $d/src.conf`" 177157118Sphk rm -rf $d/w $d/bw 178157118Sphk mkdir -p $d/w $d/bw 179148884Sphk if bw ; then 180157118Sphk mv ${FDIR}/_.* $d/bw || true 181157118Sphk 182157118Sphk echo "# BW(opt)+IW(opt) `cat $d/src.conf`" 183157118Sphk iw || true 184157118Sphk mv ${FDIR}/_.* $d/w || true 185148884Sphk touch $d/w/done 186157118Sphk 187157118Sphk echo "# BW(opt)+IW(ref) `cat $d/src.conf`" 188157118Sphk echo '' > ${ODIR}/src.conf 189157118Sphk iw || true 190157118Sphk mv ${FDIR}/_.* $d/bw || true 191148884Sphk touch $d/bw/done 192148884Sphk else 193157118Sphk mv ${FDIR}/_.* $d/bw || true 194157118Sphk touch $d/bw/done $d/w/done 195148884Sphk fi 196148601Sphk fi 197148601Sphk done 198148601Sphkfi 199