1224ba2bdSOllivier Robert#! /bin/sh 2224ba2bdSOllivier Robert 3224ba2bdSOllivier RobertBUILD_ARGS="$@" 4224ba2bdSOllivier RobertPARSE="--enable-parse-clocks" 5224ba2bdSOllivier Robert#PARSE= 6ea906c41SOllivier RobertSTD="--enable-simulator" 7224ba2bdSOllivier Robert 8eb6d21b4SOllivier Robertcase "$SIMUL" in 9eb6d21b4SOllivier Robert '') PARALLEL_BUILDS=1 10eb6d21b4SOllivier Robert ;; 11eb6d21b4SOllivier Robert *) PARALLEL_BUILDS=$SIMUL 12eb6d21b4SOllivier Robertesac 13eb6d21b4SOllivier Robert 14eb6d21b4SOllivier Robertcase "$PARALLEL_BUILDS" in 15eb6d21b4SOllivier Robert 1) ;; 16eb6d21b4SOllivier Robert *) echo Launching $PARALLEL_BUILDS parallel builds on each machine 17eb6d21b4SOllivier Robertesac 18eb6d21b4SOllivier Robert 199c2daa00SOllivier Robert# Backroom: 20eb6d21b4SOllivier Robert# barnstable freebsd-6.1 21eb6d21b4SOllivier Robert# beauregard freebsd-6.0 22eb6d21b4SOllivier Robert# X churchy alpha-dec-osf5.1 23ea906c41SOllivier Robert# deacon sparc-sun-solaris2.10 24eb6d21b4SOllivier Robert# grundoon freebsd-6.2 25ea906c41SOllivier Robert# howland freebsd-6.1 26eb6d21b4SOllivier Robert# o macabre freebsd-6.1-STABLE 27eb6d21b4SOllivier Robert# o mort freebsd-6.1 28ea906c41SOllivier Robert# whimsy sparc-sun-solaris2.10 299c2daa00SOllivier Robert 309c2daa00SOllivier Robert# Campus: 31ea906c41SOllivier Robert# * baldwin sparc-sun-solaris2.10 32ea906c41SOllivier Robert# * bridgeport sparc-sun-solaris2.10 33ea906c41SOllivier Robert# * cowbird freebsd-6.1 34ea906c41SOllivier Robert# * malarky sparc-sun-solaris2.10 35ea906c41SOllivier Robert# * pogo sparc-sun-solaris2.10 36ea906c41SOllivier Robert# * rackety freebsd-6.1 37224ba2bdSOllivier Robert 38eb6d21b4SOllivier Robert# HMS: we need $PWD because solaris produces /deacon/backroom when 39eb6d21b4SOllivier Robert# we are in /backroom and in general there is no /deacon/backroom. 40ea906c41SOllivier Robertc_d=${PWD:-`pwd`} 41224ba2bdSOllivier Robert 42224ba2bdSOllivier RobertSIG=`perl -e 'print rand'` 43224ba2bdSOllivier Robert 44224ba2bdSOllivier Robertcase "$LIST" in 45ea906c41SOllivier Robert '') LIST="baldwin bridgeport cowbird malarky pogo rackety" ;; 46224ba2bdSOllivier Robertesac 47224ba2bdSOllivier Robert 48224ba2bdSOllivier Robertfor i in $LIST 49224ba2bdSOllivier Robertdo 50eb6d21b4SOllivier Robert SKIPTHIS=0 51eb6d21b4SOllivier Robert [ -f .buildkey-$i ] && SKIPTHIS=1 52eb6d21b4SOllivier Robert case "$SKIPTHIS" in 53eb6d21b4SOllivier Robert 1) 54eb6d21b4SOllivier Robert echo flock-build running on $i? check LIST, skipping 55eb6d21b4SOllivier Robert ;; 56eb6d21b4SOllivier Robert 0) 57224ba2bdSOllivier Robert echo $i 58eb6d21b4SOllivier Robert echo $SIG > .buildkey-$i 59224ba2bdSOllivier Robert case "1" in 60224ba2bdSOllivier Robert 0) 61ea906c41SOllivier Robert ssh $i "cd $c_d ; ./build $SIG $PARSE $STD $BUILD_ARGS" & 62ea906c41SOllivier Robert ssh $i "cd $c_d ; ./build $SIG $PARSE $STD --without-crypto $BUILD_ARGS" & 63ea906c41SOllivier Robert ssh $i "cd $c_d ; ./build $SIG $STD --disable-all-clocks $BUILD_ARGS" & 64224ba2bdSOllivier Robert ;; 65eb6d21b4SOllivier Robert 1) 66eb6d21b4SOllivier Robert cat > .flockbuild-$i-$SIG <<ENDQUOT 67eb6d21b4SOllivier Robert#!/bin/sh 68eb6d21b4SOllivier Robert 69eb6d21b4SOllivier Robert# depends on job control and expects to be invoked under ssh -tt 70eb6d21b4SOllivier Robert 71eb6d21b4SOllivier Robertcd $c_d 72eb6d21b4SOllivier RobertCOUNT=0 73eb6d21b4SOllivier Robert 74eb6d21b4SOllivier Robert./build $SIG $PARSE $STD $BUILD_ARGS & 75eb6d21b4SOllivier Robert 76eb6d21b4SOllivier RobertCOUNT=\`expr \$COUNT + 1\` 77eb6d21b4SOllivier Robertecho $i started build \$COUNT of 4 78eb6d21b4SOllivier Robert[ 0 -lt \`expr \$COUNT % $PARALLEL_BUILDS\` ] || wait 79eb6d21b4SOllivier Robert 80eb6d21b4SOllivier Robert./build $SIG $PARSE $STD --disable-debugging $BUILD_ARGS & 81eb6d21b4SOllivier Robert 82eb6d21b4SOllivier RobertCOUNT=\`expr \$COUNT + 1\` 83eb6d21b4SOllivier Robertecho $i started build \$COUNT of 4 84eb6d21b4SOllivier Robert[ 0 -lt \`expr \$COUNT % $PARALLEL_BUILDS\` ] || wait 85eb6d21b4SOllivier Robert 86eb6d21b4SOllivier Robert./build $SIG $PARSE $STD --without-crypto $BUILD_ARGS & 87eb6d21b4SOllivier Robert 88eb6d21b4SOllivier RobertCOUNT=\`expr \$COUNT + 1\` 89eb6d21b4SOllivier Robertecho $i started build \$COUNT of 4 90eb6d21b4SOllivier Robert[ 0 -lt \`expr \$COUNT % $PARALLEL_BUILDS\` ] || wait 91eb6d21b4SOllivier Robert 92eb6d21b4SOllivier Robert./build $SIG $STD --disable-all-clocks $BUILD_ARGS & 93eb6d21b4SOllivier Robert 94eb6d21b4SOllivier RobertCOUNT=\`expr \$COUNT + 1\` 95eb6d21b4SOllivier Robertecho $i started build \$COUNT of 4 96eb6d21b4SOllivier Robertwait 97eb6d21b4SOllivier Robertecho \`date -u '+%H:%M:%S'\` $i flock-build $c_d done. 98eb6d21b4SOllivier Robertrm .buildkey-$i 99eb6d21b4SOllivier RobertENDQUOT 100eb6d21b4SOllivier Robert chmod +x .flockbuild-$i-$SIG 101eb6d21b4SOllivier Robert ssh -tt $i "$c_d/.flockbuild-$i-$SIG ; \ 102eb6d21b4SOllivier Robert rm $c_d/.flockbuild-$i-$SIG" 2>/dev/null & 103eb6d21b4SOllivier Robert esac 104224ba2bdSOllivier Robert esac 105224ba2bdSOllivier Robertdone 106eb6d21b4SOllivier Robertecho `date -u '+%H:%M:%S'` flock-build launched 107