diff options
Diffstat (limited to 'contrib/ntp/bootstrap')
| -rwxr-xr-x | contrib/ntp/bootstrap | 188 |
1 files changed, 188 insertions, 0 deletions
diff --git a/contrib/ntp/bootstrap b/contrib/ntp/bootstrap new file mode 100755 index 000000000000..dcba5c7fa3a8 --- /dev/null +++ b/contrib/ntp/bootstrap @@ -0,0 +1,188 @@ +#! /bin/sh + +# This "bootstrap" script performs various pre-autoreconf actions +# that are required after pulling fresh sources from the repository. +# +# --force is supported and will be passed to autoreconf +# +# NOTE: THE NTP VERSION NUMBER COMES FROM packageinfo.sh +# +# all other instances of it anywhere in the source base have propagated +# from this one source. +# +# To use the raw sources from the repository, you must have the following +# tools available to you: +# +# 1. Autoconf and Automake. +# +# 2. lynx. This is used to extract the COPYRIGHT file extracted from +# the html documentation. +# +# *** The following are no longer needed for simple builds from the repo +# 3. AutoGen. The repository does *not* contain the files generated from +# the option definition files and it does not contain the libopts +# tear-off/redistributable library. +# +# Note: AutoGen needs GNU Guile. +# +# 4. gunzip. The tear-off library is a gzipped tarball. + +set -e + +(cd sntp && ../scripts/build/genver) || { + echo scripts/build/genver failed ; exit 1; } + +# autoreconf says: +# The environment variables AUTOCONF, AUTOHEADER, AUTOMAKE, ACLOCAL, +# AUTOPOINT, LIBTOOLIZE, M4 are honored. + +AUTORECONF=${AUTORECONF:-autoreconf} + +# case `hostname` in +# pogo.udel.edu) +# if fgrep -q 4.2.4 sntp/m4/version.m4; then +# AUTOCONF=autoconf-2.59 +# AUTOHEADER=autoheader-2.59 +# AUTOMAKE=automake-1.9 +# ACLOCAL=aclocal-1.9 +# export AUTOCONF AUTOHEADER AUTOMAKE ACLOCAL +# fi +# ;; +# esac + +## Old way +# 20060629: HMS: Let's try checking in libopts and the autogen-generated files +## The copy for ntp... +#rm -rf libopts* +#gunzip -c $(autoopts-config --libsrc) | ( +# tar -xvf - +# mv libopts-*.*.* libopts ) + +## The copy for sntp... +#rm -rf sntp/libopts* +#gunzip -c $(autoopts-config --libsrc) | ( +# cd sntp +# tar -xvf - +# mv libopts-*.*.* libopts ) + +## EOOld way + +## Unity test runners +# the ruby generator must be older than the test files. +# the test files must be older than the runner files. + +runner_files=`find [B-Za-z]* -type f -name 'run-*' -print | fgrep -v /SCCS/` +l= +lt= +lr= +for f in ${runner_files} +do + fb=`echo $f | sed -e 's/run-//'` + lt="$lt $fb" + lr="$lr $f" # Yes, lr and runner_files are eventually the same +done +touch $lt +echo "Touching <$lt>" +sleep 1 +touch $lr +echo "Touching <$lr>" + +## EOUnity test runners + +## AutoGen stuff + +def_files=`find [B-Za-z]* -type f -name '*.def' -print | fgrep -v /SCCS/` +prog_opt_files=`grep -l '^prog.name' $def_files` + +# touch the stuff generated by the opt files + +l= +lh= +li= +for f in ${prog_opt_files} +do + f=`echo $f | sed -e 's/-opts.def//' -e 's/.def//'` + dfi=`dirname $f` + dfi=`echo $dfi | sed -e 's:$:/invoke-*:'` + for i in `ls -1 $f* $dfi` + do + case "$i" in + *invoke-*) + li="$li $i" + ;; + *.c|*.h|*.[1-9]*man|*.[1-9]*mdoc|*.man.in|*.mdoc.in|*-opts|*.texi|*.menu) + l="$l $i" + ;; + *.html) + lh="$lh $i" + ;; + esac + done +done +case "$l" in + '') ;; + *) touch $l + echo "Touching <$l>" + sleep 1 + ;; +esac +case "$li" in + '') ;; + *) touch $li + echo "Touching <$li>" + sleep 1 + ;; +esac +case "$lh" in + '') ;; + *) touch $lh + echo "Touching <$lh>" + ;; +esac + +## EOAutoGen stuff + +## Yacc/bison files + +# Yacc/bison files ntp_parser.[ch] so we don't require the tool if +# ntp_parser.y hasn't been updated. At the same time, keyword-gen-utd +# and ntp_keyword.h which are derived from ntp_parser.h and +# keyword-gen.c. + +touch ntpd/ntp_parser.[ch] ntpd/keyword-gen-utd ntpd/ntp_keyword.h + +## EOYacc/bison files + +cp bincheck.mf sntp/ +cp depsver.mf sntp/ + +${AUTORECONF} -i -v "$@" + +# Because some systems do not support 'test a -nt b' +case `ls -1tr config.h.in aclocal.m4 | tail -1` in + aclocal.m4) touch config.h.in ;; +esac +case `ls -1tr sntp/config.h.in sntp/aclocal.m4 | tail -1` in + sntp/aclocal.m4) touch sntp/config.h.in ;; +esac +case `ls -1tr sntp/libevent/config.h.in sntp/libevent/aclocal.m4 | tail -1` in + sntp/libevent/aclocal.m4) touch sntp/libevent/config.h.in ;; +esac + +# DH: 20110118: Due to our workaround for the AM_COND_IF bug that was +# triggering the buggy recursive autoreconf, we can once again use a +# single autoreconf invocation. See +# http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7860 +# DH: 20101120: We are back to a single copy of libopts, and +# once again it seems we need to run autoreconf in sntp after +# the top-level run to get a correct sntp/libopts/Makefile.in. +# To reduce redundancy, the top-level autoreconf uses --no-recursive. +# +# HMS: 20060618: Now that we use separate copies of libopts +# we should only need the previous line. +# +## HMS: 20060615: the next line seems to be needed to make sure +## we get the correct srcdir path in sntp/libopts/Makefile.in +#rm -rf sntp/autom4te.cache +# +# (cd sntp && ${AUTORECONF} -i -v "$@") |
