1224ba2bdSOllivier Robert#! /bin/sh 2224ba2bdSOllivier Robert 32b15cb3dSCy SchubertIAM=`hostname || uname -n` 42b15cb3dSCy SchubertMYNAME=`IFS=. ; set $IAM ; echo $1` 52b15cb3dSCy Schubert 62b15cb3dSCy Schubertcase "$1" in 72b15cb3dSCy Schubert '--one'|'-1') 82b15cb3dSCy Schubert shift 92b15cb3dSCy Schubert FB_FIRSTONLY=1 102b15cb3dSCy Schubert LIST=$MYNAME 112b15cb3dSCy Schubert ;; 122b15cb3dSCy Schubert *) 132b15cb3dSCy Schubert FB_FIRSTONLY=0 142b15cb3dSCy Schubertesac 152b15cb3dSCy Schubert 16224ba2bdSOllivier RobertBUILD_ARGS="$@" 17224ba2bdSOllivier RobertPARSE="--enable-parse-clocks" 18224ba2bdSOllivier Robert#PARSE= 19ea906c41SOllivier RobertSTD="--enable-simulator" 20224ba2bdSOllivier Robert 212b15cb3dSCy Schubertcase "$SIMUL::$FB_FIRSTONLY" in 222b15cb3dSCy Schubert ::*) 232b15cb3dSCy Schubert PARALLEL_BUILDS=1 24eb6d21b4SOllivier Robert ;; 252b15cb3dSCy Schubert *::0) 262b15cb3dSCy Schubert PARALLEL_BUILDS=$SIMUL 272b15cb3dSCy Schubert ;; 282b15cb3dSCy Schubert *) 292b15cb3dSCy 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# Campus: 38ea906c41SOllivier Robert# * baldwin sparc-sun-solaris2.10 39ea906c41SOllivier Robert# * bridgeport sparc-sun-solaris2.10 40ea906c41SOllivier Robert# * pogo sparc-sun-solaris2.10 41*f5f40dd6SCy Schubert# * rackety sparc-sun-solaris2.10 42224ba2bdSOllivier Robert 432b15cb3dSCy Schubertif [ ! -r sntp/libevent/build-aux/config.guess ] ; then 442b15cb3dSCy Schubert echo "Error: bootstrap required." 1>&2 && exit 1 452b15cb3dSCy Schubertfi 462b15cb3dSCy Schubert 47eb6d21b4SOllivier Robert# HMS: we need $PWD because solaris produces /deacon/backroom when 48eb6d21b4SOllivier Robert# we are in /backroom and in general there is no /deacon/backroom. 49ea906c41SOllivier Robertc_d=${PWD:-`pwd`} 50224ba2bdSOllivier Robert 51224ba2bdSOllivier RobertSIG=`perl -e 'print rand'` 52224ba2bdSOllivier Robert 53224ba2bdSOllivier Robertcase "$LIST" in 542b15cb3dSCy Schubert '') LIST="pogo" ;; 55224ba2bdSOllivier Robertesac 56224ba2bdSOllivier Robert 57224ba2bdSOllivier Robertfor i in $LIST 58224ba2bdSOllivier Robertdo 59eb6d21b4SOllivier Robert SKIPTHIS=0 60eb6d21b4SOllivier Robert [ -f .buildkey-$i ] && SKIPTHIS=1 61eb6d21b4SOllivier Robert case "$SKIPTHIS" in 62eb6d21b4SOllivier Robert 1) 63eb6d21b4SOllivier Robert echo flock-build running on $i? check LIST, skipping 64eb6d21b4SOllivier Robert ;; 65eb6d21b4SOllivier Robert 0) 66224ba2bdSOllivier Robert echo $i 67eb6d21b4SOllivier Robert echo $SIG > .buildkey-$i 68224ba2bdSOllivier Robert case "1" in 69224ba2bdSOllivier Robert 0) 70ea906c41SOllivier Robert ssh $i "cd $c_d ; ./build $SIG $PARSE $STD $BUILD_ARGS" & 71*f5f40dd6SCy Schubert ssh $i "cd $c_d ; ./build $SIG $PARSE $STD --disable-debugging --disable-saveconfig $BUILD_ARGS" & 72*f5f40dd6SCy Schubert ssh $i "cd $c_d ; ./build $SIG $PARSE $STD --without-crypto --enable-c99-snprintf --enable-leap-smear $BUILD_ARGS" & 732b15cb3dSCy Schubert ssh $i "cd $c_d ; ./build $SIG $STD --disable-all-clocks --disable-autokey --without-sntp --disable-thread-support $BUILD_ARGS" & 74224ba2bdSOllivier Robert ;; 75eb6d21b4SOllivier Robert 1) 762b15cb3dSCy Schubert cat > .flockbuild-$i-$SIG <<-ENDQUOT 77eb6d21b4SOllivier Robert #!/bin/sh 78eb6d21b4SOllivier Robert 792b15cb3dSCy Schubert # script uses job control and expects to be invoked 802b15cb3dSCy Schubert # in a ssh session started with the -tt option, 812b15cb3dSCy Schubert # which forces a pseudo-tty to be used. 82eb6d21b4SOllivier Robert 83eb6d21b4SOllivier Robert cd $c_d 84eb6d21b4SOllivier Robert COUNT=0 85eb6d21b4SOllivier Robert 86eb6d21b4SOllivier Robert ./build $SIG $PARSE $STD $BUILD_ARGS & 87eb6d21b4SOllivier Robert 88eb6d21b4SOllivier Robert COUNT=\`expr \$COUNT + 1\` 892b15cb3dSCy Schubert echo \`date -u '+%H:%M:%S'\` $i started build \$COUNT of 4 90eb6d21b4SOllivier Robert [ 0 -lt \`expr \$COUNT % $PARALLEL_BUILDS\` ] || wait 91eb6d21b4SOllivier Robert 922b15cb3dSCy Schubert case $FB_FIRSTONLY in 932b15cb3dSCy Schubert '0') 94*f5f40dd6SCy Schubert ./build $SIG $PARSE $STD --disable-debugging --disable-saveconfig $BUILD_ARGS & 95eb6d21b4SOllivier Robert 96eb6d21b4SOllivier Robert COUNT=\`expr \$COUNT + 1\` 972b15cb3dSCy Schubert echo \`date -u '+%H:%M:%S'\` $i started build \$COUNT of 4 98eb6d21b4SOllivier Robert [ 0 -lt \`expr \$COUNT % $PARALLEL_BUILDS\` ] || wait 99eb6d21b4SOllivier Robert 100*f5f40dd6SCy Schubert ./build $SIG $PARSE $STD --without-crypto --enable-c99-snprintf --enable-leap-smear $BUILD_ARGS & 101eb6d21b4SOllivier Robert 102eb6d21b4SOllivier Robert COUNT=\`expr \$COUNT + 1\` 1032b15cb3dSCy Schubert echo \`date -u '+%H:%M:%S'\` $i started build \$COUNT of 4 104eb6d21b4SOllivier Robert [ 0 -lt \`expr \$COUNT % $PARALLEL_BUILDS\` ] || wait 105eb6d21b4SOllivier Robert 1062b15cb3dSCy Schubert ./build $SIG $STD --disable-all-clocks --disable-autokey --without-sntp --disable-thread-support $BUILD_ARGS & 107eb6d21b4SOllivier Robert 108eb6d21b4SOllivier Robert COUNT=\`expr \$COUNT + 1\` 1092b15cb3dSCy Schubert echo \`date -u '+%H:%M:%S'\` $i started build \$COUNT of 4 110eb6d21b4SOllivier Robert wait 1112b15cb3dSCy Schubert esac 112eb6d21b4SOllivier Robert echo \`date -u '+%H:%M:%S'\` $i flock-build $c_d done. 113eb6d21b4SOllivier Robert rm .buildkey-$i 114eb6d21b4SOllivier RobertENDQUOT 115eb6d21b4SOllivier Robert chmod +x .flockbuild-$i-$SIG 116eb6d21b4SOllivier Robert ssh -tt $i "$c_d/.flockbuild-$i-$SIG ; \ 117eb6d21b4SOllivier Robert rm $c_d/.flockbuild-$i-$SIG" 2>/dev/null & 118eb6d21b4SOllivier Robert esac 119224ba2bdSOllivier Robert esac 120224ba2bdSOllivier Robertdone 121eb6d21b4SOllivier Robertecho `date -u '+%H:%M:%S'` flock-build launched 122