1#! /bin/sh 2 3LOGF=make.log 4IAM=`hostname || uname -n` 5MYNAME=`IFS=. ; set $IAM ; echo $1` 6SIG= 7 8case "$1" in 9 0.*) 10 SIG=$1 11 shift 12 CONFIG_ARGS="$@" 13 KEY=`sed -e q < .buildkey-$MYNAME` 14 case "$SIG" in 15 $KEY) ;; 16 *) 17 echo "Wrong directory for build on host $IAM" 18 echo "This is <`pwd`>" 19 echo "SIG is <$SIG>" 20 echo "KEY is <$KEY>" 21 exit 1 22 ;; 23 esac 24 ;; 25 *) 26 CONFIG_ARGS="$@" 27 ;; 28esac 29 30#set -e 31#set -x 32 33if [ ! -r sntp/libevent/build-aux/config.guess ] ; then 34 echo "Error: bootstrap required." 1>&2 && exit 1 35fi 36 37# sntp/scripts/cvo.sh invokes config.guess, and we want it to use the copy 38# in the build-aux directory if there's not another config.guess earlier 39# on the path, so we invoke it using env to append to the PATH. 40 41CVO=`env PATH="$PATH:./sntp/libevent/build-aux" sntp/scripts/cvo.sh @cvo@` 42case "$CVO" in 43 *-*-*-*) echo "sntp/scripts/cvo.sh returned <$CVO>, which makes no sense to me." 44 exit 1 45 ;; 46 *-*-*) ;; 47 *) echo "sntp/scripts/cvo.sh returned <$CVO>, which makes no sense to me." 48 exit 1 49 ;; 50esac 51 52case "$NTP_BDIR" in 53 '') 54 case "$IAM" in 55 *.ntp.org) 56 NTP_BDIR=host 57 ;; 58 *.udel.edu) 59 NTP_BDIR=host 60 # HMS: --enable-local-libopts is the default now... 61 #CONFIG_ARGS="$CONFIG_ARGS --enable-local-libopts" 62 case "$CVO" in 63 *-*-ultrix*) 64 CONFIG_ARGS="$CONFIG_ARGS --with-libregex=/usr/local" 65 ;; 66 esac 67 ;; 68 *) 69 NTP_BDIR=cvo 70 ;; 71 esac 72 ;; 73esac 74 75case "$NTP_BDIR" in 76 host) 77 BASEDIR=A.$MYNAME 78 ;; 79 cvo) 80 BASEDIR=A.$CVO 81 ;; 82 *) 83 echo "build: NTP_BDIR must be either 'cvo' or 'host'!" 1>&2 84 exit 1 85 ;; 86esac 87 88KEYSUF="" 89 90case "$CONFIG_ARGS" in 91 *--with-crypto=autokey*) 92 KEYSUF="-autokey" 93 ;; 94 *--without-crypto*) 95 KEYSUF="-noopenssl" 96 ;; 97esac 98 99case "$CONFIG_ARGS" in 100 *--disable-all-clocks*) 101 KEYSUF="$KEYSUF-no-refclocks" 102 ;; 103esac 104 105case "$CONFIG_ARGS" in 106 *--disable-debugging*) 107 KEYSUF="$KEYSUF-nodebug" 108 ;; 109esac 110 111case "$CC" in 112 '') 113 CCSUF="" 114 ;; 115 *) 116 CCSUF="-`echo $CC | sed -e 's: :_:g' -e's:/:+:g'`" 117 ;; 118esac 119 120BDIR="$BASEDIR$KEYSUF$CCSUF" 121 122[ -d "$BDIR" ] || mkdir $BDIR 123[ -f "$BDIR/.buildcvo" ] || echo $CVO > $BDIR/.buildcvo 124[ -f "$BDIR/.buildhost" ] || echo $IAM > $BDIR/.buildhost 125 126 127cd $BDIR 128 129# 130# Make sure we have a nice that works. 131# To disable use of nice, setenv NO_NICE_BUILD=1 132# 133NICEB= 134[ "$NO_NICE_BUILD" != "1" ] && nice true && NICEB=nice 135[ -z "$NICEB" ] && { 136 NICEB="./.nicebuild-$MYNAME-$SIG" 137 cat > $NICEB <<-HEREDOC 138 #! /bin/sh 139 shift 140 \$* 141HEREDOC 142 chmod +x $NICEB 143} 144 145# 146# Find a test which supports -nt, unlike Solaris /bin/sh builtin. 147# 148TEST="${TEST-}" 149if [ -z "$TEST" ] ; then 150 for try in test /bin/test /usr/bin/test ; do 151 case `$try config.status -nt ../configure 2>&1` in 152 '') 153 TEST="$try" 154 # echo "Using $TEST" 155 break 156 ;; 157 esac 158 done 159 if [ -z "$TEST" ] ; then 160 echo "build: need help finding test binary" 1>&2 161 exit 1 162 fi 163fi 164 165CONFIGURE="../configure" 166# We need KEYSUF because of RAND_ and others, and -noopenssl" 167#CONFIGURE="$CONFIGURE --cache-file=../config.cache-$IAM$KEYSUF$CCSUF" 168CONFIGURE="$CONFIGURE $CONFIG_ARGS" 169 170 171( # This sequence of commands is logged to make.log. 172 # If config.status is newer than ../configure, and the same 173 # is true for sntp, we do not need to re-run configure. 174 # For libevent, the twist is we may not be configuring the 175 # tearoff, so only act if its config.status exists. 176 # Solaris /bin/sh doesn't grok -nt. 177 178 ( "$TEST" config.status -nt ../configure && 179 "$TEST" sntp/config.status -nt ../sntp/configure && 180 ( "$TEST" '!' -f sntp/libevent/config.status || 181 "$TEST" sntp/libevent/config.status -nt ../sntp/libevent/configure ) ) || 182 "$NICEB" -7 $CONFIGURE 183 "$TEST" Makefile -nt config.status || 184 "$NICEB" -5 ./config.status 185 "$TEST" sntp/Makefile -nt sntp/config.status || 186 ( cd sntp && "$NICEB" -5 ./config.status ) 187 "$TEST" '!' -f sntp/libevent/Makefile || 188 "$TEST" sntp/libevent/Makefile -nt sntp/libevent/config.status || 189 ( cd sntp/libevent && "$NICEB" -5 ./config.status ) 190 "$NICEB" -14 ${MAKE-make} && "$NICEB" -11 ${MAKE-make} check 191) > $LOGF 2>&1 192 193EXITCODE=$? 194 195# clean up if we made a dummy nice script 196case "$NICEB" in 197 nice) 198 ;; 199 *) 200 rm "$NICEB" 201 ;; 202esac 203 204exit $EXITCODE 205