1224ba2bdSOllivier Robert#! /bin/sh 2224ba2bdSOllivier Robert 3*2b15cb3dSCy SchubertIAM=`hostname || uname -n` 4*2b15cb3dSCy SchubertMYNAME=`IFS=. ; set $IAM ; echo $1` 5*2b15cb3dSCy Schubert 6*2b15cb3dSCy Schubertcase "$1" in 7*2b15cb3dSCy Schubert '--one'|'-1') 8*2b15cb3dSCy Schubert shift 9*2b15cb3dSCy Schubert FB_FIRSTONLY=1 10*2b15cb3dSCy Schubert LIST=$MYNAME 11*2b15cb3dSCy Schubert ;; 12*2b15cb3dSCy Schubert *) 13*2b15cb3dSCy Schubert FB_FIRSTONLY=0 14*2b15cb3dSCy Schubertesac 15*2b15cb3dSCy Schubert 16224ba2bdSOllivier RobertBUILD_ARGS="$@" 17224ba2bdSOllivier RobertPARSE="--enable-parse-clocks" 18224ba2bdSOllivier Robert#PARSE= 19ea906c41SOllivier RobertSTD="--enable-simulator" 20224ba2bdSOllivier Robert 21*2b15cb3dSCy Schubertcase "$SIMUL::$FB_FIRSTONLY" in 22*2b15cb3dSCy Schubert ::*) 23*2b15cb3dSCy Schubert PARALLEL_BUILDS=1 24eb6d21b4SOllivier Robert ;; 25*2b15cb3dSCy Schubert *::0) 26*2b15cb3dSCy Schubert PARALLEL_BUILDS=$SIMUL 27*2b15cb3dSCy Schubert ;; 28*2b15cb3dSCy Schubert *) 29*2b15cb3dSCy Schubert PARALLEL_BUILDS=1 30eb6d21b4SOllivier Robertesac 31eb6d21b4SOllivier Robert 32eb6d21b4SOllivier Robertcase "$PARALLEL_BUILDS" in 33eb6d21b4SOllivier Robert 1) ;; 34eb6d21b4SOllivier Robert *) echo Launching $PARALLEL_BUILDS parallel builds on each machine 35eb6d21b4SOllivier Robertesac 36eb6d21b4SOllivier Robert 379c2daa00SOllivier Robert# Backroom: 38eb6d21b4SOllivier Robert# barnstable freebsd-6.1 39eb6d21b4SOllivier Robert# beauregard freebsd-6.0 40eb6d21b4SOllivier Robert# X churchy alpha-dec-osf5.1 41ea906c41SOllivier Robert# deacon sparc-sun-solaris2.10 42eb6d21b4SOllivier Robert# grundoon freebsd-6.2 43ea906c41SOllivier Robert# howland freebsd-6.1 44eb6d21b4SOllivier Robert# o macabre freebsd-6.1-STABLE 45eb6d21b4SOllivier Robert# o mort freebsd-6.1 46ea906c41SOllivier Robert# whimsy sparc-sun-solaris2.10 479c2daa00SOllivier Robert 489c2daa00SOllivier Robert# Campus: 49ea906c41SOllivier Robert# * baldwin sparc-sun-solaris2.10 50ea906c41SOllivier Robert# * bridgeport sparc-sun-solaris2.10 51ea906c41SOllivier Robert# * malarky sparc-sun-solaris2.10 52ea906c41SOllivier Robert# * pogo sparc-sun-solaris2.10 53ea906c41SOllivier Robert# * rackety freebsd-6.1 54224ba2bdSOllivier Robert 55*2b15cb3dSCy Schubertif [ ! -r sntp/libevent/build-aux/config.guess ] ; then 56*2b15cb3dSCy Schubert echo "Error: bootstrap required." 1>&2 && exit 1 57*2b15cb3dSCy Schubertfi 58*2b15cb3dSCy Schubert 59eb6d21b4SOllivier Robert# HMS: we need $PWD because solaris produces /deacon/backroom when 60eb6d21b4SOllivier Robert# we are in /backroom and in general there is no /deacon/backroom. 61ea906c41SOllivier Robertc_d=${PWD:-`pwd`} 62224ba2bdSOllivier Robert 63224ba2bdSOllivier RobertSIG=`perl -e 'print rand'` 64224ba2bdSOllivier Robert 65224ba2bdSOllivier Robertcase "$LIST" in 66*2b15cb3dSCy Schubert '') LIST="pogo" ;; 67224ba2bdSOllivier Robertesac 68224ba2bdSOllivier Robert 69224ba2bdSOllivier Robertfor i in $LIST 70224ba2bdSOllivier Robertdo 71eb6d21b4SOllivier Robert SKIPTHIS=0 72eb6d21b4SOllivier Robert [ -f .buildkey-$i ] && SKIPTHIS=1 73eb6d21b4SOllivier Robert case "$SKIPTHIS" in 74eb6d21b4SOllivier Robert 1) 75eb6d21b4SOllivier Robert echo flock-build running on $i? check LIST, skipping 76eb6d21b4SOllivier Robert ;; 77eb6d21b4SOllivier Robert 0) 78224ba2bdSOllivier Robert echo $i 79eb6d21b4SOllivier Robert echo $SIG > .buildkey-$i 80224ba2bdSOllivier Robert case "1" in 81224ba2bdSOllivier Robert 0) 82ea906c41SOllivier Robert ssh $i "cd $c_d ; ./build $SIG $PARSE $STD $BUILD_ARGS" & 83*2b15cb3dSCy Schubert ssh $i "cd $c_d ; ./build $SIG $PARSE $STD --disable-debugging $BUILD_ARGS" & 84*2b15cb3dSCy Schubert ssh $i "cd $c_d ; ./build $SIG $PARSE $STD --without-crypto --enable-c99-snprintf $BUILD_ARGS" & 85*2b15cb3dSCy Schubert ssh $i "cd $c_d ; ./build $SIG $STD --disable-all-clocks --disable-autokey --without-sntp --disable-thread-support $BUILD_ARGS" & 86224ba2bdSOllivier Robert ;; 87eb6d21b4SOllivier Robert 1) 88*2b15cb3dSCy Schubert cat > .flockbuild-$i-$SIG <<-ENDQUOT 89eb6d21b4SOllivier Robert #!/bin/sh 90eb6d21b4SOllivier Robert 91*2b15cb3dSCy Schubert # script uses job control and expects to be invoked 92*2b15cb3dSCy Schubert # in a ssh session started with the -tt option, 93*2b15cb3dSCy Schubert # which forces a pseudo-tty to be used. 94eb6d21b4SOllivier Robert 95eb6d21b4SOllivier Robert cd $c_d 96eb6d21b4SOllivier Robert COUNT=0 97eb6d21b4SOllivier Robert 98eb6d21b4SOllivier Robert ./build $SIG $PARSE $STD $BUILD_ARGS & 99eb6d21b4SOllivier Robert 100eb6d21b4SOllivier Robert COUNT=\`expr \$COUNT + 1\` 101*2b15cb3dSCy Schubert echo \`date -u '+%H:%M:%S'\` $i started build \$COUNT of 4 102eb6d21b4SOllivier Robert [ 0 -lt \`expr \$COUNT % $PARALLEL_BUILDS\` ] || wait 103eb6d21b4SOllivier Robert 104*2b15cb3dSCy Schubert case $FB_FIRSTONLY in 105*2b15cb3dSCy Schubert '0') 106eb6d21b4SOllivier Robert ./build $SIG $PARSE $STD --disable-debugging $BUILD_ARGS & 107eb6d21b4SOllivier Robert 108eb6d21b4SOllivier Robert COUNT=\`expr \$COUNT + 1\` 109*2b15cb3dSCy Schubert echo \`date -u '+%H:%M:%S'\` $i started build \$COUNT of 4 110eb6d21b4SOllivier Robert [ 0 -lt \`expr \$COUNT % $PARALLEL_BUILDS\` ] || wait 111eb6d21b4SOllivier Robert 112*2b15cb3dSCy Schubert ./build $SIG $PARSE $STD --without-crypto --enable-c99-snprintf $BUILD_ARGS & 113eb6d21b4SOllivier Robert 114eb6d21b4SOllivier Robert COUNT=\`expr \$COUNT + 1\` 115*2b15cb3dSCy Schubert echo \`date -u '+%H:%M:%S'\` $i started build \$COUNT of 4 116eb6d21b4SOllivier Robert [ 0 -lt \`expr \$COUNT % $PARALLEL_BUILDS\` ] || wait 117eb6d21b4SOllivier Robert 118*2b15cb3dSCy Schubert ./build $SIG $STD --disable-all-clocks --disable-autokey --without-sntp --disable-thread-support $BUILD_ARGS & 119eb6d21b4SOllivier Robert 120eb6d21b4SOllivier Robert COUNT=\`expr \$COUNT + 1\` 121*2b15cb3dSCy Schubert echo \`date -u '+%H:%M:%S'\` $i started build \$COUNT of 4 122eb6d21b4SOllivier Robert wait 123*2b15cb3dSCy Schubert esac 124eb6d21b4SOllivier Robert echo \`date -u '+%H:%M:%S'\` $i flock-build $c_d done. 125eb6d21b4SOllivier Robert rm .buildkey-$i 126eb6d21b4SOllivier RobertENDQUOT 127eb6d21b4SOllivier Robert chmod +x .flockbuild-$i-$SIG 128eb6d21b4SOllivier Robert ssh -tt $i "$c_d/.flockbuild-$i-$SIG ; \ 129eb6d21b4SOllivier Robert rm $c_d/.flockbuild-$i-$SIG" 2>/dev/null & 130eb6d21b4SOllivier Robert esac 131224ba2bdSOllivier Robert esac 132224ba2bdSOllivier Robertdone 133eb6d21b4SOllivier Robertecho `date -u '+%H:%M:%S'` flock-build launched 134