xref: /freebsd/contrib/ntp/flock-build (revision eb6d21b4ca6d668cf89afd99eef7baeafa712197)
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