File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / ntp / build
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue May 29 12:08:37 2012 UTC (12 years, 5 months ago) by misho
Branches: ntp, MAIN
CVS tags: v4_2_6p5p0, v4_2_6p5, HEAD
ntp 4.2.6p5

#! /bin/sh

LOGF=make.log
IAM=`hostname || uname -n`
MYNAME=`IFS=. ; set $IAM ; echo $1`
SIG=

case "$1" in
 0.*)
    SIG=$1
    shift
    CONFIG_ARGS="$@"
    KEY=`sed -e q < .buildkey-$MYNAME`
    case "$SIG" in
     $KEY) ;;
     *)
	echo "Wrong directory for build on host $IAM"
	echo "This is <`pwd`>"
	echo "SIG is <$SIG>"
	echo "KEY is <$KEY>"
	exit 1
	;;
    esac
    ;;
 *)
    CONFIG_ARGS="$@"
    ;;
esac

#set -e
#set -x

# scripts/cvo.sh invokes config.guess, and we want it to use the copy
# in the top directory (alongside build) if there's not another
# config.guess earlier on the path, so we invoke it using env to append
# . to the PATH.

CVO=`env PATH="$PATH:." scripts/cvo.sh @cvo@`
case "$CVO" in
 *-*-*-*) echo "scripts/cvo.sh returned <$CVO>, which makes no sense to me."
    exit 1
    ;;
 *-*-*) ;;
 *) echo "scripts/cvo.sh returned <$CVO>, which makes no sense to me."
    exit 1
    ;;
esac

case "$NTP_BDIR" in
 '')
    case "$IAM" in
     *.ntp.org)
	NTP_BDIR=host
	;;
     *.udel.edu)
	NTP_BDIR=host
	# HMS: --enable-local-libopts is the default now...
	#CONFIG_ARGS="$CONFIG_ARGS --enable-local-libopts"
	case "$CVO" in
	 *-*-ultrix*)
	    CONFIG_ARGS="$CONFIG_ARGS --with-libregex=/usr/local"
	    ;;
	esac
	;;
     *)
	NTP_BDIR=cvo
	;;
     esac
     ;;
esac

case "$NTP_BDIR" in
 host) 
    BASEDIR=A.$MYNAME
    ;;
 cvo)
    BASEDIR=A.$CVO
    ;;
 *)
    echo "build: NTP_BDIR must be either 'cvo' or 'host'!" 1>&2
    exit 1
    ;;
esac

KEYSUF=""

case "$CONFIG_ARGS" in
 *--with-crypto=autokey*)
    KEYSUF="-autokey"
    ;;
 *--without-crypto*)
    KEYSUF="-noopenssl"
    ;;
esac

case "$CONFIG_ARGS" in
 *--disable-all-clocks*)
    KEYSUF="$KEYSUF-no-refclocks"
    ;;
esac

case "$CONFIG_ARGS" in
 *--disable-debugging*)
    KEYSUF="$KEYSUF-nodebug"
    ;;
esac

case "$CC" in
 '')
    CCSUF=""
    ;;
 *)
    CCSUF="-`echo $CC | sed -e 's: :_:g' -e's:/:+:g'`"
    ;;
esac

BDIR="$BASEDIR$KEYSUF$CCSUF"

[ -d "$BDIR" ] || mkdir $BDIR
[ -f "$BDIR/.buildcvo" ] || echo $CVO > $BDIR/.buildcvo
[ -f "$BDIR/.buildhost" ] || echo $IAM > $BDIR/.buildhost


cd $BDIR

#
# Make sure we have a nice that works.
# To disable use of nice, setenv NO_NICE_BUILD=1
#
NICEB=
[ "$NO_NICE_BUILD" != "1" ] && nice true && NICEB=nice
[ -z "$NICEB" ] && {
	NICEB="./.nicebuild-$MYNAME-$SIG"
	cat > $NICEB <<-HEREDOC
		#! /bin/sh
		shift
		\$*
HEREDOC
	chmod +x $NICEB
}

#
# Find a test which supports -nt, unlike Solaris /bin/sh builtin.
#
TEST="${TEST-}"
if [ -z "$TEST" ] ; then
    for try in test /bin/test /usr/bin/test ; do
	case `$try config.status -nt ../configure 2>&1` in
	 '')
	    TEST="$try"
	    # echo "Using $TEST"
	    break
	    ;;
	esac		
    done
    if [ -z "$TEST" ] ; then
	echo "build: need help finding test binary" 1>&2
	exit 1
    fi
fi

CONFIGURE="../configure --cache-file=../config.cache-$IAM$CCSUF $CONFIG_ARGS"

(	# This sequence of commands is logged to make.log.
	# If config.status is newer than ../configure, and the same
	# is true for sntp, we do not need to re-run configure.
	# Solaris /bin/sh doesn't grok -nt.

	( "$TEST" config.status -nt ../configure &&
		$TEST sntp/config.status -nt ../sntp/configure ) ||
		"$NICEB" -7 $CONFIGURE
	"$NICEB" -5 ./config.status &&
		( cd sntp && "$NICEB" -5 ./config.status ) &&
		"$NICEB" -14 ${MAKE-make} &&
		"$NICEB" -11 ${MAKE-make} check
) > $LOGF 2>&1

EXITCODE=$?

# clean up if we made a dummy nice script
case "$NICEB" in
 nice)
    ;;
 *)
    rm "$NICEB"
    ;;
esac

exit $EXITCODE

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>