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