option_survey.sh revision 148601
1#!/bin/sh 2# This file is in the public domain 3# $FreeBSD: head/tools/tools/build_option_survey/option_survey.sh 148601 2005-07-31 14:16:13Z phk $ 4 5set -e 6 7bw ( ) ( 8 cd ../../.. 9 make -j 4 buildworld \ 10 __MAKE_CONF=${ODIR}/make.conf \ 11 > ${ODIR}/_.bw 2>&1 12 make -j 4 buildkernel \ 13 KERNCONF=GENERIC \ 14 __MAKE_CONF=${ODIR}/make.conf \ 15 > ${ODIR}/_.bk 2>&1 16) 17 18iw ( ) ( 19 dd if=/dev/zero of=${ODIR}/_.i bs=1m count=200 20 mkdir -p ${MNT} 21 MD=`mdconfig -a -t vnode -f ${ODIR}/_.i` 22 trap "umount ${MNT} || true ; mdconfig -d -u $MD" 1 2 15 EXIT 23 newfs -O1 -U -b 4096 -f 512 /dev/$MD 24 mount /dev/${MD} ${MNT} 25 26 cd ../../.. 27 make installworld \ 28 __MAKE_CONF=${ODIR}/make.conf \ 29 DESTDIR=${MNT} \ 30 > ${ODIR}/_.iw 2>&1 31 cd etc 32 make distribution \ 33 __MAKE_CONF=${ODIR}/make.conf \ 34 DESTDIR=${MNT} \ 35 > ${ODIR}/_.etc 2>&1 36 cd .. 37 make installkernel \ 38 KERNCONF=GENERIC \ 39 DESTDIR=${MNT} \ 40 __MAKE_CONF=${ODIR}/make.conf \ 41 > ${ODIR}/_.ik 2>&1 42 43 sync ${MNT} 44 ( cd ${MNT} && mtree -c ) > ${ODIR}/_.mtree 45 ( cd ${MNT} && du ) > ${ODIR}/_.du 46 ( df -i ${MNT} ) > ${ODIR}/_.df 47) 48 49ODIR=/usr/obj/`pwd` 50MNT=${ODIR}/_.mnt 51MAKEOBJDIRPREFIX=$ODIR 52export MAKEOBJDIRPREFIX ODIR MNT 53 54if false ; then 55 if rm -rf ${ODIR} ; then 56 true 57 else 58 chflags -R noschg ${ODIR} 59 rm -rf ${ODIR} 60 fi 61 mkdir -p ${ODIR} 62 63 echo '' > ${ODIR}/make.conf 64 65 bw 66fi 67 68if false ; then 69 rm -rf Tmp 70 71 echo '' > ${ODIR}/make.conf 72 73 if iw ; then 74 m=Tmp/Ref 75 mkdir -p $m 76 cp ${ODIR}/_.df $m 77 cp ${ODIR}/_.mtree $m 78 cp ${ODIR}/_.du $m 79 fi 80 81 cat no_list | while read o 82 do 83 echo "IW $o" 84 echo "$o=YES" > ${ODIR}/make.conf 85 m=Tmp/`md5 < ${ODIR}/make.conf`/iw 86 mkdir -p $m 87 echo $m 88 cp ${ODIR}/make.conf $m 89 if iw ; then 90 cp ${ODIR}/_.df $m 91 cp ${ODIR}/_.mtree $m 92 cp ${ODIR}/_.du $m 93 else 94 cp ${ODIR}/_.iw $m 95 cp ${ODIR}/_.ik $m 96 fi 97 done 98fi 99 100if true ; then 101 cat no_list | while read o 102 do 103 # First build+installworld 104 echo "W $o" 105 echo "$o=YES" > ${ODIR}/make.conf 106 107 m=Tmp/`md5 < ${ODIR}/make.conf`/w 108 mkdir -p $m 109 echo $m 110 cp ${ODIR}/make.conf $m 111 112 if bw ; then 113 true 114 else 115 cp ${ODIR}/_.bw $m || true 116 cp ${ODIR}/_.bk $m || true 117 fi 118 if iw ; then 119 cp ${ODIR}/_.df $m 120 cp ${ODIR}/_.mtree $m 121 cp ${ODIR}/_.du $m 122 else 123 cp ${ODIR}/_.iw $m 124 cp ${ODIR}/_.ik $m 125 fi 126 127 # Then only buildworld 128 echo "BW $o" 129 m=Tmp/`md5 < ${ODIR}/make.conf`/bw 130 mkdir -p $m 131 echo $m 132 cp ${ODIR}/make.conf $m 133 echo '' > ${ODIR}/make.conf 134 if iw ; then 135 cp ${ODIR}/_.df $m 136 cp ${ODIR}/_.mtree $m 137 cp ${ODIR}/_.du $m 138 else 139 cp ${ODIR}/_.iw $m 140 cp ${ODIR}/_.ik $m 141 fi 142 143 144 done 145fi 146