1c0b746e5SOllivier Robert#! /bin/sh 2c0b746e5SOllivier Robert 3c0b746e5SOllivier RobertLOGF=make.log 4c0b746e5SOllivier RobertIAM=`hostname || uname -n` 5eb6d21b4SOllivier RobertMYNAME=`IFS=. ; set $IAM ; echo $1` 6eb6d21b4SOllivier RobertSIG= 7c0b746e5SOllivier Robert 8224ba2bdSOllivier Robertcase "$1" in 9224ba2bdSOllivier Robert 0.*) 10224ba2bdSOllivier Robert SIG=$1 11224ba2bdSOllivier Robert shift 12224ba2bdSOllivier Robert CONFIG_ARGS="$@" 13eb6d21b4SOllivier Robert KEY=`sed -e q < .buildkey-$MYNAME` 14224ba2bdSOllivier Robert case "$SIG" in 15224ba2bdSOllivier Robert $KEY) ;; 16224ba2bdSOllivier Robert *) 17224ba2bdSOllivier Robert echo "Wrong directory for build on host $IAM" 189c2daa00SOllivier Robert echo "This is <`pwd`>" 199c2daa00SOllivier Robert echo "SIG is <$SIG>" 209c2daa00SOllivier Robert echo "KEY is <$KEY>" 21224ba2bdSOllivier Robert exit 1 22224ba2bdSOllivier Robert ;; 23224ba2bdSOllivier Robert esac 24224ba2bdSOllivier Robert ;; 25224ba2bdSOllivier Robert *) 26224ba2bdSOllivier Robert CONFIG_ARGS="$@" 27224ba2bdSOllivier Robert ;; 28224ba2bdSOllivier Robertesac 29224ba2bdSOllivier Robert 30c0b746e5SOllivier Robert#set -e 31c0b746e5SOllivier Robert#set -x 32c0b746e5SOllivier Robert 332b15cb3dSCy Schubertif [ ! -r sntp/libevent/build-aux/config.guess ] ; then 342b15cb3dSCy Schubert echo "Error: bootstrap required." 1>&2 && exit 1 352b15cb3dSCy Schubertfi 362b15cb3dSCy Schubert 372b15cb3dSCy Schubert# sntp/scripts/cvo.sh invokes config.guess, and we want it to use the copy 382b15cb3dSCy Schubert# in the build-aux directory if there's not another config.guess earlier 392b15cb3dSCy Schubert# on the path, so we invoke it using env to append to the PATH. 402b15cb3dSCy Schubert 412b15cb3dSCy SchubertCVO=`env PATH="$PATH:./sntp/libevent/build-aux" sntp/scripts/cvo.sh @cvo@` 42c0b746e5SOllivier Robertcase "$CVO" in 432b15cb3dSCy Schubert *-*-*-*) echo "sntp/scripts/cvo.sh returned <$CVO>, which makes no sense to me." 442b15cb3dSCy Schubert exit 1 452b15cb3dSCy Schubert ;; 46c0b746e5SOllivier Robert *-*-*) ;; 472b15cb3dSCy Schubert *) echo "sntp/scripts/cvo.sh returned <$CVO>, which makes no sense to me." 48c0b746e5SOllivier Robert exit 1 49c0b746e5SOllivier Robert ;; 50c0b746e5SOllivier Robertesac 51c0b746e5SOllivier Robert 522b15cb3dSCy Schubertcase "$NTP_BDIR" in 532b15cb3dSCy Schubert '') 54c0b746e5SOllivier Robert case "$IAM" in 55*052d159aSCy Schubert *.ntp.org | *.ntfo.org) 562b15cb3dSCy Schubert NTP_BDIR=host 572b15cb3dSCy Schubert ;; 58c0b746e5SOllivier Robert *.udel.edu) 592b15cb3dSCy Schubert NTP_BDIR=host 602b15cb3dSCy Schubert # HMS: --enable-local-libopts is the default now... 612b15cb3dSCy Schubert #CONFIG_ARGS="$CONFIG_ARGS --enable-local-libopts" 62ea906c41SOllivier Robert case "$CVO" in 63ea906c41SOllivier Robert *-*-ultrix*) 64ea906c41SOllivier Robert CONFIG_ARGS="$CONFIG_ARGS --with-libregex=/usr/local" 65ea906c41SOllivier Robert ;; 66ea906c41SOllivier Robert esac 67c0b746e5SOllivier Robert ;; 68c0b746e5SOllivier Robert *) 692b15cb3dSCy Schubert NTP_BDIR=cvo 702b15cb3dSCy Schubert ;; 712b15cb3dSCy Schubert esac 722b15cb3dSCy Schubert ;; 732b15cb3dSCy Schubertesac 742b15cb3dSCy Schubert 752b15cb3dSCy Schubertcase "$NTP_BDIR" in 762b15cb3dSCy Schubert host) 772b15cb3dSCy Schubert BASEDIR=A.$MYNAME 782b15cb3dSCy Schubert ;; 792b15cb3dSCy Schubert cvo) 802b15cb3dSCy Schubert BASEDIR=A.$CVO 812b15cb3dSCy Schubert ;; 822b15cb3dSCy Schubert *) 832b15cb3dSCy Schubert echo "build: NTP_BDIR must be either 'cvo' or 'host'!" 1>&2 842b15cb3dSCy Schubert exit 1 85c0b746e5SOllivier Robert ;; 86c0b746e5SOllivier Robertesac 87c0b746e5SOllivier Robert 88224ba2bdSOllivier RobertKEYSUF="" 89224ba2bdSOllivier Robert 90224ba2bdSOllivier Robertcase "$CONFIG_ARGS" in 91224ba2bdSOllivier Robert *--with-crypto=autokey*) 92224ba2bdSOllivier Robert KEYSUF="-autokey" 93224ba2bdSOllivier Robert ;; 94224ba2bdSOllivier Robert *--without-crypto*) 959c2daa00SOllivier Robert KEYSUF="-noopenssl" 96224ba2bdSOllivier Robert ;; 97224ba2bdSOllivier Robertesac 98224ba2bdSOllivier Robert 99ea906c41SOllivier Robertcase "$CONFIG_ARGS" in 100ea906c41SOllivier Robert *--disable-all-clocks*) 101ea906c41SOllivier Robert KEYSUF="$KEYSUF-no-refclocks" 102ea906c41SOllivier Robert ;; 103ea906c41SOllivier Robertesac 104ea906c41SOllivier Robert 105ea906c41SOllivier Robertcase "$CONFIG_ARGS" in 106ea906c41SOllivier Robert *--disable-debugging*) 107ea906c41SOllivier Robert KEYSUF="$KEYSUF-nodebug" 108ea906c41SOllivier Robert ;; 109ea906c41SOllivier Robertesac 110ea906c41SOllivier Robert 111c0b746e5SOllivier Robertcase "$CC" in 1122b15cb3dSCy Schubert '') 1132b15cb3dSCy Schubert CCSUF="" 1142b15cb3dSCy Schubert ;; 1152b15cb3dSCy Schubert *) 1162b15cb3dSCy Schubert CCSUF="-`echo $CC | sed -e 's: :_:g' -e's:/:+:g'`" 117c0b746e5SOllivier Robert ;; 118c0b746e5SOllivier Robertesac 119c0b746e5SOllivier Robert 1202b15cb3dSCy SchubertBDIR="$BASEDIR$KEYSUF$CCSUF" 121c0b746e5SOllivier Robert 122c0b746e5SOllivier Robert[ -d "$BDIR" ] || mkdir $BDIR 123c0b746e5SOllivier Robert[ -f "$BDIR/.buildcvo" ] || echo $CVO > $BDIR/.buildcvo 124c0b746e5SOllivier Robert[ -f "$BDIR/.buildhost" ] || echo $IAM > $BDIR/.buildhost 125c0b746e5SOllivier Robert 126eb6d21b4SOllivier Robert 127c0b746e5SOllivier Robertcd $BDIR 128c0b746e5SOllivier Robert 129eb6d21b4SOllivier Robert# 1302b15cb3dSCy Schubert# Make sure we have a nice that works. 1312b15cb3dSCy Schubert# To disable use of nice, setenv NO_NICE_BUILD=1 132eb6d21b4SOllivier Robert# 1332b15cb3dSCy SchubertNICEB= 1342b15cb3dSCy Schubert[ "$NO_NICE_BUILD" != "1" ] && nice true && NICEB=nice 1352b15cb3dSCy Schubert[ -z "$NICEB" ] && { 1362b15cb3dSCy Schubert NICEB="./.nicebuild-$MYNAME-$SIG" 1372b15cb3dSCy Schubert cat > $NICEB <<-HEREDOC 138eb6d21b4SOllivier Robert #! /bin/sh 139eb6d21b4SOllivier Robert shift 140eb6d21b4SOllivier Robert \$* 1412b15cb3dSCy SchubertHEREDOC 1422b15cb3dSCy Schubert chmod +x $NICEB 1432b15cb3dSCy Schubert} 144c0b746e5SOllivier Robert 1452b15cb3dSCy Schubert# 1462b15cb3dSCy Schubert# Find a test which supports -nt, unlike Solaris /bin/sh builtin. 1472b15cb3dSCy Schubert# 1482b15cb3dSCy SchubertTEST="${TEST-}" 1492b15cb3dSCy Schubertif [ -z "$TEST" ] ; then 1502b15cb3dSCy Schubert for try in test /bin/test /usr/bin/test ; do 1512b15cb3dSCy Schubert case `$try config.status -nt ../configure 2>&1` in 1522b15cb3dSCy Schubert '') 1532b15cb3dSCy Schubert TEST="$try" 1542b15cb3dSCy Schubert # echo "Using $TEST" 1552b15cb3dSCy Schubert break 156c0b746e5SOllivier Robert ;; 157c0b746e5SOllivier Robert esac 1582b15cb3dSCy Schubert done 1592b15cb3dSCy Schubert if [ -z "$TEST" ] ; then 1602b15cb3dSCy Schubert echo "build: need help finding test binary" 1>&2 1612b15cb3dSCy Schubert exit 1 1622b15cb3dSCy Schubert fi 1632b15cb3dSCy Schubertfi 1642b15cb3dSCy Schubert 1652b15cb3dSCy SchubertCONFIGURE="../configure" 1662b15cb3dSCy Schubert# We need KEYSUF because of RAND_ and others, and -noopenssl" 1672b15cb3dSCy Schubert#CONFIGURE="$CONFIGURE --cache-file=../config.cache-$IAM$KEYSUF$CCSUF" 1682b15cb3dSCy SchubertCONFIGURE="$CONFIGURE $CONFIG_ARGS" 1692b15cb3dSCy Schubert 1702b15cb3dSCy Schubert 1712b15cb3dSCy Schubert( # This sequence of commands is logged to make.log. 1722b15cb3dSCy Schubert # If config.status is newer than ../configure, and the same 1732b15cb3dSCy Schubert # is true for sntp, we do not need to re-run configure. 1742b15cb3dSCy Schubert # For libevent, the twist is we may not be configuring the 1752b15cb3dSCy Schubert # tearoff, so only act if its config.status exists. 1762b15cb3dSCy Schubert # Solaris /bin/sh doesn't grok -nt. 1772b15cb3dSCy Schubert 1782b15cb3dSCy Schubert ( "$TEST" config.status -nt ../configure && 1792b15cb3dSCy Schubert "$TEST" sntp/config.status -nt ../sntp/configure && 1802b15cb3dSCy Schubert ( "$TEST" '!' -f sntp/libevent/config.status || 1812b15cb3dSCy Schubert "$TEST" sntp/libevent/config.status -nt ../sntp/libevent/configure ) ) || 1822b15cb3dSCy Schubert "$NICEB" -7 $CONFIGURE 1832b15cb3dSCy Schubert "$TEST" Makefile -nt config.status || 1842b15cb3dSCy Schubert "$NICEB" -5 ./config.status 1852b15cb3dSCy Schubert "$TEST" sntp/Makefile -nt sntp/config.status || 1862b15cb3dSCy Schubert ( cd sntp && "$NICEB" -5 ./config.status ) 1872b15cb3dSCy Schubert "$TEST" '!' -f sntp/libevent/Makefile || 1882b15cb3dSCy Schubert "$TEST" sntp/libevent/Makefile -nt sntp/libevent/config.status || 1892b15cb3dSCy Schubert ( cd sntp/libevent && "$NICEB" -5 ./config.status ) 1902b15cb3dSCy Schubert "$NICEB" -14 ${MAKE-make} && "$NICEB" -11 ${MAKE-make} check 191a151a66cSOllivier Robert) > $LOGF 2>&1 1922b15cb3dSCy Schubert 1932b15cb3dSCy SchubertEXITCODE=$? 1942b15cb3dSCy Schubert 1952b15cb3dSCy Schubert# clean up if we made a dummy nice script 1962b15cb3dSCy Schubertcase "$NICEB" in 1972b15cb3dSCy Schubert nice) 1982b15cb3dSCy Schubert ;; 1992b15cb3dSCy Schubert *) 2002b15cb3dSCy Schubert rm "$NICEB" 2012b15cb3dSCy Schubert ;; 2022b15cb3dSCy Schubertesac 2032b15cb3dSCy Schubert 2042b15cb3dSCy Schubertexit $EXITCODE 205