1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
|
#! /bin/sh
IAM=`hostname || uname -n`
MYNAME=`IFS=. ; set $IAM ; echo $1`
case "$1" in
'--one'|'-1')
shift
FB_FIRSTONLY=1
LIST=$MYNAME
;;
*)
FB_FIRSTONLY=0
esac
BUILD_ARGS="$@"
PARSE="--enable-parse-clocks"
#PARSE=
STD="--enable-simulator"
case "$SIMUL::$FB_FIRSTONLY" in
::*)
PARALLEL_BUILDS=1
;;
*::0)
PARALLEL_BUILDS=$SIMUL
;;
*)
PARALLEL_BUILDS=1
esac
case "$PARALLEL_BUILDS" in
1) ;;
*) echo Launching $PARALLEL_BUILDS parallel builds on each machine
esac
# Backroom:
# barnstable freebsd-6.1
# beauregard freebsd-6.0
# X churchy alpha-dec-osf5.1
# deacon sparc-sun-solaris2.10
# grundoon freebsd-6.2
# howland freebsd-6.1
# o macabre freebsd-6.1-STABLE
# o mort freebsd-6.1
# whimsy sparc-sun-solaris2.10
# Campus:
# * baldwin sparc-sun-solaris2.10
# * bridgeport sparc-sun-solaris2.10
# * malarky sparc-sun-solaris2.10
# * pogo sparc-sun-solaris2.10
# * rackety freebsd-6.1
if [ ! -r sntp/libevent/build-aux/config.guess ] ; then
echo "Error: bootstrap required." 1>&2 && exit 1
fi
# HMS: we need $PWD because solaris produces /deacon/backroom when
# we are in /backroom and in general there is no /deacon/backroom.
c_d=${PWD:-`pwd`}
SIG=`perl -e 'print rand'`
case "$LIST" in
'') LIST="pogo" ;;
esac
for i in $LIST
do
SKIPTHIS=0
[ -f .buildkey-$i ] && SKIPTHIS=1
case "$SKIPTHIS" in
1)
echo flock-build running on $i? check LIST, skipping
;;
0)
echo $i
echo $SIG > .buildkey-$i
case "1" in
0)
ssh $i "cd $c_d ; ./build $SIG $PARSE $STD $BUILD_ARGS" &
ssh $i "cd $c_d ; ./build $SIG $PARSE $STD --disable-debugging $BUILD_ARGS" &
ssh $i "cd $c_d ; ./build $SIG $PARSE $STD --without-crypto --enable-c99-snprintf $BUILD_ARGS" &
ssh $i "cd $c_d ; ./build $SIG $STD --disable-all-clocks --disable-autokey --without-sntp --disable-thread-support $BUILD_ARGS" &
;;
1)
cat > .flockbuild-$i-$SIG <<-ENDQUOT
#!/bin/sh
# script uses job control and expects to be invoked
# in a ssh session started with the -tt option,
# which forces a pseudo-tty to be used.
cd $c_d
COUNT=0
./build $SIG $PARSE $STD $BUILD_ARGS &
COUNT=\`expr \$COUNT + 1\`
echo \`date -u '+%H:%M:%S'\` $i started build \$COUNT of 4
[ 0 -lt \`expr \$COUNT % $PARALLEL_BUILDS\` ] || wait
case $FB_FIRSTONLY in
'0')
./build $SIG $PARSE $STD --disable-debugging $BUILD_ARGS &
COUNT=\`expr \$COUNT + 1\`
echo \`date -u '+%H:%M:%S'\` $i started build \$COUNT of 4
[ 0 -lt \`expr \$COUNT % $PARALLEL_BUILDS\` ] || wait
./build $SIG $PARSE $STD --without-crypto --enable-c99-snprintf $BUILD_ARGS &
COUNT=\`expr \$COUNT + 1\`
echo \`date -u '+%H:%M:%S'\` $i started build \$COUNT of 4
[ 0 -lt \`expr \$COUNT % $PARALLEL_BUILDS\` ] || wait
./build $SIG $STD --disable-all-clocks --disable-autokey --without-sntp --disable-thread-support $BUILD_ARGS &
COUNT=\`expr \$COUNT + 1\`
echo \`date -u '+%H:%M:%S'\` $i started build \$COUNT of 4
wait
esac
echo \`date -u '+%H:%M:%S'\` $i flock-build $c_d done.
rm .buildkey-$i
ENDQUOT
chmod +x .flockbuild-$i-$SIG
ssh -tt $i "$c_d/.flockbuild-$i-$SIG ; \
rm $c_d/.flockbuild-$i-$SIG" 2>/dev/null &
esac
esac
done
echo `date -u '+%H:%M:%S'` flock-build launched
|